seating
<!-- zero:scaffolded-readme --> <!-- Replace the line below with what this module provides and who consumes it, then delete both comment lines. -->
seating
<!-- zero:scaffolded-readme --> <!-- Replace the line below with what this module provides and who consumes it, then delete both comment lines. -->TODO: describe this module.
Interface
What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.
conforms to
zero/source-extract/v2house.seating — the 1,412. Every seat in the Odeon Marisol is the same seat, so it is ONE mesh drawn at 1,412 baked transforms: a `.population` per part, one draw call each, at any instance count. The foot point of every seat comes from `Film.stallSeat` / `Film.balconySeat` — this module lays out no grid of its own. The seat is in four parts because four materials meet in it: frame cast-iron standards, feet and back posts, painted black arms the mahogany caps worn pale along the top back the oxblood velvet cushion the row behind looks at bottom the tip-up, which is the one part that MOVES THE TIP-UP IS A ROW-BY-ROW POPULATION PAIR. Each row owns an `up` population and a `down` population, and only one of the two is enabled at a time. That is what lets the house fold its seats down row by row as the audience arrives, instead of every bottom in the building dropping on one frame. Every up-bottom carries its own baked angle, so a shut theatre reads as fourteen hundred seats left at fourteen hundred slightly different angles.
frameMesh( ) → void
armMesh( ) → void
backMesh( ) → void
The back cushion: a raked slab, front face toward the stage.
zf(y: number) → number
| arg | type | description |
|---|---|---|
| y | number |
backPanelMesh( ) → void
The back of the back — worn through to the weave, because it is what twenty-six rows of knees have been pressed against.
zb(y: number) → number
| arg | type | description |
|---|---|---|
| y | number |
bottomMesh( ) → void
The tip-up, authored about its hinge so a matrix can swing it. Local origin of THIS mesh is the hinge; it lies flat, running toward -Z.
yawFor(x: number, z: number) → number
The rows fan: every seat turns part of the way toward the middle of the proscenium, which is what a raked house does and what makes the plan from the dome read as a fan rather than as graph paper.
| arg | type | description |
|---|---|---|
| x | number | |
| z | number |
placements( ) → void
Every seat in the house, in row order — 26 stalls rows then 6 balcony rows.
pushMatrix(out: { number }, yaw: number, tx: number, ty: number, tz: number, tilt: number?) → void
Column-major mat4 for a yaw about Y then a translation, appended to `out`.
| arg | type | description |
|---|---|---|
| out | { number } | |
| yaw | number | |
| tx | number | |
| ty | number | |
| tz | number | |
| tilt | number? |
pick(rows: { any }, identity: string, kind: string) → string
| arg | type | description |
|---|---|---|
| rows | { any } | |
| identity | string | |
| kind | string |
meshGuid(identity: string) → string
| arg | type | description |
|---|---|---|
| identity | string |
materialGuid(identity: string) → string
| arg | type | description |
|---|---|---|
| identity | string |
population(name: string, variants: { any }, root: any) → void
| arg | type | description |
|---|---|---|
| name | string | |
| variants | { any } | |
| root | any |
build(root: any, regeometry: boolean?) → void
Build every seat in the house under `root`. Returns the row toggles.
| arg | type | description |
|---|---|---|
| root | any | |
| regeometry | boolean? |
relink( ) → boolean
Re-derive the row toggles from the live world, without rebuilding anything. A hot reload drops this module's locals while the entities it made are still standing, so ownership is read back off the world rather than trusted to a local.
fold(i: number, down: boolean) → void
Show a row group's tip-ups folded down (or back up).
| arg | type | description |
|---|---|---|
| i | number | |
| down | boolean |
Placement = { x: number, y: number, z: number, yaw: number, row: number, seat: number }Sub-parts
Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.
Showing up to 3 levels deep. Open a part to see what it holds further down.
Problems
Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.
agent_score is exposed.+ quality × 0.35
+ performance × 0.25
± compat factor
Usability ratings
Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".
Scoped to this part · feeds back into the world's score.