[HN Gopher] We rendered and embedded one million CAD files
       ___________________________________________________________________
        
       We rendered and embedded one million CAD files
        
       Author : DavidFerris
       Score  : 84 points
       Date   : 2026-02-10 23:12 UTC (23 hours ago)
        
 (HTM) web link (cad-search-three.vercel.app)
 (TXT) w3m dump (cad-search-three.vercel.app)
        
       | DavidFerris wrote:
       | We rendered the one million part ABC dataset from Deep Geometry,
       | and open-sourced the data. We also built a fun demo with the
       | following pipeline: CAD > render > caption > embed.
       | 
       | Open-sourced dataset:
       | https://huggingface.co/datasets/daveferbear/3d-model-images-...
       | 
       | Blog writeup: https://www.finalrev.com/blog/embedding-one-
       | million-3d-model...
        
         | MichaelZuo wrote:
         | The search function doesn't seem to work at all, it provides
         | nonsensical results.
         | 
         | For example if I search "supercolumns" I get regular household
         | furniture.
        
       | sho_hn wrote:
       | Interesting.
       | 
       | My go-to for CAD files is usually https://grabcad.com/library
       | 
       | I searched this for "WAGO" and "XT90", so I guess not the same
       | use case. Some hits for "Raspberry Pi", though.
        
         | DavidFerris wrote:
         | This isn't meant to be a commercially useful search engine-
         | just a demonstration. You'll only be able to search for terms
         | that the VLM could directly discern.
         | 
         | From the blog post: Our search demo proves that it works quite
         | well. As anticipated, text search works well, returning
         | sensible results for even irregular or poorly formed queries.
         | It's worth mentioning that this is very different from 3D part
         | libraries like Thingiverse or GrabCAD. Search in those
         | repositories requires users to tag or annotate parts with a
         | description, the text of which is used in search. Our system
         | takes only an unnamed part as input, requiring no additional
         | labelling.
        
           | sho_hn wrote:
           | I see, you did an AI demo of captioning and search over
           | captures specifically for complex geometric objects.
           | 
           | I guess my interest was more piqued by the "CAD" part.
        
       | bstsb wrote:
       | i tried "apples" and got lots of nuts-and-bolts models?
       | 
       | edit: looks like the data is trained from machinery parts.
       | impressive regardless, but i'd add that to the lander
        
         | DavidFerris wrote:
         | There's a pretty big bias for mechanical engineering components
         | in the dataset- very few organic forms. It's one of the
         | limitations we call out in the dataset card.
         | 
         | There are a few though! Try "dog" or "cookie cutter" for
         | example.
        
           | rehevkor5 wrote:
           | It's CAD. Is there a legitimate reason to use that to
           | engineer a dog? Doesn't make sense to me.
        
             | DavidFerris wrote:
             | The initial ABC dataset is from public Onshape files --
             | clearly some people had a reason to design a dog model
             | parametrically!
        
               | 8note wrote:
               | id guess for 3d printing.
               | 
               | not the best tool for the job of making something
               | organically shaped, but maybe they also wanted to run
               | some aerodynamics tests on it?
        
         | Brian_K_White wrote:
         | I tried "DHO804" (a popular oscilloscope that has printable
         | accessories), got all screws.
         | 
         | Ok too niche, except that's exactly the use-case as I see it so
         | if that's too niche then what good is it? Whatever call it pre-
         | alpha poc and move on...
         | 
         | Tried "grommet", got all finger rings. Closer but not close
         | enough to be useful. It wasn't a mix of ringular-shaped objects
         | including grommets, and grommets aren't only round either. None
         | of the rings were even slightly grommet shaped, purely tori and
         | belts, some with add-ons and cut-outs.
         | 
         | Perhaps it needs a couple orders of magnitude more input
         | samples before it becomes useful. And by "useful" I do mean
         | even just as a proof of concept, because I don't see any
         | concept proven here.
        
         | virtualritz wrote:
         | I think an apple would not be stored in a CAD format like IGES
         | or STEP but rather in OBJ, USD, FBX etc.
         | 
         | I.e. it would not be in dataset because the use cases for 3D
         | apples are outside of typical use cases where people resort to
         | CAD software.
        
         | rehevkor5 wrote:
         | It's CAD. Doesn't make sense to engineer an apple...
        
           | jacquesm wrote:
           | Fruit picking is a thing. You may want to 3D print some
           | everlasting apples for tests.
        
             | 8note wrote:
             | CAD is _a_ 3D modeling tool.
             | 
             | its not the only one, and other tools are better suited for
             | something like an apple. you can still post-process it to
             | get it right sized for a printer
        
               | jacquesm wrote:
               | Oh come on, a nice 3D model of parametric apples in
               | OpenSCAD would be so neat to have.
        
       | neutrinobro wrote:
       | Neat, but also hilarious! Searching for "mug" gives results where
       | the first item listed (ABC-00008297) is a mug model with a hole
       | not only in the top to pour in your drink, but also in the side
       | and bottom (just in case you wanted more access to your liquid).
        
         | observationist wrote:
         | Yeah, this looks like something you might hang from a wire or
         | string with a slot for a dowel. A+ for effort though, lol!
        
         | abeyer wrote:
         | Not the first one... but the "pair of interconnected mugs" that
         | is described as "emphasizes connectivity and collaboration,
         | suitable for serving beverages in a shared or communal setting"
         | is pretty amazing too. I never knew I was missing out on
         | communal mug holding.
        
       | notpublic wrote:
       | Thanks! In my search for a good STL for the following, your app
       | gave me the closest model so far!
       | 
       | https://m.media-amazon.com/images/I/41hGjsBlrKL._AC_SL1000_....
       | 
       | I tried Google/Claude etc. But none worked. As per Claude, the
       | technical name for that is Pillow Block Bearing/Shaft Coupling
       | Block/Flange Mount Bracket. Funny thing is, your app didn't
       | return any good result when I search with any of those terms.
       | 
       | After reading your blog post, I searched for "block with 2
       | holes". And lo and behold, it returned ABC-00162357!
       | 
       | Couple of suggestions: 1) Have a permanent link for each model 2)
       | Show related models when a model is clicked 3) and lastly, show
       | models based on an image
       | 
       | edit: Search for "mounting block" returned ABC-00180735 which is
       | exactly what I was looking for. Thank you so much for making
       | this!
        
       | jlarks32 wrote:
       | Sick project. Great work. Thanks for the HF dataset as well.
        
       | ge96 wrote:
       | I like how the models have varying degrees of accuracy eg. a
       | Raspberry Pi 4B some are simple volumetric, others seem to have
       | every surface mount component which is crazy... wonder if that
       | was 3D scanned.
        
         | abeyer wrote:
         | More likely the detailed ones came out of ECAD systems that
         | often include 3d models in their component libraries so you can
         | automatically visualize/model the finished product while
         | designing a board, and integrate with physical CAD for
         | designing enclosures and other mechanical parts.
        
       | bobtheborg wrote:
       | Try searching for "glasses" and you get a page full of blocks?
        
       | connoronthejob wrote:
       | Neat.
       | 
       | As a mechanical engineer, I feel the part of my job is safe from
       | AI for the time being. I don't think quality training data for
       | good mechanical design exists.
       | 
       | 3D CAD is only part of good design. To a tinker-er that is 3D
       | printing simple parts, an STL is fine. But most parts that matter
       | require far more design consideration and detail than simply the
       | geometry data that an STL (or other 3D file) provides.
       | 
       | The majority of parts are accompanied with a drawing, and that is
       | where the real design actually is found: Tolerances, GD&T,
       | materials, processing notes...
       | 
       | Even then, most of the calculations and considerations to build
       | the model and drawing are not explicit in the design documents:
       | Nothing about a drawing of a stainless steel part tells you WHY
       | it must be a stainless steel part. I don't think there is a large
       | set of well documented designs out there to act as training data
       | for an AI system to design an assembly beyond basic 3D parts.
       | 
       | The authors identify this gap, but it's a fundamental problem
       | with the wholesale move to AI in mechanical design.
        
         | pyottdes wrote:
         | Agreed. At the end of the day, manufactured parts are driven by
         | constraints outside of the CAD environment so analyzing 3D data
         | as the foundation of an AI system strikes me as attacking the
         | problem from the wrong direction. i.e. Simple optimization of a
         | part for injection molding can take it from requiring a bunch
         | of side actions and collapsing cores to a simple 2 sided mold
         | and save hundreds of thousands of dollars in tooling. None of
         | that is obvious from 3D data alone.
         | 
         | That said, I am excited for AI assisted CAD tools. Things like
         | creating and applying global variables to an existing part,
         | complex assembly analysis for part reduction or just making a
         | starting base part can be incredibly tedious and are low
         | hanging fruit for improving CAD workflows with AI imo.
        
         | 8note wrote:
         | a lot of the why is encoded elsewhere in mechanical engineering
         | at least - the tables, the formulas, textbook problems,
         | engineering reports.
         | 
         | one of the challenges to making a good data set might be around
         | bad designs and why they failed. if we get to a mechanical
         | agent, its going to need to understand that brass was a mistake
         | and redesign a part as steel and change the design for the new
         | contraints
         | 
         | unlike code, that kind of train of experiment i think will be a
         | lot more expensive to make, since you might actually want to
         | create those parts along the way and not just pretend
        
       | bouchard wrote:
       | The approach could be helpful for searching though large 3D model
       | libraries like GrabCAD for some visual placeholder part by just
       | describing it.
       | 
       | The generality of the part descriptions made me chuckle.
       | 
       | > A bevel gear with a circular base and a series of angular,
       | tapered teeth extending radially outward. The teeth are uniformly
       | distributed around the circumference, allowing for meshing at an
       | angle with another gear. The gear's face includes a set of holes,
       | varying in size and symmetrically arranged around the central
       | bore, likely for weight reduction or mounting purposes. The
       | central opening likely acts as an axle or shaft attachment point.
       | The design facilitates the transmission of rotational motion
       | between intersecting shafts, typically at a 90-degree angle.
        
       | d_runs_far wrote:
       | two searches gave me absolute ridiculous results: chair, laptop.
       | Back to re-learning fusion for me :-)
        
       | latchkey wrote:
       | I put in "dog bone" and it just returned a bunch of random
       | things.
        
       | jsejcksn wrote:
       | When I search for "duck shaped trampoline", I see mostly fidget
       | spinners...
        
       | Cieric wrote:
       | Door knob seems to return a bunch of chess pieces and analog
       | sticks, I did get a few doors and a few knobs, but nothing I
       | recognized as a door knob. I didn't spend a super long time
       | looking though so that might have been the problem there. Also
       | suggestion, giving the ability to link to specific models might
       | be useful (I tried a few things on mobile, url doesn't change and
       | searching for a specific model ID doesn't return the model).
        
       | qwery wrote:
       | "box with a hole in it" resulted in a number of boxes and most of
       | these did obviously have holes in them. some did not appear to,
       | but being that they were largely enclosures for some sort of
       | device (as opposed to storage or transport) I'll assume there was
       | some hidden fastener clearance holes or something.
       | 
       | I really only wanted one hole in my box though, so I adjusted the
       | query to "box with a single hole in it". the results looked
       | indentical. except for one that stood out. I would link to the
       | particular model, but there was no way to do that. this model
       | appears to be a rectangular bathroom basin, on its side. I'd
       | describe it as perhaps a ~currently fashionable porcelain design,
       | but it could be a concrete 'getting shit done' sink, or a model
       | from The Sims (the first one). so box-like perhaps, but not many
       | people would describe it as a box. I guess my search continues
       | (elsewhere)...
       | 
       | (actually interesting bit about natural language: I know that a
       | box with two (or more) holes in it has a single hole in it, but
       | most English natural language parsers (humans) will notice that
       | specifying 'single' would be redundant if I wanted any number
       | more than zero, so it's extremely unlikely that I was looking for
       | a multi-hole box.)
       | 
       | where did you steal the models from, by the way? just curious.
       | the original context in which they were found would actually be
       | helpful if someone was for some reason trying to actually use
       | this as a tool.
       | 
       | also if you don't have the 3D model spinning incessantly, having
       | the page open won't be obnoxious and it won't (have to) waste
       | power
        
       ___________________________________________________________________
       (page generated 2026-02-11 23:00 UTC)