CAD Agent
Send build123d CAD commands via HTTP to render images, allowing visual iteration on 3D models entirely within a containerized CAD environment.
Send build123d CAD commands via HTTP to render images, allowing visual iteration on 3D models entirely within a containerized CAD environment.
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Give your AI agent eyes for CAD work.
CAD Agent is a rendering server that lets AI agents see what they're building. Send modeling commands → receive rendered images → iterate visually.
Use when: designing 3D-printable parts, parametric CAD, mechanical design, build123d modeling
Critical: All CAD logic runs inside the container. You (the agent) only:
YOU (agent) CAD AGENT CONTAINER ───────────── ─────────────────── Send build123d code → Executes modeling ← Returns JSON status Request render → VTK renders the model ← Returns PNG image *Look at the image* Decide: iterate or done
Never do STL manipulation, mesh processing, or rendering outside the container. The container handles everything — you just command and observe.
git clone https://github.com/clawd-maf/cad-agent.git cd cad-agent
docker build -t cad-agent:latest .
Or using docker-compose:
docker-compose build
# Using docker-compose (recommended) docker-compose up -dOr using docker directly
docker run -d --name cad-agent -p 8123:8123 cad-agent:latest serve
curl http://localhost:8123/health # Should return: {"status": "healthy", ...}
Docker-in-Docker caveat: In nested container environments (e.g., Clawdbot sandbox), host networking may not work—
will fail even though the server binds tocurl localhost:8123. Use0.0.0.0:8123commands instead. On a normal Docker host, localhost access works fine.docker exec cad-agent python3 -c "..."
curl -X POST http://localhost:8123/model/create \ -H "Content-Type: application/json" \ -d '{ "name": "my_part", "code": "from build123d import *\nresult = Box(60, 40, 30)" }'
# Get multi-view (front/right/top/iso) curl -X POST http://localhost:8123/render/multiview \ -d '{"model_name": "my_part"}' -o views.pngOr 3D isometric
curl -X POST http://localhost:8123/render/3d
-d '{"model_name": "my_part", "view": "isometric"}' -o iso.png
Look at the image. Does it look right? If not, modify and re-render.
curl -X POST http://localhost:8123/model/modify \ -d '{ "name": "my_part", "code": "result = result - Cylinder(5, 50).locate(Pos(20, 10, 0))" }'Re-render to check
curl -X POST http://localhost:8123/render/3d
-d '{"model_name": "my_part"}' -o updated.png
curl -X POST http://localhost:8123/export \ -d '{"model_name": "my_part", "format": "stl"}' -o part.stl
| Endpoint | What it does |
|---|---|
| Run build123d code, create model |
| Modify existing model |
| List models in session |
| Get dimensions |
| 3D shaded render (VTK) |
| 2D technical drawing |
| 4-view composite |
| Export STL/STEP/3MF |
| Check if printable |
from build123d import *Primitives
Box(width, depth, height) Cylinder(radius, height) Sphere(radius)
Boolean
a + b # union a - b # subtract a & b # intersect
Position
part.locate(Pos(x, y, z)) part.rotate(Axis.Z, 45)
Edges
fillet(part.edges(), radius) chamfer(part.edges(), length)
The project has safeguards against accidentally committing CAD outputs:
.gitignore blocks *.stl, *.step, *.3mf, etc.No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.