Read the property values of R3 components
r3_component_readRead back what components actually hold — a material's colour and roughness, a mesh's position, which material it uses. r3_project_load gives you the names; this gives you the values behind them.
Pass SEVERAL entityRefs in one call — telling six similarly-named materials apart is the case this exists for, and it is one round trip rather than six. One component: entityRef: "mesh_cube_1" (r3_component_set's name for it) works too.
What comes back is exactly what r3_component_set takes, so read → change → write needs no translation: value components are expanded inline ({"position": {"x": 0, "y": 2, "z": 0}}), references are the target's entityRef as a string (or null when empty), and lists of references are arrays of entityRefs. Use it before any relative change ("20% brighter", "move it up by one"), and after a write to confirm what landed.
Bulk data — mesh vertex arrays and anything else megabyte-sized — is NOT returned. Every property left out is listed with the reason, so an omission is never silent.
An entityRef that does not exist is reported by name and the rest are still read. Value components (a Vector3, a Color) are not read on their own: ask for the component that owns them.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| entityRef | No | Or one component, e.g. "mesh_cube_1". | |
| projectId | Yes | The project the components are in, from r3_project_create or r3_project_load. | |
| entityRefs | No | Which components to read, as reported by r3_project_load: an ARRAY, e.g. ["mesh_cube_1", "material_cube_1"]. Up to 50 per call. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| answer | Yes | This answer in words: what was done, what R3 measured, decided or refused, and what to do next. The same text as the result's text block. Read it: the fields beside it are the data, this is the guidance. | |
| projectId | Yes | ||
| components | Yes | ||
| unreadable | Yes | ||
| projectName | Yes |