Keaghan Paterson · Mechanical design

rough formatting, to update post completion

  • Started April 2026. Work in progress.
  • Done: scanner, solver, all parts printed. In sim the hand reorients the cube and turns faces on command.
  • Next: servos arrive → assemble → sim-to-real → juggle.
  • Juggle (definitely)
  • Solve (definitely)
  • Juggle-solve (????)
Robot
A full solve in simulation, half speed
01

Physical build

Open-Source DexHand V2.0

CAD
CAD
Physical build — every part printed
Physical build — every part printedPi 5 + AI HAT and servo controller board on the bench. Waiting on the servo order.
02

Solver

Photograph the cube → read the state → solve it. Works on different cubes and in different lighting.

Scan → import → solve (screen recording)
  • Photograph the six faces on a phone.
  • The scanner finds all 54 stickers and reads their colours.
  • The solver returns the solve move list in milliseconds.
Benchmark: success, speed, moves per version
Benchmark: success, speed, moves per version
  • Solve rate: 100%
  • Time to solve: 21 ms average
  • Moves: 20.8 average
  • 100 scrambles of 25 moves, the same set for every version.
03

Control system

Teaching a simulated hand to turn the cube, against physics measured off the real one.

Solving one face, half speed
  • Turning one face is the hard half of a robot solve. The grip has to hold the cube still and leave one face free at the same time, and breaking a face out of its magnets takes more than twice the torque of keeping it turning.
  • Measured that torque on the real cube with golf balls, built it into the simulation, then trained the hand against it: rewards for turning toward the target angle, penalties for drops, for drifting out of the grip, and for stalling.
  • Reached 3.5 solved moves per 10-second attempt at 76% success, with no assisting torque. Time per move fell from 3.8 seconds to 2.0.
Rolling the cube to a commanded pose, half speed
  • A solver names a face to turn, so the hand first has to present that face to the fingers. Every reorientation risks dropping the cube off an open palm.
  • Adapted NVIDIA's cube-reorientation rewards to this 18-servo hand, then added a penalty for resting the cube on the palm. That forced the fingers to do the rolling instead of letting the hand lean on gravity.
  • Reached about 11 commanded poses per 10-second attempt at 90% success. These weights seeded the face-turning work above, so it did not start from scratch.
Training progress, 21 hours
Training progress, 21 hours
  • Every gain here came from reward design. The cube's measured friction and magnet strength stayed fixed throughout, so the policy had to improve rather than the task getting easier.
  • Two failures came out of watching playback: the hand freezing in a crossed-finger grip to farm holding points, and fast flicks that swept past the target between control steps and scored nothing. Added a time cost, a fingertip clearance penalty, and crossing detection.
  • The curve resumed climbing after each fix and has not flattened yet: 0.4 to 3.5 solved moves per attempt over 21 hours.
04

Work in progress

  • Six-face cube: carry the one-face skills to all six faces, then chain real solver moves.
  • Fingertip force sensing: custom PCBA, schematic and layout in progress.
  • Sim → real: move the trained policies onto the real hand.
  • Two hands, three cubes: second hand, then juggling.