music-video-gen/flow-state/src
Dejvino f60a29ea97 Epic 5 Phase 1 — form is a mesh, actors have parity with SDF
meshes.js now mirrors shader-contract.js verbatim:
- jsCastSDF rotates by -tilt (matching GLSL column-major mat2), hollow
  excluded during outer-radius search so annular SDFs sample correctly,
  radial search probes without hollow then punches hole separately.
- castShape samples 64 segments, inner hole scaled by hollow width.
- formToGeometry uses formDepth (u_formDepth = r.z*depth half-extent),
  capsule h correctly half-height, sphere as scaled unit sphere, prism
  extruded with proper halfDepth and centered; bevel thickness from
  part.round.
- actorToGeometry preserves per-part op/blend userData, uses YXZ Euler
  for yaw/pitch (matches formRot), mirrors radial/mirror/stack symmetry
  exactly as shader formFold does.

Shared camera wired live: Show.renderFrame drives
Compositor.updateSharedCamera from ArcDriver framing/personality/time
and injects sharedCamera into each active ModelLayer — pure f(frame,look)
so seek === playback. ArcDriver exposes framingForFrame helper.

Gates: lint 107 clean / 70 literals / 68 scenes green; vite build
294 modules; deterministic actor geometry smoke-tested (same seed same
vert count, hollow handling, fallback).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-20 17:01:44 +02:00
..
actors Epic 5 Phase 1 — form is a mesh, actors have parity with SDF 2026-08-20 17:01:44 +02:00
audio Let scenes layer on each other, and give the camera somewhere to look 2026-08-19 06:48:13 +02:00
checks The filmstrip fills in as it renders 2026-08-20 09:02:10 +02:00
engine Epic 5 Phase 0 — actors have bodies; the stage has depth 2026-08-20 16:26:15 +02:00
export Fix export frame loss: reject codec profiles that reorder frames 2026-08-06 13:10:24 +02:00
look Epic 5 Phase 1 — form is a mesh, actors have parity with SDF 2026-08-20 17:01:44 +02:00
params Epic 5 Phase 0 — actors have bodies; the stage has depth 2026-08-20 16:26:15 +02:00
scenes Synthwave verges stay off the road; camera stays level unless the tail says otherwise 2026-08-20 11:25:42 +02:00
ui Director cuts between palettes; the look panel shows which one is live 2026-08-20 12:45:42 +02:00
main.js Director cuts between palettes; the look panel shows which one is live 2026-08-20 12:45:42 +02:00
Show.js Epic 5 Phase 1 — form is a mesh, actors have parity with SDF 2026-08-20 17:01:44 +02:00