Skip to content

Export checkpoint recordings and replay verified frames offline - #33

Merged
marpaia merged 4 commits into
masterfrom
marpaia/16
Sep 25, 2026
Merged

marpaia merged 4 commits into
masterfrom
marpaia/16

Conversation

@marpaia

@marpaia marpaia commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

Periodic checkpoints can now be exported in explicit order with microsimulator export-replay, then opened as a recording folder in the standalone viewer. Timeline seeking, backward/forward stepping, play/pause and frame-rate controls display exact snapshots and physical timestamps while preserving camera, reference-grid and channel preferences.

The versioned manifest records per-frame byte lengths/digests, source-checkpoint digests and source backend separately from CPU export provenance. Export never runs model code. The reader validates safe local references and scene integrity on demand; a bounded LRU cache and a single decode worker prevent history growth and stale seek results. Missing or damaged frames identify their ordinal/path and retain the last valid view. Cache limits cover cached decoded frames, not total browser heap or the active renderer.

Validation: 344 Python tests passed (56 environment-dependent skips); 66 viewer tests; typing/lint/build checks. Chromium exercised exported growth/division/removal, stable-ID selection, reverse stepping, playback/end handling, rapid-seek races, signal-grid changes, labels, camera/grid preferences, malformed-frame recovery, keyboard controls and the supported 880px layout. Combined fixed-scale/composite/device acceptance passed in Chromium. CUDA provenance tests are data-only and do not claim CUDA execution.

Originally reviewed against frozen marpaia/base-16, combining #20 and #18. Prerequisites were integrated before retargeting to master.

Closes #16.

A follow-up fixes Play while a seek is pending or has failed: it preserves the requested position and retries failed frames instead of advancing from the last displayed frame. Six regressions failed before the correction and pass afterward; the isolated viewer suite now has 72 passing tests, and the combined Chromium replay check exercises the pending-seek interaction.

Independent review is complete against the original acceptance criteria and intended review base. The review report records per-criterion evidence, both corrected campaign findings, exact tested heads, landing order and platform limits.

Merged into master in the approved campaign order: #26, #27, #28, #31, #34, #36, #29, #30, #33, #35, #37, #32. The final tree preserves the reviewed implementation and integration regressions. Prerequisites were integrated with merge commits, and the frozen review bases were retained.

Landing validation: 534 Python tests passed (57 environment-dependent skips), 115 viewer tests passed, Ruff lint, strict type checks, viewer build/format checks, and actual Chromium feature/integration checks passed. Pyright retains the existing native-extension source warning. A Windows-only documentation link-test encoding failure was reproduced and fixed with an explicit UTF-8 read; the corrected final PR heads passed Windows CLI/shutdown checks and CUDA compilation. NVIDIA runtime execution remains unverified.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add offline replay of recorded simulations with timeline controls

1 participant