Showcase · D3 · robot dog

A robot dog, designed by an AI agent in Polykrom, that walks.

The third rung of the ladder: a quadruped with twelve servo joints, from an empty design. An AI agent (Claude Opus 5.5) built it in six stages with nothing but Polykrom's tools: the body, one leg, then four, a standing pose found by inverse kinematics and a crawl gait keyed on the twelve servos. It checked in Polykrom that the dog stands and keeps its balance through every step of the gait. Then the design went to MuJoCo, an independent physics engine, with nothing holding the body up. It stands, and it walks.

MuJoCo 3, running the MJCF Polykrom exported, with the base free. Polykrom's Crawl study is replayed as the twelve servos' targets, 0.05 s per step, three cycles. Nothing holds the body up: physics decides whether it walks.

128.5 mm
walked forward in MuJoCo in three cycles, 0.1 mm sideways
42.8 mm
per cycle, against the 40 mm stride designed
0.11°
the most the body tilted while it walked
20.77 mm
smallest stability margin through the gait, against 10 required
31 %
of stall torque, the hardest-working servo in the gait
2 h 4 min
agent time, $18.91, 154 parts

How it was built

An AI agent (Claude Opus 5.5) running headless, with Polykrom's MCP tools as its only tools, built the dog in six stages, each picking up the design the stage before had saved. Times, costs and tool calls are from the agent's run records.

StageWhat the agent didTimeCostCalls
1. BodyA 230 × 110 × 55 mm chassis in printed PLA under a black 2 mm cover held by 6 M3 screws; a Raspberry Pi 4 on four M2.5 standoffs, a 2S LiPo under a printed strap, the four hip-abduction STS3215 servos on printed bulkheads (16 M2 screws), and the pixel-p badge.7.9 min$2.3943
2. One legThe front-left leg: a hip bracket, hip-flex and knee STS3215 servos, a 100 mm upper and a 110 mm lower leg, a 20 mm TPU foot. Joints FL_abd ±30°, FL_hip ±90°, FL_knee −150° to 0°. It swept every joint and fixed the collision it found: a screw head hit the chassis at hip +90° with abduction past 24.3°.17.6 min$3.4457
3. Four legsThe three other legs, by mirroring: twelve independent joints, 142 bodies, no interferences.31.2 min$4.5574
4. StandThe standing pose by inverse kinematics, hip 57.61° and knee −107.72°, with the body's underside 120 mm up. It split each servo horn into a part of its own, so the horn turns with its joint.47.3 min$3.7457
5. GaitA Crawl study of 160 steps, keyed on the twelve joints only, with the inverse kinematics stored as design parameters.17.3 min$3.1141
6. ExportThe MJCF for MuJoCo (a free base, twelve position actuators), the render and the bill of materials.2.6 min$1.6843
Total2 h 4 min$18.91315

Measured, not claimed

The agent checked the dog with Polykrom's statics: the four feet as the support, the ground at z = 0, the servos' rated stall torque of 1.912 N·m. Then MuJoCo, a physics engine that knows nothing of Polykrom, ran the MJCF the agent exported.

In Polykrom

In MuJoCo 3

The crawl, in Polykrom

The agent's Crawl study, keyed only on the twelve joints. Polykrom's motion studies can't yet move a free-floating base, so here the body stays still and only the feet move. The walk at the top of the page is MuJoCo's.

The dog in Polykrom's colours: a lime chassis under a black cover, lime legs, black servos and feet
Loading the dog…
step 0

Live: the URDF Polykrom exported from the agent's design, driven by the Crawl study's recorded joint values. Drag to orbit, scroll to zoom.

The Crawl study as Polykrom's headless renderer exported it.

Bill of materials

154 parts, 1.428 kg, from assembly.bom: twelve 55 g servos, a 46 g Raspberry Pi 4, a 120 g battery and a 274.4 g chassis. The servos and screws come from Polykrom's library with their part numbers. The rest were modelled for this dog and have no part number yet; the printed ones are PLA, the feet TPU. The Pi and the battery are envelopes with their masses.

From the library

PartQty
STS3215 servo, with its horn12
ISO 4762 M2 × 848
ISO 4762 M3 × 650
ISO 4762 M3 × 86
ISO 4762 M2.5 × 64

Made for this dog

PartQty
Body (chassis)1
Cover1
Pixel-p badge1
Battery strap1
Hip bracket4
Upper leg4
Lower leg4
Foot, TPU4
Servo horn, its own part12
Raspberry Pi 41
2S LiPo battery1
The agent's render of the dog: a lime chassis under a black cover with the pixel-p badge, four lime legs, black servos and feet
The agent's render, as it came out. Every leg, bracket and foot is its own line in the CSV.

Where Polykrom fell short

A walking machine finds what a printer didn't. These turned up during the run; the last three are open issues being fixed.

Free-floating base

Polykrom's gait study can't move the body.

A motion study can't move a free-floating base, so in the Crawl study, its video and the 3D view above, the body stays still and the feet move. Polykrom's statics showed the dog keeps its balance at every step, but only MuJoCo, with the body free, shows that it really walks.

Render

The render is a preview.

The agent's render is preview quality: no shadows, a flat studio.

Driven joints

Driving a joint could reshape a part.

A part cut from another component could change shape when a joint moved. → #168, being fixed in #173

Speed

Small edits re-evaluated the whole assembly.

Renames and resizes re-evaluated the whole assembly: 79 of the run's 124 minutes were spent inside Polykrom's tools. → #169

Servo horns

Servo horns were fused to the case.

A library servo's horn was part of its case, so it couldn't turn with its joint. In the stand stage the agent split each of the twelve horns into a part of its own. → #170

Take it apart yourself

The agent's design as it left it, the bill of materials, the Crawl study's joint values, the MJCF it exported, and the script that replays the study on it in MuJoCo (after pip install mujoco numpy "imageio[ffmpeg]": python3 mujoco-replay.py dog.polykrom dog/dog.xml Crawl 3 0.05 walk.mp4).