3D Printering: The Search For Better Search

There’s no question that a desktop 3D printer is at its most useful when it’s producing parts of your own design. After all, if you’ve got a machine that can produce physical objects to your exacting specifications, why not give it some? But even the most diligent CAD maven will occasionally defer to an existing design, as there’s no sense spending the time and effort creating their own model if a perfectly serviceable one is already available under an open source license.

But there’s a problem: finding these open source models is often more difficult than it should be. The fact of the matter is, the ecosystem for sharing 3D printable models is in a very sorry state. Thingiverse, the community’s de facto model repository, is antiquated and plagued with technical issues. Competitors such as Pinshape and YouMagine are certainly improvements on a technical level, but without the sheer number of models and designers that Thingiverse has, they’ve been unable to earn much mindshare. When people are looking to download 3D models, it stands to reason that the site with the most models will be the most popular.

It’s a situation that the community is going to have to address eventually. As it stands, it’s something of a minor miracle that Thingiverse still exists. Owned and operated by Makerbot, the company that once defined the desktop 3D printer but is today all but completely unknown in a market dominated by low-cost printers from the likes of Monoprice and Creality, it seems only a matter of time before the site finally goes dark. They say it’s unwise to put all of your eggs in one basket, and doubly so if the basket happens to be on fire.

So what will it take to get people to consider alternatives to Thingiverse before it’s too late? Obviously, snazzy modern web design isn’t enough to do it. Not if the underlying service operates on the same formula. To really make a dent in this space, you need a killer feature. Something that measurably improves the user experience of finding the 3D model you need in a sea of hundreds of thousands. You need to solve the search problem.

Needle In a Haystack

The problem with finding 3D models on the current crop of repositories is twofold: the search algorithms in use are not only exceptionally simplistic, but rely entirely on the person uploading the model to properly describe it. Anyone who’s ever suffered through the word scramble that’s often required to net any useful results on Thingiverse will immediately understand this problem, but if you’ve never experienced it first hand, here’s a perfect real-world example.

Recently, my brother asked me if I could print some wall hangers he could use to display his record collection. A simple enough object to knock together in OpenSCAD, but it also struck me as the sort of thing that had probably been done several times already by others in the community. So we’ll search for “record hanger” on Thingiverse:

Of the top four results, only two of them are actually what we’re looking for. You might be wondering how a set of gears or The Holy Hand Grenade of Antioch from Monty Python and the Holy Grail could possibly get top billing in such a search, but the answer is actually very simple. Clicking on those models we can see that the words “record” and “hanger” appear in their descriptions. Not in conjunction of course, or even so much as in the same sentence, but clearly the search engine is too dumb to notice. Of the thirteen results on Thingiverse, only four of them ended up being wall hangers for records.

Not a great result, but hardly atypical for the site. Any regular Thingiverse user will likely have a similar search horror story to recount. Still, it’s better than what Pinshape and YouMagine can muster. On those sites, the search term “record hanger” gives us precisely zero results at the time of this writing.

Are there really just four wall mounts for vinyl records between these three repositories? No, of course not. Fiddling with the search terms will coax out a few more results, and doubtless there will be others which remain hidden. It’s a frustrating and ineffective user experience; if finding what you’re looking for is that difficult, it might as well not exist.

Smarter Searching

Relying on user-supplied text descriptions clearly isn’t good enough. What’s needed is a search engine that can actually analyze and qualify 3D models. Something smart enough to do three dimensional pattern recognition, and identify correlations between similar designs. It’s a difficult problem, to be sure. But one that’s actively being worked on.

A company called Physna, short for Physical DNA, is working on a geometric search engine specifically designed for this purpose. Billed as the “Google for 3D models”, Physna converts models into a wireframe and uses proprietary algorithms to identify patterns. Once the object has been indexed in the database, users can search for fundamental elements like the size and shape of holes in it. Users can also upload a CAD file and have Physna search for models based on their similarity to the provided sample.

Right now Physna is being advertised as a tool for manufacturers to prevent duplicate work: with the ability to find finished objects that are similar to the one they’re working on, designers can potentially pull something from the internal part database that they can modify rather than having to create something from scratch. As this is essentially the same thing desktop 3D printer owners are doing when they search a site like Thingiverse or YouMagine, it’s not much of a stretch to think this sort of technology could be brought into the DIY and consumer space in the future.

A Revolutionary Scraping

