Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>URDF StudioNew to Visual Studio Code? Get it now.
URDF Studio

URDF Studio

deyuf

|
82 installs
| (1) | Free
Inspect and preview URDF and xacro robot models in VS Code.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

URDF Studio

URDF Studio

Inspect, visualize, and interact with URDF & xacro robot models — directly inside VS Code.

Marketplace Version Downloads Installs Rating License


Features

🖥️ Interactive 3D Viewer

A full Three.js viewport embedded in VS Code with orbit, pan, and zoom controls. Supports preset camera angles (Front, Right, Top, Iso) and a one-click Fit to frame the entire robot.

URDF Studio viewer with Franka Research 3 loaded

The 3D viewport with a Franka Research 3 loaded; toolbar, joints panel, and link/joint counts on the right.

🤖 URDF & Xacro Support

Opens .urdf, .urdf.xacro, and .xacro files natively as a custom editor. Xacro files are expanded on-the-fly with full argument support — edit xacro args and hit Reload xacro to see changes instantly.

🦾 Joint Controls

Interactive sliders and numeric inputs for every movable joint. Supports revolute, continuous, and prismatic joint types with proper limits. Toggle Ignore limits mode to freely explore the full range of motion.

📦 ROS Package Resolution

Automatically discovers package.xml files across your workspace and resolves package:// URIs for meshes. Add custom package search roots via settings for multi-workspace setups.

🎨 Render Modes

Switch between three geometry layers:

Mode Description
Visual Render visual meshes (default)
Collision Render collision geometry only
Both Overlay both layers simultaneously

Toggle wireframe mode to inspect mesh topology. Show or hide the grid and axes helpers.

Collision render mode for Franka FR3

Collision-only render mode — FR3's self-collision primitives (capsules and cylinders) replace the detailed visual meshes.

🌲 Link Tree & Inspector

Browse the full kinematic tree in a collapsible hierarchy. Click any link in the tree or directly in the 3D viewport to inspect it — selected links are highlighted with a tight bounding box around the link's own visual mesh, and the inspector shows parent/child joints, joint type, axis, limits, mass, center of mass, and associated meshes.

The side panel is organised into tabs: Joints, Inspector, Checks, Links, and Tools.

Inspector with fr3_link4 selected

Selecting fr3_link4 highlights just that link's visual mesh with a tight yellow box; the inspector panel shows its parent joint, axis, limits, child joints, and mesh paths.

🧭 TF Frames & Inertia Overlays

  • Frames — overlay per-link TF axes for the selected link only or for every link, useful for debugging joint origins and link orientations.
  • Inertia — visualize each link's inertia ellipsoid and center of mass alongside the geometry, computed from the URDF <inertial> tags.

🩺 Model Diagnostics

Real-time analysis of your robot model surfaced as VS Code diagnostics (errors, warnings, info). Catches issues like:

  • Missing mesh files
  • Undefined joints or links
  • Xacro expansion problems
  • Invalid joint limits

Diagnostics also appear in the Checks panel inside the preview for quick triage.

📐 SRDF & Named States

Load SRDF or YAML semantic files to define joint groups and named states (e.g., "home", "ready", "tucked"). Apply named states with a single click to pose the robot instantly.

🛠️ SRDF Authoring — Disable Collisions

From the Tools tab, run a Monte-Carlo sampling pass over the joint space to find link pairs that never collide in any sampled pose. The result can be written directly into an SRDF file as <disable_collisions> entries — the standard input MoveIt expects for self-collision filtering.

🎯 Reachability Cloud

Pick a tip link and a sample count, and the Tools tab generates a workspace point cloud by sampling random joint configurations and recording the tip's world position. Useful for visualizing reach envelopes or comparing arm designs.

💾 Pose Save, Bookmarks & Export

  • Save Pose — persists the current joint configuration and camera so it's restored on next open.
  • Bookmarks — save any pose under a name (e.g. "ready", "tucked") and reapply it from the toolbar dropdown.
  • Export Pose — opens a JSON document with the full joint pose and camera snapshot for use in launch files or configuration.

📸 Screenshot Capture

Capture a PNG screenshot of the current viewport and save it to your workspace. Perfect for documentation, PRs, or sharing robot configurations.

⚙️ Mesh Format Support

Loads common robotics mesh formats out of the box:

  • STL — with auto-generated normals
  • COLLADA (.dae)
  • OBJ
  • glTF / GLB

🔧 Configurable Up Axis

Set the world up axis to +X, +Y, or +Z depending on your robot's coordinate convention. The grid, camera, and orbit controls adjust automatically.

🧠 Language Services for URDF & Xacro

Beyond the 3D preview, URDF Studio registers editor language features for .urdf, .urdf.xacro, and .xacro files:

  • Hover — see joint/link details and resolved mesh paths inline.
  • Go to Definition / Find References — jump between joint parent/child references and their link declarations.
  • Document Symbols / Outline — links and joints listed in the breadcrumb and outline view.
  • CodeLens & Quick Fixes — actionable hints for common authoring issues.

Quick Start

  1. Install the extension from the VS Code Marketplace
  2. Open any .urdf or .xacro file
  3. The 3D preview opens automatically, or use the command URDF Studio: Open Preview

Commands

Command Description
URDF Studio: Open Preview Open the 3D preview for the active URDF/xacro file
URDF Studio: Recenter Reset the camera to frame the robot
URDF Studio: Export Pose Export current joint pose as JSON
URDF Studio: Capture Screenshot Save a PNG screenshot of the viewport
URDF Studio: Sample Reachability Cloud Sample random joint poses and visualize the tip workspace

Settings

Setting Default Description
urdfStudio.packageRoots [] Additional directories to scan for ROS packages
urdfStudio.defaultXacroArgs {} Default argument values for xacro expansion
urdfStudio.defaultRenderMode "visual" Initial geometry layer (visual, collision, both)
urdfStudio.upAxis "+Z" World up axis (+X, +Y, +Z)
urdfStudio.semanticFiles [] SRDF or YAML files for joint groups and named states

Development

npm install
npm run compile

Open this folder in VS Code and press F5 to launch the Extension Host. Use URDF Studio: Open Preview on any .urdf, .urdf.xacro, or .xacro file.

npm run test:unit       # Run unit tests
npm run test:renderer   # Run Playwright renderer tests

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft