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

  1. Start the app (npm run dev) and open the local URL.
  2. Create or import a robot file (URDF, MJCF, USD, etc.).
  3. Use the Editor tabs to modify topology, geometry, or hardware parameters.
  4. Visualise changes instantly in the 3‑D canvas; capture snapshots or export the scene.
  5. (Optional) Ask the AI to generate a new robot from a description or to run an inspection; download the generated PDF/CSV report.
  6. Export the final model in any of the supported formats or save the whole workspace as a .usp archive 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 (or GEMINI_API_KEY) in a .env.local file.
  • 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‑canvas component 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