Skip to main content

TrueRig

Robot-model conversion you can trust. Convert robot descriptions between URDF ↔ MJCF ↔ USD through a lossless canonical IR — and get a fidelity report of everything that changed.

The thesis is the point: existing converters fail silently. TrueRig's product is knowing what you lost.

PyPI Python License CI

pip install truerig

Why

Every open-source URDF→MJCF converter today fails on real robots, silently. We reproduced this against the current urdf2mjcf (MuJoCo 3.10) on two standard models:

Defect Robot Existing tool behaviour
Off-diagonal inertia dropped on 32 links (up to 31.5% of the diagonal) Unitree G1 one buried "Warning" line
Closed-chain coupling (5 mimic joints → 0 constraints) Robotiq 2F-85 no warning at all
package:// mesh URIs passed through unresolved / doubled paths both hard load error
Invalid MJCF emitted (empty-name material) Robotiq MuJoCo refuses the file

Out of the box, neither converted model even loads in MuJoCo without manual fixing — and once you fix the plumbing, the physics is still silently wrong.

3 of the 4 defects are pure engineering diligence. The 4th (closed chains) is genuinely lossy — so TrueRig's job isn't to pretend loss doesn't happen, it's to preserve everything it can and report the rest honestly.

How it works

 URDF ─┐                          ┌─ MJCF
 MJCF ─┼─► frontend ─► IR ─► backend ─┼─ URDF      + validate(IR)  → physics checks
 USD  ─┘   (parse)   (lossless)  (emit) └─ USD      + report(loss_log) → what changed

The IR is frozen (truerig/ir.py) and is lossless by construction: frontends record all source data; backends drop only what the target can't express and log a LossEvent for each drop. See module docstrings for per-component contracts.

What works today

  • URDF ↔ MJCF — full bidirectional conversion
  • URDF / MJCF → USD — experimental (UsdPhysics articulation, inertia diagonalized losslessly); pip install truerig[usd]
  • validate · report · simcheck — physics sanity checks, a fidelity report you can gate CI on, and a behavioural round-trip check in simulation

Field-tested on 12 diverse robots — Unitree G1/H1/A1/B1/Go2, ANYmal C, Franka Panda, KUKA iiwa14, Allegro Hand, Cassie, Baxter, Fetch, Solo — plus the G1/Robotiq/Z1 golden set. All convert and load in MuJoCo with full inertia and closed-chain coupling preserved; degenerate source inertia is repaired and reported, never silently. 51 tests, CI on Python 3.10–3.12.

Usage

truerig convert robot.urdf robot.mjcf --report text --strict   # convert + fidelity report
truerig validate robot.urdf                                    # physics sanity checks
truerig simcheck robot.urdf robot.mjcf                          # behavioural round-trip in sim

Roadmap

Embedding USD mesh geometry (currently referenced by path) and a hosted demo at truerig.xyz. Early and open (MIT) — issues and PRs welcome.

Metadata

Release files for truerig 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for truerig 0.1.1
File Size Uploaded Provenance
truerig-0.1.1.tar.gz 39.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for truerig 0.1.1
File Interpreter ABI Platform
truerig-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 76.6 kB

Release files / truerig-0.1.1.tar.gz

Download URL truerig-0.1.1.tar.gz
Size 39.9 kB
Tags Source
SHA-256 checksum
How to use checksums
b898cc7da1086db3f12077d77ae00fa03b8d13824725f61e8c017185279890ac
BLAKE2b-256 checksum
How to use checksums
6dbd02ea13205ae20313115d4433859050ec54ad1d0489782d1de82faced08bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

Release files / truerig-0.1.1-py3-none-any.whl

Download URL truerig-0.1.1-py3-none-any.whl
Size 36.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0eda77ab7e67f0d4c8a827ec263414127a882f71b41faa526c12c6dd67c2d6e1
BLAKE2b-256 checksum
How to use checksums
ebf42c7f5dcf72b820fb11dee971db6df4d334df670c80668c19fc3fe2f717e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

Security for truerig 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for truerig-0.1.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page