slice_drum
Slice A of **Chaff**: the place. A derelict orbital grain silo — a steel drum 48 m across and 420 m long — and everything structural in it.
slice_drum — Habitat Ring 4 "Vosk"
Slice A of Chaff: the place. A derelict orbital grain silo — a steel drum 48 m across and 420 m long — and everything structural in it.
Registers as a.drum with demo.chaff.film. Serves shots 1, 2, 3, 6, 8, 9, 11
and 14.
What it builds
Every number that more than one slice needs comes from demo.chaff.film; this
module states no world coordinate of its own beyond the ones only it uses (the
gallery's path, the ruptures in the shell, where the planet sits).
DrumShell | The interior, 48 facets of welded plate, z 0 → 420, with the gallery mouths and three ruptured panels cut out of it. |
Ribs | 30 ring frames, one every 14 m, each with sixteen gusset plates fore and aft. One in seven wears the oxide. |
Stringers | Twelve I-sections running the full length. |
Rails | Four handruns with a stanchion every 7 m — what the diver pulls himself along — and a dashed photoluminescent route marking beside each. |
Fittings | Ten grain chutes, four conduit runs, twenty-four pressure doors and six grating platforms. The doors are the scale reference: 2.1 m of door against 48 m of diameter. |
SealedEnd | The stiffened end plate, its hub and hatch, and the unloading auger, which is still turning. |
Gallery | The bore that leaves the wall at z = 250, turns twice and rejoins the drum at z = 325 — the two corners of shot 9 — with eleven charging cradles and a charge bus down the long leg. |
Breach | The torn plate at z = 420 with its ragged rim, and three plates peeled off it. |
Exterior | The hull from outside, its ring frames, and the sealed end. |
OutsideSky | The planet. Space has one thing in it and it is enormous. |
Debris | Twenty-two pieces of loose steel, in freefall since the hull went. |
What moves, and off what
Nothing ticks on its own. frame(t) is called by FilmDirector and everything
below is a pure function of film time:
- the auger turns at 0.42 rad/s,
- twenty-two pieces of debris tumble on their own axes and drift toward the tear, wrapping when they reach it,
- the eleven cradle clamps let go in a ripple down the gallery from t = 45, 0.42 s apart — shot 8's nest waking,
- the three torn plates at the breach turn on their own,
- the planet swings once round every 40 s, which is the habitat's tumble seen from a diver in freefall inside it. The phase puts it dead astern of the tear at t = 70 (shot 11) and behind the drum by t = 88 (shot 14).
Two things worth knowing before editing this
build re-derives, and so does frame. Module state does not survive a hot
reload; the entities do. build clears Drum's children and rebuilds. frame
calls ensureMovers, which picks the moving parts back up out of the world by
name and pairs them with the specs in DEBRIS / FLAPS — both of which are
computed from a fixed seed at load and read nothing. A frame that trusted a
table build had filled went silently still the first time anybody saved this
file.
The tangent basis goes in through the encoder. asset.create("mesh", …)
refuses a tangents stream that the mesh type documents as authorable
(OrigoZero/zero#7556), and the plate seams and rivets on these surfaces live in
a normal map, which has nothing to be expressed in without one. buildMeshes
creates the asset and then writes renderer.mesh.encode output over
ref.primary.
Authoring calls
M.buildMeshes(force)— mint the 22 meshes.forcere-authors in place.M.applyMaterials()— restate every material's values from this file.M.movingCount()— what the slice is currently driving, without pixels.
Scoped to this part · feeds back into the world's score.