not interesting as the writeup as very AI sloppish :(. i'm sad about that as I would really like to have an intuitive sense for how good the current frontier models are at coming up with interesting 3d printable parts.
I've been just getting started on this with Astra. Astra is one-shotting good 3D models from photographs for me. I was unable to get Sol to do this, even after multiple rounds.
It's not a small change, it's from "not useful" to "pretty good"
Right but there is no meaningful specification failure mode in creative CAD, is there? I mean, yes, image to CAD for a little miniature, I can buy that it is OK. Fun, even, especially when your use is sort of transitory.
But this article is talking about functional parts. A functional part exists because of its spec, usually fails because of some combination of its material, manufacture, and spec. And the spec is chosen with that in mind.
Even working from a text description of a part is error prone because language is imprecise and interpretable. I just don't understand why AI people want to race past actual proper sensible solutions to a problem just to automate generating from text.
People don't have time (or even mental capability / even more time) to learn CAD but they have a task at hand which they want done. If AI can generate a part which is "good enough" for the user at a cost that the user considers reasonable (I.e. zero) then AI gets used. If a part fails thats rarely a concern because these parts are just 3d printed and likely cost single digit cents in filament. User can always print a new one.
Right, but the thing that I think sort of militates against this scenario is this:
If a non-CAD person imagines a part that they need, the chances are very high indeed that either it isn't what they need, can't be made robustly or sensibly, or if it is, it already exists in some meaningful way that can be adapted, because one of tens of millions of other people already wanted it.
This scenario — needing something very specific that can be described only in words and nobody else has ever needed before — is almost imaginary. Most stuff just isn't like that.
Now… if someone were to design an AI CAD package that could remix objects that exist and combine them, perhaps with a GUI tool that allowed a user to identify attachment points, maybe that would be interesting. But a lot of that has been solved in non-AI GUIs already.
Text-to-CAD just isn't as good an idea as it seems. You are not going to be able to magic up some novel invention from a text description without a significant amount of domain knowledge of the words needed to describe a part, and that domain knowledge usually comes from learning CAD!
(Bit like getting a coding agent to write really good code)
And simple parts, sorry, just don't need much CAD skill. Get a CAD package on a free plan, learn enough to make your thing. You will get so much more out of that and it will be easier to make changes. It'll probably have standard tools for adding threads, even.
Even image-to-CAD for a functional part requires a significant amount of understanding of what to photograph and from which angles, etc.
Dude, coat hanger joint is broken. The free chatgpt gives openscat file I can just paste and convert to stl. I didn't even measure the diameter of the pipe, apparently those are standard. In 10 minutes I have a new 3d printed part to fix my coat hanger. No CAD UI app subscriptions, not reading CAD books or whatever. That's real life. Rest is in your mind.
For OpenSCAD, AI models from about GPT4.5 onwards have been able to build and combine shape primitives pretty well, but that was never immensely useful.
Just last week I had Gemini 3.8 Flash and Antigravity take an existing STL of a part and swap out a piece of it with another design (fan shrouds on a computer case front plate). In the process it created exploded parts diagrams from the STL, created 2D renders from each axis (for its own visual re-ingestion, presumably, since I neither asked for or needed them), projected measurements, and then it implemented my design swap request. Which it didn't do with SCAD, it wrote a Python program and directly manipulated the STL geometries. It went perfectly. A week before that I had GLM 5.3 and Hermes take one model that was intended to fit into a part from another designer's part and change it; I didn't really like the interior part's design so I gave both STL files to Hermes and asked for a new interior part design that could be printed with vase mode to speed it up. It did and the new part is better than the human-designed part I grabbed off the internet.
I had another task mid week where I needed a case for something but didn't have the dimensions, so I just had Gemini do deep research lookup for dimensions and to then spit out a case STL for me. It was boring but functional and a good enough starting point for me to work with.
Right now my wife is enamored with a 3D printed purse design for halloween but the separately printed hinges are a weak design (a circular mortise and tenon rotating hinge). Working with Antigravity again, it's been able to take measurements, rotate parts in space on its own and create me a new object design that's better suited to be printed in TPU. It's held dimensional accuracy and even inferred some dimensions and spacing I didn't have out of the primary purse's shape. It's gone great. Next up will be having it combine all the parts into a single STL so I can do a multimaterial print in one shot, printing the purse in PETG but the living hinge in TPU without assembly needed.
I think "it's here, now" for home and hobbyist CAD needs for functional prints. It's not displacing a mechanical engineer's job yet, but this recent iteration is markedly better than the previous generation of models at spatial reasoning and 3D design because it's suddenly capable of it at all when even 4 months ago it was not.
In your other comment you mentioned "just learn CAD", and I have already, I could have cobbled together all of this myself in Fusion 360, but that would have taken far more time than a few minutes of prompting and walking away. I know enough domain lingo to describe the task well, and if it falls flat I will do it myself, but it's coming along faster than you seem willing to accept.
> I know enough domain lingo to describe the task well, and if it falls flat I will do it myself, but it's coming along faster than you seem willing to accept.
Could you do meaningful things without domain language you learned the long way?
I don't doubt it is coming along. But as with all of these things, this one is painted into a corner from the very start by using OpenSCAD.
And a mechanical engineer's job isn't just fiddling away in CAD, is it? If it was I would be on the way to being one by now, and I am not.
Is your question any different than how LLMs are impacting software engineers? A software engineer’s job isn’t just banging out lines of code either and you can’t effectively vibe code software without knowing how to describe what you want to build and having SWE domain language, and yet LLMs are having a massive impact on the industry and career.
I see no special barrier for mechanical engineering either. CAD can be represented in text. Statics and dynamics are already calculated in software, simulations are already ran in software. Specs for things are already formalized in both format and notation. All the pieces are there if you squint at it a little, they’re just not quite as easy as software tooling was, but it’s certainly closer than a surgeon’s or plumbers job.
What it means is that a good CAD model is not just sticking stuff together in 3D space. Parametric flow means that a small number of measurements ripple through the design, and sketches and solids adapt. To do this right, it's easier to just understand the purpose and intent of the model, how it was manufactured, and draw from there.
One of the things you get from studying CAD diagrams — like the Solidworks exercises everyone works through — is that real world parts often have surprisingly few dimensioned constraints. A lot more emerges from geometry.
So you can look at a diagram and initially think "where the heck does it define this radius!?" and find that it never needs to, because that radius emerges from tangency, parallelism, perpendicularity etc., combined with fewer measurement constraints.
Specifying it as a measurement would therefore be overconstraint; it might lead to solids that are difficult/impossible to manufacture or erroneous when another measurement is changed.
The diagram will specify the actual driving measurements that come from the part's purpose, with the intent to adapt to different real-world requirements.
Any CAD tool that works from images is going to have to approximate, which will create over-complex models with to many measurements that are more fragile with respect to changes, whereas a design that has geometrical constraints in place that are logical will be simpler and more adaptable.
With functional parts, roughly, form follows function first, and manufacturability second. But you have to understand why, to be able to make a good part. Even (perhaps especially) with 3D printing. But not uniquely. For example, would this tool be able to understand why the draft angles on a plastic part were important, what determines the bend radius of a part that was made from pressed metal, etc.?
I must stress that I am an amateur. But my amateur skills have come from reading and learning about CAD and learning what makes a viable design.
(Sorry… this was a stupidly long answer but I am hungry and I figured I should try to blurt it out before I have to get up from my desk and cook. I've edited it a lot and cut out a bit that I will probably put in another comment later)
Astra does that. I've fed it STLs, told it to inspect, make a model for it, derive 'conceptual' measurements (e.g. - there were USB type A sized slots in one design, it recognized those, and knew not to change that, but only let it be swapped out for type C slots), and make parameters for everything that is relevant (that's pretty much the level of detail I gave it). It distinguishes 'implementation detail' from 'conceptual measurement' and implements the model in terms of those 'conceptual measurements'. As always, with OpenSCAD (well CSG in general) the problem is bevels/chamfers/fillets, so it needed some instructions to look for those and not mistake geometry stemming from them for 'real' measurements. It does that too, now.
And yes, telling it 'add draft angles to make this castable' works.
Then you are not actually getting a model with a constraint system at all. Which is the point of the thing I'm replying to.
CAD constraints are more powerful and flexible than OpenSCAD, and the power comes from analysis of what the part is actually for, not merely what it looks like.
You can't even compel OpenSCAD to keep a line and an arc tangent. If hull() can't do it, you're making it up yourself with maths.
Wait.. Al this started with you saying Ai can't design cad that is useful. Does that mean you consider openscad not capable of doing anything that is "useful"?
It's a slight overstatement, maybe. But in the general case the answer to your question is yes. I believe OpenSCAD is absolutely not the right tool for functional parts. It has fundamental weaknesses.
You can use it for basic shapes and very simple geometry. But you can use Tinkercad for that too.
Should you use it for CAD generally: I think not. Because complexity balloons out of control. An AI is going to struggle as much as a human does with a complex part in OpenSCAD.
All the text-to-CAD packages are relying on it because there's lots of simple examples in the training set, and because it is declarative — there's a belief that there is a mapping from text to declarative spec and from declarative spec to an object.
But it is the wrong choice for flexible designs that adapt correctly when measurements are changed.
It's clear to me that "AI CAD" developers who think OpenSCAD is adequate to the task have a fundamental misapprehension of the capabilities of the technologies they are actually seeking to replace. OpenSCAD is not representative of the nature or capabilities of modern CAD.
I think that if you are trying to make an adaptable functional part you would be better to start from CAD drawings, with proper constraints on them, and that an AI CAD package should be interacting with those (there are some attempts to do just that).
It's just not that difficult in a modern CAD package, it's not arcane or obscure.
But if you're going to be using code-CAD, you want a programming package that can represent fundamental aspects properly. OpenSCAD cannot.
CadQuery, to be fair to the authors of this post, does now have an experimental 2D constraint solver:
And it has a proper bRep kernel, so it can represent vertexes, edges, arcs and faces in mathematically abstracted (not mesh approximated) forms, and do operations on those (including fillets, though it has its weaknesses there inherited from OpenCascade).
I think an AI that could operate properly on CadQuery models and implement appropriate sketch constraints with an awareness of their implications, choose the right operations, make use of libraries, etc., would be a lot more capable. But it's so much further down the line than people think based on these OpenSCAD toys that produce trivial parts.
It can do build123d too brother, and generate step files.
If you think constraints are a goal in itself, I don't know what to tell you. Constraints are a tool to generate geometry. If I make a design in Fusion360 or FreeCAD using constraints, and create an STL in the end to print, why would that be any different from using OpenSCAD and having variables in there to represent functional measurements? (and yes I've designed parts with constraints.) What are constraints but a tool for the operator to (visually) represent relationships between measurements? Variables and constraints are just different ways to express my model's measurements and locations in function of a set of fundamental inputs.
Is CSG less 'powerful' than brep? Of course it is. AI can do brep as well. Do you need constraints and solvers to do CAD? Of course not. I mean I'm not going to argue with shifted goalposts on what 'real' CAD is here, I don't care about what other people think about this. What I see is that AI is perfectly capable of making quite intricate 3d models today, passing people who argue about whether what the AI does is 'real' CAD left and right. Just like it passes those programmers who spends their days arguing that AI code is somehow inherently worse left and right. I don't care, I get results regardless of those people. What I meant with my original comment is that the assertions that AI today doesn't understand 3d relationships from 2d images is plain wrong, it understands it well enough to not only make 3d models, but to make it in ways a lot more conceptual than 'assemble triangles with skin()' (in OpenSCAD terms, but I had it do that in raw Python in models 6 months ago, when frontier models didn't have these spatial capabilities).
And one more thing - AI has changes what 'the right tool' to make anything digitally really is. Software packages like 3d modelers, video editors, etc were, well, 'tools' to abstract away computer operations that were too complicated for operators, or, at the least too time consuming to build from scratch each time. Imagine being a photo editor and having to start over with an empty void main(int argc, char* argv) for each assignment. And all the functionality in those packages are just abstractions for ease of use by humans. AI has shifted that. Today I do image manipulation at the level of 1990's graphics editors with the equivalent of just raw PIL. I don't care the AI writes a 1000 line throwaway script that implements its own version of Bresenham's algorithm (this is a slight exaggeration to demonstrate my point, I haven't actually seen AI's go that deep, foundation libraries provide such fundamental algorithms).
And same for CAD. Who cares about intermediate representation? If an AI just generates results directly, I don't care if it uses CSG or brep or has a writer for dwg files and just does moveto() and lineto() on that. Your comment suggests you think AIs are for doing things the way humans do to get a certain result. I don't care, I just want the results. Of course there is provenance and versioning future proofing and all, I'm not claiming CAD or 3d design or video editing software will go away - at least not right away. But they will have to adapt to being shortcuts for the AI to use them more efficiently than reimplementing their algorithms, or wither away.
I'm a Onshape person myself, and try to contsain every thing in a way you describe. Including variables to quickly change important parts of the drawing.
But I also 100% believe half my designs could be done with tinkercad. And this be useful for me.
Last thing I designed and printed was a vacuum hose adapter. Ai cad could have done that. Including variables with sliders for size in both ends.
There was a blog post from a couple of days ago that had been initially flagged, it seemed to me to have a good overview of AI for CAD, will try to find the link.
What word list are you using as the valid words list? The old solutions list from nytimes wordle is no longer very relevant, e.g. the last month or so has produced several Wordle solutions that were not on it.
Looks like I had a few memory errors. First I forgot that in the first phase, when they were able to identify people using DMCA subpoenas, they had a used a mix of suing first and offering a settlement first.
Then in the second phase when they lost the ability to identify people that way they switched to filing "John Doe" lawsuits, which then allowed them to get subpoenas to identify who owned the IP address where the uploads came from.
I'd completely forgotten about that. In most cases they offered a settlement once they had a name but still, there was a lawsuit. (If they couldn't get a settlement, or didn't even want to ask for one, they could amend the lawsuit to name the real person and proceed).
> in practice the RIAA offered defendants the option of establishing a “Clean Slate” by destroying all of their illegally acquired files and paying a settlement of approximately $3 per illegal song.
It's basically many pages refuting parent's comments framing of "It's pretty easy to validate that everything they're saying is accurate." given the PDF opening is:
"On September 8, 2003, the recording industry sued 261 American music fans for sharing songs on peer-to-peer (P2P) file sharing networks, kicking off an unprecedented legal campaign against its own customers.1 Four years later, the recording industry has filed, settled, or threatened, legal actions against well over 20,000 individuals.2 "
This entire topic is about Anthropic settling for 3k/book.
The parent claimed that the RIAA settled for $2-4 a song, which is true, and corroborated by your link. These were settled prior to legal action. They even had a website p2psettlement.com where you could pay before receiving legal notice.
The parent claimed that when RIAA actually sued, they sought statutory damages on a small subset of the infringed songs. Which is true. The two cases that went to trial involved 24 songs (Thomas-Rasset) and 30 songs (Tenenbaum), out of the thousands each defendant was accused of sharing. The statutory minimum was $750 per work, so a judgment on even a couple dozen songs exceeded the original settlement offer several times over.
The parent claimed that most parties got a lawyer, and would then negotiate with the RIAA. This is also true, most cases settled for under 10,000.
The two notable cases that went to trial were linked in my prior post. In one of them, the judge went so far as to urge Congress to lower the statutory minimum for individual, non-commercial infringers.
So I'm really not understanding what you're refuting. The EFF document you linked doesn't dispute any of these facts, it just critiques the scale and fairness. The parent described accurate mechanics, and the EFF thought it was abusive. These are both true at the same time and entirely different conversations.
So you're upset I showed proof of parent trying to white was the RIAA, with the "fairness" if suiing people who don't even own computers for copyright infrignment? Not sure what point you're still trying to make when its clearly refuted with your own words. And even parent later said they misremembered.
I'm not upset, nor did you show proof the parent was trying to "white was(sic) the RIAA". You made no claims directly about suing people who don't even own computers. You also seem ignorant of the fact that in the US, you can sue anyone at anytime for any reason. You're confusing the parent with a child commentator and replying to a post 10 days after the fact without addressing a single claim. I have no desire to continue communicating with you. Have a good one.
Maybe Claude is operating at a higher, self-improving level than all of us poor HN commenters. Wasting the local machine's resources to look pretty is a plausibly deniable way to make the Claude Code FE unusable with local LLMs, starving the competition.
A few things. I replied to someone else above, but I feed lessons learned from my social ant farm agents back into more productive agents.
Memory recall:
Lots of systems out there to give agents memory. I've used a bunch and written a couple. Storing memories is easy, but getting an agent to recall them, no matter how much you mention it in your AGENT/CLAUDE.md is a bit of an uphill battle. I've even watched claude make useful project memories and never refer to them again.
In my agent ant farm - agents go "to sleep" at night. They get nudged to head home, once there they get prompted to make notes about their day, about other characters. Then we do a compact with custom instructions. After compact/sleep cycle, if they enter a room with one of the characters in their notes, that gets loaded back into context automatically.
That all boils down to hooks in Pi like before_agent_turn. You can intercept a prompt, check it against code/flat files, and smartly inject more information into context. You can have a long running main session with compacts that discard procedural bits and offload the rest to memory.
Time Awareness:
Agents have no concept of time. You can send them a message at 5am, then at 10pm, and it's been 2 turns for them. For coding, this is fine. But for assistant level stuff, adding a message like "It's 3PM. It has been 3 hours since the last interaction with the user" goes a long way. Without me saying something like "new topic", it knows now that time has passed, i'm probably onto something new. If I left something hanging, it will remind me about it, or maybe go check on things that should have happened during the day.
Inner Thoughts/Idle nudges:
I can have an extension run every 5 seconds, check a a schedule, check activity level of the main session and fire off nudges on the main session. These look like the user sent it, but I generally prefix it with [inner thought]. For my social bot, I tested this along the lines of "[inner thought] it's been 3 hours since you last talked with user, why not reach out, let him know what's new, maybe send a selfie or a photo of where you are". For my assistant bot, it's an 8am, 3pm, and 7pm nudge along the lines of "[inner thought] put together an activity report of work things that has changed since the last report". This all runs in the main context, they get the thought, have historical context, can run skill to check on vault updates, open beads, anything observed from ingesting other agent sessions, and sends me a summary. It take into account my idle factor. If I'm heavily engaged in conversation at 3PM, the report might get delayed 15 minutes or an hour, or skipped altogether.
Awesome project and thanks for sharing. I've been trying to do similar things with much, much more meager hardware and your observations align with what I've discovered. Autonomy is hard, memory and "will" is hard to get going. Time is not a concept to LLMs in anything resembling a human manner. I'm trying a more emergent approach but the urge (and occasional need) to nudge is strong. If you're interested in seeing what I've been doing my Github is in my profile.
reply