I’m happy to announce a major change to the Thingiverse internals. I’ve spent the past few weeks working on a complete overhaul of the image system. The old system was a quick hack just to get the ‘verse up and running and it quickly showed its shortcomings (ie: being directly tied to Flickr, only supporting Flickr image sizes, etc.)
The new system is the image engine I’ve always wanted to write: it supports multiple size options, you can add images from any url on the web, by flickr ids, and yes even by uploading them directly. Basically, if you have an image, you can easily get it on Thingiverse.
Of course those aren’t the only improvements I’ve made: I’ve consolidated the images rendered from files with the images you’ve added (you can set a render as the thumbnail!) I’ve also done some very extensive work on the rendering system itself and have managed to uncover a few deep-seated and rare bugs (and eliminate them) The rendering system itself is much faster. Previously, we were using a cron based system which would check an SQS queue every minute for new render jobs. Now, we have a rendering daemon that will check the queue every second for new jobs. Not only that, but the daemon uses fork() so render jobs are processed in parallel. This technique has also been applied to the ‘finished jobs watcher’ that handles all of the finished job information. The net result of this is that render overhead goes from a minimum of 120 seconds to a minimum of 2 seconds. The whole process is a lot smoother.
Oh, and finally, in order to batch convert all of the previous images, I went through the legwork of setting up the rendering system on Amazon EC2. You’ll be happy to know that the rendering system will happily scale up very nicely for when Thingiverse starts getting hundreds of uploads per minute, or when we start generating gorgeous raytraced flyby movies of the 3D models people upload.
Anyway, just wanted to poke my head out of the trenches and let people know whats happening in the Thingiverse. The next major feature I have planned will be very cool and will be very useful. There may not be anything like it anywhere else on the internet.
PS. we now have a custom ‘not found’ image instead of piggybacking on the fail whale. Yay!