Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Text-to-CAD (zoo.dev)
119 points by gok on Dec 20, 2023 | hide | past | favorite | 95 comments


As someone who has used 3D CAD professionally for decades, I must confess I had low expectations for this tool. My expectations have been greatly exceeded, and there is real value in something like this.

The value is not in creating models of new/custom parts, but in quickly generating models of standard parts such as pipe fittings, bolts, connectors, and stuff you could buy from a catalog. Prompts like "m4 cap screw which is 50 mm long" or "2 inch ASME B16.5 pipe flange" seem to reliably generate adequate results. Design of large assemblies often requires locating or drawing dozens (or hundreds) of such models (though there are sometimes libraries available). It's almost like the model was trained on the entire McMaster-Carr catalog! (maybe they scraped it?) The models will still need to be checked to ensure quality, but this is true regardless of whether a human or AI creates them.

Modeling even simple fixtures and brackets with a system like this is cumbersome: I tried, but requires paragraphs of metes-and-bounds language. Nevertheless I got the parts I wanted. Much of engineering happens at the interfaces, so accurately describing things like hole patterns and mating surfaces is critical. This can certainly be done in text, just not time-efficiently.

Additionally, the output (STEP files, etc) are what we call in the business "dumb solids." They don't include any parametric logic, and the sorts of edits which can be made to them are limited and often require serious creativity.

Another drawback: this thing is slow! A good CAD user could draw a lot of these parts in less wall-clock time. I assume this can be overcome by throwing more iron at the problem.

The UI/UX is has a ton of rough edges (and I'm still not sure if I made an account or not) but is totally fine for a proof-of-concept.

I went into this with incredibly low hopes: I've heard many promises of software which promises to make CAD faster and easier and accessible to non-experts. These look great in sales pitches, but the engineers and designers in the audience invariably wince (or worse). This is something that I could actually use and would make my life easier.


This is good feedback thank you! The model will only get better from here and we will work on speed and UX, we are also getting a bit pounded at the moment which might account for some slowness.


Also the goal is ultimately to return a KCL file which is our scripting language for CAD which is very parametric :) and easily editable, this will come next year


The value of a ML model for this is fairly low, though. An expert model, with fuzzy matching if needed, is going to be far more reliable for "standard" parts.

The only value of a "generative" model would be for "creating models of new/custom parts", but that's what you explicitely say it isn't for...

This ML/AI fad is looking more and more like the blockchain fad: redoing exactly what we already know how to do with boring technologies, but repackadged in a shinier coat hiding worse results, and the unproven promise of just-around-the-corner progress to suck in investors.


I'm sure there are instances where you have to model these parts manually, but I've never run into a situation where McMaster-Carr[1] didn't have the models I'm looking for.

- [1]: https://www.mcmaster.com/


Being able to output parametric models would be amazing. Much less interesting otherwise.


Prompt: Text-to-CAD, read this website full of building codes and generate 10 different floorplans that satisfy all requirements.

Response: Sorry, there are codes that counteracts other building codes.


When ever I see CAD mentioned on hackernews it's always 3D and never the more ubiquitous (in the construction industry) 2D documentation CAD. I wonder if this would be able to generate 2D vector files.


They're one and the same.

We use 3d CAD to generate 2d drawings, that's the standard way 3d cad is used, to generate 2d drawings that let you make stuff.

Many people get 3d modeling like for games or computer graphics confused with CAD, which is different.

CAD is fundamentally 2d and 3d in nature both, as a function of how we use it to make parts


I'm actually in the building construction industry and CAD generated 2D vector documentation is still the standard go-to for workshop and design drawings. Especially when it comes to contractors as-installed drawings. Some work had moved to 3D BIM modeling but often you'll still end up with 2D for a multitude of reasons and unless something drastically changes I don't see 2D work disappearing any time soon. Specifically because you can "show for calarity" in 2D more flexibly than with any 3D system because you are not modeling a space, you are documenting it.

You "could" generate 3D objects to use in a traditional CAD package but most of the time that would be overkill and just make your drawing, at best and un-editable and at worst a performance nightmare.


Rest assured, if the fabricator is in demand you are being charged a premium for turning up with a PDF instead of a 3D model they can auto-convert to toolpaths.


