[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)