type-two
|
be65355f6b
|
[laneC] M4: audio mux, graft_limb.py, MODELBEAST proxy
- render/end muxes scene audio[] (adelay+volume+amix, aac, -shortest);
audio paths path-guarded; render.js finalRender passes scene audio
- scripts/graft_limb.py: headless Blender limb graft (align root->target bone,
join armatures, parent-keep-offset, join meshes; refusal exit 2 on mitten
overlap; drops phantom importer icosphere; no finish/decimate). --selftest
builds synthetic fixtures + verifies both paths under Blender
- /mb/submit MODELBEAST proxy (SCENEGOD_MB=1 gated, token from ~/Documents/
backnforth/.env at request time never logged, /api/assets->/api/jobs)
- test_server.py: +audio-stream, +MB gating & two-step contract (mock MB);
8 groups green
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-18 20:47:31 +10:00 |
|
type-two
|
b627a0f2ff
|
[laneC] M2/M3: render pipeline (ffmpeg encode + render.js), thumbnails endpoint, reaper
- /render/begin|frame|end|status|out with background ffmpeg thread + on-disk
status fallback; boot-time reap of dirs >48h
- /assets/thumb sidecar lookup (pass-through, no resize dep)
- web/render.js: draftRecord (MediaRecorder) + finalRender (deterministic
timeline.step -> PNG -> POST, <=4 in flight) + download helper
- test_server.py: +render pipeline (ffmpeg synthetic frames -> mp4, ffprobe
~1s) +thumbnail; 6 groups green
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-18 20:00:14 +10:00 |
|