music-video-gen/flow-state/tools
Dejvino 7aa60d7336 Epic 5 Phase 0 — actors have bodies; the stage has depth
ActorGenerator is the cast with bodies: generateActor{mpl} takes
{summary,rng,archetype,personality,identity} and returns a serialisable
ActorSpec — same audio-tilts-centre / seed-picks-within rule as
Personality/Identity, forked rng so adding an actor never shifts later
decisions. Five archetypes (monolith/swarm/walker/vehicle/structure),
per-track actor set on look.actors, HUD helper included. Stage C will
grow as a library on this without infra changes.

Mesh twin of Identity.form: actors/meshes.js builds BufferGeometry from
the same assembly (cast SDF → Shape → ExtrudeGeometry, box/capsule/
torus/sphere primitives, symmetry folding radial/mirror/stack). Shared
with the shader impostor path — one character, two projectors.

Renderer depth targets: createDepthTarget / createTarget{depthTexture}
for WebGL DepthTexture plumbing.

Compositor shared rig: one PerspectiveCamera + DepthTexture so a ground
mesh can occlude a subject mesh from another layer. 4/scale dolly,
Personality.camera drift/sway/spin, framing shift — matches particles.js
and shader epilogue behaviour. ModelLayer (kind:model) with
build/update(actorSpec) and sharedCamera injection; createLayer dispatches
on model. Shader contract gains MODEL_PREAMBLE.

LookGenerator now derives actors before scenes; ArcDriver._actorFor +
_layerFor wires ActorSpec into ModelLayer; schema validates kind:model
and actor archetype; lint determinism gate covers actors/.

Gate: lint 107 files clean, 70 shader literals, 68 scenes green; vite
build 294 modules; ActorGenerator determinism + mesh smoke tests pass.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-20 16:26:15 +02:00
..
build-song-bank.js Give the sections shapes, and the songs an opinion about their own edges 2026-08-17 07:43:59 +02:00
cast-census.js A cast census, and the arrangement it needed to be true 2026-08-17 06:45:42 +02:00
identity-census.js Measure where visual difference comes from, and correct the epic's framing 2026-08-17 21:42:04 +02:00
lint-scenes.js Epic 5 Phase 0 — actors have bodies; the stage has depth 2026-08-20 16:26:15 +02:00
migration-status.js A reproducible migration, and the first eighteen scenes through it 2026-08-17 21:59:24 +02:00
new-scene.js Every shot stands on something, and the frame has two ends 2026-08-20 09:02:01 +02:00
probe-mp4.js Fix export frame loss: reject codec profiles that reorder frames 2026-08-06 13:10:24 +02:00