So let’s say our hypothetical model repository implements geometric search or some other must-have feature, there’s still the issue of starting from zero when your competitors have had years to accumulate content. How do you make up for that shortfall? According to some in the community, the state of Thingiverse has gotten to the point that we should just strip content from the site en masse and upload it elsewhere. After all, most of it is released under licenses that allow for redistribution.

A recent thread on the 3D printing subreddit discussed an ongoing project to scrape Thingiverse for metadata and models specifically so the community could use it to jumpstart a new website. In addition to the actual STL files, the scraper collects the model’s title, author, and license. Anything that’s released under a sufficiently permissive license could, at least in theory, be uploaded to another site without the explicit consent of the original author. Of the nearly 1.5 million objects that have currently been extracted from Thingiverse, 96% of them are licensed under some variant of Creative Commons that allows for unlimited redistribution.

To be clear, copying Thingiverse content for the purposes of starting a competing website is specifically forbidden in the site’s Terms of Service. But when the creators of said content intended it to be freely available under an open license, and users are at their wit’s end, it seems like the community might not be against breaking a few rules for the greater good.

48 thoughts on “3D Printering: The Search For Better Search

  1. “Right now Physna is being advertised as a tool for manufacturers to prevent duplicate work”

    I am curious about how many manufacturers actually have this problem. If they are internal designs then the manufacturer should have some sort of catalog of already created parts which has been standardized and is generally known by the employees. If the manufacturer is working on external designs then they shouldn’t be referencing any existing work as the customer is paying them to work on the customers project, not build off of some third parties work.

    The logical problem in all of this lies in this statement:
    “As this is essentially the same thing desktop 3D printer owners are doing when they search a site like Thingiverse or YouMagine”

    No it is not, as i have said above, a company repository should have parts that are well labeled and created to certain standards of both work flow and format. 3d printer owners are searching a database which is added to by many people with no standards in creation or documentation. If a manufacturer does not have standardized procedures for creating and documenting solid models then no amount of proprietary algorithms will be able to define design intent, nor does it save time if you are searching a database based on a model that you already have 50-80% complete as you will still have to modify the result.

    Physna is just another VC company hoping to be bought by some existing PLM or PDM company to be added as a feature to existing repositories which will never really be used. You can usually tell by the use of the term proprietary algorithms, it means that they are pretty much guessing at this point and hoping no one asks too many questions.

    This kind of search optimization would be amazing for the DIY community but is not really useful in the corporate environment.

    1. This is exactly right.

      I spend a fair bit of time using SolidWorks at work, and we use Dassault’s PDM. Each model/assembly gets its own part number, and if everyone just does a decent job of using descriptive names for their parts ie: ‘BRACKET, IDLER ARM, PROJECT NAME’ its pretty much never a problem finding what you’re after (or determining it doesn’t exist yet). Its also trivial to pull an existing part, extract relevant geometry like bolt patterns ETC and build what I need from there. The new model then gets a new part number and added to the database while retaining links to the original geometry.

      Even external parts (like cad models from McMaster) get imported into the DB when I save an assembly while cataloging external part numbers so we don’t need to re-import the same bolt when it’s used in the future.

      For personal use I can see where this might be useful occasionally, but even then outside of “standardized” parts like gears/pulleys/ETC I don’t see a lot of use.

      My home 3D printing really just falls into 2 categories. There’s the practical stuff like brackets and clips, which are (for me at least) always simple parts made specifically for a specific thing. An example would be a bracket I made to hang my kitchen scrubby brush on the wall because I was sick of it falling into the sink. It was super quick to model, fits the specific brush I have, and was modeled in the software I know. By the time someone modeled something close enough to register as having similar features, they would already be done and ready to print their own model.

      The second category is the decorative stuff like busts, SciFi spaceships, ETC; and those things are well enough labelled as a matter of course.

    2. While I agree that creating a cad file so you can search for a similar file seems like a waste of effort I think physna solves a real problem.
      I work for a large company that uses objet printers for prototypes. Anny of the approx 400 engineers can email a file to the printer. These files are often pieces for test jigs or tools and it’s very likely that someone has wanted the same part as you, but for quick prints you’re not going to get the design reviewed and published in the document database when you’ve got work to do.
      I would find it very useful to be able to search the printer log for “u-shaped tube, 125mm, iso connection”.

      1. thanks for the example, i didnt think of test jigs or tools that wouldnt be imported into a companies PDM software. The issue i see is that you are still trying to use words to describe a physical object which in the end relies on everyone having the same interpretation of the words. Take your example:

        Which ISO connection are you talking about
        Is 125mm the length, the radius of the bend or the size of the tube profile?
        Speaking of profile, does the tube have a u shaped profile? or does it have a circular profile but a u shaped path.

        Which circles back to the original problem anyways. I mean if the people working together cant accept a common usage for words in tags on thingiverse than who is determining the meaning for the algorithm and if you are having one person determine the meaning for an algorithm then why not just write up a proper procedure and now waste money purchasing a software solution?

      2. This is interesting.

        I’m curious if you know why they wouldn’t just put everything in the database. Is it a storage or search time issue? I work for a much smaller company (about 30 engineers who use SolidWorks) and everything we make goes in PDM; prototypes, fixtures, flow/FEA studies, the works. We then have a process to rev parts from engineering models through tracked development and then on to production, although probably 99/100 models never leave the engineering level even if we do print/fabricate/use them. But I can search every model that’s been generated in the last 20 years.

        To be clear: I’m not trying to be critical. This is my first engineering job, and I’m genuinely curious why a larger company would only keep production parts in PDM. Also, how do you manage rev control if more than one engineer is working on a model/assy?

        Cheers!

    3. Preventing duplicate work is actually a huge commercial issue. This post and others posit it is mitigated by a companies internal systems. Those systems take time to build, communicate to new staff and maintain over common business travails like system changes and staff rollover.

      Unfortunately, many businesses don’t have the resources to do it the “right” way. And of course, not everyone gets it right every time.

      Physna may or may not actually have something that works, but there is a lot of value in the goal they are pursuing.

      1. I think that our definition of “huge” are on two different ends of the spectrum. In every company i have worked with there has been a procedure for creating and documenting 3d models, it may have taken time to build but communicating that procedure was rather simple and maintaining it was not as costly given that people followed the procedure or risked losing their jobs. Yes there were errors and yes people did get it wrong but thanks to user logging and documentation, those issues were easy to fix and correct either the staff members issue or to change the documented procedure.

        The only reason that a company isnt able to come up with a procedure and enforce it is bad management plain and simple as it is their job to make sure that these procedures are in place and being used properly. Physna is pretty much banking on managements laziness to enable shitty workflows and documentation and their value is non existent as it is a cloud service and no company in their right mind should ever let a clould service be used in conjunction with proprietary information such as the 3d models.

        This is a solution looking for a problem as the problem has already been solved by documentation and procedures instead of purchasing a 3rd party piece of software whos operation is dependent on an internet connection and carries the risk of leaking internal information to a third party. I do not agree with your assessment of value.

        1. I disagree. Have you ever used Physna? It’s amazing, and you can do it all locally as well. And Physna uses AI so it usually guesses what I’m looking for and that time saving adds up

    4. I see it more as a way to dig a part that you need out of an external database, like MSCs “Big Book” or McMaster’s Catalog, rather than to catalog an internal database of parts.

      For example, I wanted to make a small diameter replaceable tip pin punch. Brownells sells a great one at a not so great price… I was 99.99% sure that the tips they were using were a COTS item, but I had no idea that they were called mold pins (used for injection molding). A search like this could have led me much more quickly to the COTS product that I was looking for.

    5. Definitely valuable to DIY. But in our engineering team it’s been a lot more useful than you might think. That’s why they’re getting popular and it definitely works for me. I’ve used it on at least 4 or 5 file types and it’s been perfect every time, at least so far.

  2. That would be good for finding similar items to the one you are already looking at. You would still need a search time to find the original item. Also, it would not find items that use entirely different geometries to solve the same problem.

    Unless people are going to actually write geometry as a search term. Perhaps a text box that accepts OpenSCAD? That would of course be ridiculous. At that point one might as well just write everything from scratch!

    I’m thinking this would be a great new feature to have but maybe not the revolutionary new way of doing things that seems to be implied.

    Also, smarter search tools aren’t exactly a wheel that haven’t been invented. I just tried the “record hanger” example. Apparently Thingiverse’s search tool doesn’t use the old common convention of quotes meaning that this group of words only counts when found together, in order. If it did then I am pretty sure the “record hanger” results would be a lot better!

    Maybe Thingiverse uses the newer convention of quotes meaning all results must contain these words as opposed to just scoring results with said contents a little higher. I don’t know why that new convention is catching on. Idiocracy I guess? It sucks because it means there is no good way to indicate grouping. That’s what a + sign should be for.

    Or maybe Thingiverse’s search is completely dumb and just filters non-alphanumeric characters out and treats every word as a separate term. One doesn’t need to invent anything to improve on that scheme.

    A couple other things that used to be common were prefixing a term with a + to indicate “must have” or a – to indicate “must not have”. With those three simple tools, +, – and quotes for grouping you can craft some pretty powerful search strings. I wish this would become more common again!

    I suppose that most people (and I don’t mean here on HaD) probably never learned those conventions when they were popular. Alas Lycos and Infoseek, we hardly knew ya. Oh well. Implement them anyway. If people are going to keep demanding more from technology then at some point they must become more technologically competent. There is no way around that.

    1. I totally agree about the searching grammar. It’s a shame this was changed, makes searching in Google a lot less efficient now. They should revert it back.

      That’s the issue with programs that run remotely, you can’t adapt or change them, and thereby lack control.

      It would be nice if the trend went back to more programming and configuration interfaces, that allow you to customize things the way you need them to be efficient, instead of targeting the lowest common denominator.

      1. You can customize most things in Physna. Not sure how easy it is to totally change everything around but setting it up isn’t hard to do and I could customize it for our needs pretty easily

  3. I fully agree with the article, current search algorithms are awful, and I’ve been worrying about Thingiverse going away as well.

    As an interim solution, I just did a Google search for “site:thingiverse.com record hanger” That gave me a lot more hits to work with.

    Trying the “word scramble” mentioned above, I got much better results with “vinyl record holder” Still, it is ridiculous that I would have to do that when “record holder” should have done the trick.

  4. Unfortunately it’s not up to the “community” to forgive Terms of Service violations. It’s Makerbot’s rules. I can easily imagine them taking legal action against a competitor who violates their TOS.

    But I like the idea of doing backups in case Thingiverse is shut down. It’s harder to imagine Makerbot enforcing the TOS of a defunct website.

    1. But you don’t have to create an account on thingiverse or accept their TOS to be able to download the models from their site, so I’m not sure if they could even take any legal action. Since the models don’t belong to thingiverse, they are publicly availlable and the author of the model says it’s ok to redistribute them I’d say they can’t do much against it…

    2. I’m not sure Thingiverse can legally enforce those terms.

      If a project’s author released it under a license where the recipient is not allowed to limit the distribution of said project then what right does Thingiverse have to do so? Sorry TGV, you do not own all your things.

      Of course, there are many licenses that people release their stuff under. Anyone doing this had better be careful to only take projects whose original license does not allow Thingiverse to limit distribution. Also, any formatting, statistics or other value which has been added by Thingiverse had better not be included. I’m not sure even comments would be ok.

    3. IANAL but perhaps a solution is to split this into two steps.

      1. A community effort to put a backup of all the Creative Commons data in a structured format on Archive.org

      2. Once the Creative Commons data is out other people can access and use it on Archive.org to make something better than Thingiverse.

      In short: extract it and others will build something better.

    1. 1) All shared designs should be shared as source, not just STLs or equivalent because…
      2) All shared designs should be parametric because…
      3) All shared designs should contain configuration variables that are easily adjusted and account for differences in filament swelling or machine precision. This is especially important around joints where things need to fit together.

      It boggles my mind just how many people are sharing their STLs with the world but not their source files. Surely if you make the effort to share your STLs you must WANT people to use what you created right? Share the source too and it is so much more usable!

      1. Source files may be in a wide variety of formats, depending on what CAD software was used. Many of these formats only work in one specific software package, not necessarily one the downloader uses, those that can be imported by other CAD tools don’t always import perfectly. Stl is shared because it is a univeral format, everyone can use it to print from, and every piece of CAD software can import it (although importa can then only be subjected to mesh modelling modifications rather than procedural sequences of actions). Sharing parametric models also isn’t practial for those who have used mesh based modelling software rather than flow of operations based.

  5. I feel one of the biggest problems of Thingiverse is something not of Thingiverse’s making.
    It’s that people who upload models are often unaware, disinterested or just plain woeful at adding tags to describe their thing properly.

    Also, some models have hardly any description, and I know that descriptions are parsed by Thingiverse for searches as I have found in one of my own uploads where a unique word mentioned (and not as a tag, because it doesn’t apply to the model at hand) makes my model appear elsewhere, in this case the example being a particular brand of machine tool.

    So whilst it’s not brilliant, I think they do try.

    1. Interesting.

      I assumed that anyone could add a tag to anyone’s project. So, I just tried it. There is an add button. But it only works if you are logged in. How many of us normally surf Thingiverse logged in? I don’t. So I logged in and tried it.

      I clicked a random project and added some very relevant tags. Adding them was a little confusing, if I even succeded. I can’t tell for sure. The UI sucks!

      There is a text box with hint text that says to press enter after typing the tag. But how many of us always read the instructions? Much more prominent than hint text is the “SAVE” button directly below. I typed text, pressed SAVE and all that happened was my text disappeared.

      This time I saw the hint text. I typed a tag then hit enter. Sure enough my new tag showed up in the list with a little ‘x’ in the corner indicating that unlike the pre-existing tags I had the power to delete it. Ok, that’s better. I added a few more and they showed up the same.

      I’m sure that “SAVE” button has some purpose right? I was guessing at this point that even though I see the tags they are not actually recorded at Thingiverse yet. So I pressed SAVE. All my new tags disappeared. It’s like I never did anything. Are they gone? Are they waiting for some TGV employee to approve them? Is adding tags broken? Or is it just reliant on some javascript that does not run correctly in my browser? Perhaps browser incompatibility or a conflict with some plugin I have installed? I have no idea!

      So… I DO blame Thingiverse for the lack of tags. Sure, the original project author probably should have added them in the first place. But is that how these kinds of collaborative websites are supposed to work? I don’t think so. Let the mass of users manage the tags because the group will always do it better than the individuals. But what about people who chose bad tags, on purpose or otherwise? That’s also why there needs to be a record of how many people have attached that same tag to the same project. List the most commonly picked tags for the project first or make them bigger, bolder, something like that. This will mostly take care of the bad tags.

      Yes, I know, this sounds very “web 2.0”. Just because it isn’t 2004 anymore doesn’t mean we shouldn’t forget the lessons we learned in that period, it only means we should add to that what we have learned since.

      1. There’s something coming out called “Thangs” that is supposed to do everything you listed and be a much bigger database than Thingiverse or GrabCAD by the end of the year. It’s in beta though and you have to get them to invite you or a current user has to invite you I think. But I’m pretty sure it’s coming out in a few months.

  6. In the 90’s we (programmers) were used to count on libraries and design patterns for never having to reinvent the wheel again. Well, 30 years later we are still there. So don’t expect too much from Gcode repositories. (Though, you still can make money with the topic since conferences and seminars continues to attract reusability beleivers.)

  7. The main issue I see with 3D printers is that most people purchase them, and don’t use them, or simply use them for trinkets.

    There are enough trinkets in the world that nobody really wants new trinkets. Hence sites such as that are dying, because nobody wants trinkets. They aren’t useful.

    The forced standard of adopting hipster culture to make use of this tech, that hipsters had no part in creating is also rather annoying. Tolerance indeed, only if you’re willing to wear all black, become a dead (adopt some wierd cult behaviors) person or go completely ridiculously hipster.

    Hard PASS

  8. Physna looks interesting, although might not solve the “I want to find something with functionality X” as opposed to “I want to find something of similar shape to Y”.

    The various third-party sites somehow manage to achieve the goal of WORSE search than Thingiverse, which I really didn’t think was possible given how horrible Thingiverse search is. EVERY attempt I’ve made at searching with an AND operator (putting the search terms in quotes, using +, using the keyword AND) still results in an OR search.

    If I search for gimbal AND brushless, I appear to get all results for gimbal OR and OR brushless…

  9. Searching Thingiverse consistently drives me absolutely f**king bananas. 😫 If it’s not absurdly wrong results, it’s the pagination just flat-out BREAKING and suddenly saying “no results” on like page 18 of 32 or something, causing me to edit the URL to advance the page…and then there’s people just posting GARBAGE.

    Like that one jagoff who grabs handfuls of literally random objects, mashes them together into something completely unprintable, then posts it, claiming it’s “Not spam” but instead some kind of bot-based art.

    Every time I see that crap in my search results, I want to just start screaming obscenities. How has he not been EXPUNGED? It _is_ spam. It serves no useful purpose, not even that of ‘art’. GODS!

  10. It’s clear to me that the “programmers” who are now writing or maintaining the user interface for the existing site are not users of the site and likely have never used a 3D printer.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.