You're not going to be using toolpaths with a building.


Individual structural members, window and door frames are typically CNC'd off-site. Obviously the amount depends on what kind of build (eg. residential one-off, high vs. low spec, apartments, commercial, etc.) but in general for anything departing base-grade one-off small scale residential you will see more and more CNC'd elements.


Right, but I think the point is that the 2D can often be just as tedious to create as the 3D (and less enjoyable) but it gets less attention. Tools like this take for granted 2D documentation, not to mention the ability of the part to be fabricated reasonably through a standard process (CNC, injection molding, etc.)


i've definitely used 2-d cad programs that can't handle 3-d, and 3-d cad programs that are at best anemic for making 2-d drawings

they're not one and the same, although some programs are capable enough to do both


Those sound like terrible CAD programs that aren't terribly usable for real work. I don't know how I'd do my job with them.

Proper modern 3d CAD systems like Solidworks, Catia, Creo (was ProE), Fusion360, Inventory, etc. have super robust 2d drawing and export functionality. If they didn't we couldn't make the built world the way we have.

It's the same for 2d packages like Autocad. You can draw in 3d in Autocad, but it's not solid modeling its just drawing in 3d, totally different. But it works.

Why would you use tools that don't work?


in some cases, it was because the programs you're naming didn't exist at the time, except for autocad, which didn't have useful 3-d functionality

in other cases, because the 'tools that don't work' from your point of view can do things in minutes that would take hours in those other programs, which i don't have in any case. blender, for example, is terrible at making 2-d dimensioned drawings compared to something like solidworks, but you can model things in blender nobody has ever been able to model in solidworks, and then you can 3-d print them. and, though solidworks can do everything openscad can, there are things that are easy to do in openscad which are a real pain in solidworks. but openscad is also utterly terrible at 2-d drawings


Thank you.

Blender is definitely the wrong tool for this kind of job. It's a graphics tool, not a CAD tool.

A drafter may use a pen, but that doesn't mean a calligraphy pen will do.


depends on what you're designing and what kinds of products you need out of your cad program


I'm intrigued, what kind of products do they design in Blender?


sorry, by 'products you need out of your cad program' i meant things like prints with dimensions and callouts, or stl files, or gerbers, not the physical artifacts those things are used to produce


Got it.

Same question, what are the products you are referring to?


i just answered that in the comment you're replying to, so you have exhausted the presumption of good faith, and this is my last comment in this thread


I'm trying to get at what CAD program outputs you would want that aren't drawings, etc. I'm not aware of any. I'm trying to get at what true application Blender had which you are referencing.

If you don't want a drawing or a manufacturable thing out of your CAD program then its likely not CAD your doing but graphics design or 3d modeling, not design. This is fine, but itsba different thing.

I was trying to parse through that with you...


That a CAD program can only handle 2D doesn't mean that it doesn't describe 3D. Even when plans where physical large format blueprints, 2D, the product they described was of course always 3D. In French, the draughtsman was called a "dessinateur projeteur" - as projecting the 3D objects to a 2D plane (the plan !) was his core skill.


Seems like a massive waste of time to me, like hours vs seconds kind of waste of time. With 3D CAD, if I have a top view of a part and want to add a side view, it's like 3 clicks to just... make it exist. All views are derived from the 3D part/assembly, there's no effort needed to make new views pop into existence.

Maybe I'm out of date on 2D CAD knowledge, but from what I remember you'd literally have to re-sketch the entire part for the new view. Because it's drawn in 2D, you can't just "flip it on its side" like you can a 3D part. And then you have to make sure you actually sketched the part correctly and didn't forget anything.

I see it as analogous to programming with toggle switches.


Exact this. I can design parts in solidworks in a few minutes, drawings included, that would take much longer to draw in autocad.


You are exactly right: 3D CAD has taken the draughtsman's job.


Exactly, because the end result is a 3d object in the real world that needs to function with its surroundings in 3d space. How we write down that shape to communicate it to eachother doesn't matter so much. It's like language vs content


I've noticed the same problem, no LLM to manufacturing/construction CAD yet as far as I can tell?

