scene_compose
Compose one stage document from a sea and sealed scene_ingest results. The sea is a 50 x 40 plane (2,000 points, the stage's floor) at z_um on the stage's up axis (the stage is Y-up). Every asset is held to its seal by SceneProvenanceLaw.verify: its usda is read back into a mesh, the mesh's fnv1a must equal the row's mesh_fnv1a and the digest must be the row's sha256, else REFUSED_SEAL; a row re-digested over an inadmissible license re-grades to REFUSED_LICENSE; a HELD row is not placed and is named under held. A placed asset gets the yaw and translation its row recorded. WRITTEN returns usda (the camera and listener lines the Iliad stage writes, then every mesh as int2[] px pairs - never point3f - so the IDE's hologram parser draws it), seal_tsv (the placed rows, each followed by LF), scene_digest (sha256 of seal_tsv, also carried in the stage as affine_scene_digest), meshes, points, faces, placed and held. It fetches nothing, reads no clock and writes nothing on the cell; the caller writes the usda.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sea | Yes | the sea plane, every value a decimal string of micrometres. e.g. {"half_width_um":"60000000","half_depth_um":"40000000","z_um":"0"} | |
| study | Yes | the study the stage belongs to; the default prim is Scene_<study>. e.g. iliad | |
| assets | No | optional: the scene_ingest INGESTED answers to place, in placement order; each needs usda, seal_row and digest exactly as returned. e.g. [{"usda":"<usda>","seal_row":"<seal_row>","digest":"<digest>"}] | |
| camera | No | optional: the hero camera, four x,y,z micrometre triples; absent keys keep the Iliad stage's defaults. e.g. {"eye":"6000000,19000000,86000000","forward":"0,0,-1000000"} |