About urdfbase
Tools for the files a robot is described in — opened, checked, converted and simulated in a browser tab. Built and run by one person, which is why every page here says what it cannot do as plainly as what it can.
Why it exists
A robot description is a file full of numbers nobody checks. Masses, inertia tensors, joint limits, effort ratings — they are typed once, exported from CAD, or copied from another robot, and then everything downstream believes them. The failure is never loud: the model loads, the render looks right, and the simulation behaves oddly for a week before somebody suspects the file rather than the controller.
Every tool here exists to make one of those silent things visible. The viewer checks a model as it opens — inertia against geometry, mesh paths that only resolve on one machine, a robot stated in millimetres where metres were meant. The motion editor runs a movement through the motors and reports the torque each joint was asked for against the effort its own description declares. The lab puts it under gravity and contact. Every conversion states what it could not carry across, on the page and again inside the file you download.
What it will not do
- Claim a clean conversion. Formats disagree — MJCF has no velocity limit on a joint, USD stores inertia as a rotated diagonal, MuJoCo merges fixed joints. Anything that reports no losses is hiding them.
- Upload your robot to look at it. Drawing and simulation happen in your tab. A model reaches the server only when it has to be converted, and those files are deleted after a day.
- Invent numbers. A joint with no declared limits is reported as having none, not given a plausible range. A description with no effort figures cannot be checked against them, and says so.
- Pretend the browser is a workstation. MJX, the Python API and compiled plugins are not here, and the MuJoCo page says which is which.
Who builds it
What is other people's
The physics engine is MuJoCo, Apache 2.0, by DeepMind. The robot models in the catalogue belong to the teams that built them and keep their own licences — every model page links to the folder it came from. The conversion losses reported here are measured against real files, not copied from anyone's documentation.
The command-line checker, check-clips.mjs, is the same code this site runs rather than a fork of it, so a verdict in your build and a verdict in the browser cannot drift apart.
Getting in touch
Email [email protected], or Telegram. What helps most in a bug report is on the contact page.