Go to file
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
.claude [sync1] wire TimelineUI to real Stage, null-mixer guard, M2 unlock + orchestrator updates 2026-07-18 18:36:16 +10:00
lanes [sync4] applyState camera/light hotfix, M4 verified (audio mux + graft), viseme/audio-UI round unlocked 2026-07-18 21:04:09 +10:00
logs [laneC] log: rhubarb endpoint 2026-07-18 21:10:54 +10:00
scenegod [laneB] M4-B model: audio mutators, morphs track eval, importRhubarb 2026-07-18 21:13:35 +10:00
scripts [laneC] /rhubarb viseme endpoint (ffmpeg-style 503 gating) 2026-07-18 21:10:38 +10:00
.gitignore [laneC] M1 server: statics, assets tree/file, scenes CRUD+validation, render stubs, tests 2026-07-18 17:53:52 +10:00
CLAUDE.md plan: SCENEGOD master plan + 3-lane instructions + log scaffolding 2026-07-18 17:44:07 +10:00
PLAN.md [sync4] applyState camera/light hotfix, M4 verified (audio mux + graft), viseme/audio-UI round unlocked 2026-07-18 21:04:09 +10:00
requirements.txt [laneC] M1 server: statics, assets tree/file, scenes CRUD+validation, render stubs, tests 2026-07-18 17:53:52 +10:00