Worlds & Robot Placement

A World in ARMOR is the simulation environment that wraps your robot: it defines gravity, the physics timestep, a ground plane, and any obstacle objects you want to include. Together these settings drive what MuJoCo simulates when you hit Play.
What a World Contains
| Element | Description |
|---|---|
| Gravity | Magnitude and direction, defaulting to Earth gravity (−9.81 m/s² in Z). |
| Timestep | MuJoCo integration step size. Smaller values increase accuracy at the cost of speed. |
| Ground plane | An optional infinite contact plane — toggleable and fully configurable. See Ground Plane. |
| Obstacles | Box, sphere, cylinder, and mesh objects placed in the scene. See World Objects. |
| Robot instances | One or more robots, each with its own pose and base type. See Multi-Robot Worlds. |
Robot Instances & Multi-Robot Worlds
A world can contain one or more robot instances. Each instance has its own initial pose and base type. Free projects support a single robot; ARMOR Premium unlocks placing as many robots as your scene needs.
See Multi-Robot Worlds for full details on adding, duplicating, and removing robot instances.
Robot Base Type
When you place a robot in a world you choose how its base behaves in simulation:
- Fixed (welded) base — the root link is anchored to the world frame and cannot translate or rotate. Use this for industrial arms, manipulators, or any robot that is bolted to a surface.
- Free-floating base — the root link is a free body subject to gravity and contact forces. Use this for mobile robots, humanoids, and quadrupeds where the base must move.
You can change the base type at any time in the World editor.
Initial Pose
The robot’s starting position and orientation are set as a pose (X, Y, Z + Roll, Pitch, Yaw) in the World editor. This is the state the robot returns to when you tap Reset.
You can also choose or adjust the pose during import — ARMOR shows a placement picker when you load a new URDF into an existing world.
World File Format
Worlds are stored in an SDF 1.7–subset XML file alongside your project. Roboticists familiar with Gazebo or Drake will recognise the structure immediately. ARMOR-specific metadata (base type, display preferences, premium settings) lives inside a <plugin name="armor"> block, which standard SDF parsers silently ignore — so the file remains loadable by other SDF-aware tools.
<sdf version="1.7">
<world name="my_world">
<gravity>0 0 -9.81</gravity>
<physics>
<max_step_size>0.002</max_step_size>
</physics>
<!-- Ground plane, obstacles, and robot placement defined here -->
<plugin name="armor">
<!-- ARMOR-specific metadata ignored by standard SDF parsers -->
</plugin>
</world>
</sdf>
Simulation Fidelity
The same pipeline that powers the in-app MuJoCo simulation also produces the exported MJCF. The world context — ground plane, obstacles, initial pose, and base type — is embedded in the MJCF, so the model behaves identically whether you are running it on-device or loading the exported file into desktop MuJoCo.
Next Steps
- Multi-Robot Worlds — place multiple robots in one scene (Premium).
- Ground Plane — configure contact physics and visual appearance.
- World Objects — add primitive and mesh obstacles.
- Exporting URDF & MJCF Archives — export the full world and robot(s) together.