Part 2 of 7|April 2026|6 min

A Type System for the Physical World

ArchitectureCatalog
Parts Browser
6 items · semantic-parts-catalog v0.4.1
PORT TYPESShaftBoreRailBoltCircleFace

Every LLM fails the same way.

Same motor, 4 models, 4 failures. They could all describe how a NEMA 17 stepper connects to a lead screw coupling — but description isn't constraint. The AI needs a type system.


Ports: the grammar of connection

Stepper motor (Shaft port, green) and lead screw (Bore port, red). Click Connect to snap them together.

Stepper shaft to lead screw bore. Animated alignment. No coordinates needed.


It's a type system, not a parts list.

Shaft ↔ Bore. Rail ↔ Carriage. BoltCircle ↔ BoltCircle. The constraint solver validates before rendering. When the AI says "connect motor.shaft to leadscrew.bore," the port system checks compatibility, computes the alignment transform, and validates the fit. No freeform coordinates.


275 parts, 7 domains

Catalog Index
v0.4.1 · libsql
STR
00
Structural
Extrusions, brackets, plates
052
MOT
00
Motion
Linear rails, ball screws, bearings
052
ACT
00
Actuators
Steppers, servos, spindles
052
ELC
00
Electronics
Controllers, drivers, power supplies
052
FST
00
Fasteners
Screws, T-nuts, standoffs
052
TLG
00
Tooling
End mills, collets, holders
052
WRK
00
Workholding
Clamps, vises, wasteboard
052
Catalog Total
parts across 7 domains
000
Aluminum extrusion
Structural
PCB assembly
Electronics

The catalog started with what I already had drawings for.


The McMaster pipeline

Build Pipeline
McMaster → GLB · 4 stages
STEP 01
Playwright
Scrape
Scrape STEP files from McMaster-Carr
.step / .stp
STEP 02
WASM Tessellation
Tessellate
OpenCascade tessellates BREP → mesh
OCC / WASM
STEP 03
gltf-transform
Optimize
Optimize with meshoptimizer
meshopt + draco
STEP 04
LibSQL
Index
Index part.json + GLB into database
part.json + .glb
File Size Reduction
Input · STEP5 MB
Output · GLB200 KB
5MB STEP200KB GLB
96% reduction

Playwright → WASM tessellation → gltf-transform → LibSQL. 5MB STEP → 200KB GLB.


When AI picks from a typed vocabulary

Instead of hallucinating geometry, it searches. Every connection is declared. Every port is typed. Design becomes constraint satisfaction, not generation.