It would be nice to feed the LLM a set of dimensions, constraints, desired features, etc and have a few different versions generated. Quickly explore the problem space of designing house for a piece of land, or for 3d printing.


The gateway to 3d cad is a properly functioning 2d cad system.

At least, that’s how I view 3d.

At the very least, the tool should be able to do additive and subtractive operations (boolean). Union, add, subtract, intersect, etc.


The way I see it, 2D is inherently included in 3D CAD, but 2D CAD is limited it's 2D-only nature.

Parts physically exist in 3D CAD. When you're working on your blueprint, it's done more-or-less by performing the operations on the part that will be performed when it's manufactured. Every 2D view you could ever want is inherently included in a 3D part.

But 2D... it's not much better than sketching by hand on a piece of paper. Everything's disconnected. You can forget to add a feature to a view, you can make mistakes between views. With 3D if you add a new flange or a hole or whatever to a part, every drawing is instantly updated.


We are doing this at drafterinc.com, automating 2D documentation from the 3D model. Let me know if you want to learn more


It’s trivial to take a 2D image DALLE3 or midjourney generate and vectorize it (illustrator etc.)


If you're getting your engineering plans from Midjourney etc., something is likely to explode.


To be honest from the sample prompts they provide you would be lucky if any two pieces fits together.


It's like the joke about the group of engineering professors who were invited to fly in a plane.

After they get comfortably seated, they are informed that the plane was built by their students.

All but one jump out of their seats and immediately run for the exits.

Later, the lone professor who remained calm was interviewed, as he clearly had more confidence in the ability of his students than any of the others.

“It's true, I know my students' ability very well, and I can tell you for a fact this plane won't move an inch.”


What is the Architectual equivalent of a hand with twelve fingers and nonsense lettering



a McMansion


Depends on what it is. I use DALLE3/midjourney to give me ideas for furniture pieces all the time and then build them. This is obviously not as complicated as a CAD for a building but it’s still a great starting point.


That kind of vectorization is a royal pain to edit.


inkscape is pretty go at everything except simplification.


A machine should be able to interpret topographic lines and generate an architectural floor plan that minimizes cut and fill.


that's not really suitable for the manufacturing/building route


The only LLM-as-a-service I use is phind for the sole reason that it allows me to use it without "signing up" first.

If the sign up is a necessary barrier for your needs is for you to decide, but I just wanted to let you know that I was excited to try your product for my wood working and 3d printing needs until the required signup.

Just some anecdata that even a little friction can be a hindrance in people using your product.


That's why it's a good filter. Friction isn't a bad thing if it filters out poorly matched leads.


If I may ask, why are you so against signing up for these tools?


A number of reasons.

Chiefly, a desire for privacy and anonymity. A signup will identify my interactions with an endpoint dedicated to me circumventing other privacy and anonymity measures I take such as fingerprint resisting and use of VMs and VPNs.

Also, sharing my email puts me at risk of having my email forwarded against my will or without my consent, as well as potentially clogging my inbox with endless "promotional updates".

Finally, I am unable to make an informed decision whether the risks of sharing my email with this company is worth the utility of the tool it provides until after I try it.

I think a fair response to your question is a question of its own: What do they want with my email?


So I have struggled with this when building services that need to store a user's data or manage a user identity. I'd prefer to not collect an email address. For me it comes down to whether or not I need to support features that most users expect like resetting an account password or notifying the user about some event.


I get it, and labor on the question as well with the tools I make.

The problems you present seem easily managed with an option to sign up while limiting certain use cases to those using the service anonymously.

I like a limited local first design, and a “demo login” with a simulated fully featured account that I feel allow a person to make the decision to share a piece of their identity with our product without any stress or coercion.

I tried to acknowledge that they may think the sign up is necessary for them, and that is a completely acceptable decision to make. I was just pointing out that it carries the risk of turning away weirdos like me.

If I was to build something in the LLM space I would likely try to glean some answers to these questions by cold emailing the phind team to ask them what considerations went into their decision to provide their tool in the way they do.


Do services like mailinator still exist? Temporary emails that you can use then throw away if there's no pay-off?


