3 ms·
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"?
by Mashimo 13d ago
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"?
- dofm 13d agoIt'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: https://cadquery.readthedocs.io/en/latest/sketch.html#constraint-based-sketches https://cadquery.readthedocs.io/en/latest/sketch.html#constr... 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.
- Mashimo 12d ago> But you can use Tinkercad for that too. 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.
- roel_v 9d agoIt 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).
- roel_v 9d agoAnd 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.