3D Printing Starts with a Message
https://www.shelf.guide/best-rc-boats/

3D Printing Starts with a Message

I have been 3D printing as a hobby for a while now. Most of what I print is for my son, things like parts for RC cars and ships, or custom pieces that we design together for his projects. Beyond that, I often find myself printing replacement parts for things around the house that have broken, or enclosures and mounts for Raspberry Pi projects. The printer has become one of those tools that, once you have it, you start seeing opportunities to use it everywhere.

The problem I kept running into was the gap between having an idea and actually sitting down to model it. When I am at home, at my desk, with OpenSCAD open and time to think, creating a new model is straightforward enough. But ideas rarely come at convenient moments. They come when I am out somewhere and notice an interesting mechanism, or when my son points at something and asks if we could build one, or when I am trying to fix something and realize a custom part would solve the problem elegantly. By the time I get back to my desk, the details have faded, the measurements I meant to take are forgotten, and the motivation has moved on to something else.

What I wanted was a way to start working on a model immediately, wherever I happen to be. Not just sketching or taking notes, but actually beginning the parametric design process so that when I do get back to my printer, the model is already taking shape or even ready to print. The challenge is that parametric CAD tools like OpenSCAD are not exactly mobile friendly. They require a proper computing environment, and while you can technically run them on a phone through various remote desktop solutions, the experience is painful enough that you end up not bothering.

My approach to solving this was to set up a system where I could describe what I want in natural language, have an AI assistant generate the OpenSCAD code, and then immediately see the result rendered in 3D through a web browser. The key insight was that I did not need the full CAD interface on my phone. I just needed a way to communicate my intent and see the output. The actual computation and rendering could happen on a server at home.

The setup I ended up with connects a Telegram bot to Claude Code running on my home server. When I send a message describing a part I want to create, the AI generates OpenSCAD code and saves it to a watched directory. A file watcher picks up the change and triggers the OpenSCAD compiler running in a Docker container, which converts the parametric code into an STL mesh. That mesh is then served through a web interface that uses Three.js to render the 3D model directly in the browser. The whole pipeline is connected with WebSockets, so the moment the compilation finishes, my phone browser automatically refreshes to show the new model.

Article content

What makes this actually usable in practice is the iterative nature of the conversation. I can look at the rendered model, see that the dimensions are off or that I forgot to add a mounting hole, and simply tell the bot to adjust the parameters or add the missing feature. Each change triggers a new render cycle, and within seconds I can see the updated model. This back and forth feels natural, almost like describing something to a colleague who happens to be very fast at CAD work.

Article content

The real test came when my son and I broke the rc boat. The propeller was cracked, but the rest of it was fine. I pulled out my phone, described the rough dimensions and shape we needed, and by the time we got home an hour later, the model was waiting on my laptop, ready for some final measurements and a print. We had the boat working again that evening. That kind of immediacy, being able to act on an idea while the context is still fresh, changes how I think about what is possible to make. I have made no screenshots of that, but I was exploring a Water Turbine (PicoPica) - that's what you see in the screenshots.


There are limitations, of course. Complex organic shapes are hard to describe in words, and the AI sometimes interprets instructions in unexpected ways. But for the kind of functional parts I typically print, things with holes and mounting points and geometric features, natural language works surprisingly well. And when it does not, I can always fall back to editing the code directly or starting from a rough AI-generated scaffold and refining it manually.

What started as an experiment in connecting a few tools together has become part of how I approach projects now. The friction between idea and prototype has decreased enough that I find myself attempting things I would have dismissed before as too much trouble. Whether that leads to more successful prints or just more ambitious failures remains to be seen, but either way, the process has become more enjoyable.


To view or add a comment, sign in

More articles by Hannes Lehmann

Explore content categories