µcad: New open source programming language that can generate 2D sketches and 3D
17 comments
·November 23, 2025awinter-py
Tried openscad and then cadquery for some geometry iteration projects and found them clunky. It wasn't just that I was missing a UI; the functions, constraints and geometry kernel weren't as powerful as onshape, which I've used a bit, and presumably light years behind fusion 360, which I haven't used.
Even freecad, a UI-based oss cad, is not quite ergonomic for a beginner-to-intermediate user, though it has come a long way in the past few years.
I'm excited for there to eventually be a good open source cad option, whether language-only or language-plus-GUI, but am also increasingly on team 'tools matter for your productivity'.
aclindsa
One of the best things about openscad is the ability to immediately see the results of a code change in the 3D view (all I do is save the file with :w in neovim and openscad re-renders it). Being able to interact like this makes it much quicker and easier to iterate on a design.
I read through the ucad website and book for 10 minutes and haven't been able to figure out if there is an analogue to this for ucad?
There are several things that look neat about ucad's language, but I would need to recreate something like openscad's workflow to consider switching.
don-bright
That immediacy is mostly thanks to OpenCSG which is essentially a magic trick to quickly fake 3d rendering of booleans between 3d objects using stencil buffer of gpu. http://opencsg.org/
In other words it renders the cylinders cubes spheres etc and their unions differences etc, to a 2d screen without actually calculating the intersection of those meshes / solids in 3d space.
This is the special thing about OpenSCAD design is they figured out how to build an abstract syntax tree that could either be sent to OpenCSG, CGAL (old engine), Manifold (new engine), or even the bare bones 'ThrownTogether' renderer (ancient engine on machines with no gpu that just draws 'negatives' as green blobs iirc).
It should be theoretically possible for any CAD program to do this. its just a lot of work.
deckar01
This does not seem to have a constraint solver or any documented plans to integrate one. I love math, but I don’t enjoy maintaining walls of trig to make trivial constraints parametric.
cke
This almost feels like going back to old school Autocad.
theamk
So.. OpenSCAD, but with strong types and rust-flavored syntax?
octoberfranklin
So what is the big advantage of this over OpenSCAD?
actinium226
This is a neat idea and I quite like some of the syntax, but what is this for? I have a hard time seeing this gaining traction over traditional sketch-based CAD for a number of reasons, so is it just meant to be a toy?
Normal_gaussian
I'm a much more capable of designing useful models by programming than I am in using CAD software. The way I think about the construction of models is much more suited to standard programming techniques. I freely admit there is probably immense value in using the industry standard tools instead... I've printed a few projects now which I used OpenSCAD to design, and it went fairly well, and I'm confident in them. OpenSCAD is a bit of a PITA though.
I have no idea if this approach might gain traction over sketch-based CAD, I doubt it; yet this approach has a strong chance of expanding the space.
raddan
I would personally prefer to work with a language-based CAD than a strictly graphical one. Especially for parametric kinds of objects. Now that 3D printing is going mainstream, I am certain that new and interesting things are still to come in CAD.
krisoft
Curious. How much experience do you have with any form of CAD? Is the preference based on that you tried graphical CAD software and you found them lacking, or is it based on imagining how they might work?
Last week at the hackspace someone asked me to quickly design a manifold which holds together a scuba mouth piece, a 48mm diameter valve and a nato 40mm screw fitting. They wanted to minimise the internal tidal volume of the manifold, while keeping enough clearance for the tubes connected to it. We ended up connecting the 3 fittings in a Y-shape and lofted the pipes together. Without seeing the resulting shape I can’t even start to guess how many edges it would have. And I have no idea how I would refer to which edges i want filleted. How would you approach something like that with your prefered method?
sho_hn
Hmm - are you familiar with OpenSCAD, which is highly popular? This would appear to compete there. There's a few others, e.g. CadQuery.
lovemenot
Such languages can be amenable to LLM generation, reducing barriers to entry.
jwagenet
The hard part with 3d part creation isn’t the graphical interface or language, it’s actually describing and translating part requirements to a manufacturable design, weighing material, weight, fit, geometric, and cost tradeoffs. Openscad, opencascade, etc have been around for a long time and have specs for describing features in a way that llm should be able to handle, but if all the part constraints were available it’s far faster to make accurately in Solidworks.
aclindsa
Just yesterday I had an LLM write an openscad module for generating a 2d rounded rectangle. It worked great! I then tried to get it to write a module to extrude a 2d shape into a 3d shape and it failed spectacularly several times before I gave up.
2muchcoffeeman
I’ve tried getting Gemini to follow descriptions to generate a simple object in OpenScad.
I finally got it to do what I wanted.
But I’m much much faster and if didn’t have some amateur CAD experience, I don’t know I would have ever succeeded.
Interesting project, I will look into it.
This site sucks. Why does it use php, and why is every link a query? Just make it a static page.