Veronica
Inspiration
I do VEX robotics, and I kept seeing these "AI designed a robot!" demos that were just... spinning shapes. A box with four donuts on it. No part numbers, nothing you could actually buy or bolt together. Cool video, fake robot.
My first thought was the same as everyone's: okay, use a bigger model. So I actually tried it. I had a frontier model do the CAD itself, in context, for one simple drivetrain chassis. It took 9.1 million tokens, got the placement wrong three times, and I was babysitting it the whole way. That's when it clicked for me — the model was never the problem. A human engineer with no calipers and no CAD software would also just be guessing. The model needed an instrument, not more brain.
What Veronica is
It's basically a lie detector for mechanical design. I took 151 real VEX parts (the actual vendor STEP files), labeled and reviewed their interfaces, and put a geometry kernel (OpenCASCADE) behind six dead-simple functions: find parts, get a part, check if two parts fit, simulate, submit a design, and place the whole robot in 3D.
The rule I never broke: the kernel never trusts anything. Not the vendor's dimensions, not my labels, definitely not the model. When an agent asks "does this shaft fit this motor?", Veronica seats the actual solids against each other and physically probes the fit — rotates the shaft until it hits the walls to measure backlash (1.195°, if you're curious). Even the bearing fit is just geometry: a square shaft's corners stick out past its flats by
$$\sqrt{2} \times 3.175 = 4.49 \text{ mm}$$
which is wider than the 4.2 mm bearing hole — so the corners ride the journal. The audit knows to expect exactly that tiny contact and nothing else.
Then I gave the verbs to Haiku. The smallest, cheapest Claude there is. It found the only wheel in the catalog that fits the drive shaft, verified every connection, and designed a real 37-part robot with a bolted frame and a $412 bill of materials. 47,000 tokens. The frontier model needed ~190x more to do it worse.
The part where the AI humbled me
Best moment of the hackathon, honestly. Haiku's first real run produced a design that passed every single check I had... and the chassis rails were floating in the middle of the robot, 80mm from the shafts, with the bearings mounted on them holding literally nothing. Like someone left two spare parts on the table.
And it was my fault, not Haiku's. My audit checked that nothing collides. I never checked that anything holds anything up. The model did exactly what I graded it on. So I wrote a new gate the same day: every shaft now has to measurably fill its bearing journal (46.77 mm³ of actual steel-in-hole), or the design gets rejected with instructions on which dimension to move.
The weirdest payoff came later, when I added real threaded fasteners so the frame could be properly bolted. For one cross brace to line up with the bolt holes on both rails, the rail spacing has to land on the half-inch grid — and it turns out there are exactly two legal positions. I'd been eyeballing that dimension all week. The bolt holes knew better than I did.
Challenges
Vendor CAD lies in a hundred tiny ways. Threads are modeled as smooth cylinders. Nut holes are drawn at the wrong diameter. Chamfers break your measurements by 0.2mm and suddenly every nut in the robot is embedded in the frame. Each one of these cost me an hour and taught me the same lesson: measure everything, trust nothing.
Also, kernel checks are slow — a full fit probe can take minutes. So verdicts get cached and shared. First person to ask about a pairing pays; everyone after gets the answer instantly.
What I learned
How to write rules for a CAD kernel and a physics simulator
Built With
- cadquery
- python
Log in or sign up for Devpost to join the conversation.