We Built a Full Robotics Developer Platform from Scratch — AI Generator, ROS 2 Architect, Physics Validator, Isaac Monitor, and More
One platform that removes every single friction point between a robotics engineer and a working simulation — from generating your first robot file to monitoring a GPU training cluster in real time. This is Robosynx.
The Problem We Set Out to Solve
Robotics development in 2025 is powerful — but the tooling around it is still fragile, tribal, and painful.
You want to test a new robot in NVIDIA Isaac Sim? You need to write URDF XML by hand. You want to move that robot to Isaac Lab for reinforcement learning? Now you need MJCF format, so you spend three hours refactoring XML. You want to validate that the physics won't explode your simulation? There's no standard tool. You want to write a ROS 2 node? Here are 200 lines of boilerplate to copy-paste from Stack Overflow.
And once training starts? You're SSH'd into a cloud server with five terminal windows open — one running nvidia-smi in a loop, one tailing logs, one watching reward curves — praying your tmux session doesn't die overnight.
We identified each of those pain points and built a dedicated product for every single one.
The result is Robosynx — a full-stack robotics developer platform deployed at Robosynx.com.
What Is Robosynx?
Robosynx is a web-based robotics developer platform with two major dimensions:
A suite of professional tools for writing, converting, validating, visualising, and deploying robot description files (URDF, MJCF, SDF) and ROS 2 packages — all from a browser.
Isaac Monitor — a complete real-time web dashboard that replaces every SSH session you maintain against your cloud GPU training server, giving you 9 Isaac Lab tabs and 5 Gazebo Harmonic tabs of full observability.
The Products We Built
1. AI Robot Generator — Text to Physics-Ready Robot in Seconds
Route: /generate
The flagship product. Type a description in plain English. Get a complete, physics-correct robot description file — URDF, MJCF, or SDF — ready to load into NVIDIA Isaac Sim, MuJoCo, or Gazebo.
This is not a template system that swaps placeholders. The backend sends your description to Claude running behind a Rust Axum server, with a carefully engineered system prompt that enforces correct inertia tensors, proper joint limit ranges, physically accurate mass distributions, and correct XML schema for each target format.
Supported output formats:
| Format | Extension | Best for |
|---|---|---|
| URDF | .urdf |
ROS 2, NVIDIA Isaac Sim, Gazebo |
| MJCF | .xml |
MuJoCo, Isaac Lab, PyBullet |
| SDF | .sdf |
Gazebo Harmonic / Ignition |
Example prompts that work:
- "A 6-DOF robotic arm with a cylindrical base, shoulder, elbow, and 3-axis wrist. Each link is 0.3 m long, 0.05 m diameter, 1.5 kg mass. Revolute joints with ±180° range. Suitable for Isaac Sim."
- "A 4-wheeled rover with differential drive, 0.5 m wheelbase, 0.3 m track width, 5 kg body mass, suitable for outdoor navigation"
- "A bipedal humanoid with 12 DOF, hip/knee/ankle joints, 65 kg total mass, for Isaac Lab RL training"
Each output includes a complete kinematic chain with inertials, visual geometries, collision geometries, and correctly typed joints — production-ready, not illustrative. You can download it immediately, drag it into Isaac Sim, and it loads.
The AI Generator ships with pre-computed example results for five robot archetypes (6-DOF arm, quadruped, wheeled rover, humanoid, gripper) so users in bandwidth-limited environments get an immediate sense of the output quality without touching the backend.
2. Format Converter — Lossless Universal Conversion
Route: /convert
You finished training on MuJoCo using MJCF. Now your team wants to deploy to ROS 2 with URDF. You could spend three hours manually porting the XML. Or you click Convert.
The Format Converter does lossless bidirectional conversion between URDF, MJCF, and SDF. Lossless means:
- Inertia tensors preserved (
ixx,iyy,izz,ixy,ixz,iyz) - Joint limits, effort, velocity, damping, friction — all preserved
- Mass values and centres of mass — preserved
- Visual and collision geometries — preserved
- Joint types (revolute, prismatic, continuous, fixed) — mapped correctly
The conversion pipeline runs on the same Rust backend using Claude as the conversion engine, with a prompt specifically tuned for format translation. The output is rendered into a syntax-highlighted code panel and can be copied or downloaded in one click.
Visual output integration: After converting, the result can be rendered directly in the WebGL Visualizer (see below) without leaving the page. You see your converted robot in 3D immediately.
Supported paths:
URDF ↔ MJCF
URDF ↔ SDF
MJCF ↔ SDF
3. Physics Validator — Deep Structural Analysis with a Score Ring
Route: /analyser
Your simulation is exploding. A robot link is shooting into orbit at 1,000 m/s when the physics engine starts. Why? Nine times out of ten it's a broken inertia matrix, a negative mass somewhere, or a malformed kinematic chain.
The Physics Validator catches this before you waste time loading it into a simulator.
Paste your URDF, MJCF, or SDF. The Rust backend parses the file structurally and returns:
- A physics score from 0–100 displayed as an animated SVG ring — green (80+), amber (50–79), red (below 50)
-
Errors — blocking problems: negative mass, missing
<inertial>tags on dynamic links, broken joint references - Warnings — non-blocking but suspicious: unreasonably low/high inertia values, joint limits that may cause instability, missing friction/damping
- Info — structural metadata: robot name, link count, joint count, joint types detected, presence of visual/collision/inertial tags
What the backend checks:
- All joint parent/child link references exist
- Inertia matrices are positive definite (no negative eigenvalues)
- Mass values are physically plausible (not zero, not negative, not unreasonably large)
- All links that are non-fixed have inertials
- Joint limits are correctly ordered (lower < upper)
- XML is syntactically well-formed
Visual integration: After validation, you can click "View in Visualizer" to render the robot in 3D in the same session. Stack the validator and visualizer together to audit geometry and physics in one workflow.
This is the tool that turns "why is my simulation broken" debugging from a 4-hour ordeal into a 10-second answer.
4. WebGL Robot Visualizer — Full 3D Viewer in the Browser
Route: /visualize
Loading a robot into Isaac Sim or RViz just to check if the geometry looks right requires a working simulator installation. The Robosynx Visualizer requires a browser tab.
It's a complete THREE.js + URDF Loader based 3D viewer that:
- Loads URDF files with full mesh support (STL, Collada
.dae, OBJ, GLTF/GLB) - Parses Xacro macros before loading
- Renders in four modes: Solid, Wireframe, X-Ray, Normals
- Provides interactive joint posing — every revolute and prismatic joint gets a slider. Drag joints through their range of motion interactively
- Shows a full joint info panel with joint name, type, lower/upper limits for each joint
- Model info panel — link count, joint count, mesh counts by type
- Orbit controls — drag to rotate, scroll to zoom, right-click to pan
- One-click screenshot — exports the current view as a PNG
- Upload your own robot — drop a URDF file + mesh folder, or use the GitHub raw URL integration
- Sample robots built in: NASA T12 JPL rover (primitive-only, loads instantly) and Unitree Go2 quadruped (with STL meshes from the official Unitree ROS repo)
The Visualizer is a standalone component embedded across the platform — after you generate a robot, after you convert a format, after you validate. You never have to leave the browser to confirm your robot looks physically reasonable.
5. ROS 2 Node Builder — Full Package Architect in 60 Seconds
Route: /build/ros2
This is the tool that genuinely eliminates the part of ROS 2 development everybody hates: the boilerplate.
Setting up a new ROS 2 Python package involves: creating the package directory, writing package.xml with all the right dependency tags, writing setup.py with entry points, structuring __init__.py, writing the actual node Python file with the correct class structure and rclpy init/spin/shutdown pattern, writing a .launch.py file with the right LaunchDescription structure, and doing all of this for every node in the package.
That process takes 30–45 minutes per package even for experienced engineers.
The ROS 2 Node Builder (internally called the "Workspace Architect") does all of that in under 60 seconds — entirely in the browser with zero server calls. Everything is pure client-side code generation.
Here's what you configure:
Package settings:
- Package name
- Description
- Maintainer name + email
- License (Apache-2.0, MIT, BSD-3-Clause, GPL-3.0, LGPL-3.0, Proprietary)
- Version
- ROS Distro target:
humble,iron,jazzy, orrolling
Per node (add as many nodes as you need):
- Node name (auto-converted to snake_case for files, PascalCase for class names)
- Publishers — topic name, message type, QoS depth
- Subscribers — topic name, message type, QoS depth
- Timers — rate in Hz, callback name
- Parameters — name, type (string/int/double/bool), default value
Supported message types (35+):
The builder ships with a curated set of the most commonly used ROS 2 message types pre-loaded, covering every robotics use case:
std_msgs, geometry_msgs, nav_msgs, sensor_msgs,
sensor_msgs/msg/PointCloud2, sensor_msgs/msg/LaserScan,
sensor_msgs/msg/JointState, sensor_msgs/msg/Imu,
trajectory_msgs, visualization_msgs, diagnostic_msgs
What gets generated:
For a package with N nodes, the output is a complete, ready-to-build Python package:
| File | Content |
|---|---|
package.xml |
Format 3 schema, all <depend> tags auto-derived from message type packages |
setup.py |
find_packages(), data files, entry_points for all nodes |
{package_name}/__init__.py |
Empty but present |
{snake_node_name}.py |
Full rclpy Node class — imports, __init__, publishers, subscribers, timer callbacks, parameter declarations, main(), if __name__ == '__main__'
|
launch/{package_name}.launch.py |
LaunchDescription with a Node() action for every node in the package |
README.md |
Auto-generated with node topology table, topics, timers, params, and run commands |
Example generated node skeleton:
#!/usr/bin/env python3
"""camera_processor — auto-generated by Robosynx ROS 2 Architect."""
import rclpy
from rclpy.node import Node
from sensor_msgs.msg import Image
from geometry_msgs.msg import Twist
class CameraProcessor(Node):
def __init__(self) -> None:
super().__init__('camera_processor')
self.get_logger().info('CameraProcessor started')
self._raw_image: Image | None = None
self.declare_parameter('confidence_threshold', 0.85)
self.cmd_vel_pub = self.create_publisher(Twist, '/cmd_vel', 10)
self.create_subscription(Image, '/camera/raw', self.raw_image_callback, 10)
self.create_timer(0.05, self.process_callback) # 20 Hz
def raw_image_callback(self, msg: Image) -> None:
self._raw_image = msg
def process_callback(self) -> None:
# TODO: implement process_callback at 20 Hz
pass
def main(args=None) -> None:
rclpy.init(args=args)
node = CameraProcessor()
try:
rclpy.spin(node)
except KeyboardInterrupt:
pass
finally:
node.destroy_node()
rclpy.shutdown()
All of that — generated from clicking "Add Publisher", "Add Subscriber", "Add Timer" in the UI. Click Download, get a .zip file, unzip into your ROS 2 workspace, run colcon build, and it builds clean with no modifications required.
AI enhancement: The builder also ships an AI mode (/api/ros2-pkg on the backend) — describe your ROS 2 package in plain English and the backend generates the full node topology, then the client-side code generators produce the actual files. Natural language to a buildable ROS 2 package.
The Educational & Reference Stack
Beyond the tools, Robosynx ships a complete knowledge base for robotics developers:
NVIDIA Stack Deep-Dive
An interactive, five-layer breakdown of the full NVIDIA software stack — from silicon to robot:
| Layer | Contents |
|---|---|
| Layer 0: Silicon | H100/H200 SXM, RTX 4090/5090, Jetson Orin, DGX H100, GB200 NVL72 |
| Layer 1: CUDA | CUDA C/C++, PTX assembly, NVCC compiler, Nsight Systems |
| Layer 2: Math Libraries | cuDNN, cuBLAS, NCCL, cuSPARSE, cuFFT, Thrust |
| Layer 3: Inference | TensorRT, Triton Inference Server, TensorRT-LLM, ONNX Runtime |
| Layer 4: Robotics | Isaac ROS 2, Isaac Sim, Isaac Lab, Omniverse USD, PhysX 5 |
Each layer has an expandable detail panel explaining: why NVIDIA's moat at that layer exists, how the technology works mechanically, and which tools belong to it. This is written for engineers who want to understand the full stack, not just the surface API.
NVIDIA Isaac Sim Guide — 14 Sections
A comprehensive technical reference for Isaac Sim covering:
- Isaac Sim Overview (architecture, install, USD stage)
- Scene & Stage Setup (prims, physics scene)
- Robot Import & Config (URDF/USD, articulations, joints)
- All Sensors Deep-Dive (RGB, Depth, LiDAR, IMU, Contact)
- PhysX Physics Engine (rigid body, joints, materials)
- Controllers & Articulation (position, velocity, effort, PD)
- OmniGraph (visual scripting, Python nodes)
- ROS 2 Bridge (topics, TF, clock, Nav2 integration)
- Synthetic Data Generation (randomization, annotations, SDG)
- Isaac Lab RL Training (environments, reward functions, PPO)
- Navigation & Planning (Nav2, costmaps, path planning)
- Manipulation Pipeline (grasp, cuMotion, motion planning)
- Real2Sim2Real Pipeline (sim-to-real transfer, calibration)
- Performance & Scaling (headless, multi-GPU, benchmarks)
Robotics Learning Roadmap
A multi-track structured learning roadmap for robotics engineers — from beginner Linux/Python fundamentals through intermediate ROS 2, simulation, and planning, to advanced GPU acceleration and production deployment. Each node has estimated learning time, skills list, and linked resources.
ROS 2 Concept Guide
A companion reference to the Node Builder that covers ROS 2 architecture, topics vs services vs actions, QoS policies, the DDS middleware, TF2, and the ros2 CLI.
Robotics Feed
A live community section with:
- GitHub Repo Tracker — live stars, forks, and descriptions for key robotics repos: PythonRobotics, ros2/ros2, NVIDIA-Omniverse/IsaacGymEnvs, google-deepmind/mujoco, and more — with in-app README rendering
- Articles — curated robotics content with deep-links into the platform's own tools
- Updates — platform changelog and announcements
Isaac Monitor — The Dashboard That Replaces 5 SSH Sessions
This is the second major product of the platform, and it grew out of a very specific problem.
NVIDIA Isaac Lab is genuinely impressive. It runs massively parallelised robot learning — training a humanoid to walk in minutes on a single A10G. But the tooling around the training loop is entirely terminal-based. You watch reward numbers scroll by, grep through logs, and run nvidia-smi manually to check VRAM. For a team running dozens of training runs across a cloud cluster — it becomes chaos.
Isaac Monitor is a full-stack web application that runs alongside an Isaac Lab + Gazebo Harmonic installation on a cloud GPU server, exposing a clean real-time dashboard accessible from any browser.
Architecture:
Isaac Lab / Gazebo → Python Bridge (gazebo_bridge.py)
↓
Rust Axum backend :3001
REST + WebSocket APIs
↓
React frontend :5173
Tech: Rust (Axum) backend with REST and WebSocket APIs, React frontend. It runs headlessly — no monitor required — on any cloud instance where Isaac Lab is installed. We run it live on an AWS A10G with NVIDIA driver 580.126.09 and Isaac Lab 2.3.2.
The 9 Isaac Lab Tabs
Tab 1 — System: Pre-flight Check + Live GPU Telemetry
Before wasting 45 minutes on a training run that fails because of a broken Python environment, Isaac Monitor runs a full pre-flight check. One click verifies:
- Isaac Lab binary availability
- NVIDIA A10G VRAM — 23 GB available
- GPU driver version
- Disk space
- Python interpreter integrity
Every check returns green or red. No ambiguity.
Alongside pre-flight, the System tab streams live A10G GPU telemetry at 2-second intervals: utilisation %, temperature (°C), power draw (W), VRAM usage as a rolling bar chart. You know your GPU's state at all times, from any browser, anywhere.
Tab 2 — Dashboard
Single-glance training overview: active Isaac Lab processes, live reward curves, server health metrics. If training is diverging, you see it here before you'd ever catch it in a terminal log.
Tab 3 — History
Chronological event log of everything that has happened on the training server — every command executed, training event, error, and system message — scrollable, full-context, no log file hunting.
Tab 4 — Run History: 15 Training Runs Logged
A full database of every training run ever launched from this server. Every record includes:
- Task name (e.g.
Isaac-Velocity-Rough-H1-v0,Isaac-Humanoid-v0) - Status: running / completed / stopped / failed
- Number of parallel environments (1, 16, 64, 512...)
- Max iterations configured
- Start timestamp
Filter by task, tag runs, compare reward curves across runs side by side. When a run fails at iteration 300 and you need to know what was different from the last successful run — this is where you go.
Production database: 15 training runs logged, including Unitree Go2 flat terrain, H1 rough terrain locomotion, Isaac Humanoid, and more.
Tab 5 — Launch: GUI Training Launcher
No more editing YAML files or constructing long CLI commands. The Launch tab is a configuration-driven GUI that lets you set up and fire off Isaac Lab training runs from the browser:
- Task selector — Anymal-C, Humanoid, Unitree-Go2, H1, and more
- RL library — RSL-RL or RL-Games
- Number of environments — 1, 16, 64, 512, 4096
- Max iterations — configurable
- Random seed — configurable
- Headless toggle — on/off
As you configure, a live command preview updates in real time showing the exact CLI command that will run. Hit Launch. The server executes it. Done — no SSH required.
Tab 6 — Robot Assets Browser
Pre-loaded browser of demo robot model files ready to pipeline into Isaac Sim:
| Asset | Format | DOF |
|---|---|---|
ant.xml |
MJCF | 8-DOF |
half_cheetah.xml |
MJCF | 6-DOF |
simple_pendulum.urdf |
URDF | 2-DOF |
The full pipeline is shown inline in the UI: URDF/MJCF → Isaac Sim Importer → .usd → Task Config → RSL-RL train. Upload your own robot model file and walk it to training without opening a terminal.
Tab 7 — Models: Checkpoint Browser + Sim Preview
All saved policy checkpoints live here. Browse by run, by task, by timestamp. Select a checkpoint and launch Sim Preview — an in-browser live simulation of your trained policy running in the simulator. See your robot walking (or falling over) without any additional tooling.
Tab 8 — AI Chat: Model Context Protocol Integration
This is the tab that became unexpectedly indispensable once deployed.
Isaac Monitor ships a built-in AI assistant that connects directly to the training runtime via MCP (Model Context Protocol) tools. The AI has actual tool access — it can read live GPU stats, inspect training logs, compare run histories, launch training jobs, and manage robot assets — all from natural language.
Queries it handles in production:
"Give me a full training snapshot — GPU, status, and latest rewards"
→ Returns live GPU utilisation %, VRAM, current reward mean for each active run"Why did my last training run stop early?"
→ Pulls the relevant log segment, identifies the stopping cause"Analyse my latest run — are rewards plateauing?"
→ Reads reward history, returns analysis with a concrete recommendation"List all saved models we have so far"
→ Returns full checkpoint inventory with metadata
Four query categories built in: Live Status, Diagnose & Fix, Analyse & Compare, Control & Assets. It has real tool access to the training runtime — not a chatbot layered on top of a static UI.
Tab 9 — Sim Preview
Dedicated in-browser live simulation preview. Load any saved policy checkpoint and watch it run in real time. No VNC. No remote desktop. Just a browser tab.
The 5 Gazebo Harmonic Tabs
Isaac Monitor also provides full monitoring and control of Gazebo Harmonic simulations — a second major robotics simulator in the NVIDIA + ROS 2 ecosystem.
Gazebo Tab 1 — Overview
Shows the complete simulator state: running/stopped, loaded world file, active topic count, simulator PID, Gazebo version, WebSocket bridge address (ws://localhost:8767), REST API endpoint, a real-time RTF (Real-Time Factor) chart, and the active topics panel.
Data flow architecture displayed inline:
gz sim → gz-transport → gazebo_bridge.py → Rust Axum :3001 → React UI :5173
Gazebo Tab 2 — Topics
Once Gazebo is running, the Topics tab shows every active gz-transport topic in real time — latency per topic, message type, publish rate. Full observability into what the simulator is actually doing without a terminal window.
Gazebo Tab 3 — Spawn Models
Drop URDF or SDF robot models directly into the running Gazebo world from the browser. Select the file, configure the spawn pose (x, y, z, roll, pitch, yaw), hit Spawn. The robot appears in the simulation — no terminal command required.
Gazebo Tab 4 — Worlds
A world file manager for Gazebo Harmonic. Switch between SDF worlds without stopping the simulator. Manage world configurations and apply them entirely from the browser.
Gazebo Tab 5 — Logs
Streamed Gazebo simulation logs: Real-Time Factor at each timestep, physics constraint solver errors, topic activity. All searchable. All real time.
The Numbers
- 9 Isaac Lab tabs + 5 Gazebo Harmonic tabs = 14 total monitoring views
- 15 training runs logged in the live run history database
- 35+ ROS 2 message types supported in the Node Builder
- 3 robot formats (URDF, MJCF, SDF) across all four core tools
- 4 mesh formats supported in the Visualizer: STL, Collada, OBJ, GLTF/GLB
- 5 NVIDIA Stack layers documented in the interactive explorer
- 14 Isaac Sim sections in the comprehensive guide
- <50 ms backend latency for validation and conversion (Rust)
- 1 browser tab replaces every SSH session you were keeping open
- 100% client-side code generation in the ROS 2 Node Builder — zero server calls for the core generation pipeline
- NVIDIA A10G with 23 GB VRAM monitored live in production
Why Rust for the Backend?
A Rust (Axum) backend was a deliberate choice. Robotics files — especially URDF/MJCF/SDF — are XML and can be large. Parsing, validating, and transforming them needs to be fast enough that developers don't feel latency in the tool loop. Rust gives sub-millisecond parse times, memory safety without a garbage collector, and native async I/O via Tokio. A typical validation request is processed and returned in under 10 ms round-trip.
The Axum framework routes four core API endpoints: /api/generate, /api/validate, /api/convert, and /api/ros2-pkg. All four call the Claude AI client (via Anthropic's API with the claude-opus model) with domain-specific system prompts tuned for each task, then clean and return the result. The CORS configuration is open for both local development and production frontend domains.
Who Is This For?
Robotics researchers at universities or research labs running Isaac Lab on cloud GPU infrastructure who need more visibility than a terminal provides — especially teams where multiple engineers are sharing a single training cluster.
ML engineers building robot policies who want to prototype, validate, and iterate on robot files — URDF to simulation to training — without switching between eight different tools.
ROS 2 developers who want to eliminate boilerplate and get a complete, buildable Python package scaffold in under 60 seconds.
Robotics startups that want a professional-grade dashboard for their training infrastructure without building one from scratch.
Students learning the NVIDIA robotics stack who want structured, interactive reference material alongside practical tools.
What Makes This Different
Every tool on Robosynx was built because we hit the pain point in real development work — not because we wanted to build a CRUD app. The Physics Validator exists because simulations were exploding and every debugging session took five hours by hand. The Format Converter exists because switching from ROS 2 to Isaac Lab meant rewriting robot files. The Node Builder exists because we counted the boilerplate lines in a new ROS 2 package and got angry. Isaac Monitor exists because we were running five SSH sessions against a single cloud GPU and running nvidia-smi manually every two minutes.
The platform's principle: eliminate exactly the pain, nothing more, nothing less.
Try It
The full platform is live at robosynx.com.
All four core tools (AI Generator, Format Converter, Physics Validator, WebGL Visualizer) are free to use. The ROS 2 Node Builder is fully client-side and free. Educational content is open.
Isaac Monitor is available for teams under a custom deployment model — we handle the server-side installation alongside your Isaac Lab setup.
📧 support@istrux.tech — Subject: Isaac Monitor Deployment or Platform Enquiry
Built by the team at Robosynx. We're building the infrastructure layer for cloud robotics development.
Tags: #robotics #nvidia #isaaclab #ros2 #rust #react #reinforcementlearning #urdf #mjcf #gazebo #machinelearning #mlops #simulation #mcp #anthropic





Top comments (0)