We rendered and embedded one million CAD files
39 points
21 hours ago
| 8 comments
| cad-search-three.vercel.app
| HN
neutrinobro
48 minutes ago
[-]
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).
reply
abeyer
35 minutes ago
[-]
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.
reply
observationist
46 minutes ago
[-]
Yeah, this looks like something you might hang from a wire or string with a slot for a dowel. A+ for effort though, lol!
reply
DavidFerris
21 hours ago
[-]
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...

reply
ge96
11 minutes ago
[-]
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.
reply
notpublic
40 minutes ago
[-]
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!

reply
bobtheborg
11 minutes ago
[-]
Try searching for "glasses" and you get a page full of blocks?
reply
jlarks32
25 minutes ago
[-]
Sick project. Great work. Thanks for the HF dataset as well.
reply
sho_hn
21 hours ago
[-]
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.

reply
DavidFerris
20 hours ago
[-]
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.

reply
sho_hn
20 hours ago
[-]
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.

reply
bstsb
1 hour ago
[-]
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

reply
Brian_K_White
1 hour ago
[-]
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.

reply
rehevkor5
1 hour ago
[-]
It's CAD. Doesn't make sense to engineer an apple...
reply
DavidFerris
1 hour ago
[-]
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.

reply
rehevkor5
1 hour ago
[-]
It's CAD. Is there a legitimate reason to use that to engineer a dog? Doesn't make sense to me.
reply
DavidFerris
56 minutes ago
[-]
The initial ABC dataset is from public Onshape files -- clearly some people had a reason to design a dog model parametrically!
reply
virtualritz
1 hour ago
[-]
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.

reply