Remix.run Logo
µcad: New open source programming language that can generate 2D sketches and 3D(microcad.xyz)
65 points by todsacerdoti 5 hours ago | 18 comments
beeflet 5 minutes ago | parent | next [-]

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.

jwilber 3 minutes ago | parent [-]

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…

deckar01 37 minutes ago | parent | prev | next [-]

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 an hour ago | parent | prev | next [-]

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 an hour ago | parent | prev | next [-]

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 26 minutes ago | parent [-]

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.

cke an hour ago | parent | prev | next [-]

This almost feels like going back to old school Autocad.

theamk an hour ago | parent | prev | next [-]

So.. OpenSCAD, but with strong types and rust-flavored syntax?

octoberfranklin an hour ago | parent | prev | next [-]

So what is the big advantage of this over OpenSCAD?

actinium226 2 hours ago | parent | prev [-]

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 an hour ago | parent | next [-]

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 an hour ago | parent | prev | next [-]

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 41 minutes ago | parent [-]

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 2 hours ago | parent | prev [-]

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 an hour ago | parent [-]

Such languages can be amenable to LLM generation, reducing barriers to entry.

jwagenet 21 minutes ago | parent | next [-]

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 42 minutes ago | parent | prev | next [-]

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 40 minutes ago | parent | prev [-]

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.