From anomalies to improvement directions#
Start with a physical question. “Excessive penetration” needs a contact scale, load, geometry, compliance and acceptable error; “failed grasp” needs the full support, slip and release trajectory. A picture or one run cannot separate parameters, integration and solver mechanisms.
A reusable diagnosis sequence#
Establish the physical expectation. Check force/torque balance for static support and
|f| ≤ μₛNfor sticking. Under rigid-body, constant Coulomb friction, persistent-contact and no-rotation assumptions, incline sliding usesa=g(sinθ−μₖcosθ). Impacts additionally declare restitution, external impulses and rotation. Do not assume a unique analytical solution for complex multi-contact systems; empirical references state source, units, conditions and uncertainty.Establish trustworthy observations. Check geometry, mass/inertia, frames, control epochs, effective native parameters, contact capacity and readback addresses. Save source assets, intermediate models and conversion provenance. Missing readbacks remain missing, not defaults or zero.
Run controlled parameter experiments. Freeze scene, objective, scoring and budget; select candidates from prior experience and record hypotheses, expected changes and sources. AI proposes the next trial; execution retains every attempt and independent scoring checks all physical constraints together. Extra iterations, steps and observations contribute to cost.
Locate remaining differences. Use native readbacks, source and ablations to investigate contact generation, friction representation, constraints, stopping, integration and precision. Failed finite searches only establish failure within their tested range.
Three existing cases#
Anomaly and reference |
Verified change |
Remaining question |
|---|---|---|
Excessively stiff response versus the frozen synthetic 20 kN/m target |
MuJoCo calibration improves the fixed-mass response; a predeclared mass conversion improves two validation masses. |
This does not establish arbitrary-geometry or real-material accuracy. Experience and records |
Incorrect PhysX negative-control mass versus model mass/inertia |
Initialize mass/inertia before disabling collision. |
Native TGS state/impulse residuals remain under #163. Case |
Native/framework trajectories diverge under matched physical inputs/time |
Align four GPU fields; reject out-of-bounds CPU contact readbacks as unavailable. |
Support trajectories still diverge; no unique framework cause is established. Case |
Separate verified configuration improvements, localized integration fixes, evidenced algorithm research directions and unresolved questions. This round automates parameter changes and evidenced integration fixes; solver-source changes first require research evidence.
Landing geometry versus native force#

