Our API Spotlight series highlights interesting community projects that are built on top of our platform. To learn more about the possibilities of our API, read the API developer documentation. You can get support for our project on our forum.
Ethan Rosenthal built Rec-a-Sketch, a content-recommendation tool using the Sketchfab API. By using our publicly available data and combining it with machine learning, he can recommend visually similar content. In addition, he’s doing some clever recommendations based on likes and tags. Best of all: he explains his process step by step so we can all learn from his work!
Do you want it on Sketchfab yet? I do!
Why did you select Sketchfab for this experiment?
I got into browsing Sketchfab during my grad school days when I did a lot of CAD work and wanted a way to show off a “portfolio”. After graduating and moving into data science, I wanted to write a blog post about recommendation systems that use “implicit feedback” data. This is data which implies a preference by a customer, like a “like” or a purchase, but not an explicit rating. Content sharing websites tend to have a lot of this data. I scoured a couple but many did not make the data easily available. Sketchfab made it easy enough :)
How did you collect the model data from our site? Was it through our API or did you ‘scrape’ it?
I used a combination of APIs and scraping. I started by scraping but found this fairly tedious, as one must wait for lots of javascript on the page to load. I didn’t even realize that there were APIs until looking at the internals of the site code and seeing that APIs were being called. I backed out some of the calls and used the APIs for acquiring the resulting majority of model data.
How many models do you have in your database? Are you still adding new ones?
I ended up with around 28,000 models in the database from which I was able to build decent recommendations for ~25,000. I have not added any models to the database since the first time around. It took a while, and I didn’t want to be more of a nuisance than I already had.
https://sketchfab.com/models/86e6ef3d130f42c7b507b43b4fc2f934