sim2sim-onepass 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sim2sim_onepass-0.1.0/LICENSE +118 -0
- sim2sim_onepass-0.1.0/MANIFEST.in +18 -0
- sim2sim_onepass-0.1.0/MANIFEST.md +40 -0
- sim2sim_onepass-0.1.0/PKG-INFO +156 -0
- sim2sim_onepass-0.1.0/PYPI_PACKAGE_NOTES.md +108 -0
- sim2sim_onepass-0.1.0/QUICKSTART.md +137 -0
- sim2sim_onepass-0.1.0/README.md +125 -0
- sim2sim_onepass-0.1.0/REPO_MAP.md +44 -0
- sim2sim_onepass-0.1.0/RESULTS_SUMMARY.md +62 -0
- sim2sim_onepass-0.1.0/VISUAL_INDEX.md +57 -0
- sim2sim_onepass-0.1.0/pyproject.toml +61 -0
- sim2sim_onepass-0.1.0/setup.cfg +4 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/__init__.py +3 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/cli.py +203 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/paths.py +44 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/resources/QUICKSTART.md +30 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/resources/README.md +19 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/resources/REPO_MAP.md +8 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/resources/RESULTS_SUMMARY.md +9 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/resources/VISUAL_INDEX.md +10 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/resources/__init__.py +1 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/utils/__init__.py +1 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/utils/docs.py +31 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/version.py +1 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/wrappers/__init__.py +1 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/wrappers/availability.py +51 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/wrappers/quick_sanity.py +162 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/wrappers/rollout.py +168 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass/wrappers/state_project.py +52 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass.egg-info/PKG-INFO +156 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass.egg-info/SOURCES.txt +33 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass.egg-info/dependency_links.txt +1 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass.egg-info/entry_points.txt +2 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass.egg-info/requires.txt +11 -0
- sim2sim_onepass-0.1.0/src/sim2sim_onepass.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction, and
|
|
10
|
+
distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by the copyright
|
|
13
|
+
owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all other entities
|
|
16
|
+
that control, are controlled by, or are under common control with that entity.
|
|
17
|
+
"Control" means (i) the power, direct or indirect, to cause the direction or
|
|
18
|
+
management of such entity, whether by contract or otherwise, or (ii) ownership
|
|
19
|
+
of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial
|
|
20
|
+
ownership of such entity.
|
|
21
|
+
|
|
22
|
+
"You" (or "Your") shall mean an individual or Legal Entity exercising
|
|
23
|
+
permissions granted by this License.
|
|
24
|
+
|
|
25
|
+
"Source" form shall mean the preferred form for making modifications, including
|
|
26
|
+
but not limited to software source code, documentation source, and configuration
|
|
27
|
+
files.
|
|
28
|
+
|
|
29
|
+
"Object" form shall mean any form resulting from mechanical transformation or
|
|
30
|
+
translation of a Source form, including but not limited to compiled object code,
|
|
31
|
+
generated documentation, and conversions to other media types.
|
|
32
|
+
|
|
33
|
+
"Work" shall mean the work of authorship, whether in Source or Object form, made
|
|
34
|
+
available under the License, as indicated by a copyright notice that is included
|
|
35
|
+
in or attached to the work.
|
|
36
|
+
|
|
37
|
+
"Derivative Works" shall mean any work, whether in Source or Object form, that
|
|
38
|
+
is based on (or derived from) the Work and for which the editorial revisions,
|
|
39
|
+
annotations, elaborations, or other modifications represent, as a whole, an
|
|
40
|
+
original work of authorship. For the purposes of this License, Derivative Works
|
|
41
|
+
shall not include works that remain separable from, or merely link (or bind by
|
|
42
|
+
name) to the interfaces of, the Work and Derivative Works thereof.
|
|
43
|
+
|
|
44
|
+
"Contribution" shall mean any work of authorship, including the original version
|
|
45
|
+
of the Work and any modifications or additions to that Work or Derivative Works
|
|
46
|
+
thereof, that is intentionally submitted to Licensor for inclusion in the Work
|
|
47
|
+
by the copyright owner or by an individual or Legal Entity authorized to submit
|
|
48
|
+
on behalf of the copyright owner.
|
|
49
|
+
|
|
50
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
|
|
51
|
+
of whom a Contribution has been received by Licensor and subsequently
|
|
52
|
+
incorporated within the Work.
|
|
53
|
+
|
|
54
|
+
2. Grant of Copyright License. Subject to the terms and conditions of this
|
|
55
|
+
License, each Contributor hereby grants to You a perpetual, worldwide,
|
|
56
|
+
non-exclusive, no-charge, royalty-free, irrevocable copyright license to
|
|
57
|
+
reproduce, prepare Derivative Works of, publicly display, publicly perform,
|
|
58
|
+
sublicense, and distribute the Work and such Derivative Works in Source or
|
|
59
|
+
Object form.
|
|
60
|
+
|
|
61
|
+
3. Grant of Patent License. Subject to the terms and conditions of this License,
|
|
62
|
+
each Contributor hereby grants to You a perpetual, worldwide, non-exclusive,
|
|
63
|
+
no-charge, royalty-free, irrevocable (except as stated in this section) patent
|
|
64
|
+
license to make, have made, use, offer to sell, sell, import, and otherwise
|
|
65
|
+
transfer the Work.
|
|
66
|
+
|
|
67
|
+
4. Redistribution. You may reproduce and distribute copies of the Work or
|
|
68
|
+
Derivative Works thereof in any medium, with or without modifications, and in
|
|
69
|
+
Source or Object form, provided that You meet the following conditions:
|
|
70
|
+
|
|
71
|
+
(a) You must give any other recipients of the Work or Derivative Works a copy of
|
|
72
|
+
this License; and
|
|
73
|
+
|
|
74
|
+
(b) You must cause any modified files to carry prominent notices stating that You
|
|
75
|
+
changed the files; and
|
|
76
|
+
|
|
77
|
+
(c) You must retain, in the Source form of any Derivative Works that You
|
|
78
|
+
distribute, all copyright, patent, trademark, and attribution notices from the
|
|
79
|
+
Source form of the Work, excluding those notices that do not pertain to any part
|
|
80
|
+
of the Derivative Works; and
|
|
81
|
+
|
|
82
|
+
(d) If the Work includes a "NOTICE" text file as part of its distribution, then
|
|
83
|
+
any Derivative Works that You distribute must include a readable copy of the
|
|
84
|
+
attribution notices contained within such NOTICE file, excluding those notices
|
|
85
|
+
that do not pertain to any part of the Derivative Works, in at least one of the
|
|
86
|
+
following places: within a NOTICE text file distributed as part of the
|
|
87
|
+
Derivative Works; within the Source form or documentation, if provided along
|
|
88
|
+
with the Derivative Works; or within a display generated by the Derivative
|
|
89
|
+
Works, if and wherever such third-party notices normally appear.
|
|
90
|
+
|
|
91
|
+
5. Submission of Contributions. Unless You explicitly state otherwise, any
|
|
92
|
+
Contribution intentionally submitted for inclusion in the Work by You to the
|
|
93
|
+
Licensor shall be under the terms and conditions of this License, without any
|
|
94
|
+
additional terms or conditions.
|
|
95
|
+
|
|
96
|
+
6. Trademarks. This License does not grant permission to use the trade names,
|
|
97
|
+
trademarks, service marks, or product names of the Licensor, except as required
|
|
98
|
+
for reasonable and customary use in describing the origin of the Work.
|
|
99
|
+
|
|
100
|
+
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in
|
|
101
|
+
writing, Licensor provides the Work on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
102
|
+
CONDITIONS OF ANY KIND, either express or implied, including, without
|
|
103
|
+
limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT,
|
|
104
|
+
MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible
|
|
105
|
+
for determining the appropriateness of using or redistributing the Work.
|
|
106
|
+
|
|
107
|
+
8. Limitation of Liability. In no event and under no legal theory, whether in
|
|
108
|
+
tort (including negligence), contract, or otherwise, unless required by
|
|
109
|
+
applicable law, shall any Contributor be liable to You for damages, including
|
|
110
|
+
any direct, indirect, special, incidental, or consequential damages of any
|
|
111
|
+
character arising as a result of this License or out of the use or inability to
|
|
112
|
+
use the Work.
|
|
113
|
+
|
|
114
|
+
9. Accepting Warranty or Additional Liability. While redistributing the Work or
|
|
115
|
+
Derivative Works thereof, You may choose to offer, and charge a fee for,
|
|
116
|
+
acceptance of support, warranty, indemnity, or other liability obligations.
|
|
117
|
+
|
|
118
|
+
END OF TERMS AND CONDITIONS
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
include LICENSE
|
|
2
|
+
include README.md
|
|
3
|
+
include QUICKSTART.md
|
|
4
|
+
include REPO_MAP.md
|
|
5
|
+
include RESULTS_SUMMARY.md
|
|
6
|
+
include VISUAL_INDEX.md
|
|
7
|
+
include MANIFEST.md
|
|
8
|
+
include PYPI_PACKAGE_NOTES.md
|
|
9
|
+
recursive-include src/sim2sim_onepass/resources *.md
|
|
10
|
+
|
|
11
|
+
prune outputs
|
|
12
|
+
prune assets
|
|
13
|
+
prune docs
|
|
14
|
+
prune examples
|
|
15
|
+
prune .git
|
|
16
|
+
|
|
17
|
+
global-exclude *.py[cod]
|
|
18
|
+
global-exclude __pycache__
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Manifest
|
|
2
|
+
|
|
3
|
+
This file defines what this curated release intentionally includes and excludes.
|
|
4
|
+
|
|
5
|
+
## Included In The Curated Release
|
|
6
|
+
|
|
7
|
+
- [`README.md`](README.md), [`QUICKSTART.md`](QUICKSTART.md), [`REPO_MAP.md`](REPO_MAP.md), [`VISUAL_INDEX.md`](VISUAL_INDEX.md), [`RESULTS_SUMMARY.md`](RESULTS_SUMMARY.md)
|
|
8
|
+
- [`configs/canonical_sources.json`](configs/canonical_sources.json)
|
|
9
|
+
- [`scripts/package_release_assets.py`](scripts/package_release_assets.py)
|
|
10
|
+
- [`examples/canonical_commands.ps1`](examples/canonical_commands.ps1)
|
|
11
|
+
- [`assets/pipeline.pdf`](assets/pipeline.pdf)
|
|
12
|
+
- [`outputs/canonical_pass/report.md`](outputs/canonical_pass/report.md)
|
|
13
|
+
- [`outputs/canonical_pass/metrics_summary.json`](outputs/canonical_pass/metrics_summary.json)
|
|
14
|
+
- copied canonical plots, previews, and videos under [`outputs/canonical_pass/`](outputs/canonical_pass/)
|
|
15
|
+
- copied source reports:
|
|
16
|
+
- `source_stress_report.md`
|
|
17
|
+
- `source_stress_metrics.json`
|
|
18
|
+
- `source_behavioral_report.md`
|
|
19
|
+
- `source_triptych_report.md`
|
|
20
|
+
|
|
21
|
+
## Intentionally Excluded From The Curated Layer
|
|
22
|
+
|
|
23
|
+
- all raw frame dumps from the original report folders
|
|
24
|
+
- most timestamped `reports/` runs that are intermediate, failed, or redundant
|
|
25
|
+
- training logs and exploratory experiments not needed to understand the public claim
|
|
26
|
+
- full paper build artifacts
|
|
27
|
+
- third-party simulator assets and environment internals copied into the release layer
|
|
28
|
+
- debug-only scripts and one-off diagnostics copied into the release layer
|
|
29
|
+
|
|
30
|
+
## Why These Items Are Canonical
|
|
31
|
+
|
|
32
|
+
- `reports/stress_20260203-173231` is canonical because it is the clearest documented PASS for the quantitative hard-mode claim.
|
|
33
|
+
- `reports/20260210-173200/behavioral_acceptance` is canonical because it is a clean visual PASS with motion, visibility, rollout-improvement, and acrobatics gates all passing.
|
|
34
|
+
- The copied release assets are small, human-readable, and enough to verify the claim without browsing unrelated history.
|
|
35
|
+
|
|
36
|
+
## Why The Rest Stays In The Repo
|
|
37
|
+
|
|
38
|
+
- The original repository still serves as provenance and development history.
|
|
39
|
+
- This release layer does not delete that history; it only controls what a reviewer sees first.
|
|
40
|
+
- Future pruning can happen later, after confirming which historical runs must remain for reproducibility.
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: sim2sim-onepass
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A lightweight companion package for the Sim2Sim-OnePass public research release.
|
|
5
|
+
Author: ANTHONY-OLEVESTER
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/ANTHONY-OLEVESTER/Robotics_sim-to-sim_OnePass
|
|
8
|
+
Project-URL: Repository, https://github.com/ANTHONY-OLEVESTER/Robotics_sim-to-sim_OnePass
|
|
9
|
+
Project-URL: Documentation, https://github.com/ANTHONY-OLEVESTER/Robotics_sim-to-sim_OnePass
|
|
10
|
+
Project-URL: Issues, https://github.com/ANTHONY-OLEVESTER/Robotics_sim-to-sim_OnePass/issues
|
|
11
|
+
Keywords: robotics,simulation,mujoco,pybullet,research
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering
|
|
19
|
+
Requires-Python: >=3.10
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
Requires-Dist: numpy>=1.24
|
|
23
|
+
Provides-Extra: rollout
|
|
24
|
+
Requires-Dist: torch>=2.0; extra == "rollout"
|
|
25
|
+
Provides-Extra: alignment
|
|
26
|
+
Requires-Dist: PyYAML>=6.0; extra == "alignment"
|
|
27
|
+
Provides-Extra: dev
|
|
28
|
+
Requires-Dist: build>=1.2.2; extra == "dev"
|
|
29
|
+
Requires-Dist: twine>=5.1.1; extra == "dev"
|
|
30
|
+
Dynamic: license-file
|
|
31
|
+
|
|
32
|
+
# Sim2Sim-OnePass Public Release
|
|
33
|
+
|
|
34
|
+
This curated layer is the fast path through the repository. It is designed so a new visitor can understand the claim, watch the evidence, inspect the canonical PASS artifacts, and run the shortest validation path without digging through the full development history.
|
|
35
|
+
|
|
36
|
+
## Companion Package
|
|
37
|
+
|
|
38
|
+
This branch adds a PyPI-ready package layer named `sim2sim-onepass`. It is a lightweight companion package for the public research release, not a standalone robotics simulator system. It provides an installable CLI, embedded docs access, results navigation, environment checks, and selected lightweight utilities around the curated repo.
|
|
39
|
+
|
|
40
|
+
Local editable install:
|
|
41
|
+
|
|
42
|
+
```powershell
|
|
43
|
+
python -m pip install -e .
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Published PyPI install:
|
|
47
|
+
|
|
48
|
+
```powershell
|
|
49
|
+
python -m pip install sim2sim-onepass
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
PyPI package page:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
https://pypi.org/project/sim2sim-onepass/
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
CLI entrypoint:
|
|
59
|
+
|
|
60
|
+
```powershell
|
|
61
|
+
sim2sim-onepass --help
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
What the package does provide:
|
|
65
|
+
|
|
66
|
+
- repo navigation and public documentation access
|
|
67
|
+
- embedded lightweight markdown docs
|
|
68
|
+
- environment checking
|
|
69
|
+
- quick sanity checks on paired datasets
|
|
70
|
+
- rollout-check wrapper for model + norm + paired data paths
|
|
71
|
+
- guarded simulator workflow commands with clear errors when the full simulator stack is not present
|
|
72
|
+
|
|
73
|
+
What the package does not provide by default:
|
|
74
|
+
|
|
75
|
+
- full simulator environments
|
|
76
|
+
- full datasets
|
|
77
|
+
- giant reports dumps
|
|
78
|
+
- replay videos and large binary outputs
|
|
79
|
+
- local environments and machine-specific folders
|
|
80
|
+
- the full simulator env trees and internal training workspace
|
|
81
|
+
|
|
82
|
+
## Command Capability Levels
|
|
83
|
+
|
|
84
|
+
| Command | Category | Requirements |
|
|
85
|
+
| --- | --- | --- |
|
|
86
|
+
| `info` | Standalone | package install only |
|
|
87
|
+
| `quickstart` | Standalone | package install only |
|
|
88
|
+
| `repo-map` | Standalone | package install only |
|
|
89
|
+
| `results-summary` | Standalone | package install only |
|
|
90
|
+
| `visual-index` | Standalone | package install only |
|
|
91
|
+
| `docs` | Standalone | package install only |
|
|
92
|
+
| `check-env` | Standalone | package install only |
|
|
93
|
+
| `quick-sanity` | Dataset-dependent | paired datasets, or `--demo` for the tiny built-in fixture |
|
|
94
|
+
| `rollout-check` | Dataset-dependent | paired datasets, model, norm file, and optional extra `sim2sim-onepass[rollout]` |
|
|
95
|
+
| `alignment-gate` | Full repo / simulator dependent | full curated repo layout plus simulator dependencies |
|
|
96
|
+
| `alignment-report` | Full repo / simulator dependent | full curated repo layout plus simulator dependencies and workflow files |
|
|
97
|
+
|
|
98
|
+
## Pick Your Route
|
|
99
|
+
|
|
100
|
+
| If you want to... | Open this |
|
|
101
|
+
| --- | --- |
|
|
102
|
+
| See the project in one screen | [RESULTS_SUMMARY.md](RESULTS_SUMMARY.md) |
|
|
103
|
+
| Watch the visual evidence first | [VISUAL_INDEX.md](VISUAL_INDEX.md) |
|
|
104
|
+
| Run the shortest validation path | [QUICKSTART.md](QUICKSTART.md) |
|
|
105
|
+
| Inspect the packaged PASS bundle | [outputs/canonical_pass/](outputs/canonical_pass/) |
|
|
106
|
+
| Understand how the repo is organized | [REPO_MAP.md](REPO_MAP.md) |
|
|
107
|
+
|
|
108
|
+
## See It Before You Read It
|
|
109
|
+
|
|
110
|
+
| Triptych preview | Rollout figure |
|
|
111
|
+
| --- | --- |
|
|
112
|
+
| [](outputs/canonical_pass/preview/triptych_frame0.png) | [](outputs/canonical_pass/plots/rollout_phys_p95.png) |
|
|
113
|
+
|
|
114
|
+
Open the full visual package here:
|
|
115
|
+
|
|
116
|
+
- [VISUAL_INDEX.md](VISUAL_INDEX.md)
|
|
117
|
+
- [outputs/canonical_pass/videos/compare_triptych.mp4](outputs/canonical_pass/videos/compare_triptych.mp4)
|
|
118
|
+
- [outputs/canonical_pass/report.md](outputs/canonical_pass/report.md)
|
|
119
|
+
|
|
120
|
+
## The Claim In Plain Terms
|
|
121
|
+
|
|
122
|
+
After enforcing deterministic cross-simulator alignment between PyBullet and MuJoCo, this repo learns a residual next-state correction that:
|
|
123
|
+
|
|
124
|
+
- reduces Bullet-to-MuJoCo one-step physical error,
|
|
125
|
+
- remains stable under long-horizon rollout checks,
|
|
126
|
+
- passes holdout and alignment gates,
|
|
127
|
+
- and can be inspected visually through replay videos, triptychs, and overlay plots.
|
|
128
|
+
|
|
129
|
+
## Canonical Story
|
|
130
|
+
|
|
131
|
+
1. Deterministic paired plans are executed in PyBullet and MuJoCo.
|
|
132
|
+
2. A strict alignment gate blocks training if reset state, timing, or first-step consistency drift.
|
|
133
|
+
3. A residual model predicts the MuJoCo-minus-Bullet next-state gap.
|
|
134
|
+
4. Hard-mode stress evaluation verifies one-step accuracy, holdouts, and rollout stability.
|
|
135
|
+
5. Behavioral acceptance exports replay videos, triptychs, and overlay plots for inspection.
|
|
136
|
+
|
|
137
|
+
## Canonical Evidence
|
|
138
|
+
|
|
139
|
+
- Quantitative anchor: packaged in `outputs/canonical_pass/source_stress_report.md` and `outputs/canonical_pass/source_stress_metrics.json`
|
|
140
|
+
- Visual anchor: packaged in `outputs/canonical_pass/source_behavioral_report.md` and the copied videos and preview images
|
|
141
|
+
- Public-facing copied bundle: [outputs/canonical_pass/](outputs/canonical_pass/)
|
|
142
|
+
- Provenance map: [configs/canonical_sources.json](configs/canonical_sources.json)
|
|
143
|
+
|
|
144
|
+
## Exact Quickstart
|
|
145
|
+
|
|
146
|
+
This public repo is optimized for inspection first. Open [QUICKSTART.md](QUICKSTART.md) for the shortest path through the packaged evidence and for command references preserved from the source workspace.
|
|
147
|
+
|
|
148
|
+
## What Lives Where
|
|
149
|
+
|
|
150
|
+
- [outputs/canonical_pass/](outputs/canonical_pass/) contains the reviewer-facing proof artifacts.
|
|
151
|
+
- [examples/canonical_commands.ps1](examples/canonical_commands.ps1) contains exact rerun commands.
|
|
152
|
+
- [docs/CANONICAL_SOURCES.md](docs/CANONICAL_SOURCES.md) records provenance.
|
|
153
|
+
- [docs/PUBLISHING.md](docs/PUBLISHING.md) defines what to ship in a public release.
|
|
154
|
+
- The interactive website is published from the `gh-pages` branch.
|
|
155
|
+
- Package implementation lives under `src/sim2sim_onepass/`.
|
|
156
|
+
- License is [Apache-2.0](LICENSE).
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# PyPI Package Notes
|
|
2
|
+
|
|
3
|
+
This branch adds a curated Python companion package for the public Sim2Sim-OnePass repo.
|
|
4
|
+
|
|
5
|
+
## Package Name
|
|
6
|
+
|
|
7
|
+
- distribution: `sim2sim-onepass`
|
|
8
|
+
- import: `sim2sim_onepass`
|
|
9
|
+
- CLI: `sim2sim-onepass`
|
|
10
|
+
- package page: `https://pypi.org/project/sim2sim-onepass/`
|
|
11
|
+
|
|
12
|
+
## Design Decisions
|
|
13
|
+
|
|
14
|
+
- The package uses a modern `src/` layout.
|
|
15
|
+
- The CLI is the main public interface.
|
|
16
|
+
- Lightweight, package-worthy logic is implemented directly in `src/sim2sim_onepass/`.
|
|
17
|
+
- Simulator-heavy workflows are exposed as guarded wrappers instead of pretending the full simulator workspace ships in PyPI.
|
|
18
|
+
- The public docs and outputs remain repo-first; the package is an adapter layer, not a replacement repo layout.
|
|
19
|
+
- The package is intentionally a lightweight companion package, not a standalone robotics simulator framework.
|
|
20
|
+
|
|
21
|
+
## Command Categories
|
|
22
|
+
|
|
23
|
+
### Standalone
|
|
24
|
+
|
|
25
|
+
- `info`
|
|
26
|
+
- `quickstart`
|
|
27
|
+
- `repo-map`
|
|
28
|
+
- `results-summary`
|
|
29
|
+
- `visual-index`
|
|
30
|
+
- `docs`
|
|
31
|
+
- `check-env`
|
|
32
|
+
|
|
33
|
+
These should work immediately after install.
|
|
34
|
+
|
|
35
|
+
### Dataset-dependent
|
|
36
|
+
|
|
37
|
+
- `quick-sanity`
|
|
38
|
+
- `rollout-check`
|
|
39
|
+
|
|
40
|
+
These require user-provided paired data, except that `quick-sanity --demo` uses the tiny built-in synthetic fixture.
|
|
41
|
+
|
|
42
|
+
### Full repo / simulator dependent
|
|
43
|
+
|
|
44
|
+
- `alignment-gate`
|
|
45
|
+
- `alignment-report`
|
|
46
|
+
|
|
47
|
+
These are intentionally guarded. They require the full curated repo layout plus simulator dependencies and workflow files.
|
|
48
|
+
|
|
49
|
+
## Included In Packaging
|
|
50
|
+
|
|
51
|
+
- package source under `src/sim2sim_onepass/`
|
|
52
|
+
- CLI entrypoint
|
|
53
|
+
- lightweight doc fallbacks in `src/sim2sim_onepass/resources/`
|
|
54
|
+
- tiny built-in quick-sanity demo support
|
|
55
|
+
- top-level markdown docs useful for source distributions
|
|
56
|
+
|
|
57
|
+
## Intentionally Excluded
|
|
58
|
+
|
|
59
|
+
- `data_pybullet/`
|
|
60
|
+
- `data_mujoco/`
|
|
61
|
+
- giant videos and report dumps under `outputs/`
|
|
62
|
+
- website assets and frontend code from `gh-pages`
|
|
63
|
+
- local env folders such as `.venv`, `.bridge`, `.bridge312`, `.pybullet`, `.mojoco`
|
|
64
|
+
- full simulator env trees and raw internal workspace structure
|
|
65
|
+
- heavyweight ML dependencies from the base install
|
|
66
|
+
|
|
67
|
+
## Curated In From The Larger Workspace
|
|
68
|
+
|
|
69
|
+
- quick sanity dataset inspection logic
|
|
70
|
+
- state projection logic used for rollout safety checks
|
|
71
|
+
- minimal rollout-check model loading and evaluation wrapper
|
|
72
|
+
|
|
73
|
+
These were brought in as packaging-friendly code instead of copying the full original script tree.
|
|
74
|
+
|
|
75
|
+
## Torch Extras
|
|
76
|
+
|
|
77
|
+
- Base install remains lightweight and does not require torch.
|
|
78
|
+
- `rollout-check` uses the optional `rollout` extra.
|
|
79
|
+
- If torch is missing, the user should install:
|
|
80
|
+
`pip install sim2sim-onepass[rollout]`
|
|
81
|
+
|
|
82
|
+
## Local Validation Commands
|
|
83
|
+
|
|
84
|
+
```powershell
|
|
85
|
+
python -m pip install -e .
|
|
86
|
+
sim2sim-onepass --help
|
|
87
|
+
sim2sim-onepass info
|
|
88
|
+
sim2sim-onepass check-env
|
|
89
|
+
python -m pip install -U build twine
|
|
90
|
+
python -m build
|
|
91
|
+
python -m twine check dist/*
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Published Install
|
|
95
|
+
|
|
96
|
+
```powershell
|
|
97
|
+
python -m pip install sim2sim-onepass
|
|
98
|
+
python -m pip install "sim2sim-onepass[rollout]"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Publish Checklist
|
|
102
|
+
|
|
103
|
+
1. Confirm the target branch is `pypi-package`.
|
|
104
|
+
2. Verify package metadata in `pyproject.toml`.
|
|
105
|
+
3. Verify no giant outputs are accidentally included in the source distribution.
|
|
106
|
+
4. Run local build validation.
|
|
107
|
+
5. Confirm Apache-2.0 is the intended published license.
|
|
108
|
+
6. Do not publish until command behavior and package scope are reviewed against the public repo contents.
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Quickstart
|
|
2
|
+
|
|
3
|
+
This page is the shortest path from clone to evidence.
|
|
4
|
+
|
|
5
|
+
## Zero-Compute Path
|
|
6
|
+
|
|
7
|
+
If you only want to inspect the curated release artifacts, open these in order:
|
|
8
|
+
|
|
9
|
+
1. [`README.md`](README.md)
|
|
10
|
+
2. [`VISUAL_INDEX.md`](VISUAL_INDEX.md)
|
|
11
|
+
3. [`outputs/canonical_pass/preview/triptych_frame0.png`](outputs/canonical_pass/preview/triptych_frame0.png)
|
|
12
|
+
4. [`outputs/canonical_pass/videos/compare_triptych.mp4`](outputs/canonical_pass/videos/compare_triptych.mp4)
|
|
13
|
+
5. [`RESULTS_SUMMARY.md`](RESULTS_SUMMARY.md)
|
|
14
|
+
|
|
15
|
+
## Package Install
|
|
16
|
+
|
|
17
|
+
Editable install from the repo:
|
|
18
|
+
|
|
19
|
+
```powershell
|
|
20
|
+
python -m pip install -e .
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Published PyPI install:
|
|
24
|
+
|
|
25
|
+
```powershell
|
|
26
|
+
python -m pip install sim2sim-onepass
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Package page:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
https://pypi.org/project/sim2sim-onepass/
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Optional rollout extra:
|
|
36
|
+
|
|
37
|
+
```powershell
|
|
38
|
+
python -m pip install "sim2sim-onepass[rollout]"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
First commands to run after install:
|
|
42
|
+
|
|
43
|
+
```powershell
|
|
44
|
+
sim2sim-onepass info
|
|
45
|
+
sim2sim-onepass check-env
|
|
46
|
+
sim2sim-onepass quickstart
|
|
47
|
+
sim2sim-onepass results-summary
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Fastest Path
|
|
51
|
+
|
|
52
|
+
This public repository already includes the selected proof artifacts. You can verify the main story without running any code:
|
|
53
|
+
|
|
54
|
+
1. Open [`outputs/canonical_pass/report.md`](outputs/canonical_pass/report.md)
|
|
55
|
+
2. Open [`outputs/canonical_pass/metrics_summary.json`](outputs/canonical_pass/metrics_summary.json)
|
|
56
|
+
3. Watch [`outputs/canonical_pass/videos/compare_triptych.mp4`](outputs/canonical_pass/videos/compare_triptych.mp4)
|
|
57
|
+
4. Inspect [`outputs/canonical_pass/plots/rollout_phys_p95.png`](outputs/canonical_pass/plots/rollout_phys_p95.png)
|
|
58
|
+
|
|
59
|
+
## Environment Setup
|
|
60
|
+
|
|
61
|
+
The command references below come from the original source workspace used to build this artifact. They are preserved here for provenance and rerun guidance, but the full source tree is not part of this trimmed public repo.
|
|
62
|
+
|
|
63
|
+
```powershell
|
|
64
|
+
py -m venv .bridge312
|
|
65
|
+
.\.bridge312\Scripts\Activate.ps1
|
|
66
|
+
python -m pip install -U pip
|
|
67
|
+
pip install -r requirements_bridge312.txt
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Minimal Validation
|
|
71
|
+
|
|
72
|
+
The package exposes lightweight public commands:
|
|
73
|
+
|
|
74
|
+
```powershell
|
|
75
|
+
sim2sim-onepass quick-sanity --demo
|
|
76
|
+
sim2sim-onepass quick-sanity --bullet data_pybullet\paired_bullet_seed0.npz --mujoco data_mujoco\paired_mujoco_seed0.npz
|
|
77
|
+
sim2sim-onepass rollout-check --bullet data_pybullet\paired_bullet_hardgen_seeds0-5.npz --mujoco data_mujoco\paired_mujoco_hardgen_seeds0-5.npz --model reports\delta_train_hardgen_fix_20260203-135301\model.pt --norm reports\delta_train_hardgen_fix_20260203-135301\normalization.json
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Notes:
|
|
81
|
+
|
|
82
|
+
- `quick-sanity --demo` is the tiny built-in package-only demo path.
|
|
83
|
+
- `rollout-check` requires user-provided paired data, model, normalization files, and the optional rollout extra.
|
|
84
|
+
- simulator-heavy commands such as alignment gating are intentionally guarded and require the full curated repo layout plus simulator dependencies.
|
|
85
|
+
|
|
86
|
+
Run the alignment gate first. This is the repo's hard stop before any model claim:
|
|
87
|
+
|
|
88
|
+
```powershell
|
|
89
|
+
.\.bridge312\Scripts\python scripts\alignment_gate.py
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Expected outcome in the source workspace: `PASS`.
|
|
93
|
+
|
|
94
|
+
Run the curated behavioral proof path with the existing demo model:
|
|
95
|
+
|
|
96
|
+
```powershell
|
|
97
|
+
.\.bridge312\Scripts\python scripts\behavioral_acceptance_suite.py --model reports\delta_train_move_ab\model.pt --norm reports\delta_train_move_ab\normalization.json
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
What this should produce in the source workspace:
|
|
101
|
+
|
|
102
|
+
- a timestamped `reports/<timestamp>/behavioral_acceptance/` folder
|
|
103
|
+
- Bullet replay video
|
|
104
|
+
- MuJoCo replay video
|
|
105
|
+
- triptych comparison video
|
|
106
|
+
- overlay plots
|
|
107
|
+
- a `report.md` with PASS/FAIL gates
|
|
108
|
+
|
|
109
|
+
## Main Claim Verification
|
|
110
|
+
|
|
111
|
+
This is the canonical quantitative command used for the public claim, using the existing hard-mode model and datasets:
|
|
112
|
+
|
|
113
|
+
```powershell
|
|
114
|
+
.\.bridge312\Scripts\python scripts\stress_suite.py --bullet data_pybullet\paired_bullet_hardgen_seeds0-5.npz --mujoco data_mujoco\paired_mujoco_hardgen_seeds0-5.npz --model reports\delta_train_hardgen_fix_20260203-135301\model.pt --norm reports\delta_train_hardgen_fix_20260203-135301\normalization.json --horizons 50,200,500 --nstart 200 --seed 0 --hard_mode 1
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Expected canonical source result in the source workspace: `reports/stress_20260203-173231`.
|
|
118
|
+
|
|
119
|
+
## Inspect Outputs
|
|
120
|
+
|
|
121
|
+
Open these packaged copies after running or after browsing the preselected release bundle:
|
|
122
|
+
|
|
123
|
+
- [`outputs/canonical_pass/report.md`](outputs/canonical_pass/report.md)
|
|
124
|
+
- [`outputs/canonical_pass/metrics_summary.json`](outputs/canonical_pass/metrics_summary.json)
|
|
125
|
+
- [`outputs/canonical_pass/plots/`](outputs/canonical_pass/plots/)
|
|
126
|
+
- [`outputs/canonical_pass/preview/`](outputs/canonical_pass/preview/)
|
|
127
|
+
- [`outputs/canonical_pass/videos/`](outputs/canonical_pass/videos/)
|
|
128
|
+
|
|
129
|
+
## Build Prep
|
|
130
|
+
|
|
131
|
+
Local package build commands:
|
|
132
|
+
|
|
133
|
+
```powershell
|
|
134
|
+
python -m pip install -U build twine
|
|
135
|
+
python -m build
|
|
136
|
+
python -m twine check dist/*
|
|
137
|
+
```
|