You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(viewer): wall-clock scene-ready cap + skip unreachable dirty nodes (#484)
Two readiness fixes surfaced by the first successful headless bake of a
heavy scene (which exported with 33 items missing):
- The 180-FRAME give-up cap silently assumed display-rate frames. The
bake page's timer-driven loop (?disable=draw) runs those frames in
~3.6s — shorter than a cold item-model download — so the cap fired
and the export raced ahead of real content. New `sceneReadyMaxWaitMs`
Viewer prop replaces the frame cap with a wall-clock one on hosts
whose frame cadence is decoupled from time; default frame behavior
unchanged for interactive surfaces.
- hasPendingSceneBuildWork now skips UNREACHABLE dirty nodes: orphans
whose parent doesn't list them in `children` (or parentless non-roots)
never render — every renderer enumerates the parent's children array —
so no system ever builds them or clears their mark. Observed in prod
scene data (two dangling windows parented to a level that doesn't list
them): they held every bake of that scene to the full readiness cap.
Validated: the 200+-item office scene with ?disable=draw settles
organically in ~2s and exports the complete artifact; a one-shot 504'd
item is now WAITED for through its retry instead of racing the cap.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
0 commit comments