Load a baked environment map from the store's root-level environment/ sidecar
group (luxar env attach; spec MESH_PHYSICAL_MATERIALS_SPEC.md §3.3).
The group carries neither type nor kind, so build-scene-graph.ts skips it as a
metadata sidecar — nothing reads it implicitly, which is why this loader exists. Its
faces attr names the live array (faces-<digest>; a re-bake is a NEW path, so a
caching store can never serve stale faces), and scene_content_hash is the guard:
the environment group is EXCLUDED from the scene digest on the Python side, so this
comparison against the root's content_hash is exact. A mismatch means the scene
changed since the bake; the map is ignored with a console line and the viewer falls
back to its configured source or the room.
Absence is the normal case and costs one metadata probe. Every failure path degrades
to "no baked map" rather than failing the scene load — the environment is lighting,
not data.
Load a baked environment map from the store's root-level
environment/sidecar group (luxar env attach; specMESH_PHYSICAL_MATERIALS_SPEC.md§3.3).The group carries neither
typenorkind, sobuild-scene-graph.tsskips it as a metadata sidecar — nothing reads it implicitly, which is why this loader exists. Itsfacesattr names the live array (faces-<digest>; a re-bake is a NEW path, so a caching store can never serve stale faces), andscene_content_hashis the guard: the environment group is EXCLUDED from the scene digest on the Python side, so this comparison against the root'scontent_hashis exact. A mismatch means the scene changed since the bake; the map is ignored with a console line and the viewer falls back to its configured source or the room.Absence is the normal case and costs one metadata probe. Every failure path degrades to "no baked map" rather than failing the scene load — the environment is lighting, not data.