simulo 0.28.0__tar.gz → 0.28.2__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.
- simulo-0.28.2/PKG-INFO +147 -0
- simulo-0.28.2/PYPI.md +91 -0
- {simulo-0.28.0 → simulo-0.28.2}/pyproject.toml +41 -4
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/cli.py +8 -6
- simulo-0.28.2/src/simulo.egg-info/PKG-INFO +147 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo.egg-info/requires.txt +1 -1
- simulo-0.28.0/PKG-INFO +0 -143
- simulo-0.28.0/PYPI.md +0 -103
- simulo-0.28.0/src/simulo.egg-info/PKG-INFO +0 -143
- {simulo-0.28.0 → simulo-0.28.2}/MANIFEST.in +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/setup.cfg +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/__init__.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/__init__.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/_entrypoint.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/_mounts.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/_runner.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/_secure_downloads.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/app.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/asset.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/asset_api.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/asset_package.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/asset_pins.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/builtin_aliases.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/bundle.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/cancel_api.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/config.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/credentials.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/discovery.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/export_api.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/export_bundle.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/facades.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/http.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/identity_api.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/install_samples.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/jobs_api.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/learning.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/login.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/mode.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/outputs.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/packaging.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/preflight_api.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/preflight_render.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/registry.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/runtime.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/runtime_display.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/seed_ref.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/stub.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/submit_api.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/templates/__init__.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/templates/inference/app.py.tmpl +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/templates/inference/simuloignore.tmpl +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/templates/scenario/app.py.tmpl +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/templates/scenario/simuloignore.tmpl +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/templates/training/app.py.tmpl +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/templates/training/simuloignore.tmpl +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/view_fragment.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/view_session_api.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/_client/volume.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/callbacks.py +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo/py.typed +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo.egg-info/SOURCES.txt +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo.egg-info/dependency_links.txt +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo.egg-info/entry_points.txt +0 -0
- {simulo-0.28.0 → simulo-0.28.2}/src/simulo.egg-info/top_level.txt +0 -0
simulo-0.28.2/PKG-INFO
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: simulo
|
|
3
|
+
Version: 0.28.2
|
|
4
|
+
Summary: Python SDK and CLI for cloud-native robotics simulation, reinforcement learning, and robot policy training on managed GPUs.
|
|
5
|
+
Author-email: Simulo Team <team@simulo.ai>
|
|
6
|
+
License: BSD-3-Clause
|
|
7
|
+
Project-URL: Homepage, https://simulo.ai
|
|
8
|
+
Project-URL: Documentation, https://docs.simulo.ai
|
|
9
|
+
Project-URL: Quickstart, https://docs.simulo.ai/getting-started/quickstart/
|
|
10
|
+
Project-URL: Examples, https://github.com/simulo-org/simulo-samples
|
|
11
|
+
Project-URL: Console, https://console.simulo.ai
|
|
12
|
+
Keywords: simulo,robotics,robotics simulation,robot training,robot learning,reinforcement learning,cloud robotics,cloud simulation,GPU simulation,policy training,physical AI,embodied AI,NVIDIA Isaac Sim,Isaac Lab,OpenUSD,USD,URDF,ONNX,MCAP,Python SDK
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Intended Audience :: Education
|
|
17
|
+
Classifier: Intended Audience :: Science/Research
|
|
18
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
19
|
+
Classifier: Operating System :: OS Independent
|
|
20
|
+
Classifier: Programming Language :: Python
|
|
21
|
+
Classifier: Programming Language :: Python :: 3
|
|
22
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
25
|
+
Classifier: Topic :: Scientific/Engineering
|
|
26
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
27
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
28
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
29
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
30
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
31
|
+
Classifier: Typing :: Typed
|
|
32
|
+
Requires-Python: >=3.11
|
|
33
|
+
Description-Content-Type: text/markdown
|
|
34
|
+
Requires-Dist: simulo-interfaces<0.21,>=0.20.2
|
|
35
|
+
Requires-Dist: mcap<2,>=1.3
|
|
36
|
+
Requires-Dist: defusedxml>=0.7.1
|
|
37
|
+
Requires-Dist: usd-core<27,>=26.5
|
|
38
|
+
Provides-Extra: assets
|
|
39
|
+
Requires-Dist: usd-core<27,>=26.5; extra == "assets"
|
|
40
|
+
Provides-Extra: dev
|
|
41
|
+
Requires-Dist: black==26.5.1; extra == "dev"
|
|
42
|
+
Requires-Dist: isort==8.0.1; extra == "dev"
|
|
43
|
+
Requires-Dist: ruff==0.15.21; extra == "dev"
|
|
44
|
+
Requires-Dist: mypy==2.3.0; extra == "dev"
|
|
45
|
+
Requires-Dist: types-defusedxml==0.7.0.20260504; extra == "dev"
|
|
46
|
+
Requires-Dist: pytest>=8.2; extra == "dev"
|
|
47
|
+
Requires-Dist: pytest-timeout==2.4.0; extra == "dev"
|
|
48
|
+
Requires-Dist: build>=1.2; extra == "dev"
|
|
49
|
+
Requires-Dist: twine>=5.1; extra == "dev"
|
|
50
|
+
Requires-Dist: setuptools>=68; extra == "dev"
|
|
51
|
+
Requires-Dist: wheel; extra == "dev"
|
|
52
|
+
Provides-Extra: release
|
|
53
|
+
Requires-Dist: commitizen>=3.27; extra == "release"
|
|
54
|
+
Requires-Dist: build>=1.2; extra == "release"
|
|
55
|
+
Requires-Dist: twine>=5.1; extra == "release"
|
|
56
|
+
|
|
57
|
+
# Simulo for Cloud Robotics Simulation and Training
|
|
58
|
+
|
|
59
|
+
**Train robot policies in simulation on managed cloud GPUs.**
|
|
60
|
+
|
|
61
|
+
Simulo is a cloud-native AI platform for robotics simulation and training. Its
|
|
62
|
+
lightweight `simulo` Python SDK and CLI let you define robot-learning applications
|
|
63
|
+
locally, submit them to the Simulo cloud, and inspect the results. The platform
|
|
64
|
+
handles managed GPU execution, reproducible packaging, versioned assets,
|
|
65
|
+
checkpoints, trained models, recordings, and live 3D viewing.
|
|
66
|
+
|
|
67
|
+
The package installed on your computer is torch-free and requires no local GPU or
|
|
68
|
+
simulator. The managed runtime executes reinforcement-learning training, policy
|
|
69
|
+
evaluation and inference, and scripted robotics simulations on managed GPUs in
|
|
70
|
+
the cloud.
|
|
71
|
+
|
|
72
|
+
## What you can do
|
|
73
|
+
|
|
74
|
+
- Write robotics applications in ordinary Python against a small, stable API.
|
|
75
|
+
- Build vectorized reinforcement-learning environments and train robot policies with PPO.
|
|
76
|
+
- Start with validated catalog robots or publish your own OpenUSD (USD) and URDF assets.
|
|
77
|
+
- Continue training from the best or latest checkpoint produced by an earlier job.
|
|
78
|
+
- Evaluate policies, run inference, and export trained policies as verified ONNX bundles.
|
|
79
|
+
- Stream logs, retrieve results and outputs, capture MCAP rollout recordings, and watch a live 3D view.
|
|
80
|
+
|
|
81
|
+
## Install
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
python -m pip install simulo
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Simulo requires Python 3.11 or newer. One installation provides both the
|
|
88
|
+
`import simulo` Python API and the `simulo` command-line interface.
|
|
89
|
+
|
|
90
|
+
## Train a first policy
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
simulo create mybot
|
|
94
|
+
simulo login
|
|
95
|
+
cd mybot
|
|
96
|
+
simulo run app.py --frozen --strict-assets
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
`simulo create` writes a complete starter application to your machine without
|
|
100
|
+
requiring a login or network connection. The default application trains a PPO
|
|
101
|
+
policy on a validated cartpole asset. `simulo run` packages the source, resolves
|
|
102
|
+
and pins its assets, submits the job, and follows its cloud logs.
|
|
103
|
+
|
|
104
|
+
## Explore robotics samples
|
|
105
|
+
|
|
106
|
+
The public [Simulo samples repository](https://github.com/simulo-org/simulo-samples)
|
|
107
|
+
contains projects for cartpole, humanoid locomotion, JetBot navigation, Franka
|
|
108
|
+
arm control, a bring-your-own URDF arm, and F1TENTH-compatible drift training.
|
|
109
|
+
See the repository README for setup and usage.
|
|
110
|
+
|
|
111
|
+
## Monitor jobs and retrieve artifacts
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
simulo jobs # list submitted jobs and status
|
|
115
|
+
simulo logs --follow # stream the latest job's logs
|
|
116
|
+
simulo result # read the job's result
|
|
117
|
+
simulo models # list or download trained models
|
|
118
|
+
simulo export # export the best policy as verified ONNX
|
|
119
|
+
simulo recordings # download MCAP rollout recordings
|
|
120
|
+
simulo outputs # retrieve other saved outputs
|
|
121
|
+
simulo view # view a running --viewstream job in 3D
|
|
122
|
+
simulo cancel # stop a queued or running job
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Commands that accept a job ID default to the latest job and tell you which job
|
|
126
|
+
they selected.
|
|
127
|
+
|
|
128
|
+
## Use versioned robot assets
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
simulo asset list --global
|
|
132
|
+
simulo asset inspect simulo/robot/cartpole:v1
|
|
133
|
+
simulo asset publish ./my-robot --kind robot
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Simulo catalogs keep robot, world, and prop assets versioned and traceable. You
|
|
137
|
+
can use validated global assets immediately or publish your own USD or URDF
|
|
138
|
+
package for reuse across training, evaluation, and inference jobs.
|
|
139
|
+
|
|
140
|
+
## Learn more
|
|
141
|
+
|
|
142
|
+
- [Quickstart](https://docs.simulo.ai/getting-started/quickstart/)
|
|
143
|
+
- [Documentation](https://docs.simulo.ai/)
|
|
144
|
+
- [Python API reference](https://docs.simulo.ai/api/)
|
|
145
|
+
- [CLI reference](https://docs.simulo.ai/cli/)
|
|
146
|
+
- [Examples](https://docs.simulo.ai/examples/)
|
|
147
|
+
- [Simulo website](https://simulo.ai)
|
simulo-0.28.2/PYPI.md
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Simulo for Cloud Robotics Simulation and Training
|
|
2
|
+
|
|
3
|
+
**Train robot policies in simulation on managed cloud GPUs.**
|
|
4
|
+
|
|
5
|
+
Simulo is a cloud-native AI platform for robotics simulation and training. Its
|
|
6
|
+
lightweight `simulo` Python SDK and CLI let you define robot-learning applications
|
|
7
|
+
locally, submit them to the Simulo cloud, and inspect the results. The platform
|
|
8
|
+
handles managed GPU execution, reproducible packaging, versioned assets,
|
|
9
|
+
checkpoints, trained models, recordings, and live 3D viewing.
|
|
10
|
+
|
|
11
|
+
The package installed on your computer is torch-free and requires no local GPU or
|
|
12
|
+
simulator. The managed runtime executes reinforcement-learning training, policy
|
|
13
|
+
evaluation and inference, and scripted robotics simulations on managed GPUs in
|
|
14
|
+
the cloud.
|
|
15
|
+
|
|
16
|
+
## What you can do
|
|
17
|
+
|
|
18
|
+
- Write robotics applications in ordinary Python against a small, stable API.
|
|
19
|
+
- Build vectorized reinforcement-learning environments and train robot policies with PPO.
|
|
20
|
+
- Start with validated catalog robots or publish your own OpenUSD (USD) and URDF assets.
|
|
21
|
+
- Continue training from the best or latest checkpoint produced by an earlier job.
|
|
22
|
+
- Evaluate policies, run inference, and export trained policies as verified ONNX bundles.
|
|
23
|
+
- Stream logs, retrieve results and outputs, capture MCAP rollout recordings, and watch a live 3D view.
|
|
24
|
+
|
|
25
|
+
## Install
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
python -m pip install simulo
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Simulo requires Python 3.11 or newer. One installation provides both the
|
|
32
|
+
`import simulo` Python API and the `simulo` command-line interface.
|
|
33
|
+
|
|
34
|
+
## Train a first policy
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
simulo create mybot
|
|
38
|
+
simulo login
|
|
39
|
+
cd mybot
|
|
40
|
+
simulo run app.py --frozen --strict-assets
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`simulo create` writes a complete starter application to your machine without
|
|
44
|
+
requiring a login or network connection. The default application trains a PPO
|
|
45
|
+
policy on a validated cartpole asset. `simulo run` packages the source, resolves
|
|
46
|
+
and pins its assets, submits the job, and follows its cloud logs.
|
|
47
|
+
|
|
48
|
+
## Explore robotics samples
|
|
49
|
+
|
|
50
|
+
The public [Simulo samples repository](https://github.com/simulo-org/simulo-samples)
|
|
51
|
+
contains projects for cartpole, humanoid locomotion, JetBot navigation, Franka
|
|
52
|
+
arm control, a bring-your-own URDF arm, and F1TENTH-compatible drift training.
|
|
53
|
+
See the repository README for setup and usage.
|
|
54
|
+
|
|
55
|
+
## Monitor jobs and retrieve artifacts
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
simulo jobs # list submitted jobs and status
|
|
59
|
+
simulo logs --follow # stream the latest job's logs
|
|
60
|
+
simulo result # read the job's result
|
|
61
|
+
simulo models # list or download trained models
|
|
62
|
+
simulo export # export the best policy as verified ONNX
|
|
63
|
+
simulo recordings # download MCAP rollout recordings
|
|
64
|
+
simulo outputs # retrieve other saved outputs
|
|
65
|
+
simulo view # view a running --viewstream job in 3D
|
|
66
|
+
simulo cancel # stop a queued or running job
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Commands that accept a job ID default to the latest job and tell you which job
|
|
70
|
+
they selected.
|
|
71
|
+
|
|
72
|
+
## Use versioned robot assets
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
simulo asset list --global
|
|
76
|
+
simulo asset inspect simulo/robot/cartpole:v1
|
|
77
|
+
simulo asset publish ./my-robot --kind robot
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Simulo catalogs keep robot, world, and prop assets versioned and traceable. You
|
|
81
|
+
can use validated global assets immediately or publish your own USD or URDF
|
|
82
|
+
package for reuse across training, evaluation, and inference jobs.
|
|
83
|
+
|
|
84
|
+
## Learn more
|
|
85
|
+
|
|
86
|
+
- [Quickstart](https://docs.simulo.ai/getting-started/quickstart/)
|
|
87
|
+
- [Documentation](https://docs.simulo.ai/)
|
|
88
|
+
- [Python API reference](https://docs.simulo.ai/api/)
|
|
89
|
+
- [CLI reference](https://docs.simulo.ai/cli/)
|
|
90
|
+
- [Examples](https://docs.simulo.ai/examples/)
|
|
91
|
+
- [Simulo website](https://simulo.ai)
|
|
@@ -4,20 +4,53 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "simulo"
|
|
7
|
-
version = "0.28.
|
|
8
|
-
description = "
|
|
7
|
+
version = "0.28.2"
|
|
8
|
+
description = "Python SDK and CLI for cloud-native robotics simulation, reinforcement learning, and robot policy training on managed GPUs."
|
|
9
9
|
readme = "PYPI.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
11
11
|
license = { text = "BSD-3-Clause" }
|
|
12
12
|
authors = [{ name = "Simulo Team", email = "team@simulo.ai" }]
|
|
13
|
-
keywords = [
|
|
13
|
+
keywords = [
|
|
14
|
+
"simulo",
|
|
15
|
+
"robotics",
|
|
16
|
+
"robotics simulation",
|
|
17
|
+
"robot training",
|
|
18
|
+
"robot learning",
|
|
19
|
+
"reinforcement learning",
|
|
20
|
+
"cloud robotics",
|
|
21
|
+
"cloud simulation",
|
|
22
|
+
"GPU simulation",
|
|
23
|
+
"policy training",
|
|
24
|
+
"physical AI",
|
|
25
|
+
"embodied AI",
|
|
26
|
+
"NVIDIA Isaac Sim",
|
|
27
|
+
"Isaac Lab",
|
|
28
|
+
"OpenUSD",
|
|
29
|
+
"USD",
|
|
30
|
+
"URDF",
|
|
31
|
+
"ONNX",
|
|
32
|
+
"MCAP",
|
|
33
|
+
"Python SDK",
|
|
34
|
+
]
|
|
14
35
|
classifiers = [
|
|
15
36
|
"Development Status :: 3 - Alpha",
|
|
37
|
+
"Environment :: Console",
|
|
16
38
|
"Intended Audience :: Developers",
|
|
39
|
+
"Intended Audience :: Education",
|
|
40
|
+
"Intended Audience :: Science/Research",
|
|
17
41
|
"License :: OSI Approved :: BSD License",
|
|
18
42
|
"Operating System :: OS Independent",
|
|
43
|
+
"Programming Language :: Python",
|
|
44
|
+
"Programming Language :: Python :: 3",
|
|
45
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
19
46
|
"Programming Language :: Python :: 3.11",
|
|
20
47
|
"Programming Language :: Python :: 3.12",
|
|
48
|
+
"Topic :: Scientific/Engineering",
|
|
49
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
50
|
+
"Topic :: Scientific/Engineering :: Visualization",
|
|
51
|
+
"Topic :: Software Development :: Libraries :: Application Frameworks",
|
|
52
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
53
|
+
"Topic :: System :: Distributed Computing",
|
|
21
54
|
"Typing :: Typed",
|
|
22
55
|
]
|
|
23
56
|
# Torch-free by construction: depends only on the contract layer and mcap.
|
|
@@ -26,7 +59,7 @@ classifiers = [
|
|
|
26
59
|
# mcap: used by `simulo recordings` to read back a downloaded recording and
|
|
27
60
|
# verify it (message count) — MIT-licensed, deps only lz4+zstandard.
|
|
28
61
|
dependencies = [
|
|
29
|
-
"simulo-interfaces>=0.20.
|
|
62
|
+
"simulo-interfaces>=0.20.2,<0.21",
|
|
30
63
|
"mcap>=1.3,<2",
|
|
31
64
|
# Hardened XML parsing for URDF ingestion (USD Asset Catalogs, PR-12 fix
|
|
32
65
|
# loop 2, security NIT): stdlib xml.etree.ElementTree relies on
|
|
@@ -102,6 +135,10 @@ simulo = "simulo._client.cli:main"
|
|
|
102
135
|
|
|
103
136
|
[project.urls]
|
|
104
137
|
Homepage = "https://simulo.ai"
|
|
138
|
+
Documentation = "https://docs.simulo.ai"
|
|
139
|
+
Quickstart = "https://docs.simulo.ai/getting-started/quickstart/"
|
|
140
|
+
Examples = "https://github.com/simulo-org/simulo-samples"
|
|
141
|
+
Console = "https://console.simulo.ai"
|
|
105
142
|
|
|
106
143
|
# Namespace packaging: this is the only distribution that ships
|
|
107
144
|
# `src/simulo/__init__.py`, so sibling `simulo.*` distributions can share the
|
|
@@ -578,12 +578,14 @@ _CANCELLED_STATUS = str(JobStatus.CANCELLED)
|
|
|
578
578
|
#: ``status_reason``/``status_detail``): a failed, cancelled, or timed-out
|
|
579
579
|
#: job. A cleanly ``completed`` job has none.
|
|
580
580
|
#:
|
|
581
|
-
#: ``timed_out`` (`M55-org-runtime-policy`)
|
|
582
|
-
#: control plane
|
|
583
|
-
#:
|
|
584
|
-
#:
|
|
585
|
-
#:
|
|
586
|
-
#:
|
|
581
|
+
#: ``timed_out`` (`M55-org-runtime-policy`) was added here even before the
|
|
582
|
+
#: control plane's read-side compat projection was lifted (issue #1537,
|
|
583
|
+
#: lifted 2026-09-12) — this set had to already be correct for the moment
|
|
584
|
+
#: that projection lifted, not rewritten again at that later date to add
|
|
585
|
+
#: the one value its own author had every reason to add while this exact
|
|
586
|
+
#: line was open. That moment has now passed: every read route serves a
|
|
587
|
+
#: genuinely ``timed_out`` job as ``timed_out``, and this set already
|
|
588
|
+
#: covered it.
|
|
587
589
|
_FAILURE_STATUS_STRINGS = frozenset({str(JobStatus.FAILED), str(JobStatus.CANCELLED), str(JobStatus.TIMED_OUT)})
|
|
588
590
|
|
|
589
591
|
#: The tolerant-client check for ``simulo view`` specifically
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: simulo
|
|
3
|
+
Version: 0.28.2
|
|
4
|
+
Summary: Python SDK and CLI for cloud-native robotics simulation, reinforcement learning, and robot policy training on managed GPUs.
|
|
5
|
+
Author-email: Simulo Team <team@simulo.ai>
|
|
6
|
+
License: BSD-3-Clause
|
|
7
|
+
Project-URL: Homepage, https://simulo.ai
|
|
8
|
+
Project-URL: Documentation, https://docs.simulo.ai
|
|
9
|
+
Project-URL: Quickstart, https://docs.simulo.ai/getting-started/quickstart/
|
|
10
|
+
Project-URL: Examples, https://github.com/simulo-org/simulo-samples
|
|
11
|
+
Project-URL: Console, https://console.simulo.ai
|
|
12
|
+
Keywords: simulo,robotics,robotics simulation,robot training,robot learning,reinforcement learning,cloud robotics,cloud simulation,GPU simulation,policy training,physical AI,embodied AI,NVIDIA Isaac Sim,Isaac Lab,OpenUSD,USD,URDF,ONNX,MCAP,Python SDK
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Intended Audience :: Education
|
|
17
|
+
Classifier: Intended Audience :: Science/Research
|
|
18
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
19
|
+
Classifier: Operating System :: OS Independent
|
|
20
|
+
Classifier: Programming Language :: Python
|
|
21
|
+
Classifier: Programming Language :: Python :: 3
|
|
22
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
25
|
+
Classifier: Topic :: Scientific/Engineering
|
|
26
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
27
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
28
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
29
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
30
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
31
|
+
Classifier: Typing :: Typed
|
|
32
|
+
Requires-Python: >=3.11
|
|
33
|
+
Description-Content-Type: text/markdown
|
|
34
|
+
Requires-Dist: simulo-interfaces<0.21,>=0.20.2
|
|
35
|
+
Requires-Dist: mcap<2,>=1.3
|
|
36
|
+
Requires-Dist: defusedxml>=0.7.1
|
|
37
|
+
Requires-Dist: usd-core<27,>=26.5
|
|
38
|
+
Provides-Extra: assets
|
|
39
|
+
Requires-Dist: usd-core<27,>=26.5; extra == "assets"
|
|
40
|
+
Provides-Extra: dev
|
|
41
|
+
Requires-Dist: black==26.5.1; extra == "dev"
|
|
42
|
+
Requires-Dist: isort==8.0.1; extra == "dev"
|
|
43
|
+
Requires-Dist: ruff==0.15.21; extra == "dev"
|
|
44
|
+
Requires-Dist: mypy==2.3.0; extra == "dev"
|
|
45
|
+
Requires-Dist: types-defusedxml==0.7.0.20260504; extra == "dev"
|
|
46
|
+
Requires-Dist: pytest>=8.2; extra == "dev"
|
|
47
|
+
Requires-Dist: pytest-timeout==2.4.0; extra == "dev"
|
|
48
|
+
Requires-Dist: build>=1.2; extra == "dev"
|
|
49
|
+
Requires-Dist: twine>=5.1; extra == "dev"
|
|
50
|
+
Requires-Dist: setuptools>=68; extra == "dev"
|
|
51
|
+
Requires-Dist: wheel; extra == "dev"
|
|
52
|
+
Provides-Extra: release
|
|
53
|
+
Requires-Dist: commitizen>=3.27; extra == "release"
|
|
54
|
+
Requires-Dist: build>=1.2; extra == "release"
|
|
55
|
+
Requires-Dist: twine>=5.1; extra == "release"
|
|
56
|
+
|
|
57
|
+
# Simulo for Cloud Robotics Simulation and Training
|
|
58
|
+
|
|
59
|
+
**Train robot policies in simulation on managed cloud GPUs.**
|
|
60
|
+
|
|
61
|
+
Simulo is a cloud-native AI platform for robotics simulation and training. Its
|
|
62
|
+
lightweight `simulo` Python SDK and CLI let you define robot-learning applications
|
|
63
|
+
locally, submit them to the Simulo cloud, and inspect the results. The platform
|
|
64
|
+
handles managed GPU execution, reproducible packaging, versioned assets,
|
|
65
|
+
checkpoints, trained models, recordings, and live 3D viewing.
|
|
66
|
+
|
|
67
|
+
The package installed on your computer is torch-free and requires no local GPU or
|
|
68
|
+
simulator. The managed runtime executes reinforcement-learning training, policy
|
|
69
|
+
evaluation and inference, and scripted robotics simulations on managed GPUs in
|
|
70
|
+
the cloud.
|
|
71
|
+
|
|
72
|
+
## What you can do
|
|
73
|
+
|
|
74
|
+
- Write robotics applications in ordinary Python against a small, stable API.
|
|
75
|
+
- Build vectorized reinforcement-learning environments and train robot policies with PPO.
|
|
76
|
+
- Start with validated catalog robots or publish your own OpenUSD (USD) and URDF assets.
|
|
77
|
+
- Continue training from the best or latest checkpoint produced by an earlier job.
|
|
78
|
+
- Evaluate policies, run inference, and export trained policies as verified ONNX bundles.
|
|
79
|
+
- Stream logs, retrieve results and outputs, capture MCAP rollout recordings, and watch a live 3D view.
|
|
80
|
+
|
|
81
|
+
## Install
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
python -m pip install simulo
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Simulo requires Python 3.11 or newer. One installation provides both the
|
|
88
|
+
`import simulo` Python API and the `simulo` command-line interface.
|
|
89
|
+
|
|
90
|
+
## Train a first policy
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
simulo create mybot
|
|
94
|
+
simulo login
|
|
95
|
+
cd mybot
|
|
96
|
+
simulo run app.py --frozen --strict-assets
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
`simulo create` writes a complete starter application to your machine without
|
|
100
|
+
requiring a login or network connection. The default application trains a PPO
|
|
101
|
+
policy on a validated cartpole asset. `simulo run` packages the source, resolves
|
|
102
|
+
and pins its assets, submits the job, and follows its cloud logs.
|
|
103
|
+
|
|
104
|
+
## Explore robotics samples
|
|
105
|
+
|
|
106
|
+
The public [Simulo samples repository](https://github.com/simulo-org/simulo-samples)
|
|
107
|
+
contains projects for cartpole, humanoid locomotion, JetBot navigation, Franka
|
|
108
|
+
arm control, a bring-your-own URDF arm, and F1TENTH-compatible drift training.
|
|
109
|
+
See the repository README for setup and usage.
|
|
110
|
+
|
|
111
|
+
## Monitor jobs and retrieve artifacts
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
simulo jobs # list submitted jobs and status
|
|
115
|
+
simulo logs --follow # stream the latest job's logs
|
|
116
|
+
simulo result # read the job's result
|
|
117
|
+
simulo models # list or download trained models
|
|
118
|
+
simulo export # export the best policy as verified ONNX
|
|
119
|
+
simulo recordings # download MCAP rollout recordings
|
|
120
|
+
simulo outputs # retrieve other saved outputs
|
|
121
|
+
simulo view # view a running --viewstream job in 3D
|
|
122
|
+
simulo cancel # stop a queued or running job
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Commands that accept a job ID default to the latest job and tell you which job
|
|
126
|
+
they selected.
|
|
127
|
+
|
|
128
|
+
## Use versioned robot assets
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
simulo asset list --global
|
|
132
|
+
simulo asset inspect simulo/robot/cartpole:v1
|
|
133
|
+
simulo asset publish ./my-robot --kind robot
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Simulo catalogs keep robot, world, and prop assets versioned and traceable. You
|
|
137
|
+
can use validated global assets immediately or publish your own USD or URDF
|
|
138
|
+
package for reuse across training, evaluation, and inference jobs.
|
|
139
|
+
|
|
140
|
+
## Learn more
|
|
141
|
+
|
|
142
|
+
- [Quickstart](https://docs.simulo.ai/getting-started/quickstart/)
|
|
143
|
+
- [Documentation](https://docs.simulo.ai/)
|
|
144
|
+
- [Python API reference](https://docs.simulo.ai/api/)
|
|
145
|
+
- [CLI reference](https://docs.simulo.ai/cli/)
|
|
146
|
+
- [Examples](https://docs.simulo.ai/examples/)
|
|
147
|
+
- [Simulo website](https://simulo.ai)
|
simulo-0.28.0/PKG-INFO
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: simulo
|
|
3
|
-
Version: 0.28.0
|
|
4
|
-
Summary: Simulo SDK and CLI — define robotics simulation and training apps in Python and run them on the Simulo cloud.
|
|
5
|
-
Author-email: Simulo Team <team@simulo.ai>
|
|
6
|
-
License: BSD-3-Clause
|
|
7
|
-
Project-URL: Homepage, https://simulo.ai
|
|
8
|
-
Keywords: robotics,simulation,reinforcement-learning,simulo
|
|
9
|
-
Classifier: Development Status :: 3 - Alpha
|
|
10
|
-
Classifier: Intended Audience :: Developers
|
|
11
|
-
Classifier: License :: OSI Approved :: BSD License
|
|
12
|
-
Classifier: Operating System :: OS Independent
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
-
Classifier: Typing :: Typed
|
|
16
|
-
Requires-Python: >=3.11
|
|
17
|
-
Description-Content-Type: text/markdown
|
|
18
|
-
Requires-Dist: simulo-interfaces<0.21,>=0.20.0
|
|
19
|
-
Requires-Dist: mcap<2,>=1.3
|
|
20
|
-
Requires-Dist: defusedxml>=0.7.1
|
|
21
|
-
Requires-Dist: usd-core<27,>=26.5
|
|
22
|
-
Provides-Extra: assets
|
|
23
|
-
Requires-Dist: usd-core<27,>=26.5; extra == "assets"
|
|
24
|
-
Provides-Extra: dev
|
|
25
|
-
Requires-Dist: black==26.5.1; extra == "dev"
|
|
26
|
-
Requires-Dist: isort==8.0.1; extra == "dev"
|
|
27
|
-
Requires-Dist: ruff==0.15.21; extra == "dev"
|
|
28
|
-
Requires-Dist: mypy==2.3.0; extra == "dev"
|
|
29
|
-
Requires-Dist: types-defusedxml==0.7.0.20260504; extra == "dev"
|
|
30
|
-
Requires-Dist: pytest>=8.2; extra == "dev"
|
|
31
|
-
Requires-Dist: pytest-timeout==2.4.0; extra == "dev"
|
|
32
|
-
Requires-Dist: build>=1.2; extra == "dev"
|
|
33
|
-
Requires-Dist: twine>=5.1; extra == "dev"
|
|
34
|
-
Requires-Dist: setuptools>=68; extra == "dev"
|
|
35
|
-
Requires-Dist: wheel; extra == "dev"
|
|
36
|
-
Provides-Extra: release
|
|
37
|
-
Requires-Dist: commitizen>=3.27; extra == "release"
|
|
38
|
-
Requires-Dist: build>=1.2; extra == "release"
|
|
39
|
-
Requires-Dist: twine>=5.1; extra == "release"
|
|
40
|
-
|
|
41
|
-
# simulo
|
|
42
|
-
|
|
43
|
-
The Simulo SDK and CLI — define robotics simulation and training apps in Python,
|
|
44
|
-
submit them to the Simulo cloud, monitor jobs, and retrieve trained models.
|
|
45
|
-
|
|
46
|
-
Simulo is a cloud-first robotics simulation and training platform. Write your app
|
|
47
|
-
against a small, stable Python API; Simulo handles running it.
|
|
48
|
-
|
|
49
|
-
## Install
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
pip install simulo
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Requires Python 3.11+.
|
|
56
|
-
|
|
57
|
-
## Quickstart
|
|
58
|
-
|
|
59
|
-
The fastest way to start: scaffold a runnable app.
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
simulo create mybot
|
|
63
|
-
# Created training app in mybot/ (app.py + .simuloignore).
|
|
64
|
-
cd mybot
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
`--type` picks the starter shape (default `training`): `training` (a single
|
|
68
|
-
training job), `inference` (train → evaluate → rollout, self-contained), or
|
|
69
|
-
`scenario` (a scripted scene, no learning). No network call and no login
|
|
70
|
-
required — `simulo create` only writes files to your local folder. Edit
|
|
71
|
-
`app.py` for your own robot and task, then see "Log in and submit" below to
|
|
72
|
-
run it.
|
|
73
|
-
|
|
74
|
-
To download a curated collection of runnable projects, use `simulo install samples`.
|
|
75
|
-
It creates `./simulo-samples` as a normal Git clone, so `cd simulo-samples` and
|
|
76
|
-
`cat README.md` open the sample index.
|
|
77
|
-
|
|
78
|
-
Choose a destination with `--directory` and a Git branch, tag, or commit with
|
|
79
|
-
`--ref`. You can use either option on its own or combine them:
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
simulo install samples --directory robotics-examples --ref main
|
|
83
|
-
cd robotics-examples
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
The destination must not exist, and its parent directory must already exist.
|
|
87
|
-
The directory appears only after the clone and requested checkout succeed.
|
|
88
|
-
Use a tag or full commit ID instead of `main` to select a fixed revision.
|
|
89
|
-
With `--ref`, the checkout is detached at the selected commit.
|
|
90
|
-
|
|
91
|
-
### Or write an app by hand
|
|
92
|
-
|
|
93
|
-
```python
|
|
94
|
-
# app.py
|
|
95
|
-
import simulo
|
|
96
|
-
|
|
97
|
-
app = simulo.App("hello")
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
@app.job(timeout=5 * 60)
|
|
101
|
-
def hello(name: str = "world", repeat: int = 3) -> dict:
|
|
102
|
-
for i in range(repeat):
|
|
103
|
-
print(f"[hello] {i + 1}/{repeat}: hello, {name}!")
|
|
104
|
-
return {"greeting": f"hello, {name}", "repeat": repeat}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
@app.entrypoint
|
|
108
|
-
def main(name: str = "world", repeat: int = 3) -> None:
|
|
109
|
-
handle = hello.spawn(name=name, repeat=repeat)
|
|
110
|
-
print(f"Submitted job: {handle.job_name}")
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
## Log in and submit to the cloud
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
simulo login
|
|
117
|
-
simulo run app.py --name robot --repeat 5
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
Without logging in, `simulo run` packages the app locally without submitting it.
|
|
121
|
-
|
|
122
|
-
Every cloud submit is fresh — running the same command twice trains twice, never a silent
|
|
123
|
-
no-op. To continue training from an earlier job's checkpoint instead, pass
|
|
124
|
-
`--from <job-ref>[:best|:latest]`. `<job-ref>` is a full job id, matched by exact equality;
|
|
125
|
-
an unambiguous prefix (`>=4` characters, Git-style) works too, but only for the legacy UUID
|
|
126
|
-
form some jobs from before friendly identifiers still carry.
|
|
127
|
-
|
|
128
|
-
## Monitor jobs and retrieve results
|
|
129
|
-
|
|
130
|
-
```bash
|
|
131
|
-
simulo jobs # your jobs and their statuses
|
|
132
|
-
simulo logs --follow # stream the latest job's logs live
|
|
133
|
-
simulo result # the completed job's result JSON
|
|
134
|
-
simulo models # list / download trained checkpoints (sha256-verified)
|
|
135
|
-
simulo recordings # download MCAP flight recordings
|
|
136
|
-
simulo view # watch the live 3D scene (jobs submitted with --viewstream)
|
|
137
|
-
simulo cancel # cancel a queued or running job
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Commands that take a job id default to the latest job, announcing what they
|
|
141
|
-
resolved to on stderr.
|
|
142
|
-
|
|
143
|
-
Learn more at [simulo.ai](https://simulo.ai).
|
simulo-0.28.0/PYPI.md
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
# simulo
|
|
2
|
-
|
|
3
|
-
The Simulo SDK and CLI — define robotics simulation and training apps in Python,
|
|
4
|
-
submit them to the Simulo cloud, monitor jobs, and retrieve trained models.
|
|
5
|
-
|
|
6
|
-
Simulo is a cloud-first robotics simulation and training platform. Write your app
|
|
7
|
-
against a small, stable Python API; Simulo handles running it.
|
|
8
|
-
|
|
9
|
-
## Install
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
pip install simulo
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Requires Python 3.11+.
|
|
16
|
-
|
|
17
|
-
## Quickstart
|
|
18
|
-
|
|
19
|
-
The fastest way to start: scaffold a runnable app.
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
simulo create mybot
|
|
23
|
-
# Created training app in mybot/ (app.py + .simuloignore).
|
|
24
|
-
cd mybot
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
`--type` picks the starter shape (default `training`): `training` (a single
|
|
28
|
-
training job), `inference` (train → evaluate → rollout, self-contained), or
|
|
29
|
-
`scenario` (a scripted scene, no learning). No network call and no login
|
|
30
|
-
required — `simulo create` only writes files to your local folder. Edit
|
|
31
|
-
`app.py` for your own robot and task, then see "Log in and submit" below to
|
|
32
|
-
run it.
|
|
33
|
-
|
|
34
|
-
To download a curated collection of runnable projects, use `simulo install samples`.
|
|
35
|
-
It creates `./simulo-samples` as a normal Git clone, so `cd simulo-samples` and
|
|
36
|
-
`cat README.md` open the sample index.
|
|
37
|
-
|
|
38
|
-
Choose a destination with `--directory` and a Git branch, tag, or commit with
|
|
39
|
-
`--ref`. You can use either option on its own or combine them:
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
simulo install samples --directory robotics-examples --ref main
|
|
43
|
-
cd robotics-examples
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
The destination must not exist, and its parent directory must already exist.
|
|
47
|
-
The directory appears only after the clone and requested checkout succeed.
|
|
48
|
-
Use a tag or full commit ID instead of `main` to select a fixed revision.
|
|
49
|
-
With `--ref`, the checkout is detached at the selected commit.
|
|
50
|
-
|
|
51
|
-
### Or write an app by hand
|
|
52
|
-
|
|
53
|
-
```python
|
|
54
|
-
# app.py
|
|
55
|
-
import simulo
|
|
56
|
-
|
|
57
|
-
app = simulo.App("hello")
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
@app.job(timeout=5 * 60)
|
|
61
|
-
def hello(name: str = "world", repeat: int = 3) -> dict:
|
|
62
|
-
for i in range(repeat):
|
|
63
|
-
print(f"[hello] {i + 1}/{repeat}: hello, {name}!")
|
|
64
|
-
return {"greeting": f"hello, {name}", "repeat": repeat}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
@app.entrypoint
|
|
68
|
-
def main(name: str = "world", repeat: int = 3) -> None:
|
|
69
|
-
handle = hello.spawn(name=name, repeat=repeat)
|
|
70
|
-
print(f"Submitted job: {handle.job_name}")
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Log in and submit to the cloud
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
simulo login
|
|
77
|
-
simulo run app.py --name robot --repeat 5
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
Without logging in, `simulo run` packages the app locally without submitting it.
|
|
81
|
-
|
|
82
|
-
Every cloud submit is fresh — running the same command twice trains twice, never a silent
|
|
83
|
-
no-op. To continue training from an earlier job's checkpoint instead, pass
|
|
84
|
-
`--from <job-ref>[:best|:latest]`. `<job-ref>` is a full job id, matched by exact equality;
|
|
85
|
-
an unambiguous prefix (`>=4` characters, Git-style) works too, but only for the legacy UUID
|
|
86
|
-
form some jobs from before friendly identifiers still carry.
|
|
87
|
-
|
|
88
|
-
## Monitor jobs and retrieve results
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
simulo jobs # your jobs and their statuses
|
|
92
|
-
simulo logs --follow # stream the latest job's logs live
|
|
93
|
-
simulo result # the completed job's result JSON
|
|
94
|
-
simulo models # list / download trained checkpoints (sha256-verified)
|
|
95
|
-
simulo recordings # download MCAP flight recordings
|
|
96
|
-
simulo view # watch the live 3D scene (jobs submitted with --viewstream)
|
|
97
|
-
simulo cancel # cancel a queued or running job
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
Commands that take a job id default to the latest job, announcing what they
|
|
101
|
-
resolved to on stderr.
|
|
102
|
-
|
|
103
|
-
Learn more at [simulo.ai](https://simulo.ai).
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: simulo
|
|
3
|
-
Version: 0.28.0
|
|
4
|
-
Summary: Simulo SDK and CLI — define robotics simulation and training apps in Python and run them on the Simulo cloud.
|
|
5
|
-
Author-email: Simulo Team <team@simulo.ai>
|
|
6
|
-
License: BSD-3-Clause
|
|
7
|
-
Project-URL: Homepage, https://simulo.ai
|
|
8
|
-
Keywords: robotics,simulation,reinforcement-learning,simulo
|
|
9
|
-
Classifier: Development Status :: 3 - Alpha
|
|
10
|
-
Classifier: Intended Audience :: Developers
|
|
11
|
-
Classifier: License :: OSI Approved :: BSD License
|
|
12
|
-
Classifier: Operating System :: OS Independent
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
-
Classifier: Typing :: Typed
|
|
16
|
-
Requires-Python: >=3.11
|
|
17
|
-
Description-Content-Type: text/markdown
|
|
18
|
-
Requires-Dist: simulo-interfaces<0.21,>=0.20.0
|
|
19
|
-
Requires-Dist: mcap<2,>=1.3
|
|
20
|
-
Requires-Dist: defusedxml>=0.7.1
|
|
21
|
-
Requires-Dist: usd-core<27,>=26.5
|
|
22
|
-
Provides-Extra: assets
|
|
23
|
-
Requires-Dist: usd-core<27,>=26.5; extra == "assets"
|
|
24
|
-
Provides-Extra: dev
|
|
25
|
-
Requires-Dist: black==26.5.1; extra == "dev"
|
|
26
|
-
Requires-Dist: isort==8.0.1; extra == "dev"
|
|
27
|
-
Requires-Dist: ruff==0.15.21; extra == "dev"
|
|
28
|
-
Requires-Dist: mypy==2.3.0; extra == "dev"
|
|
29
|
-
Requires-Dist: types-defusedxml==0.7.0.20260504; extra == "dev"
|
|
30
|
-
Requires-Dist: pytest>=8.2; extra == "dev"
|
|
31
|
-
Requires-Dist: pytest-timeout==2.4.0; extra == "dev"
|
|
32
|
-
Requires-Dist: build>=1.2; extra == "dev"
|
|
33
|
-
Requires-Dist: twine>=5.1; extra == "dev"
|
|
34
|
-
Requires-Dist: setuptools>=68; extra == "dev"
|
|
35
|
-
Requires-Dist: wheel; extra == "dev"
|
|
36
|
-
Provides-Extra: release
|
|
37
|
-
Requires-Dist: commitizen>=3.27; extra == "release"
|
|
38
|
-
Requires-Dist: build>=1.2; extra == "release"
|
|
39
|
-
Requires-Dist: twine>=5.1; extra == "release"
|
|
40
|
-
|
|
41
|
-
# simulo
|
|
42
|
-
|
|
43
|
-
The Simulo SDK and CLI — define robotics simulation and training apps in Python,
|
|
44
|
-
submit them to the Simulo cloud, monitor jobs, and retrieve trained models.
|
|
45
|
-
|
|
46
|
-
Simulo is a cloud-first robotics simulation and training platform. Write your app
|
|
47
|
-
against a small, stable Python API; Simulo handles running it.
|
|
48
|
-
|
|
49
|
-
## Install
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
pip install simulo
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Requires Python 3.11+.
|
|
56
|
-
|
|
57
|
-
## Quickstart
|
|
58
|
-
|
|
59
|
-
The fastest way to start: scaffold a runnable app.
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
simulo create mybot
|
|
63
|
-
# Created training app in mybot/ (app.py + .simuloignore).
|
|
64
|
-
cd mybot
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
`--type` picks the starter shape (default `training`): `training` (a single
|
|
68
|
-
training job), `inference` (train → evaluate → rollout, self-contained), or
|
|
69
|
-
`scenario` (a scripted scene, no learning). No network call and no login
|
|
70
|
-
required — `simulo create` only writes files to your local folder. Edit
|
|
71
|
-
`app.py` for your own robot and task, then see "Log in and submit" below to
|
|
72
|
-
run it.
|
|
73
|
-
|
|
74
|
-
To download a curated collection of runnable projects, use `simulo install samples`.
|
|
75
|
-
It creates `./simulo-samples` as a normal Git clone, so `cd simulo-samples` and
|
|
76
|
-
`cat README.md` open the sample index.
|
|
77
|
-
|
|
78
|
-
Choose a destination with `--directory` and a Git branch, tag, or commit with
|
|
79
|
-
`--ref`. You can use either option on its own or combine them:
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
simulo install samples --directory robotics-examples --ref main
|
|
83
|
-
cd robotics-examples
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
The destination must not exist, and its parent directory must already exist.
|
|
87
|
-
The directory appears only after the clone and requested checkout succeed.
|
|
88
|
-
Use a tag or full commit ID instead of `main` to select a fixed revision.
|
|
89
|
-
With `--ref`, the checkout is detached at the selected commit.
|
|
90
|
-
|
|
91
|
-
### Or write an app by hand
|
|
92
|
-
|
|
93
|
-
```python
|
|
94
|
-
# app.py
|
|
95
|
-
import simulo
|
|
96
|
-
|
|
97
|
-
app = simulo.App("hello")
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
@app.job(timeout=5 * 60)
|
|
101
|
-
def hello(name: str = "world", repeat: int = 3) -> dict:
|
|
102
|
-
for i in range(repeat):
|
|
103
|
-
print(f"[hello] {i + 1}/{repeat}: hello, {name}!")
|
|
104
|
-
return {"greeting": f"hello, {name}", "repeat": repeat}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
@app.entrypoint
|
|
108
|
-
def main(name: str = "world", repeat: int = 3) -> None:
|
|
109
|
-
handle = hello.spawn(name=name, repeat=repeat)
|
|
110
|
-
print(f"Submitted job: {handle.job_name}")
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
## Log in and submit to the cloud
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
simulo login
|
|
117
|
-
simulo run app.py --name robot --repeat 5
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
Without logging in, `simulo run` packages the app locally without submitting it.
|
|
121
|
-
|
|
122
|
-
Every cloud submit is fresh — running the same command twice trains twice, never a silent
|
|
123
|
-
no-op. To continue training from an earlier job's checkpoint instead, pass
|
|
124
|
-
`--from <job-ref>[:best|:latest]`. `<job-ref>` is a full job id, matched by exact equality;
|
|
125
|
-
an unambiguous prefix (`>=4` characters, Git-style) works too, but only for the legacy UUID
|
|
126
|
-
form some jobs from before friendly identifiers still carry.
|
|
127
|
-
|
|
128
|
-
## Monitor jobs and retrieve results
|
|
129
|
-
|
|
130
|
-
```bash
|
|
131
|
-
simulo jobs # your jobs and their statuses
|
|
132
|
-
simulo logs --follow # stream the latest job's logs live
|
|
133
|
-
simulo result # the completed job's result JSON
|
|
134
|
-
simulo models # list / download trained checkpoints (sha256-verified)
|
|
135
|
-
simulo recordings # download MCAP flight recordings
|
|
136
|
-
simulo view # watch the live 3D scene (jobs submitted with --viewstream)
|
|
137
|
-
simulo cancel # cancel a queued or running job
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Commands that take a job id default to the latest job, announcing what they
|
|
141
|
-
resolved to on stderr.
|
|
142
|
-
|
|
143
|
-
Learn more at [simulo.ai](https://simulo.ai).
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|