_______ __ _______
| | |.---.-..----.| |--..-----..----. | | |.-----..--.--.--..-----.
| || _ || __|| < | -__|| _| | || -__|| | | ||__ --|
|___|___||___._||____||__|__||_____||__| |__|____||_____||________||_____|
on Gopher (inofficial)
URI Visit Hacker News on the Web
COMMENT PAGE FOR:
URI µcad: New open source programming language that can generate 2D sketches and 3D
willvarfar wrote 34 min ago:
I've been searching for a CAD language that supports iteration in a
good way. I've been designing a self-build house and it occurs to me
that, once I have the walls etc, filling in the details for the
manufacture of those walls could be done by a programming routine.
Such a routine could work out how many studs are needed and their
placement etc and generate the kind of cut-throughs where you can see
the construction inside the wall that you sometimes see in construction
books. Anyway, without for-loops that kind of thing is really
difficult and I've given up.
nakedneuron wrote 10 min ago:
Then build123d might be for you.
sciencesama wrote 3 hours 17 min ago:
Why not openscad
cyrusradfar wrote 4 hours 2 min ago:
Super fascinating project. I'm very interested in this. I truly hate
using the tools by hand and as a programmer, this feels waaaay more
intuitive. That said, when reviewing the gear video, I think
understanding to start with the gear primitive would require giving the
libraries a good once over as I wouldn't have assumed those existed.
Can imagine more and more forms being built in as the community goes.
kudos!
hekkle wrote 5 hours 19 min ago:
Looks like a promising alternative to OpenSCAD.
Although am I the only one to notice the swastika in their logo?
fainpul wrote 19 min ago:
If you see a swastika there, do you also see it in the Python logo?
GaryBluto wrote 4 hours 19 min ago:
> Although am I the only one to notice the swastika in their logo?
Possibly. Although I know it's the wrong way round to be a Nazi
swastika, it's made all the more odd by the fact that this is a
German project.
pedropaulovc wrote 6 hours 47 min ago:
I've been using zoo and its KCL language with some success for
boundary-representation CAD writing. If I understood correctly, µcad
serves the same purpose. Comparing code samples between both of them, I
personally enjoy KCL's pipelined approach more.
My main beef with zoo is the fact that they are promoting vendor
lock-in by forcing users to use their cloud-hosted geometry kernel with
absolutely no local alternative. It's not clear to me how µcad solves
this problem. [1] Lego brick in KCL: [1] [2] Lego brick in µcad: [2]
[3] Gear in KCL: [3] [4] Gear in µcad:
URI [1]: https://zoo.dev/docs/kcl-samples/lego
URI [2]: https://microcad.xyz/index.php/2025/11/12/lego-bricks/
URI [3]: https://zoo.dev/docs/kcl-samples/spur-gear
URI [4]: https://microcad.xyz/index.php/2025/11/12/gears/
hantusk wrote 1 hour 49 min ago:
Lego brick in build123d: [1] Gear in build123d:
URI [1]: https://build123d.readthedocs.io/en/latest/tutorial_lego.htm...
URI [2]: https://github.com/GarryBGoode/gggears
fallat wrote 5 hours 22 min ago:
Zoo has said it's open to local hosting of the kernel for years. I
believe it's a matter of time because it's mostly about legal tape.
ucad is based on Manifold, so unfortunately, not really comparable,
since it's all meshes vs brep, like OpenSCAD.
Note KCL could be completely augmented with another kernel. There are
people who've already tried :)
adastra22 wrote 35 min ago:
Don't they use their own kernel? What legal tape?
its-summertime wrote 5 hours 41 min ago:
Doesn't it solve the problem by being local?
URI [1]: https://codeberg.org/microcad/microcad
beeflet wrote 7 hours 0 min ago:
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.
GaryBluto wrote 4 hours 22 min ago:
> [1] >brx_pyuqqz
That's certainly an array name.
URI [1]: https://microcad.xyz/?brx_pyuqqz%5B%5D=code&brx_pyuqqz%5B%5D...
swaits wrote 5 hours 8 min ago:
PHP is fine. If the site sucks itâs not because of the language.
altmanaltman wrote 3 hours 28 min ago:
yeah, a lot of frontend/styling choices are pretty non-asthetic
other than the suboptimal performance.
jwilber wrote 6 hours 57 min ago:
Yeah, my guess is the team vibe-coded it because wow is does it have
poor performance /is difficult to use. A few links didnât even work
for meâ¦
teaearlgraycold wrote 6 hours 28 min ago:
If so that means they asked the AI to use PHP. Which is even more
horrifying.
iammattmurphy wrote 6 hours 43 min ago:
The server appears to be down right now too :/
deckar01 wrote 7 hours 32 min ago:
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.
awinter-py wrote 7 hours 44 min ago:
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'.
imtringued wrote 36 min ago:
As someone who has been using FreeCAD starting in 2020, I can't tell
any major differences. The problems are the same they have ever been.
It's only the renderer that got a little bit more "sexy", but that is
just looks.
nicman23 wrote 2 hours 35 min ago:
freecad with the new ui + its openscad integration is pretty good.
openscad in general is quite easy if you can functionally program
WillAdams wrote 5 hours 36 min ago:
The great thing about OpenSCAD is that it makes it easy to
programmatically model objects using cubes, cylinders, cones, and
spheres by placing, stretching, and rotating them.
The awful thing about OpenSCAD is that one's ability to model in it
is strongly bounded by one's fluency with mathematics and ability to
use math to programmatically model objects using cubes, cylinders,
cones, and spheres by placing, stretching, and rotating them.
The one tool I'm aware of which is looking at a new geometry kernel
which I can recall is:
URI [1]: https://fornjot.app/
aclindsa wrote 7 hours 45 min ago:
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 wrote 7 hours 21 min ago:
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. [1] 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.
URI [1]: http://opencsg.org/
marcosscriven wrote 1 hour 15 min ago:
I didnât know theyâd added an alternative kernel. The CGAL one
used arbitrary precision which massively slowed it down.
Also, fillets are made using the Minkowski operation, which is
super slow.
beeflet wrote 6 hours 53 min ago:
wow, this is really neat. I always noticed how, when panning around
with ortho view, it didn't need to re-render
cke wrote 7 hours 47 min ago:
This almost feels like going back to old school Autocad.
WillAdams wrote 5 hours 35 min ago:
Yes, but if one wants to use that sort of thing, why not go _all_ the
way back:
URI [1]: https://brlcad.org/
theamk wrote 7 hours 54 min ago:
So.. OpenSCAD, but with strong types and rust-flavored syntax?
octoberfranklin wrote 7 hours 58 min ago:
So what is the big advantage of this over OpenSCAD?
beeflet wrote 6 hours 51 min ago:
I found this: [1] >While OpenSCAD is easy to learn and has a syntax
reminiscent of C, we felt the language could be improved in several
ways:
> - more specialization for creating graphics,
> - better support for modular programming,
> - strict typing and unit handling,
> - a syntax closer to Rust than to C,
> - a solid library system,
> - plugin support for other programming languages,
> - and a more powerful visualization concept.
URI [1]: https://docs.microcad.xyz/language/book/intro/preface.html
Surac wrote 2 hours 46 min ago:
I like openscad because it use a syntax more like c than rust.
Making the syntax more c like opens the user base up. Not everyone
sees rust syntax as a benefit. Just my 2 cents
actinium226 wrote 8 hours 40 min ago:
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?
raddan wrote 8 hours 14 min ago:
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.
constantcrying wrote 1 hour 0 min ago:
Neither is 3D printing going mainstream nor do I see any reason why
it would push people away from industry standard CAD software.
CAD is already complex. Why would giving those people an extremely
underpowered programming language, which makes creating even the
simplest 3D models a chore, cause change in the CAD world.
WillAdams wrote 5 hours 33 min ago:
Well, there's OpenSCAD already, and for folks who like Python:
URI [1]: https://pythonscad.org/
krisoft wrote 7 hours 36 min ago:
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?
fainpul wrote 35 min ago:
I've also been asking myself what people do with programmatic
CAD. I've used OpenSCAD once to create a simple, cylindrical
object, but about 80% of the things I create (using conventional
CAD, like Fusion 360) would be way too complex for that. And even
the simplest shapes are just much faster to create and modify in
Fusion.
Maybe this is the "everything looks like a nail" problem for
programmers who have never tried CAD?
Normal_gaussian wrote 8 hours 16 min ago:
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.
WillAdams wrote 5 hours 33 min ago:
If there was a real possibility of folks being willing to use this
sort of UI in industry, BRL-CAD would be far more popular, and
writing AutoLISP scripts wouldn't be an obscure specialty.
sho_hn wrote 8 hours 37 min ago:
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 wrote 8 hours 15 min ago:
Such languages can be amenable to LLM generation, reducing barriers
to entry.
jwagenet wrote 7 hours 16 min ago:
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.
atrettel wrote 5 hours 51 min ago:
This is my experience too. I took a course a long time ago in
design for manufacturing, and it became abundantly clear that
just because you can conceive of an idea doesn't mean that you
can build it. That requires a lot more work and technical
know-how that isn't always put into books or other "training
data".
2muchcoffeeman wrote 7 hours 35 min ago:
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.
aclindsa wrote 7 hours 37 min ago:
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.
DIR <- back to front page