Live data from Hacker News

GenCAD

gencad.github.io

111–120 of 135 posts

Re: GenCAD

#111

Earlier quoted context omitted.

Seeing as I'm attempting to build my own CAD program in Rust I checked out the hosted website. I'm not really sure what is supposed to be working and what isn't. I can't help but to be skeptical of one person writing ~115k LOC in 4 months which is just the Rust crates, nevermind the frontend (which is another 100k LOC!!!). I'm curious why you decided to go with "eager" tessellation. Creating a circle immediately resu…

> I'm curious why you decided to go with "eager" tessellation. Creating a circle immediately results in a bunch of lines which resemble a circle but would fail under tangency constraints quickly. Is this a current limitation or part of the strategy for the kernel? I’ve seen several vibe coded attempts at a geometric kernel (including several of my own) and this happens every time . Vibe coding a geometric kernel is p…

Can you give specific examples?

Re: GenCAD

#112
post #76

Earlier quoted context omitted.

Seeing as I'm attempting to build my own CAD program in Rust I checked out the hosted website. I'm not really sure what is supposed to be working and what isn't. I can't help but to be skeptical of one person writing ~115k LOC in 4 months which is just the Rust crates, nevermind the frontend (which is another 100k LOC!!!). I'm curious why you decided to go with "eager" tessellation. Creating a circle immediately resu…

As someone also working on CAD in their spare time, also tried the hosted app. I get the feeling that this is made by someone who has never opened a (professional) CAD app at all. It feels like a mix between a tool like blender and CSG-style CAD, but even all of that doesn't seem to work. Maybe this is the proof that vibe coding does not work, at least not for this kind of application. In my own project I use LLMs ve…

Thanks for trying. What doesn't work? What did you try? If you're specific I'm happy to fix it.

Re: GenCAD

#113
post #22

Readers may also enjoy my open source Rust BRep CAD kernel https://github.com/ecto/vcad or the hosted version at https://vcad.io . I also wrote a bit about what goes into CAD apps! https://campedersen.com/tessellation

Seeing as I'm attempting to build my own CAD program in Rust I checked out the hosted website. I'm not really sure what is supposed to be working and what isn't. I can't help but to be skeptical of one person writing ~115k LOC in 4 months which is just the Rust crates, nevermind the frontend (which is another 100k LOC!!!). I'm curious why you decided to go with "eager" tessellation. Creating a circle immediately resu…

Tessellation is simply required to render the IR. The viewport is guiding the cursor to the vertices (perhaps a bug) but the engine is not forcing their use. I also built a ray caster :)

What wasn't working? I would love real feedback -

Re: GenCAD

#114
post #65
post #37

Neat, but I don't really see the utility. The time consuming part of CAD drawing comes from figuring out the correct dimensions of each feature, spacing, sizing, tolerances, etc., and constraining the drawing in a way so that it's easy to tweak later on- which this doesn't do at all. Maybe you could draw a 2d sketch of what you want then generate it, but you'd still have to do the hard part.

If you can just take a pencil and draw a piece of furniture, press a button and get a semi-decent CAD drawing to tweak, that'd be a huge tool for carpenters and such.

This is a classic outside the field vs inside the field conceptual disagreement.

From the outside, the hard part of designing a chair is making a blueprint. At least making a blueprint looks hard to people who've never made one. According to outsiders, the next layer of the onion is perhaps inserting reasonable constraint dimensions for similar reasons.

From the inside, as a guy who's recreationally made furniture, the hard part is judgment about joint selection and design, experience with wood warping (all wood changes shape with the seasons, a good woodworker makes it look easy to work around and a bad one makes expensive firewood that rapidly falls apart). Another insider PoV is judgment about wood selection to get the correct balance of final finish durability and appearance. Finally working toward outer layers of the onion, its time to do parametric joint design decisions... What's the ideal number and size of dovetail joints for, perhaps, a drawer.

I've seen prints of chairs before I don't need a LLM to make one similar to the ones I've seen before and could probably make from memory (at least ones I built myself), the library has loanable books and woodworking magazines. I do see the attraction from the outside.

Consider something like a Windsor chair. The larger the wedge in the spindles the tighter and longer lasting the chair until you break something trying to force them in; there's a lot of judgment and experience in designing, selecting, and installing spindles, but none of it is written down so it'll be hard to train a LLM... Tighten it until it breaks then don't tighten it that much next time. Most super detailed plans for Windsors are for inferior machine produced replicas which are not necessarily useful for a fine woodworker and are not exactly what craftsmen would aspire to. People who want "a cheap chair" will buy a 4-pak of folding chairs from walmart anyway, not make a homemade Windsor-style chair.

Another somewhat more blunt example is for actual woodworkers the "problem" with hand cut dovetails isn't knowing what they look like or how to make a diagram of one, but gaining the experience behind a hammer and chisel to push your luck while cutting them as far as possible without going too far and turning the part into scrap. One unavoidable part of woodworking is I've turned quite a bit of wood into scrap on the last step; oh well make another. At least I can burn scrap wood to keep warm LOL.

Its kind of like from outside the programming fraternity the non-programmers think the only skills required to program are typing real fast and being very experienced at fizzbuzz during interviews. But that doesn't work IRL, from an inside-out perspective.....

The woodworking world is not exactly lacking for a library of "semi-decent" plans. An automated system to make enormous quantities of low quality unverified and untested plans would not really help the field, no.

