The Last Analog Frontier
This machine took me three days.
This is a lid-cleaning machine I designed for my vertical farm. Pneumatic grippers, rotating brushes, 12-nozzle wash array. Three days in Fusion 360.


These are the lids. Growbotics is a vertical farm I built in Virginia Beach — 40 racks, 12 restaurant customers. The machines that run it are why I started this company.
Why meshes aren't text
placePart({ catalog: "nema23_stepper", port: "shaft", mate: coupling.bore });
The model on the left, AI can reason about. The mesh on the right, it cannot.
Same AI, different representation
Parts at arbitrary coordinates — no constraints satisfied
Parts snapped at typed ports — constraints fully satisfied
Same prompt. Same model. Left: no vocabulary. Right: typed ports and constraint solver.
What the industry ships
CAD History
> "I don't have access to modify your design geometry"
40 years of refinement, all for mice. Fusion 360’s AI assistant can’t modify geometry.
The insight
You don't need better AI. You need a new language.
It's the data structure meshes should have been.
Typed Port Assembly
Not better AI. A new language — the data structure meshes should have been.
The design loop
The OpenFrame Design Loop
Six steps. Each post dives into one. Start here:
Live today

Same command store. Three ways in.
Studio
Chat interface in the browser
MCP
Cursor IDE integration via stdio
API
Headless REST / streaming endpoint
dispatch(cmd)·query(selector)·undo()·redo()