SCENEGOD/scenegod/web
type-two ba29d0c6d6 [laneB] M4-B model: audio mutators, morphs track eval, importRhubarb
- timeline.js: morphs track kind evaluated via stage.setMorph (lerp per viseme
  name), audio mutators addAudio/moveAudio/setAudioGain/removeAudio (undo-able),
  importRhubarb(id, json, t0) mapping mouthCues → morph keys (per-cue ramp),
  load() ensures scene.audio[], addKey keyed by (t,name) for morphs too.
- stagestub.js: setMorph (records) + visemeTargets seam.
- timeline_test.mjs: morph lerp, rhubarb keys, audio mutators + undo round-trip.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 21:13:35 +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] M4: audio mux, graft_limb.py, MODELBEAST proxy 2026-07-18 20:47:31 +10:00
room3d.js [laneA] M3-polish: PiP cap+swap, spec-gloss GLB fix (lady renders textured) 2026-07-18 20:49:22 +10:00
stage.js [sync4] applyState camera/light hotfix, M4 verified (audio mux + graft), viseme/audio-UI round unlocked 2026-07-18 21:04:09 +10:00
stagestub.js [laneB] M4-B model: audio mutators, morphs track eval, importRhubarb 2026-07-18 21:13:35 +10:00
style.css [laneA] M3-polish: PiP cap+swap, spec-gloss GLB fix (lady renders textured) 2026-07-18 20:49:22 +10:00
timeline_test.mjs [laneB] M4-B model: audio mutators, morphs track eval, importRhubarb 2026-07-18 21:13:35 +10:00
timeline.js [laneB] M4-B model: audio mutators, morphs track eval, importRhubarb 2026-07-18 21:13:35 +10:00
tlui.js [laneB] M2 session 3: absorb _mirror + tests, setDuration, snap-step, param capture 2026-07-18 20:41:39 +10:00