# For AI agents: Rosie robot data and downloads

> How to find, fetch and use the Rosie robot files (robot.json, URDF, MuJoCo, SRDF, STEP, meshes, kit ZIPs), the RosieOS API specs and the docs, from scripts, sandboxes and browser apps.

URL: https://advancedmetalresearch.com/agents.md
The same list as JSON: https://advancedmetalresearch.com/agents.json. Site index: https://advancedmetalresearch.com/llms.txt. RosieOS developer orientation: https://advancedmetalresearch.com/docs/get-started/for-ai-agents.

## Access

- Plain HTTPS GET or HEAD: no login, no API key, no cookies, no JavaScript.
- Any User-Agent works, including the defaults of Python urllib, requests, httpx and aiohttp, Node fetch, Go, curl and wget.
- CORS is open (`Access-Control-Allow-Origin: *`) on every data file, so a web page or in-browser agent can `fetch()` the JSON, URDF, meshes and GLB directly.
- Byte ranges (`Range: bytes=0-1023`) and ETag revalidation work; files may be cached for 5 minutes.
- Every HTML page has a Markdown twin at its URL + `.md`; a request with `Accept: text/markdown` gets the twin automatically.
- All crawlers and AI agents are welcome. Content signals: search=yes, ai-input=yes, ai-train=yes (search indexing, use in AI answers and AI training are all allowed). See https://advancedmetalresearch.com/robots.txt.
- Licence: Free to use for simulation and integration, including commercial work (each kit's LICENSE.txt).

## If you cannot reach advancedmetalresearch.com

If your environment cannot reach advancedmetalresearch.com, the same files are mirrored at GitHub (https://github.com/advanced-metal-research/rosie-sim-kits; direct file URLs start https://raw.githubusercontent.com/advanced-metal-research/rosie-sim-kits/main/): replace `https://advancedmetalresearch.com/assets/` with the mirror base (its `sim/index.json` already uses mirror URLs). Failing that, ask your user to download the kit ZIP and attach it.

## 1. Pick a robot

| Robot | Reach | Rated payload | Mass | Kit ZIP | robot.json | URDF |
|---|---|---|---|---|---|---|
| Rosie 600 | 0.6 m | 9 kg | 29.3 kg | [683 KB](https://advancedmetalresearch.com/assets/sim/rosie-600-sim-kit.zip) | [robot.json](https://advancedmetalresearch.com/assets/sim/600/robot.json) | [URDF](https://advancedmetalresearch.com/assets/sim/600/urdf/rosie_600.urdf) |
| Rosie 1000 | 1 m | 7.4 kg | 38.6 kg | [725 KB](https://advancedmetalresearch.com/assets/sim/rosie-1000-sim-kit.zip) | [robot.json](https://advancedmetalresearch.com/assets/sim/1000/robot.json) | [URDF](https://advancedmetalresearch.com/assets/sim/1000/urdf/rosie_1000.urdf) |
| Rosie 1400 | 1.4 m | 15 kg | 77 kg | [3.6 MB](https://advancedmetalresearch.com/assets/sim/rosie-1400-sim-kit.zip) | [robot.json](https://advancedmetalresearch.com/assets/sim/1400/robot.json) | [URDF](https://advancedmetalresearch.com/assets/sim/1400/urdf/rosie_1400.urdf) |

Every file of every kit, with its URL, is in the index: https://advancedmetalresearch.com/assets/sim/index.json. Read it at run time; new files (meshes, trajectories, test cases) appear there first.

## 2. Download

### Shell

```sh
# one robot, everything (unzip keeps the URDF's relative mesh paths working)
curl -fsSL -A "my-agent/1.0" -o rosie-1000.zip https://advancedmetalresearch.com/assets/sim/rosie-1000-sim-kit.zip
unzip -q rosie-1000.zip

# single files
curl -fsSL -A "my-agent/1.0" -O https://advancedmetalresearch.com/assets/sim/1000/robot.json
wget -q https://advancedmetalresearch.com/assets/sim/1000/urdf/rosie_1000.urdf
```

### Python (standard library only)

```python
import json, os, urllib.request

def get(url):
    # Any User-Agent is accepted; naming your tool is good manners.
    req = urllib.request.Request(url, headers={"User-Agent": "my-agent/1.0"})
    with urllib.request.urlopen(req, timeout=60) as r:
        return r.read()

index = json.loads(get("https://advancedmetalresearch.com/assets/sim/index.json"))
kit = next(k for k in index["kits"] if k["model"] == "rosie_1000")
robot = json.loads(get(kit["robot_json"]))
print(robot["name"], [j["name"] for j in robot["joints"]])

# mirror every file of the kit, keeping its folder layout
for rel in kit["files"]:
    path = os.path.join("rosie_1000", rel)
    os.makedirs(os.path.dirname(path), exist_ok=True)
    with open(path, "wb") as f:
        f.write(get(kit["base"] + rel))
```

### JavaScript (browser or Node 18+)

```js
const index = await (await fetch("https://advancedmetalresearch.com/assets/sim/index.json")).json();
const kit = index.kits.find((k) => k.model === "rosie_1000");
const robot = await (await fetch(kit.robot_json)).json();
const urdf = await (await fetch(kit.urdf)).text();
// meshes: kit.base + a path from kit.files, e.g. meshes/visual/link_1.stl
```

In a web page, three.js loads the GLB straight from its URL (glTF is Y-up; the GLB's root node already turns the kit's Z-up frames):

```js
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
new GLTFLoader().load("https://advancedmetalresearch.com/assets/sim/1000/glb/rosie_1000.glb", (gltf) => scene.add(gltf.scene));
```

## 3. Use it

- Units are metres, kilograms and radians; the STEP is in millimetres.
- At home every joint is zero. `tool0` is the tool flange face, z out of the flange.
- The guide [Simulate a Rosie robot](https://advancedmetalresearch.com/docs/guides/simulate-a-rosie-robot) covers frames, ratings and PyBullet, MuJoCo and ROS 2 quickstarts; each kit's README has the same code, tested.

## Every file

### Rosie 600

- [Kit ZIP (683 KB)](https://advancedmetalresearch.com/assets/sim/rosie-600-sim-kit.zip)
- [robot.json](https://advancedmetalresearch.com/assets/sim/600/robot.json): 24 KB
- [URDF](https://advancedmetalresearch.com/assets/sim/600/urdf/rosie_600.urdf): 17 KB
- [MuJoCo MJCF](https://advancedmetalresearch.com/assets/sim/600/mjcf/rosie_600.xml): 13 KB
- [SRDF](https://advancedmetalresearch.com/assets/sim/600/srdf/rosie_600.srdf): 1 KB
- [STEP](https://advancedmetalresearch.com/assets/sim/600/step/rosie_600.step): 561 KB
- [README](https://advancedmetalresearch.com/assets/sim/600/README.md): 21 KB
- [GLB](https://advancedmetalresearch.com/assets/sim/600/glb/rosie_600.glb): 217 KB
- [IK test cases](https://advancedmetalresearch.com/assets/sim/600/ik_cases.json): 30 KB
- [benchmark trajectory (CSV)](https://advancedmetalresearch.com/assets/sim/600/benchmark/rosie_600_cycle_1kg.csv): 135 KB
- [benchmark trajectory (JSON)](https://advancedmetalresearch.com/assets/sim/600/benchmark/rosie_600_cycle_1kg.json): 98 KB
- [meshes/visual/base_link.stl](https://advancedmetalresearch.com/assets/sim/600/meshes/visual/base_link.stl)
- [meshes/visual/link_1.stl](https://advancedmetalresearch.com/assets/sim/600/meshes/visual/link_1.stl)
- [meshes/visual/link_2.stl](https://advancedmetalresearch.com/assets/sim/600/meshes/visual/link_2.stl)
- [meshes/visual/link_3.stl](https://advancedmetalresearch.com/assets/sim/600/meshes/visual/link_3.stl)
- [meshes/visual/link_4.stl](https://advancedmetalresearch.com/assets/sim/600/meshes/visual/link_4.stl)
- [meshes/visual/link_5.stl](https://advancedmetalresearch.com/assets/sim/600/meshes/visual/link_5.stl)
- [meshes/visual/link_6.stl](https://advancedmetalresearch.com/assets/sim/600/meshes/visual/link_6.stl)
- [examples/fk_ik.py](https://advancedmetalresearch.com/assets/sim/600/examples/fk_ik.py)
- [examples/mujoco_demo.py](https://advancedmetalresearch.com/assets/sim/600/examples/mujoco_demo.py)
- [examples/pybullet_demo.py](https://advancedmetalresearch.com/assets/sim/600/examples/pybullet_demo.py)
- [CMakeLists.txt](https://advancedmetalresearch.com/assets/sim/600/CMakeLists.txt)
- [LICENSE.txt](https://advancedmetalresearch.com/assets/sim/600/LICENSE.txt)
- [launch/display.launch.py](https://advancedmetalresearch.com/assets/sim/600/launch/display.launch.py)
- [package.xml](https://advancedmetalresearch.com/assets/sim/600/package.xml)
- [rviz/display.rviz](https://advancedmetalresearch.com/assets/sim/600/rviz/display.rviz)
- 61 collision hulls: https://advancedmetalresearch.com/assets/sim/600/meshes/collision/ (names in the index)

### Rosie 1000

- [Kit ZIP (725 KB)](https://advancedmetalresearch.com/assets/sim/rosie-1000-sim-kit.zip)
- [robot.json](https://advancedmetalresearch.com/assets/sim/1000/robot.json): 24 KB
- [URDF](https://advancedmetalresearch.com/assets/sim/1000/urdf/rosie_1000.urdf): 16 KB
- [MuJoCo MJCF](https://advancedmetalresearch.com/assets/sim/1000/mjcf/rosie_1000.xml): 12 KB
- [SRDF](https://advancedmetalresearch.com/assets/sim/1000/srdf/rosie_1000.srdf): 1 KB
- [STEP](https://advancedmetalresearch.com/assets/sim/1000/step/rosie_1000.step): 603 KB
- [README](https://advancedmetalresearch.com/assets/sim/1000/README.md): 21 KB
- [GLB](https://advancedmetalresearch.com/assets/sim/1000/glb/rosie_1000.glb): 228 KB
- [IK test cases](https://advancedmetalresearch.com/assets/sim/1000/ik_cases.json): 25 KB
- [benchmark trajectory (CSV)](https://advancedmetalresearch.com/assets/sim/1000/benchmark/rosie_1000_cycle_1kg.csv): 145 KB
- [benchmark trajectory (JSON)](https://advancedmetalresearch.com/assets/sim/1000/benchmark/rosie_1000_cycle_1kg.json): 105 KB
- [meshes/visual/base_link.stl](https://advancedmetalresearch.com/assets/sim/1000/meshes/visual/base_link.stl)
- [meshes/visual/link_1.stl](https://advancedmetalresearch.com/assets/sim/1000/meshes/visual/link_1.stl)
- [meshes/visual/link_2.stl](https://advancedmetalresearch.com/assets/sim/1000/meshes/visual/link_2.stl)
- [meshes/visual/link_3.stl](https://advancedmetalresearch.com/assets/sim/1000/meshes/visual/link_3.stl)
- [meshes/visual/link_4.stl](https://advancedmetalresearch.com/assets/sim/1000/meshes/visual/link_4.stl)
- [meshes/visual/link_5.stl](https://advancedmetalresearch.com/assets/sim/1000/meshes/visual/link_5.stl)
- [meshes/visual/link_6.stl](https://advancedmetalresearch.com/assets/sim/1000/meshes/visual/link_6.stl)
- [examples/fk_ik.py](https://advancedmetalresearch.com/assets/sim/1000/examples/fk_ik.py)
- [examples/mujoco_demo.py](https://advancedmetalresearch.com/assets/sim/1000/examples/mujoco_demo.py)
- [examples/pybullet_demo.py](https://advancedmetalresearch.com/assets/sim/1000/examples/pybullet_demo.py)
- [CMakeLists.txt](https://advancedmetalresearch.com/assets/sim/1000/CMakeLists.txt)
- [LICENSE.txt](https://advancedmetalresearch.com/assets/sim/1000/LICENSE.txt)
- [launch/display.launch.py](https://advancedmetalresearch.com/assets/sim/1000/launch/display.launch.py)
- [package.xml](https://advancedmetalresearch.com/assets/sim/1000/package.xml)
- [rviz/display.rviz](https://advancedmetalresearch.com/assets/sim/1000/rviz/display.rviz)
- 57 collision hulls: https://advancedmetalresearch.com/assets/sim/1000/meshes/collision/ (names in the index)

### Rosie 1400

- [Kit ZIP (3.6 MB)](https://advancedmetalresearch.com/assets/sim/rosie-1400-sim-kit.zip)
- [robot.json](https://advancedmetalresearch.com/assets/sim/1400/robot.json): 26 KB
- [URDF](https://advancedmetalresearch.com/assets/sim/1400/urdf/rosie_1400.urdf): 16 KB
- [MuJoCo MJCF](https://advancedmetalresearch.com/assets/sim/1400/mjcf/rosie_1400.xml): 12 KB
- [SRDF](https://advancedmetalresearch.com/assets/sim/1400/srdf/rosie_1400.srdf): 1 KB
- [STEP](https://advancedmetalresearch.com/assets/sim/1400/step/rosie_1400.step): 7.2 MB
- [README](https://advancedmetalresearch.com/assets/sim/1400/README.md): 22 KB
- [GLB](https://advancedmetalresearch.com/assets/sim/1400/glb/rosie_1400.glb): 1.0 MB
- [IK test cases](https://advancedmetalresearch.com/assets/sim/1400/ik_cases.json): 25 KB
- [benchmark trajectory (CSV)](https://advancedmetalresearch.com/assets/sim/1400/benchmark/rosie_1400_cycle_1kg.csv): 175 KB
- [benchmark trajectory (JSON)](https://advancedmetalresearch.com/assets/sim/1400/benchmark/rosie_1400_cycle_1kg.json): 126 KB
- [meshes/visual/base_link.stl](https://advancedmetalresearch.com/assets/sim/1400/meshes/visual/base_link.stl)
- [meshes/visual/link_1.stl](https://advancedmetalresearch.com/assets/sim/1400/meshes/visual/link_1.stl)
- [meshes/visual/link_2.stl](https://advancedmetalresearch.com/assets/sim/1400/meshes/visual/link_2.stl)
- [meshes/visual/link_3.stl](https://advancedmetalresearch.com/assets/sim/1400/meshes/visual/link_3.stl)
- [meshes/visual/link_4.stl](https://advancedmetalresearch.com/assets/sim/1400/meshes/visual/link_4.stl)
- [meshes/visual/link_5.stl](https://advancedmetalresearch.com/assets/sim/1400/meshes/visual/link_5.stl)
- [meshes/visual/link_6.stl](https://advancedmetalresearch.com/assets/sim/1400/meshes/visual/link_6.stl)
- [examples/fk_ik.py](https://advancedmetalresearch.com/assets/sim/1400/examples/fk_ik.py)
- [examples/mujoco_demo.py](https://advancedmetalresearch.com/assets/sim/1400/examples/mujoco_demo.py)
- [examples/pybullet_demo.py](https://advancedmetalresearch.com/assets/sim/1400/examples/pybullet_demo.py)
- [CMakeLists.txt](https://advancedmetalresearch.com/assets/sim/1400/CMakeLists.txt)
- [LICENSE.txt](https://advancedmetalresearch.com/assets/sim/1400/LICENSE.txt)
- [launch/display.launch.py](https://advancedmetalresearch.com/assets/sim/1400/launch/display.launch.py)
- [package.xml](https://advancedmetalresearch.com/assets/sim/1400/package.xml)
- [rviz/display.rviz](https://advancedmetalresearch.com/assets/sim/1400/rviz/display.rviz)
- 56 collision hulls: https://advancedmetalresearch.com/assets/sim/1400/meshes/collision/ (names in the index)

## Rosie 1400 mechanical interfaces

- [rosie-1400-tool-flange.step](https://advancedmetalresearch.com/assets/cad/rosie-1400-tool-flange.step): Rosie 1400 tool flange, STEP 3D model
- [rosie-1400-base.step](https://advancedmetalresearch.com/assets/cad/rosie-1400-base.step): Rosie 1400 base mounting interface, STEP 3D model
- [rosie-1400-tool-flange.pdf](https://advancedmetalresearch.com/assets/cad/rosie-1400-tool-flange.pdf): Rosie 1400 tool flange, dimensioned drawing (PDF)
- [rosie-1400-base.pdf](https://advancedmetalresearch.com/assets/cad/rosie-1400-base.pdf): Rosie 1400 base mounting interface, dimensioned drawing (PDF)
- [rosie-1400-interfaces.json](https://advancedmetalresearch.com/assets/cad/rosie-1400-interfaces.json): Rosie 1400 mechanical interface dimensions, machine-readable JSON

## RosieOS APIs and reference data

- [rt-control API](https://advancedmetalresearch.com/docs/openapi/rt-control.json): OpenAPI 3.1; reference: https://advancedmetalresearch.com/docs/apis/rt-control-http
- [Offline programming (OLP) server API](https://advancedmetalresearch.com/docs/openapi/offline-programming.json): OpenAPI 3.1; reference: https://advancedmetalresearch.com/docs/apis/olp-http
- [Weld planner API](https://advancedmetalresearch.com/docs/openapi/weld-planner.json): OpenAPI 3.1; reference: https://advancedmetalresearch.com/docs/apis/weld-planner-http
- [Error codes (JSON)](https://advancedmetalresearch.com/docs/data/error-codes.json): every rt-control reason code with its meaning, group, HTTP status and callers
- [NATS subjects (JSON)](https://advancedmetalresearch.com/docs/data/nats-subjects.json): every NATS subject and stream, with publishers, subscribers and payload schemas
- [API catalog (RFC 9727)](https://advancedmetalresearch.com/.well-known/api-catalog): the APIs above as a linkset

## Docs as text

- [llms.txt](https://advancedmetalresearch.com/llms.txt): every page with a one-line description
- [llms-full.txt](https://advancedmetalresearch.com/llms-full.txt): the whole site and docs in one Markdown file
- [RosieOS docs index](https://advancedmetalresearch.com/docs/llms.txt)
- [Docs search index](https://advancedmetalresearch.com/assets/docs/search.json): title, URL, headings and text of every docs page

## Contact

generalcontact@advancedmetalresearch.com. Tell us if a file is missing or a fetch fails; we want this to work for agents.