All 572 boundaries, including the final endpoint, play at the original 50 Hz for 11.44 seconds. The display uses saved poses and native model geometry, including four 5 mm contact spheres per foot; it does not integrate physics. Full video 1 · video 2 · video 3 · force curves.
Complete records and models (17.75 MB ZIP) · batch report · archive verification · asset lineage. All 99 manifest entries were verified after extraction, and all three independent geometry audits reproduced exactly. The fixed upstream URDF differs from the pinned official Unitree file; its simulation settings are not verified hardware limits. The archive retains original notices and evaluated reference samples, excluding the checkpoint and original motion NPZ.
The G1 landing audit now qualifies the fixed reference on an RTX 4090: the original support probe and three fresh-process policy repeats pass. Every repeat includes 571 controls, 2284 physics substeps and the five-second final hold. Final two-second drift is 1.21–1.42 mm; independent pre/post geometry reconstruction finds no nonfoot penetration or loaded nonfoot contact.
The new records also expose a timing distinction: among 6,428 substeps with the same shared contact-pair set, 6,427 distances agree more closely with pre-step geometry. Pre-step error stays below 2.38e-7 m, while post-step error reaches 0.0202 m. These are correlated substeps of three same-seed records, not independent reliability trials.
The historical public record remains separate: its 29 joint positions align exactly, but it flags geometric nonfoot contact at frame 119 with no recorded loaded pair. That archive lacks the original model and complete pair stream. The new batch does not reproduce the discrepancy, so it cannot establish its cause. Preserve the author’s failed result and separate passing reevaluation; missing signals are not zero. Seven dependency declarations conflict in the unchanged upstream environment, although the converter and this native path ran successfully; unrelated package paths remain unqualified.
The saved joint-force records touch a declared CPU-model limit in 74 samples per repeat, with none outside. The GPU clamp branch, solver convergence residual/status and whole-system COM momentum remain unavailable; neither limit equality nor task success establishes them.
AI-controlled trial entry point#
The first integrated path is native MuJoCo/SuperDex normal-load development. It reuses contact_indent_run, independent --verify and MigrationBudget, with no new model service or scheduler. Native PhysX inclines, framework comparisons and pinch continue through their own frozen protocols and runners; this path does not qualify their parameters.
benchmarks/contact-trials-example-v1.json reuses historical initial/fitted profiles to demonstrate recording. It is a known-outcome development example, not a new algorithm discovery or unseen holdout. Its manifest explicitly freezes the runtime version profile and full scene, every candidate parameter, hypothesis, expected effect, physical reference, evidence SHA-256, original checks and work package. AI fills these fields before execution and uses results to propose a successor; changed sources/candidates require a new manifest inheriting the prior ledger.
In a qualified environment at the repository root, set OUT, DATA_DIR and IO_DEVICE to your own new output directory, data directory and block device:
python -m dexlab.contact_trials init benchmarks/contact-trials-example-v1.json "$OUT"
python scripts/bounded_run.py --profile adaptive --cpu-cores 4 \
--resource-plan "$OUT/resource-plan.json" --data-dir "$DATA_DIR" \
--io-device "$IO_DEVICE" --timeout 900 --receipt "$OUT/resources-initial.json" -- \
python scripts/research_guard.py run --lock "$DATA_DIR/research.lock" \
--kind qualification --receipt "$OUT/window-initial.json" -- \
python -m dexlab.contact_trials run "$OUT" initial-mujoco --timeout 840
python -m dexlab.contact_trials status "$OUT"
Use new resource/window receipts for each candidate, retaining the frozen resource plan within a batch. Execute validation-mujoco-reference against the same ledger. Exit 1 can mean a physical failure: inspect attempts/*/result.json instead of treating it as an infrastructure fault and retrying indefinitely.
Results retain proposed/resolved/effective parameters and differences, complete logs, independent scores, native stepping/observation costs, hashes and terminal outcome. Timeouts retain attempts. After a hard kill, establish that recorded processes have ended, then run python -m dexlab.contact_trials recover "$OUT". Recovery charges the full reserved duration and never resets the budget. Recorded physical failures cannot retry; infrastructure failure permits at most one reasoned recovery within the original budget. Existing prior_budget inheritance and evidenced work-package rules remain unchanged.
Development is not holdout validation. Freeze independent transfer conditions, equal tuning budgets, negatives and acceptance before any new comparison. Previously inspected mass/size records cannot become unseen validation after tuning against them.
Advance concrete evidence gaps#
Reuse old PhysX traces first for offline FP32 diagnostics. #163 owns precision attribution and new-protocol holdouts; #152 owns remaining state/contact-path differences; #145 owns inertia/frame semantics. Existing fixed-model experiments do not depend on inertia-randomization qualification.
The six-engine matrix, 594-episode pinch study and later tasks remain. Preserve resource limits and one executor; scheduled development stays paused. Add a work package only with new evidence and a concrete hypothesis; one incomplete engine does not block independent research.
The executed integration check retains two runtime-version admission failures. After freezing the explicit profile and inheriting the ledger, two 1600-step MuJoCo 3.15.0 cases complete: the initial profile fails physically and the historical fitted profile passes. Effective parameters and independent scores are retained. This validates the workflow with known candidates, not new holdouts. Results, costs and archive. Recovery also verifies termination of the bounded cgroup, covering interruption before a child PID can be published.
Native LIBERO workflow case#
Diagnose contacts and observations in the complete native task: observation refresh has source/readback evidence, while the smaller-step candidate fails transfer screening. Action execution, physics diagnostics and policy-validation limits remain separate.