SCENEGOD/scenegod/web
type-two 41f2c9fa8d [sync2+3] entity mirror seam, SYNC 2 demo + 1080p mp4 verified, M4/polish unlocked
- timeline.js: _mirror — Timeline subscribes stage.onChange, upserts/removes
  live stage entities into scene.entities (closes the dock-added-entity gap
  both lanes flagged; keyframing now works without a scene load)
- lane files: M2/M3 accepted for all lanes; A→PiP sizing + lady.glb material
  polish, B→absorb _mirror + test + setDuration mutator, C→M4 (audio mux,
  graft_limb, MB proxy)

SYNC 2: lady+man+street+2cams+sunset built via live dock path, all
frame-exact (probes in transcript). SYNC 3: finalRender → 240 frames
1920x1080 → ffmpeg h264 8.000s, cuts + sunset verified in extracted frames.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 20:34:32 +10:00
..
dock.js [laneA] M2: PiP + cameras/lights toolbar, eventized clip drops, onChange-on-add 2026-07-18 20:14:52 +10:00
index.html [sync1] wire TimelineUI to real Stage, null-mixer guard, M2 unlock + orchestrator updates 2026-07-18 18:36:16 +10:00
render.js [laneC] M2/M3: render pipeline (ffmpeg encode + render.js), thumbnails endpoint, reaper 2026-07-18 20:00:14 +10:00
room3d.js [laneA] M1: Stage viewport, retarget port, dock+inspector 2026-07-18 18:06:22 +10:00
stage.js [laneA] M2: PiP + cameras/lights toolbar, eventized clip drops, onChange-on-add 2026-07-18 20:14:52 +10:00
stagestub.js [laneB] M1: timeline model+clock, panel UI, stub, self-check 2026-07-18 17:57:18 +10:00
style.css [laneA] M2: PiP + cameras/lights toolbar, eventized clip drops, onChange-on-add 2026-07-18 20:14:52 +10:00
timeline_test.mjs [laneB] M2: SYNC1 row/bar fixes, clipdrop, crossfade, params/cut lanes, box-select 2026-07-18 20:10:07 +10:00
timeline.js [sync2+3] entity mirror seam, SYNC 2 demo + 1080p mp4 verified, M4/polish unlocked 2026-07-18 20:34:32 +10:00
tlui.js [laneB] M2: SYNC1 row/bar fixes, clipdrop, crossfade, params/cut lanes, box-select 2026-07-18 20:10:07 +10:00