15 comments

  • pedropaulovc 8 hours 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: https://zoo.dev/docs/kcl-samples/lego

    [2] Lego brick in µcad: https://microcad.xyz/index.php/2025/11/12/lego-bricks/

    [3] Gear in KCL: https://zoo.dev/docs/kcl-samples/spur-gear

    [4] Gear in µcad: https://microcad.xyz/index.php/2025/11/12/gears/

    • hantusk 3 hours ago
      • _flux 1 hour ago
        Hm, at least build123d (which I had never heard of, thanks!) can export STEP, which I believe is becoming a necessity if one wants to assemble real-world models with FreeCAD (and nicely also slicers are picking up support to it). I'm on the edge though if I'd really like a proper DSL instead of building it on top of Python, although I can see that too has its benefits (e.g. library access).

        Does anyone have idea about the STEP export support status for KCL/µcad? To me it looks like KCL cannot, and I cannot find information on it about µcad. The one tool I'm familiar within this space is OpenSCAD and it cannot. While FreeCAD is able to (sometimes?) convert from STL to STEP, it seems actually working with such models in FreeCAD is quite compute-inefficient.

        • elsjaako 44 minutes ago
          If you're talking about CAD in general I can see your point.

          For FreeCAD specifically, there looks to be an OpenSCAD import process directly. I don't have experience with how it works, but that may be better than going through STL

        • exasperaited 1 hour ago
          Converting from STL to STEP is essentially always a case-by-case thing.

          For example if you import, sew, check geometry, refine, etc., you can eliminate triangles in planar faces. But you can't magically make a 120-sided-polygon a circle; you're going to have to do that yourself.

          And FreeCAD is not the best tool for correcting broken meshes, which are commonplace. MeshLab and the vaguely-on-life-support AutoCAD MeshMixer are better at it.

          Though Mark Ganson's MeshRemodel workbench looks very interesting!

          https://github.com/mwganson/MeshRemodel

          STEP/IGES is as you say more or less essential if you want to work with code-CAD output in any other serious context. STL is not enough: it is like converting to JPEG in the middle of a photo editing flow, not at the end. It destroys geometry.

          You might find DeclaraCAD interesting.

    • its-summertime 7 hours ago
      Doesn't it solve the problem by being local? https://codeberg.org/microcad/microcad
    • fallat 7 hours 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 :)

      • fransje26 1 hour ago
        > There are people who've already tried :)

        And they were never heard of, ever again? :-)

      • adastra22 2 hours ago
        Don't they use their own kernel? What legal tape?
  • aclindsa 9 hours 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 9 hours 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. 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.

      • marcosscriven 3 hours 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 8 hours ago
        wow, this is really neat. I always noticed how, when panning around with ortho view, it didn't need to re-render
    • MrGreenTea 1 hour ago
      A viewer/preview is in development.

      they got a grant for that. i couldn't find an english version though, sorry.

      https://www.prototypefund.de/projects/microcad-viewer

  • awinter-py 9 hours 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'.

    • WillAdams 7 hours 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:

      https://fornjot.app/

    • nicman23 4 hours ago
      freecad with the new ui + its openscad integration is pretty good.

      openscad in general is quite easy if you can functionally program

      • exasperaited 1 hour ago
        AFAIK FreeCAD's core OpenSCAD replacement is being suggested for replacement with an alternative so things may further improve.

        OpenSCAD in a FreeCAD context does address many of the limitations of OpenSCAD, but it's not perfectly compatible.

    • imtringued 2 hours 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.
      • mft_ 39 minutes ago
        I'm self-taught with CAD, and have repeatedly tried and discarded FreeCAD for several years. (Tangent: perceived absence of a decent CAD solution in Linux is one of very few things keeping me using Windows.)

        I recently happened upon a video which mostly changed my mind [0], in which someone successfully passed a Solidworks professional certification using FreeCAD. And to my eyes, their workflow was only rarely any worse than e.g. Fusion360, Solidworks, etc.

        I've since been trialling FreeCAd via the 'bleeding edge' weekly development builds [1]... and it's not perfect, and it's a touch clunky in certain areas, but it's now more than usable. (In some areas, it's actually better than the competition I've tried, IMO - for example making and cutting threads.)

        [0] https://www.youtube.com/watch?v=VEfNRST_3x8 [1] https://github.com/FreeCAD/FreeCAD/releases

        • exasperaited 37 minutes ago
          That is an interesting and important video, and I think it helps make the point that "commercial" CAD is often viewed through rather rose-tinted spectacles because FreeCAD's GUI has been unfriendly and obstinate. Beginner friendliness simply hasn't been on their radar until this point, because it would have been pointless to focus on it until TNP was mitigated to the level it now is.

          I don't think FreeCAD is perfect, but I do think it's remarkable we have it at all.

      • arcanemachiner 1 hour ago
        This is my understanding as well.
        • exasperaited 52 minutes ago
          It's incorrect, then!

          Lots changed since 2020 in the current 1.0.2 release, including TNP mitigations and the core assembly workbench.

          The 1.1 developer release (which is stable and useful and getting quite close to final release) contains further TNP mitigations; further improvements to the core assembly workbench; radically better lighting; datums have moved into the core; there's a way of enabling the advanced attachment mode in Part Design; compound body support in Part Design by default; significant comfort improvements in Sketcher, transparent previews, dragger gadgets and improved pattern tools in Part Design; support for external intersection geometry, Qt6 GUI improvements; lots of improvements to the Preferences panels, and that's before looking at FEM, BIM and CAM.

          Oh and the Ondsel stuff — the web sharing service, its plugin and its headless worker support — is also under the control of the FreeCAD project, free of its AWS dependencies and being actively maintained.

          It's still idiosyncratic but it goes way, way beyond looks. There was a big hump to get over between 0.21 and 1.0, re-engineering RealThunder's TNP mitigations to be more practical and adding the core Assembly workbench, but there's been enormous progress since.

          HN's negativity around FreeCAD no longer astonishes me because I think HNers in general have a rather misbegotten sense of what GUI CAD even is, what its strengths are instead of just its weaknesses, and how much of a challenge something with FreeCAD's scope really is. I mean Dune3D is interesting but frustrating still, SALOME is interesting but has huge money behind it; FreeCAD is the sort of hard-won, low-governance, pure-open-source-no-corporate-bullshit project HNers should prefer. Is it the equal of commercial CAD packages? No it's not. It's a different beast and an absolute social good.

          • mft_ 32 minutes ago
            I agree with this. Per my comment just above, I've been one of the HNers recommending against FreeCAD for years, because that was my experience.

            I've recently started to change that opinion; using the build I linked above, it's now pretty usable and competitive/usable for a hobbyist. I'm now considering it my first-line CAD package (until proven otherwise!)

  • deckar01 9 hours 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.
  • willvarfar 2 hours 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.
    • arcanemachiner 1 hour ago
      I know that FreeCAD has architectural support.

      I think it's called BIM, which tells you how well-informed on the subject I am (not).

    • nakedneuron 2 hours ago
      Then build123d might be for you.
  • cyrusradfar 6 hours 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!

  • beeflet 9 hours 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.

    • coldtea 1 hour ago
      Half the web uses PHP. Nothing wrong with PHP for web work, and absolutely nothing bad about the site is related to its use of PHP.
    • masfoobar 1 hour ago
      While PHP is not my goto language.. and the language has likely changed a fair bit when I last used it.. I don't think the issue is PHP.
    • swaits 7 hours ago
      PHP is fine. If the site sucks it’s not because of the language.
      • altmanaltman 5 hours ago
        yeah, a lot of frontend/styling choices are pretty non-asthetic other than the suboptimal performance.
    • GaryBluto 6 hours ago
      >https://microcad.xyz/?brx_pyuqqz%5B%5D=code&brx_pyuqqz%5B%5D...

      >brx_pyuqqz

      That's certainly an array name.

    • jwilber 8 hours 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…
      • iammattmurphy 8 hours ago
        The server appears to be down right now too :/
      • teaearlgraycold 8 hours ago
        If so that means they asked the AI to use PHP. Which is even more horrifying.
  • betimsl 1 hour ago
    Could you please make the book into a PDF?
  • theamk 9 hours ago
    So.. OpenSCAD, but with strong types and rust-flavored syntax?
  • cke 9 hours ago
    This almost feels like going back to old school Autocad.
  • tnlogy 2 hours ago
    Nice with another alternative. I have been using shapescript, which I think is easier than openscad, and available on ios. https://shapescript.info/
  • octoberfranklin 9 hours ago
    So what is the big advantage of this over OpenSCAD?
    • beeflet 8 hours ago
      I found this:

      https://docs.microcad.xyz/language/book/intro/preface.html

      >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.

      • Surac 4 hours 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
  • sciencesama 5 hours ago
    Why not openscad
  • actinium226 10 hours 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 10 hours 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.
      • krisoft 9 hours 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?

        • alanbernstein 2 minutes ago
          I have a lot of experience with openscad. I design a lot of small, simple-to-moderate parts. I want to use something like fusion instead, but the GUI learning curve is a huge blocker for me.

          I'm not a CAD professional, I can't seem to find the time to watch hours of video to get the basics down. With code based CAD, the way to start is usually obvious. When I run into a blocker, I search online, find examples, and try them out. Then, crucially, I copy and paste code snippets into my design, and modify them, to solve my problem.

          In a GUI cad tool, I find that I spend most of my time hunting for buttons in the UI, often finding UI layout discrepancies between my version and whatever video I found.

          I really want to design more effectively, with better fillet flexibility. But for my simple tasks, the barrier to becoming productive in a GUI is just too high.

          I believe the "command palette" in e.g. VS code solves this well, perhaps a GUI cad with that would be workable for me.

        • mft_ 24 minutes ago
          Agree with this. I've tried the various programmatic CAD options before, and creating initial shapes is relatively easy, but figuring out how to refer to parts of those subsequent shapes - to e.g. modify further, or build from, or connect to other shapes, is really complex and clunky.
        • fainpul 2 hours 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?

          • joker99 1 hour ago
            I recently used this https://makerworld.com/de/models/1765102-10-inch-mini-rack-g... to generate various mounts for my home lab mini rack. The idea is that everything needs to fit into the same width of rack, but every device is slightly different so custom creating these becomes annoying quickly. This generator was a godsend
            • fainpul 55 minutes ago
              So the appeal for you, as the "user", is that you can easily customize the parameters which are made customizable by the designer and get a suitable model without requiring proprietary software (or any software at all). I can see the appeal of that.

              But I assume the designer spent quite a lot of time, creating this in OpenSCAD and make it customizable. He was also restricted to making shapes which are easily described in OpenSCAD, where he might have gone for a more elaborate design if it was easy to do.

      • WillAdams 7 hours ago
        Well, there's OpenSCAD already, and for folks who like Python:

        https://pythonscad.org/

      • constantcrying 3 hours 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.

    • sho_hn 10 hours 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 10 hours ago
        Such languages can be amenable to LLM generation, reducing barriers to entry.
        • jwagenet 9 hours 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 7 hours 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 9 hours 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 9 hours 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.
          • ponyous 1 hour ago
            Interesting. I’m building a SaaS around this idea. And I managed to do things waaay more complex than that using LLMs. Especially “several times”. My AI can do a parametric trophy cup from one prompt in a couple of attempts, I would be shocked if it didn’t know how to make rectangular cube…
    • Normal_gaussian 10 hours 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 7 hours 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.
  • hekkle 7 hours ago
    Looks like a promising alternative to OpenSCAD.

    Although am I the only one to notice the swastika in their logo?

    • fainpul 2 hours ago
      If you see a swastika there, do you also see it in the Python logo?
      • lukan 35 minutes ago
        Personally I would not have seen a swastika here, but when looking for it, here it would be more obvious, the python logo has only half of it.

        Still, questionable if it was intentional .. and if it was, does not necesarrily mean they are Nazis (they did not invent, but just used the old symbol).

        Also this project was funded in part by the german Federal Ministry of Research, Technology and Space and they are not known to fund open Nazis in general.

    • GaryBluto 6 hours 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.

      • ruicraveiro 1 hour ago
        Maybe it could be Bauhaus inspired instead. (This isn't a serious suggestion, but if you're biasing your opinion based on their German origin, why not from the good stuff instead?)