I am not the OP, but I also skipped on trying the demo, because I didn't want log with my real email into a random website (a few too many times it led to unwanted interactions), and I didn't bother to create a temp account.

It's just easier to wait another few months until somebody does it in the open.


Disappointing to see Jessie Frazelle building closed source centralized tech.

This approach mirrors "Open"AI sending all queries to central servers with no mention of any privacy measures. The admins surely get to see who is making sex toys, prop weapons, or medical parts and that data will be sold or leaked, as is tradition.

This is a great idea though and I look forward to supporting whoever makes an open source alternative I can run locally as a Blender, FreeCAD, or OpenSCAD extension.


As someone who spent an enormous amount of free time with zero pay contributing to one of those open source cad tools you mentioned, i say good for her. Make that bag. I work in a low level job thats got nothing to do with open source nor with CAD because i spent way too much time waiting for open source to magically produce income. There is a spectrum between open source dreams and pragmatic reality. People who judge you are almost universally wrong in their assumptions and their worldview and listening to them was a waste of time. I hope she makes a million dollars and uses it to support open source projects.


I'm inclined to believe that the people who make proprietary software are the ones with the "wrong worldview", if there is such a thing. People with morals are not the ones at fault for making the world parasitic to its core.

You say you had to stop with the open source because you needed money. That has nothing to do with open source, and everything to do with the fact that you're not allowed to access the basic necessities of life if you don't allow yourself to be exploited for profit.


>the fact that you're not allowed to access the basic necessities of life if you don't allow yourself to be exploited for profit.

This is the underpinning of capitalism. Some people speculate that denying basic necessities is the only way to ensure that common people will be productive enough to make the wealthy people wealthier.


No it is the underpinning of civilization.

Funnily enough, in the eastern block almost everyone had to work. But as long as the wealthy people call themselves general secretary or commissar and talk about Marx it's all good, right?


Yes, our current civilization is capitalist. And no, obviously not.


Good people are often swayed to do evil for the promise riches earned can do enough good to buy back their soul later.

Trouble is, the timing is never right to get out when there is always another payday just within reach.

These days I an happy to be paid to teach anyone anything but I have no interest in writing proprietary software anymore for any amount of money.

Everything I know and have built is because of FOSS and I owe that community my creations built on their work.


Oxide & Friends had some recent episodes about keeping the lights on when working on open source. IIRC titled something like "Corporate Open Source Anti-Patterns."

TLDR: FOSS devs still need to eat, so we'd better come up with a sustainable biz model, so we can keep working on FOSS.


My play is I sell my advice and experience, and find companies willing to pay me to write open source software to meet their needs.

I have built a security firm that only audits code/ architecture and writes open source code and it can generate enough income to support a few people in a way I feel good about.

I try to put people before profit and that is probably why I am not cut out to be a billionaire.


I’ve used ChatGpt to generate OpenSCAD code. Using GPT 4, it does a decent enough job to generate code for a basic shape of something as a starter.


I've also done this (and use github copilot while editing scad files in Emacs). I really wish there were more audio programming languages and examples so that we could create music like this, too.


This is the approach I've tried in the past although I'm interested in models that generate an AST that could then be translated back into code.


I'm really looking forward to the future of this area, especially parallel developments in image-to-CAD. It would be incredible to get an accurate model by taking a couple of photos and then inputting measurements. Sure, you can 3D-scan something, but that makes a messy point cloud when real world objects are mostly make out of primitives that could be far more exactly duplicated.


Same here, I've been doing chatGPT -> scad or blender scripts, but it ain't the same at all


Huh, I never thought of trying to use GPT for scad. Does that actually work?


As a prompt "An aircraft enough like a 737 that pilots don't need to recertify but with newer engines", what could go wrong?


Great start! I have a feeling this is going to cascade (no pun intended) in ways we haven't quite wrapped our heads around.

What is the underlying technology here? Is this an LLM driven workflow or Image generation driven workflow? I can imagine a way to do something similar either way given a dataset geared a particular direction. Speaking of... anyone have a lead on a CAD-esque dataset?

I have been trying to use local llm's for openSCAD code generation. My results have been quite terrible, and I would rather use Fusion or Solidworks if I am going to "sit down" and CAD something. I would really like to see the dataset used for this or something similar. My guess is this is an openSCAD or similar workflow.


Looks like it's using a language model to create a modeling script.

> ... In the future, we will give you the generated KCL (KittyCAD Language) code so that you can edit it in our Modeling App!


It says they're generating a STEP file, and that's just a text format. Fine-tuned LLM would be my guess.


Most programming language source is just text, how often does GitHub Copilot get things wrong when generating code fragments?

There is an ISO directive to not use any of their standards when training an LLM, would be interested to know what this group has done.


>There is an ISO directive to not use any of their standards when training an LLM

What? This seems mind bogglingly short sighted. You would thing a standards body of all places would want AIs outputting standards compliant output.


DXFs are also text files.


Do people really want train a LLM on CAD models treating them as text? I would be more interested in trying to work from the conceptual model behind the exchange file format.


There's probably mileage in just generating python that calls the FreeCAD API.


Is the site working? It accepts input, but the windows just show "Generating", even though the message "You are all caught up" appears.


Yeah it did that in FF for me. Chrome worked.


Oh. Why is it locked to Chrome?

Now it's totally broken:

This Serverless Function has timed out.

Your connection is working correctly.

Vercel is working correctly.

504: GATEWAY_TIMEOUT Code: FUNCTION_INVOCATION_TIMEOUT ID: sfo1::ktr6w-1703145542635-43fe4abe1bec


Try refreshing.


Came back after dinner, and it was done.

Trying some prompts:

- "1/4 inch bolt, hex head" -- result is a cylinder with no bolt head.

- "1/4 inch bolt" -- "The prompt must clearly describe a CAD model"

- "1/4 inch threaded rod, 3 inches long" -- same

- "0.25in threaded rod, 3 inches long" -- same

- "Plate, 3in x 5in, with rounded corners." -- same

- "Plate with rounded corners" -- blank result

Now it's too overloaded to do anything.

This is kind of an interesting idea. It's a good project to get a large language model and a constructive solid geometry model on speaking terms.

This needs to be a dialog. Something like this:

> Create a flat plate, 100mm x 300mm x 3mm thick.

> Round corners, 20mm radius.

> Drill four holes in the corners.

> Holes are inset 20mm from edges.

> Holes are 6mm diameter.

> Allow extra hole diameter for standard 6mm screw.

> Round edges of top surface of plate.

Those are all things you can express to Autodesk Inventor through its GUI.

What you'd really like to say is:

> Import this file. Here is a mounting plate for a motor.

OK

> The four holes near the center are mounting bolts for a standard NEMA motor.

OK.

> What motor frame size is it for?

NEMA 42

> Change the bolt holes to fit a NEMA 56 at the same position.

OK. (Drawing changes).


Now it's working under Firefox.

Weird, though, I asked for "6 inch by 6 inch plate with four bolt holes for NEMA 42 motor frame, centered on plate".[1] That should get me four holes in a square pattern. It got me three holes.

It has no clue what the standard NEMA motor frame sizes are, because I asked for a nonexistent NEMA number and it accepted it. That's an LLM hallucinating, probably. It's not an acceptable feature in engineering.

[1] https://text-to-cad.zoo.dev/view/fac162c0-0d5e-4e33-a2d8-2c3...


this is gonna be worse than clients who send jpg pictures of hand drawings


Can you use this for architectural plans? Or is that too complex?


Prompting for "A robot arm" turns up a blank design ;(


I'd be surprised if a prompt that general would actually yield anything useful.


What about dimensions? It's a good starting point, but which software can use this to alter the dimensions precisely? This should have been called Text-to-3D.


> Today, you can take the generated STEP file of any CAD model from Text-to-CAD and import it into an existing CAD program and edit it. Even more exciting, in the future, we will give you the generated KCL (KittyCAD Language) code so that you can edit it in our Modeling App!


Oh great, it's like a more advanced OpenSCAD but cloud-only, not open-source, and pay-as-you-go.


If it's spitting out STEP files, just about any of the major CAD packages will do it.


That will be great to make video games, this can easily be imported into blender, then the textures can be made with stable diffusion or DallE


I think our definition of 'text' is changing


Gear


Impressive!




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

Search: