Exploring the .thing file format

TL;DR summary: Scientists! And I like this file format.

These tokens are available as a pay-what-you-like download!


Buy this on Selz


Our house has its share of boardgames and several of them use tokens similar to these. One not-so-subtly encourages the consumption of sugar, and another suggests that dropping a load of dishes, no matter how well-intentioned and helpful the original intent of the carry, might shoot one down a slide of pain, shards, and ignominy.

I took the opportunity to replace the original tokens with images of scientists that have influenced me: Neil deGrasse Tyson, Carl Sagan, and Jane Goodall.

None of these icons of icons are wearing pants, which is OK because like the rest of us even great scientists have moments of pantslessness.

I had some trouble deciding which scientists to include in the set, because so many deserve recognition. The trick lies in distilling a person’s essence to an image that can be recognized when printed as a 3D cartoon. You could argue that, say, Michael Faraday contributed more to human understanding of the universe than Jane Goodall, but since he had the misfortune of living his entire life pre-television, almost no one knows what he looks like.

Dr. Goodall’s a tough illustration to do in the first place because she’s got the face of an everywoman– she could just as easily be your helpful neighbor next door, provided your neighbor totes binoculars and strokes chimps.

I think many science nerds of my generation have imprinted on Carl Sagan’s wide lapels and turtleneck, the same way today’s padawans will imprint on Tyson’s (more fashionable, IMHO, even given post-80’s style inflation) Celestial Vest.

Ok, on to the technical– if you came here from Thingiverse, this is what you’re here to read:

My usual workflow is Maya 2009->Wavefront .obj format -> Netfabb Studio Basic-> .STL -> ReplicatorG-> MakerBot print test -> zip -> Thingiverse.

Simple models can usually skip the Netfabb step– that’s just there to fix any polygon problems that Maya’s cleanup didn’t catch.

Still, that’s a lot of steps to get a model from concept to distribution, especially if a model has a lot of pieces like the Zheng3 Penny Catapult.

MakerWare simplifies this process by bundling all the .obj files into a single archive. All you have to do to peek inside a .thing is rename it from .thing to .zip and then open it up. There’s a .json file inside that contains translations, scales, and other metadata for each model, and an amusingly-named UNIFIED_MESH_HACK.STL where all of your
pieces are combined into one monster STL.

Why a .json file? Beats me. I can’t see anything in there that couldn’t be accomplished with half a dozen other plaintext file formats. The almighty oracle says that .json is used primarily to transmit data between a server and web applications, so I wouldn’t be bowled over with shock if somewhere down the road MakerBot integrated MakerWare, Thingiverse, and a paid premium model service.

But that’s just some random dude speculating about the future. Don’t hold me to anything.

Anyway, thought I’d give this new format a try for my new Scientist Game Token models, since they’ve got six separate pieces. If you want to print these models individually, you should be able to open the .thing file and import the .obj files into your slicer of choice. Failing that, Meshlab can convert them for you once they’re extracted.

Arranging the models is easy; drag and drop everything onto MakerWare. Click and drag to move them around, and CTRL-C/CTRL-V to duplicate the base model twice.

I managed to arrange the pieces nicely after a minute or two of fussing around, and along the way I came up with a feature list that would make the process smoother:

auto-layout: somebody smarter than me has to figure out a way to automatically lay out the pieces in their most efficient configuration with a single click.
• snap model to grid
• snap-align multiple models: this would be handy for making sure Neil DeGrasse Tyson’s base centers on his body. Aesthetics are important, even at the printing stage.
• drag to multi-select models: I was surprised that this wasn’t there already. One can shift-select models though.
• a keyboard shortcut to deselect everything
• nudge model using arrow keys

I imagine features like these will be forthcoming. After all, it’s a beta.

I’d also like to be able to easily add a plain-text annotation to a .thing file so I can include printing instructions and other notes. And a pony. I’d really like a pony.

I almost forgot: you can download these models here. They’re free and distributed under a Creative Commons ShareAlike license.

2 thoughts on “Exploring the .thing file format

  1. Abe Fehr

    They probably use json files so that they can parse it more easily for metadata when you upload it to Thingiverse. You can very easily unzip a file and read json with JavaScript, but it’s unnecessarily difficult to read other plaintext formats

    Reply

What do you think?