- PiP: sized in _resize (~24% w, 16:9, bottom-right) — CSS aspect-ratio is
unreliable on <canvas> and had ballooned it. Click-to-swap main<->active cam;
_render(cam,canvas) restores aspect after a pip blit so swap never distorts.
renderActiveCamera/pause/resume contract unchanged (M3 finalRender safe).
- room3d: SpecGlossPlugin on GLTFLoader — CC/Reallusion GLBs use
KHR_materials_pbrSpecularGlossiness (dropped in three r160) and rendered
flat white; map spec-gloss -> MeshStandard. lady.glb now withMap=26/26.
Verified live at :8020, zero console errors.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- dock: /assets/tree {name,path,formats,thumb}; +camera/+key/+ambient toolbar;
clip apply dispatches scenegod:clipdrop when timeline present (else preview);
drag-from-dock places onto the viewport (screenToFloor / entityAt)
- stage: PiP overlay from active camera; renderActiveCamera hardened as M3 target
+ pause()/resume(); backdrop rebuild-on-param; fire onChange on add+remove
(fixes tlui empty-names + a gizmo mouseUp id-vs-entity bug); set-active-camera
- verified in the integrated app (:8020, Lane B timeline mounted), zero console
errors. Found + logged the entity-mirror integration gap (timeline model isn't
seeded from live stage adds) for the orchestrator.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>