OpenLegged/URDF-Studio
URDF-Studio is a web-based visual URDF robot modeler with 3D workspace, structured skeleton/detail/hardware workflows, motor library integration, MuJoCo export, and AI assistance.
URDF Studio – Browser‑based robot authoring & AI assistant
What it is – A web application for creating, editing, visualising and exporting robot description files (URDF, MJCF, USD, SDF, Xacro, etc.). It bundles a full‑featured 3‑D editor with a React‑based UI, a reusable RobotCanvas component, and an optional AI assistant that can generate robot models from natural‑language prompts, inspect them, and produce PDF/CSV reports.
Core capabilities
| Area | What you can do |
|---|---|
| Topology editing | Build kinematic trees, add/remove links and joints, edit parent‑child relationships. |
| Geometry & collision | Import or author visual meshes, create collision meshes, run optimisation passes, see measurements in‑scene. |
| Hardware configuration | Set motor specs, transmission ratios, damping, friction and other robot‑hardware metadata. |
| Multi‑robot assembly | Combine several robot definitions in a single workspace, create bridge joints, manage component libraries. |
| Rich 3‑D view | React‑Three‑Fiber canvas with transform controls, helper overlays, snapshot capture, and runtime viewers for URDF, MJCF and USD (via a WASM USD build). |
| Import / export | Load single files, folders, ZIP bundles or the proprietary .usp project format; export to URDF, MJCF, USD, SDF, Xacro, CSV/BOM, PDF, ZIP, etc. |
| AI assistant (optional) | Generate a robot from a textual description, run automated inspection against configurable criteria, get optimisation suggestions, and export PDF/CSV reports. |
| Worker‑backed pipelines | Heavy import/export work (e.g., USD hydration, binary archive conversion) runs in web‑workers for a responsive UI. |
| Reusable library | The @urdf‑studio/react-robot-canvas package lets other React apps embed the same viewer without the full Studio UI. |
Tech stack (as described in the repo)
- Frontend: React 19, TypeScript 5, Vite 6
- 3‑D: Three.js 0.181, React‑Three‑Fiber, @react‑three/drei
- State: Zustand
- Styling: Tailwind CSS
- Parsing / export: Custom pure‑function parsers for URDF, MJCF, USD, Xacro, SDF, mesh compression, STL handling, etc.
- Packaging: JSZip, jsPDF, libarchive.js
- AI: OpenAI SDK (fallback to Gemini) with prompt templates for generation and inspection
- WASM: USD runtime compiled to WebAssembly (requires cross‑origin isolation headers)
Typical workflow
- Start the app (
npm run dev) and open the local URL. - Create or import a robot file (URDF, MJCF, USD, etc.).
- Use the Editor tabs to modify topology, geometry, or hardware parameters.
- Visualise changes instantly in the 3‑D canvas; capture snapshots or export the scene.
- (Optional) Ask the AI to generate a new robot from a description or to run an inspection; download the generated PDF/CSV report.
- Export the final model in any of the supported formats or save the whole workspace as a
.usparchive for later reuse.
Getting started (quick‑start from the README)
# clone and install
git clone https://github.com/OpenLegged/URDF-Studio.git
cd URDF-Studio
npm install
# run the development server
npm run dev # opens http://127.0.0.1:3000
- To enable AI features, set
OPENAI_API_KEY(orGEMINI_API_KEY) in a.env.localfile. - For USD loading on a LAN you need a secure context (HTTPS or Chrome’s trusted‑origin flag) because the WASM runtime uses
SharedArrayBuffer.
Who might use this?
- Robotics researchers & engineers needing a fast, visual way to prototype URDF/MJCF models without hand‑editing XML.
- Educators & students who want an interactive playground for robot kinematics and collision testing.
- Simulation pipeline developers who need to convert between formats (URDF ↔ MJCF ↔ USD ↔ SDF) and generate assets programmatically.
- Product teams building web‑based robot visualisers can embed the
react‑robot‑canvascomponent directly. - AI‑augmented design teams interested in generating robot concepts from natural language.
License & acknowledgments
- Licensed under the Apache 2.0 license.
- Supported by D‑Robotics.
All information above is taken directly from the repository’s README; no additional features have been inferred.
Related
- Project
- Project
- Project
- Project
- Project