Skip to main content

Robot-model conversion (URDF/MJCF/USD) you can trust — with a fidelity report of everything it changed.

Project description

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.

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.

Status

Early scaffold. Component contracts are defined as stubs; see the task board. Baseline defect harness that motivates the project: examples/stress_baseline.py.

Quickstart (target UX)

truerig convert robot.urdf robot.xml --report text --strict
truerig validate robot.urdf
truerig simcheck robot.urdf robot.xml

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

truerig-0.1.0.tar.gz (33.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

truerig-0.1.0-py3-none-any.whl (31.5 kB view details)

Uploaded Python 3

File details

Details for the file truerig-0.1.0.tar.gz.

File metadata

  • Download URL: truerig-0.1.0.tar.gz
  • Upload date:
  • Size: 33.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for truerig-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f16c74e682963d5ff540ab72b6612bde3649c5c44a5cc753b14a8ad1f10886c8
MD5 1e93230c48eb099f98654578a0f81665
BLAKE2b-256 0b7514dc5d2b6d1bee2947ff6d47a70f3e6a0a106cc9260ab20049b9f755e601

See more details on using hashes here.

Provenance

The following attestation bundles were made for truerig-0.1.0.tar.gz:

Publisher: publish.yml on Sputnikboi/truerig

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file truerig-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: truerig-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 31.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for truerig-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ec8a4f2dc6370c3a7cc3704caec78c8db1f71d414b009a6da9a6afddf5737ac8
MD5 3891a6bb0511aeba2e5baf4756b02d43
BLAKE2b-256 ca7afeff38d6eece8014a4d3000667d19b6edc7cc0e3d31a3a0bc6c94655327c

See more details on using hashes here.

Provenance

The following attestation bundles were made for truerig-0.1.0-py3-none-any.whl:

Publisher: publish.yml on Sputnikboi/truerig

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page