GenCAD

(gencad.github.io)

191 points | by dagenix 7 hours ago

15 comments

  • jrflo 1 hour ago
    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.
  • achllle 2 hours ago
    I wanted to see how well it performed on real pictures of parts or hand-drawn drawings, but when I tried setting up the docker image, immediately ran into all kinds of dependencies not being installed. The examples make me suspect it doesn't work well beyond images that were generated from CAD in the first place.
    • xiaoyu2006 1 hour ago
      > docker image, immediately ran into all kinds of dependencies not being installed

      Ironically the former is engineered to avoid the latter.

    • atoav 2 hours ago
      If only there was some kind of container that allowed you to bundle all your dependencies together with your software.
  • cjtrowbridge 4 hours ago
    This has been easy with OpenSCAD for a long time. I have made lots of cool, complex models this way. I built a repo of the prompts I use to show the llm how to do this and it includes many of the models I've created this way...

    https://github.com/cjtrowbridge/vibe-modeling

    • oasisaimlessly 3 hours ago
      OpenSCAD has almost zero crossover with B-rep modelling ('true' CAD, what this apparently is), though.
      • twelvechairs 1 hour ago
        OpenSCAD uses CSG which is generally better. Easy to convert CSG to BREP. Cant generally do the opposite
        • auxiliarymoose 1 hour ago
          It's easy to convert because CSG is a small subset of what BREP can do.

          It's analogous to "all squares are rectangles, but not all rectangles are squares" (squares=CSG, rectangles=BREP)

          CSG by itself isn't suitable for most CAD use-cases.

        • rowanG077 54 minutes ago
          How can I convert openSCAD models to true STEP files? As in no meshes. I Literally have wanted that for years.
      • iamgopal 2 hours ago
        how hard it is ? with AI prevalent, how long ? any pointers to start from ?
        • bschwindHN 2 hours ago
          If you want something based on B-Rep, look at projects that use opencascade under the hood, as that is one of the only B-Rep CAD kernels available which is free and open source. Some examples would be CADQuery, CascadeStudio, or RepliCAD.
    • jvanderbot 4 hours ago
      Same. Working with an LLM and OpenSCAD has been totally painless.
      • richk449 4 hours ago
        I’ve been using cadquery and build123 with Claude code and I find it incredibly painful.

        What is your workflow for llm integration to openscad?

        • pdntspa 14 minutes ago
          Not OP but I just ask Claude Code to make me an openscad file. If I need changes I ask for them in plain english. If you are specific, it's not the quickest loop but it works. I usually ask it to parameterize the model enough so that I can quickly print small prototypes in my 3d printer. Once I am happy with the mini version I print the full-size model.
    • alexgoodhart 3 hours ago
      What is the inference overhead on this
  • geuis 3 hours ago
    To the author if they happen to see this. Please kill the auto playing video. If someone is listening to something else on their phone this always takes over and interrupts.
    • whatsupdog 1 hour ago
      TIL: people are still browsing the internet without an ad blocker.
  • ecto 3 hours ago
    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

    • ecto 3 hours ago
      (forgot to mention, it's wired up to Claude so you can vibe CAD, like OP but with a few more steps - I'd like to train a similar model soon! I also wrote about my first stab at this https://campedersen.com/cad0)
  • clippy99 1 hour ago
    Maybe I missed something, if you have the image rendering in the first place, you already (likely) have the CAD. It is a nice demo, but what is the utility?
  • ugh123 4 hours ago
    The examples they show are so basic.
  • mamami 5 hours ago
    Ideally it would tie in with an llm, no? Like you would want to be able to say something like "create a design of car suspension subject to x,y,z contrains"
    • cush 4 hours ago
      The input is images, and the output is CAD models, so it appears you could use a multi-modal LLM to natural language -> image -> CAD
  • andrew_kwak 1 hour ago
    Checked out GenCAD. It seems pretty useful for simple circuit designs. Wondering if it supports import/export with other CAD formats?
  • isaisabella 1 hour ago
    The demo seems pretty cool, but also pretty simple. When it comes to complicate models, I afriad it would be hard to generate the accurate 3D model.
  • knollimar 6 hours ago
    It says "can convert cad latents into a sequence of parametric CAD commands"

    Which CAD program? I'm confused

    Am I reading this right?

    >Most importantly, GenCAD does not merely generate a 3D solid but also the entire CAD program.

    • dbcurtis 5 hours ago
      > Which CAD program? I'm confused

      Clue here: > Our proposed GenCAD architecture...

      So, at this point, it seems like this will work with all CAD programs, since they have yet to encounter any systems that they can't work with. More seriously, my guess would be whatever one is available for free in their lab. Kind of standard operating procedure for academic projects -- do a proof of concept, make a video that avoids known bugs, get a grade, push source to git, graduate. Good ideas come out of that... production code... eh... maybe.

      More likely someone ends up in the situation that my kid did, previous graduate student's git repo is stale by 2 versions of C++, and 4 versions of ROS, and neither of the two unit tests still work after porting.

    • hug 5 hours ago
      It's DeepCAD* output, it looks like, which is a JSON payload that is the sketch / extrude / whatever steps, which is itself based on Onshape output.

      Looks like you can go JSON -> step files, but not really in such a way that you can modify any of the operations.

      * https://github.com/mightyhorst/DeepCAD

    • lagrange77 6 hours ago
      > Which CAD program?

      Doesn't matter. CAD models/objects are represented by a sequence of operations on a primitive or sketch. Unlike meshes, that describe the manifested resulting shape of objects in 3D programs like Blender.

      So it's about the fact, that their model outputs that hierarchy of operations. The history of development, not just the result.

      • SchemaLoad 5 hours ago
        How does it not matter? Every CAD program is not going to have exactly the same interface and commands. I doubt for example this will for example generate and OpenSCAD text file.
        • plumeria 5 hours ago
          It could be used as pseudo-code for LLMs to produce specific CAD commands?
          • martinpw 2 hours ago
            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 commands will fail. Handling tolerances is one of the hardest aspects of CAD. (It's no coincidence that most open source CAD applications always demo with the same relatively basic types of models - they just can't do truly complex CAD.)

            So a simple set of operations - cube, sphere, intersect - sure that will work anywhere and will be portable across applications and makes a nice simple demo. But once you start doing any serious CAD modeling the result is kernel dependent. That's why portable CAD formats like STEP do not preserve the commands used to generate the results. And why native CAD application formats do preserve the command history but are not portable across applications.

          • SchemaLoad 5 hours ago
            It could be anything which is why the question was asked what it actually outputs. I had a skim through the page and code but couldn't see what the output was.
      • itishappy 4 hours ago
        Nothing stops you from storing a history of mesh operations. This is exactly what modifiers (including geometry nodes) do in Blender today.
  • simpleintheory 5 hours ago
    Is this Google-affiliated? The heading font is Product/Google Sans which IIRC only Alphabet is allowed to use and the entire webpage seems to be Google-style but neither of the two named researchers seem to be employed by Google?
  • Riany 2 hours ago
    the idea is good, but the examples still feel like a distance to handle real constraints and dimensions
  • ironhaven 4 hours ago
    A another take on this problem is zoo.dev . They wrote a brand new from scratch cad engine that is driven a custom openscad style language called kcl.

    Then then have a trained llm that has can generate kcl to either create new parts or act as a llm assistant for changes to existing parts.

    It’s neat that llms can do 3-D but I wonder how much of the problem is integration.

  • nik282000 1 hour ago
    Website renders so poorly on my phone that I cant read half the text. Fits the bill for a slop project.