Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: JermCAD – A YAML-powered, vibe-coded, browser-based CAD software (github.com/jeremyaboyd)
4 points by jermaustin1 8 days ago | hide | past | favorite | 28 comments
I had a hard time figuring out CAD software like Fusion, OnShape, etc., and decided to go about making my own CAD modeling software that I can "program" my models similar to how I think about them in my head.

I used Cursor to write like 95+% of this, giving it my YAML examples and making it implement the actual code to make those work.

Currently 100% self-hosted, and it is just a static HTML/CSS/JS, so it might just work without running npm at all.

Very few features working currently, basically just modeling a few primitive solids, and boolean operations.





I'm the author, so I will address everyone's comments in here:

> Why

To scratch an itch. I wouldn't have ever made this if /I/ had to make it. I wanted a way to express the primitive solids in a way that my autistic brain understands (through rigid object definitions in code). I have another neurodivergent trait called aphantasia which doesn't let me easily (at all really) conjure images in my mind, everything is described as text in my head... literally like reading a book, bringing up an "image" takes me multiple seconds while I read through all my brain comments about an image, especially if I'm supposed to focus on one feature. So I had an LLM build a tool for me (why it is called JermCAD and not something more professional sounding) that works how my brain does.

> How does it compare

100% doesn't. All of those tools are light years more advanced, and while I did try to use a CadQuery JS port, and another threejs CAD plugin, I couldn't get them to work, and I'm not a fan of python, so I stuck with what I knew font-end, web development.

> AI Slop

Yes. But again, this is a personal project that scratched an itch for me. It is a testament to how far you can get something in a few hours with an LLM, that would have taken months or years, but likely never would have happened, because who is going to invest months into redefining CAD to work the way that their specific neurodivergence works (Well maybe an autistic person hyperfixated on it, or me when I was 25 years younger).

---

This software as it is probably isn't useful to anyone except for myself. I originally shared it a few days ago to start a conversation, it got no traction. I am not saying that this or any vibe-coded, AI slop should ever be production software, but why not use it for a very specific implementation of something?


Neato! I might just self-host this at home and explore using it for my 3d printing needs...

Declarative constructed solid geometry sounds like how OpenSCAD works. I was curious if you took any inspiration from that project, or if you had found it but didn't suit your needs for some reason...


A friend of mine who ran a print farm actually told me about OpenSCAD when I shared a screenshot of my first design (a ball joint with armature). So I didn't take inspiration, but I plan on learning it just to figure out how they handle things like fillets. Because currently my fillets are blowing up. I contemplated just faking the fillets using an extrusion with a cylinder cut out of it, but if I can define edges in code and fillet them that would be better.

>fillets

They have to be done manually, usually using the Minkowski feature iirc.

There's another similar tool called implicitcad that handles them better (it's also the only useful piece of software written in Haskell I've ever encountered) https://implicitcad.org/


> it's also the only useful piece of software written in Haskell I've ever encountered

pandoc and xmonad are super useful


> So I didn't take inspiration, but I plan on learning it just to figure out how they handle things like fillets. Because currently my fillets are blowing up.

They don't. So save yourself that trouble. You design the fillets right into the extrusions doing them after the fact is prohibitively expensive.


There's actually openjscad and some available jscad-utils that can handle fillets

Fun project, it's okay to do things like this just because it's fun for you and you want to explore what's possible. Don't listen to the haters :)

You might get less pushback if you called it a 3D modeler and not CAD software.

It looks like an okay CSG modeler, but it's missing a thousand features that it would need to be CAD software. There's no PMI, no views, no simulation, no unit handling, no material properties (like material, density, etc.), no product structure, no measurement and dimensioning, ...


CAD (computer aided design) is a rather broad term used across many industries. There are many established CAD programs which do not offer PMI, simulation, or material properties. I do concur that views, dims, and units are table stakes.

tinkercad has 5% of that. it is still a cad program.

How does it compare to OpenSCAD, bitbybit, JSCAD, FreeCad, CadQuery, Curv, implicitCad, libfive, RepCAD, etc?

I mean it's nice that it exists, I guess, but there are already quite a few project (my list here isn't exhaustive) that seem (on the surface at least) equivalent beside the input format (YAML, but maybe some support that, I don't know).

So I don't want to imply that this has been vibe coded just to avoid searching what already exist, why they exist, why they don't support one specific feature... but still now that we are in this situation, namely 1 more item on the least, how can we compare it with the rest in order to know which one to use for our own needs?


To add to that, I would like to note:

https://pythonscad.org/

(which to be fair, is getting integrated into OpenSCAD Dev/Nightly)

which was a sea change for me in terms of both my usage, and my learning as a programmer, making my own project far more capable --- working on one last re-write (making use of skin() for straight-line moves), and it should be ready for general usage.


>code-based CAD solution

Worth mentioning OpenSCAD & ImplicitCAD. There's also Antimony which has a graph-based modeling approach.


Very predictable amount of snark being aimed at this, but to me it’s incredible that something of this complexity is even possible with a few hours of effort. It is irrelevant in this moment whether this has bugs or is useful to others; what it signals is pretty significant. In a year this kind of effort will be able to yield something even better.

tfw faster to build cad than learn cad. great job, isn't this how earliest incarnation of cad use to work, i think they had stylus, human interface support fair early, but before that one would expect just imputing coordinates in punched tape or something equally tedious but obvious to some brains.

My dad was a CAD engineer from the early 80s until he was laid off in 08, before that he was a drafter on pen and paper. He was the first one in his company to be given a computer for CAD, and he said this was basically what he would do.

"action shape center_x center_y width height"

But he said that everything was "conjoined" by default.

He could be wrong (it was 45 years ago, and he's in his 70s now), but he would type: a {return} c {return} 0 {return} 0 {return} 1 {return} 1 {return}

That would add a cube. All the commands/params could be shorthand or long hand, but he was a two finger typist, so there is no way he'd have typed out an entire word that spanned multiple sides of the keyboard like "cube".

You could subtract a sphere with "s {return} s" and I'm assuming you could intersect with "i" or similar, but he doesn't remember ever doing that.


For a current example of a tool which works along those lines see the venerable BRL-CAD:

https://brlcad.org/


This is really cool! All the best with this

Is it though? Looks and feels like AI slop on openscad

Indeed, and what worries me is that it might pull resources away from OpenSCAD or similar projects for something that, I imagine, won't be maintained.

What resources will it pull away if it’s unmaintained?

Contributors to alternatives.

AI Slop, yes. OpenSCAD, no. You can read the package file and see the dependencies. It is based on three.js and a couple of boolean-related plugins, and then the LLM wrote a text-based STL export function.

If it is browser based where's the browser link?? I wish there was a downvote button for submissions.

Browser-based doesn't mean, neither even implies, they're hosting a public instance.

Instead of spending half a day learning CAD basic, let's rebuild the worst version full of bug! Yays!

Also, there is an easy to learn basic cad. It's called Tinkercad.


TinkerCAD only works for folks who are willing to get in bed w/ AutoDesk and use a closed source project. See instead:

https://cadoodlecad.com/

though I just use BlockSCAD:

https://www.blockscad3d.com/editor/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: