From a CAD export to a working simulation
The Fusion 360 export said the hand weighed 821 g of steel. A small converter script turned it into a 131 g plastic hand that moves correctly in MuJoCo.

The first real step for Tendra Hand was getting the thumb and index finger into a simulator. A virtual copy lets me test ideas on a laptop before risking the real hardware, and later it's where the AI will learn.
What the export got wrong#
I designed the hand in Fusion 360 and exported it as a URDF, a standard file format that describes a robot's parts and joints. The joints came out right: 9 parts and 8 joints, with limits that match the real hand closely. The physics did not.
- It was made of steel. Fusion's default material gave a total of 821 g. At PLA density the same parts weigh about 131 g.
- Some numbers were rounded away. The values that describe how hard each part is to spin (its inertia) were rounded so far that two parts ended up physically impossible.
- Two thumb joints had opposite directions, so bending one was positive and bending the other was negative.
Fix the script, not the file#
Instead of editing the export by hand, I keep it untouched and wrote a converter that produces a clean MuJoCo model from it. It recomputes weights and inertias from the 3D meshes, gives every joint a readable name like index_pip, and makes sure a positive angle always means closing the hand. When the design changes, I export again and re-run one command:
uv run python sim/convert.py && uv run pytestThe tests fail if the committed model is out of date, so it can't silently drift from the design.
Not everything is perfect#
The palm and the finger bases overlap where they join, and the thumb base "collides" with the palm at almost any rotation. That's an artifact of how the simulator simplifies the palm's shape, so for now those contacts are switched off. The proper fix is to split the palm into simpler pieces later.
With that, the simulated joints reach their targets within 0.8° and the simulation is stable. Then I moved every slider and compared it with the real hand: the motions match.
Next up: firmware for the ESP32-S3.