Diagnose out-of-plane motion and document tutorial dimensionality - #35
Merged
Merged
Conversation
This was referenced Sep 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
jitter_z=Falseremoves the newly added Z perturbation during division; inherited tilt, three-dimensional contact normals, soft walls and flow can still produce Z motion. Add a reproducible diagnostic that records initialization and each native stage, both center-Z and direction-Z changes, initial geometry/constraints, model provenance and the first departure with before/after state. Probe instrumentation restores native methods and preserves the random stream.Seven shared-backend fixtures separate planar controls, crossing/coincident contacts, inherited tilt, division, wall relaxation and vertical flow. CPU and Metal crossing rods separate to Z≈±0.4 without division. Default soft-wall relaxation stops within its residual tolerance; tighter solves reduce penetration below 1e-6. A source audit documents every tutorial's dimensionality, and a nine-case CPU/Metal trajectory matrix distinguishes intentional XYZ jitter from bounded planar observations.
No solver defect was demonstrated. This implements the investigation's documented-diagnosis outcome and specifies a separate strict-2D feature covering translation, rotation, contacts, flow and checkpoint state. It does not silently redefine jitter or claim finite-height walls enforce exact planarity. The original older-version trajectory cannot be uniquely attributed without its inputs.
Validation: 180 focused tests passed on CPU and real Apple Metal; two explicit CUDA skips. Ruff, strict Python typing (one pre-existing native-source warning), diagnostic RNG/restoration regression and Markdown links passed. CUDA source was reviewed; NVIDIA execution remains unverified.
Originally reviewed against
marpaia/22so the tutorial audit includes corrected founder initialization. Prerequisites were integrated before retargeting to master.Closes #14.
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.