ARMOR started with a clear premise: the device in your pocket should be a fully capable spatial robotics workstation. With v1.0 and our native macOS release, we brought multi-robot MuJoCo 3.9 worlds and cross-device syncing to your Apple ecosystem.

The latest update, ARMOR v1.1 brings workflow improvements for robotics engineers who work directly with complex URDF and Xacro descriptions, advanced control architectures, and a brand new web-based robot gallery with deep links. Whether you are inspecting a robot on your iPhone in the lab or simulating a multi-robot cell on your Mac, v1.1 makes importing, editing, and simulating robot designs smoother than ever.
Check out more posts about ARMOR
- ARMOR Arrives on Mac with Native MuJoCo Simulation Across All Your Apple Devices
- Multi-Robot MuJoCo Worlds on iOS — ARMOR is Live on the App Store!
- URDF to MuJoCo Export & Simulation Worlds — ARMOR v0.12 Release Notes
- Universal 3D Model Export to USDZ, GLB, DAE, OBJ, and STL — ARMOR v0.11 Release Notes
- Native SRDF Editing on iOS and Robot XML Export – ARMOR v0.10 Release Notes
Robot Gallery Deep Links — URDF From Web to Workspace in One Tap
Finding and testing new robot models shouldn’t require manual file transfers. In v1.1, ARMOR introduces gallery deep linking:

- Universal Links & Custom Schemes: Tapping “Open in ARMOR” on web galleries downloads robots and initializes projects instantly using custom schemes that route directly into the ARMOR app.
- Secure Manifest Validation: Manifest URLs are strictly derived from verified slugs, rejecting unauthorized hosts and direct API endpoints. Downloads execute 5-at-a-time with byte-based progress, SHA-256 verification per file, and robust HTTP backoff.
- Flexible Delivery Modes: Supports
remote-files,remote-archive(automatic ZIP extraction for models like Spot), andremote-xacro(on-device tree expansion for models like the Franka Panda and FR3). - Smart Deduplication: Project IDs are derived directly from the slug and variant, so re-tapping a gallery link opens your existing project rather than creating duplicate clutter.

Native Xacro Support — Full Macro Evaluation on Device
Xacro is the industry standard for parametric robot descriptions in ROS. ARMOR v1.1 features a brand new XacroPreprocessor:
- Dynamic Scoping: Unlike naive regex approaches, macro bodies now evaluate correctly within their caller’s symbol table using true dynamic scoping.
- Conditional Evaluation:
<xacro:if>and<xacro:unless>blocks are properly skipped when false, preventing syntax errors on unselected branches. - Full ROS Parity: Supports recursive
<xacro:include>with$(find <package>)resolution,<xacro:arg>overrides, lazy/eager properties (lazy_eval="false"), block insertion (<xacro:insert_block>, Python expression evaluation for${...}, and YAML mapping subsets forxacro.load_yaml. - Complex Robot Integration: Complex multi-DOF arms like the Franka Panda and FR3 expand perfectly to their exact kinematic specifications.

Production-Grade ROS 2 Control Actuator Support
For robotics engineers testing control algorithms, ARMOR v1.1 bridges robot descriptions directly to MuJoCo physics dynamics through robust ros2_control integration:
- Automatic Actuator Injection: Joints equipped with
<ros2_control>blocks automatically compile MuJoCo<position>,<velocity>, and<motor>actuators from their command interfaces. - Smart Gain Computation: Default position-actuator gains (
kp,kv) are now dynamically computed from child link inertia tensors and mass. - Multi-Robot Actuator Composition: Multi-robot scenes built via
mjs_attachautomatically extract, and combine actuator blocks into the final physics specification.
Hardened Security and Performance Enhancements
v1.1 brings extensive under-the-hood hardening across storage, rendering, and concurrency:
- ZIP Extraction Hardening: Archives downloaded from remote URLs undergo rigorous pre-validation against path traversal (
..escapes), symlinks, zip64 sentinels, and uncompressed size ceilings. - Granular Editing Performance: Robot edits now compute a precise
RobotDiffand update only affected entities (transforms, materials, single-link geometry) rather than forcing heavy scene-graph rebuilds. Physics recompilation is deferred and coalesced during playback so live tuning never stutters the frame loop. - Multi-Robot Mesh Scoping: Mesh assets are strictly scoped to their owning robot description ID (
ProjectAsset.robotDescriptionID), preventing filename collisions in multi-robot scenes. - Solver Concurrency & Watchdogs: MuJoCo working-directory operations are strictly serialized to eliminate race conditions, and an intelligent compile watchdog safely abandons and retries stalled compiles with a recoverable UI action.
Bridging Mobile and Desktop Robotics
ARMOR v1.1 expands its professional-grade robotics tooling across the entire Apple ecosystem. Whether you are pulling a parameterized robot from a web gallery via deep link, fine-tuning its SRDF semantics, or exporting a multi-robot scene to desktop MuJoCo and ROS/Gazebo, ARMOR keeps your workflow frictionless.
Try It Out
ARMOR v1.1 is available now on the App Store and Mac App Store. Grab the update, test out the new gallery deep links, and let us know what multi-robot simulations and Xacro models you’re building!
Check out more posts about ARMOR
- ARMOR Arrives on Mac with Native MuJoCo Simulation Across All Your Apple Devices
- Multi-Robot MuJoCo Worlds on iOS — ARMOR is Live on the App Store!
- URDF to MuJoCo Export & Simulation Worlds — ARMOR v0.12 Release Notes
- Universal 3D Model Export to USDZ, GLB, DAE, OBJ, and STL — ARMOR v0.11 Release Notes
- Native SRDF Editing on iOS and Robot XML Export – ARMOR v0.10 Release Notes

