r/arduino • u/Lazar988 • 4h ago
All I needed was an enclosure for my ESP32 project. Somehow that turned into an open source app
This started with a pretty simple project: a sensor station with an ESP32, a display and GX12 connectors for the sensors. The electronics part was fun. The enclosure part was not. I really didn't feel like spending my evenings in CAD.
So I just asked Claude to make it. And honestly, it worked better than I expected. It wrote the enclosure as CadQuery code with cutouts for the display and the connectors.
The annoying part was everything around it. I had no simple way to look at the model, so every time I wanted a change I took a screenshot, scribbled on it, pasted it back into the chat, and waited for the next version. Over and over.
At some point I thought: this has real potential, but it has to be easier. So I started building a small viewer for myself. That small viewer turned into SOMA.
How it works now: you run your AI agent (Claude Code, Codex, Gemini CLI etc.) in the built-in terminal, it writes the model, and the app shows it in 3D right away. If something's off, you click on the part, measure it, or scribble directly on the 3D view and send that to the agent. No more screenshot ping-pong. You can also load an existing 3D model as reference, for example of your board, and let the agent build the enclosure around it. When it looks right, export as STL and print.
It got way bigger than planned along the way. There are now sliders for dimensions, overhang checks, version history and even FEM. As a stress test I designed a complete CNC mill with it, 118 parts.
It's free and open source (GPL), with builds for Windows, Mac and Linux. I've only really tested on Windows so far, so if you try it on Mac or Linux, let me know if it even starts.
GitHub: https://github.com/Kai-Jungsthoefel/SOMA
btw: my first opensource project :)
I hope this helps someone, that hates cad as much as i do.

