Part 1 of 7|April 2026|6 min

The Last Analog Frontier

RepresentationAI

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.

Growbotics vertical farm
Lettuce in aeroponic system
Plastic lids in warehouse
The lids that needed cleaning

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
});
Text — AI reasons about this
Mesh — AI cannot

The model on the left, AI can reason about. The mesh on the right, it cannot.


Same AI, different representation

FAIL — GPT-4o

Parts at arbitrary coordinates — no constraints satisfied

PASS — Claude + typed vocab

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

1977
CATIA
1995
SolidWorks
2013
Fusion 360
2021
Zoo.dev
2026
OpenFrame
Fusion 360 AI Assistant

> "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

cornertopsidemount

Not better AI. A new language — the data structure meshes should have been.


The design loop

1.Select Parts
2.Define Joints
3.Position
4.Check & Fix
5.Review
6.Iterate

The OpenFrame Design Loop

Six steps. Each post dives into one. Start here:


Live today

OpenFrame Studio UI

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()