Re: GenCAD

#115
post #37

Neat, but I don't really see the utility. The time consuming part of CAD drawing comes from figuring out the correct dimensions of each feature, spacing, sizing, tolerances, etc., and constraining the drawing in a way so that it's easy to tweak later on- which this doesn't do at all. Maybe you could draw a 2d sketch of what you want then generate it, but you'd still have to do the hard part.

I think this is true under assumption that you know the CAD tool well. From my recent experience (I have a 3D printer), I regularly find myself in a situation where I know what I want to do, I can do measurements and I can make a sketch on a paper. Yet, making it a proper 3D model in something like FreeCAD is super tedious. I know OpenSCAD relatively well, but when it comes to something more complex I struggle a lot.…

I've been having excellent success with prompts like "use cadquery and build x" for moderately simple stuff, like bearing clearance gauge for 3d prints. I don't like openscad because while it will technically produce .step , they don't import "clean" into fusion, etc the way step files produced by cadquery do

Re: GenCAD

#116
post #46

Earlier quoted context omitted.

I just ask it for what I’m looking for (doing very simple “spare part” level at home 3d printing, nothing fancy or elaborate) and it gives me a starting point. Then I sometimes just edit the scad code by hand, and some times I ask the AI to revise, sometimes a mix (many iterations). For very simple geometries it works great, but it very quickly becomes apparent that there’s a bit of a disconnect between “LLM views im…

Tbh that sounds harder than just learning CAD, which is really not that difficult if you use a proper parametric editor - I would recommend SOLIDWORKS first. It's got the easiest UX so is ideal for learning. They actually have a vaguely reasonably priced subscription now, but IMO it's still way too much for occasional hobby use so I'd recommend just pirating it (which is easy). Once you have learnt a bit then the onl…

So, steps 1-5 can be done by clicking (tools you recommend), or writing lines of script (OpenSCAD). Once you grok those steps by just doing it yourself, you quickly get to a point where an LLM is quicker at editing the text file that represents the steps to generate the model. Things like "Make the extruded face I labelled blahblah do xyz", and it's quite good. Even better: "Parameterize curve abc and generate this spread" or something. You get it.

For LLM-assisted bespoke model generation it's still fine if you specify a process to follow, and can "speak the language" (knowing 1-5).

This is no different than purevibe vs LLM-assistance, IMHO. What TFA refers to is a more end-to-end, no iterative process, with no single touchpoint script like OpenSCAD offers, so it's very much _not_ a collaboration and requires no knowledge of how CAD models are made.

But this thread is moreso about iterating on an OpenSCAD specification using LLMs.

Re: GenCAD

#117

Earlier quoted context omitted.

I’m also confused by their examples. All of them seem to be perfect renders/exports from 3D models — this is not the use case where I see it the most useful. Making a parametrized CAD model out of a hand-drawn sketch — yes, please

I have tried getting claude to generate openscad for sketches it does poorly. But that would be great

One method that I found works really well for OpenSCAD is learning its syntax and features and making the models myself based on my own sketches.

Re: GenCAD

#118

Earlier quoted context omitted.

I think this is true under assumption that you know the CAD tool well. From my recent experience (I have a 3D printer), I regularly find myself in a situation where I know what I want to do, I can do measurements and I can make a sketch on a paper. Yet, making it a proper 3D model in something like FreeCAD is super tedious. I know OpenSCAD relatively well, but when it comes to something more complex I struggle a lot.…

Your comment on how you feel trying to execute a model is similar to the inverse of how many Mechanical Engineers (used to) talk about coding - they know what they want, they can write down what they want a program to do, they just don't know what to type out in a programming language or how to compile the code or use the IDE, etc etc. There are mechanical engineers out there who can literally model objects nearly as…

as a mech who then did a cs degree, openscad is the brainfuck of cad

like its purposefully built to be unusable

Re: GenCAD

#119

Earlier quoted context omitted.

A little suggestion in case you decide to try again, just don't worry about constraints. If you're making one-off parts for yourself, just sketch what you need and don't worry about trying to make it parametric. Get the part done and move on.

That's what I've done. It's just such a chore. I see what my ME counterparts can do in an hour and it takes me days. I could likely get myself to be a better MCAD designer with discipline, but there's little guarantee it would make me enjoy it. I enjoy ECAD and I'm good at it, so it will always be a fine hobby for me.

MEs take at least a course in it, and its a great course to take. you could probably audit it

across MEs, its also the most fun couple classes of the degree, since they build a skill other tha math - visuallizing objects in 2d and 3d at the same time, and guessing whats on the back side of drawings.

it will also inprove your sketches on paper, so they

a different option would be that if you know what you want, but cant be bothered to draw it beyond a sketch, you might actually want a small mill instead of a 3d printer.

Re: GenCAD

#120
post #5

Earlier quoted context omitted.

It could be used as pseudo-code for LLMs to produce specific CAD commands?

It will still be application dependent. Code to compute fillets and blends gets incredibly complex when multiple surfaces are involved. And when surfaces are barely intersecting, or almost coincident, all bets are off what the command will do - very much depends on the geometry kernel and the tolerances it uses whether it decides the surfaces even intersect. And if it decides they don't intersect, all downstream comm…

ideally, fillets are the last operations in the sequence. could the sequence of operations follow a topological ordering that makes it kernel independent?
Post reply on HN