SoRoMoX is a fully numerical, JIT-compilable Python/JAX implementation of control-oriented models for articulated and continuum soft robots. It provides articulated soft-robot, piecewise-constant strain (PCS), and geometric variable strain (GVS) models through a common interface for kinematics, dynamics, energies, Jacobians and derivatives, and forward dynamics. Because the numerical core is JAX-native, these model computations can be JIT-compiled, automatically differentiated with respect to states, inputs, and physical parameters, batched, and executed on CPUs, GPUs, and TPUs.
Model-based controllers and rendering backends complement the core model implementations. The accompanying paper benchmarks the numerical stack and uses six application case studies to demonstrate differentiability, parallelization, and the control-oriented model interface.
Note: SoRoMoX succeeds JSRM, replacing symbolic derivations with scalable numerical implementations and extending the model families and common interfaces.
Models and numerical interface
- Soft robot model implementations: articulated soft-robot, PCS, and GVS formulations implemented numerically in Python/JAX.
- JAX-native execution: JIT compilation, automatic differentiation with
respect to states, inputs, and parameters, vectorization with
vmap, and CPU/GPU/TPU execution. - Control-oriented quantities: backbone kinematics, Jacobians and their derivatives, inertia matrices, Coriolis, gravitational, elastic, and damping terms, energies, actuation maps, and forward dynamics.
- Composable actuation and systems: generalized-coordinate/strain, threadlike, McKibben, and functional-metamaterial actuation across planar and spatial examples.
- Model-based control implementations: configuration-, operational-, and actuation-space controllers, including potential compensation, computed-torque, and impedance controllers.
- Rendering: Matplotlib, Open3D, Viser, and OpenCV backends for static, interactive, real-time, and recorded visualizations.
Following the model organization in Table II of the paper:
| Model family | Planar implementation | Actuation modalities | Example instantiations |
|---|---|---|---|
| Articulated soft robot | Soft pendulum | Generalized-coordinate (joint-torque), articulated-tendon, and McKibben actuation | UMArm |
| Piecewise constant strain (PCS) | Planar PCS | Generalized-strain, threadlike, and functional-metamaterial (HSA) actuation | I-SUPPORT and planar HSA |
| Geometric variable strain (GVS) | — | Generalized-coordinate and threadlike actuation | Tapered cable-driven soft tentacle |
Installation
Install the core package from PyPI:
python -m pip install soromox
With uv:
uv pip install soromox
Optional extras add the dependencies needed for a workflow:
python -m pip install "soromox[rendering]" # all rendering backends
python -m pip install "soromox[examples]" # runnable examples
python -m pip install "soromox[rl]" # reinforcement learning examples
python -m pip install "soromox[paper_results]" # paper reproduction workflows
For an editable source installation:
git clone https://github.com/tud-phi/soromox.git
cd soromox
python -m pip install -e .
Contributors can add development extras with
python -m pip install -e ".[dev,docs,examples]"; see
CONTRIBUTING.md
for tests and tooling.
Quick start
Run a simulation from the example catalogue:
python examples/simulation/pendulum/simulate_pendulum.py
python examples/simulation/pcs/simulate_planar_pcs.py
The Quick Start introduces model construction, simulation, control, and rendering. The examples catalogue maps complete scripts to the supported models and workflows.
Performance
For the paper's sequential CPU rollouts, SoRoMoX is up to 18.1× faster than SoRoSim in matched PCS and GVS cases:
| Formulation | Case | SoRoSim (s) | SoRoMoX (s) | Speedup |
|---|---|---|---|---|
| FEM/PCS | Planar | 75.73 | 4.18 | 18.1× |
| FEM/PCS | Spatial | 78.65 | 13.26 | 5.9× |
| FEM/GVS | Spatial | 55.54 | 36.33 | 1.5× |
| FEM/GVS | Tendons | 75.80 | 36.47 | 2.1× |
On the paper's RTX 5090 benchmark, increasing the leading batch size from 1 to 256 yields up to 234.6× higher simulation throughput. See Paper & Results for the full benchmark context and reproduction pointers.
Application case studies
The paper's six application case studies demonstrate how the model layer can support parameter identification, residual learning, model-based control, controller gain optimization, safety-constrained control, and parallel reinforcement learning.
Operational-space model-based control
Safety-constrained control
Parallel reinforcement learning
See all six studies on the Paper & Results page.
Documentation
- Documentation home
- Installation guide
- Quick Start
- API reference
- Rendering guide and gallery
- Paper & Results
- Citation guidance
Citation
If you use SoRoMoX in academic work, please cite the associated preprint:
@misc{stolzle2026soromox,
title = {{SoRoMoX}: Fast, Differentiable, and Parallelizable Soft Robot Models},
author = {Maximilian St{\"o}lzle and Solange Gribonval and Daniel {Feliu-Talegon} and Vito Daniele Perfetta and Michele Martini and Chuhan Zhang and Kiwan Wong and Mohammed Tarnini and Anup Teejo Mathew and Federico Renda and Daniela Rus and Cosimo {Della Santina}},
year = {2026},
eprint = {2608.06650},
archivePrefix = {arXiv},
primaryClass = {cs.RO},
doi = {10.48550/arXiv.2608.06650},
url = {https://arxiv.org/abs/2608.06650},
}
For reproducible computational work, also report soromox.__version__.
The full citation guide
contains exact-version software citations and model- or controller-specific
references.
Contributing and license
Contributions are welcome; start with CONTRIBUTING.md. SoRoMoX is distributed under the MIT License.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file soromox-0.2.2.tar.gz.
File metadata
- Download URL: soromox-0.2.2.tar.gz
- Upload date:
- Size: 362.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7578cf894d7de72f7107a83740fc4c743cf104771551495052b3e584696374b9
|
|
| MD5 |
1f27a4e79dfb064799ed71e634fdc8cf
|
|
| BLAKE2b-256 |
954038599fb1f6451d296478030d416786d1f925c492b80fa46a2c805581d699
|
Provenance
The following attestation bundles were made for soromox-0.2.2.tar.gz:
Publisher:
release.yml on tud-phi/soromox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
soromox-0.2.2.tar.gz -
Subject digest:
7578cf894d7de72f7107a83740fc4c743cf104771551495052b3e584696374b9 - Sigstore transparency entry: 2436114272
- Sigstore integration time:
-
Permalink:
tud-phi/soromox@67f9bd391ca0410f65bb0c54f65aacfbfda6f2a5 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/tud-phi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@67f9bd391ca0410f65bb0c54f65aacfbfda6f2a5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file soromox-0.2.2-py3-none-any.whl.
File metadata
- Download URL: soromox-0.2.2-py3-none-any.whl
- Upload date:
- Size: 416.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8e41c57479a62feaa18eea823e64ddccdf5087a5fddc899f78fcf0bd73cebdc
|
|
| MD5 |
5b8b7091b1952128b6234604454568ba
|
|
| BLAKE2b-256 |
69d7322185f7687188328457fbf3c92eb7929a85bb0421fea1e603355fe94ae9
|
Provenance
The following attestation bundles were made for soromox-0.2.2-py3-none-any.whl:
Publisher:
release.yml on tud-phi/soromox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
soromox-0.2.2-py3-none-any.whl -
Subject digest:
c8e41c57479a62feaa18eea823e64ddccdf5087a5fddc899f78fcf0bd73cebdc - Sigstore transparency entry: 2436114302
- Sigstore integration time:
-
Permalink:
tud-phi/soromox@67f9bd391ca0410f65bb0c54f65aacfbfda6f2a5 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/tud-phi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@67f9bd391ca0410f65bb0c54f65aacfbfda6f2a5 -
Trigger Event:
push
-
Statement type: