URDF to MuJoCo Export & Simulation Worlds — ARMOR v0.12 Release Notes

This Wednesday will mark my 41st birthday. To mark the occasion, and with a heat wave passing through for the weekend, Rachel and I took a trip to Zumaia and Getaria, a pair of small sea-side towns to the west of Donostia. I brought the AR Mobile Robotics (ARMOR) mascot along for the ride, here he is posing for some photos in Augmented Reality (AR), with idyllic scenes of the Basque Country in the background.

Also to mark my 41st birthday, I am preparing for the very first full public release of ARMOR on the same day! There have been a lot of major updates to the app recently, which I tend to post on my LinkedIn account, which you should definitely follow if you want to keep up with my assortment of engineering projects. You might have also seen that I’ve adopted a “release notes” format, like this one, to announce new ARMOR builds and features. There are certainly many more things that I could add to make ARMOR the great engineering design and simulation app on iPhone that I know it will one day be. But, a birthday also makes for a great “pencils-down” moment, where for as much work as there is to be done, it’s as good a time as any to get the product out into the hands of the masses.

AR Mobile Robotics
Download on the App Store

armor.dc-engineer.com

Without further ado, one last beta-build-release-notes, before ARMOR goes live tomorrow.


Build a World, Not Just a Robot with One-to-One MuJoCo Export in ARMOR v0.12

ARMOR v0.12 is now live on TestFlight, and either it or a newer build will be open for full release tomorrow! It is the release where a project stops being a robot and becomes a scene. Up to now you could load, edit, and simulate a single URDF in isolation. With this build your robot lives in a world: it stands on a ground plane, you decide whether its base is bolted down or free to fall, you drop obstacles around it, and — most importantly — the physics you see on your iPhone is the same physics you get when you open the model on a desktop MuJoCo workstation.

Building a MuJoCo simulation world on iPhone in ARMOR

Robots now live in a simulation world

The core addition in v0.12 is the World: a lightweight environment description that wraps your robot. It carries gravity, the solver timestep, a ground plane, any obstacles, and a robot placement — the pose where your robot is dropped into the scene and whether its base is fixed (welded to the world) or free (a free-floating body subject to gravity and contact).

Under the hood the World serializes to a subset of SDF 1.7, so the field names will look familiar to anyone coming from Gazebo or Drake. ARMOR-specific extras live inside a <plugin name="armor"> block that standard SDF parsers simply skip. The practical upshot for you: a project is now a portable description of a simulation, not just a kinematic tree.

Setting a fixed or floating (free joint) robot base and pose in ARMOR's URDF world editor
Robot Placement Editor

Ground planes, obstacles, and props

The ground plane is both a physics surface and something you can actually see. You can enable contact with adjustable friction, then style it: a solid color or a tiled checkerboard reminiscent of MuJoCo’s default floor, your own colors, an opacity control, and a near-infinite, softly-shaded surface that receives shadows.

Configuring a MuJoCo-style checkered ground plane with friction and color in ARMOR
Ground Plane Appearance Controls

World objects round out the scene. Add a box, sphere, or cylinder, mark it static (an immovable obstacle) or dynamic (a free body with mass), and it is both rendered in the 3D view and compiled into the simulation — so your robot can push it, knock it over, or be blocked by it.

Dynamic world object colliding with a robot in ARMOR’s MuJoCo simulation

Edit the world right from the 3D view

Tapping the wizard button in the 3D view now opens a Scene editor that branches into Edit World and Edit Semantic. The world side is a guided, one-thing-at-a-time flow — ground plane, robot placement, world objects, and physics settings — and every change is reflected live in the view behind it.

ARMOR scene editor on iOS — edit the simulation world or the robot's SRDF semantics
Scene Editor Landing

URDF to MuJoCo export: what runs in ARMOR runs on desktop

Previously, the model ARMOR simulated on-device and the MJCF it exported were built by two different code paths. In v0.12 there is a single source of truth for turning your URDF and World into MuJoCo dynamics. A fixed base is welded the same way, a free base gets the same free joint, the ground plane and robot pose are baked in the same way, and obstacles are injected identically. Whether you press Play on your phone or open the exported `robot.xml` on a workstation, you are running the same model.

The export itself now carries the full world context: the floor (with a checker material that matches what you styled in-app), your obstacles, gravity, and timestep. And if you want to inspect exactly what you will get, the XML tab includes a compiled MJCF viewer that shows the same output the export produces — meshes already converted to MuJoCo-friendly OBJ/STL.

Compiled MJCF (MuJoCo XML) preview in ARMOR's XML tab, matching the URDF package export
MJCF viewer in the XML tab

Bridging the mobile–desktop gap with AR Mobile Robotics

ARMOR has always been about doing real robotics work from a device in your hand. v0.12 closes the loop: you can compose an entire scene in the field, trust that the simulation behaves the same way it will on your desktop, and export it when you get back to your workstation.

ARMOR v0.12 is available now on TestFlight. I would love to know what your worlds look like, and which desktop tools you are exporting to. Let me know how it fits into your workflow.


Try it Out

ARMOR v0.12 is available now, join the TestFlight beta, and let me know how the export workflow fits into your pipeline.

Related Reading

Leave a Reply

Your email address will not be published. Required fields are marked *