Up to now, you might have been able to build some really nice models with Shapesmith, but you couldn't share them except for exporting the printable STL version. What if you wanted to publish something for others to customize or improve? Now you can export and import models in a native JSON format, so you can publish and share your designs with others.

But first, let me quickly tell you about some other useful new improvements in the tree view (or ‘advanced’ view).

Copying, Deleting and Show/Hide

Deleting is obvious, and is only available for top-level geometries.

Showing and hiding is quite useful during the design process. Sometimes you need to design parts inside of other, existing parts, but this has been is really quite hard to date. What I've done in the past is to move the geometry away, edit the part, then delete the transform to put it in its original position. Now, it is no longer necessary as you can simply show/hide geometry as you wish.

Lastly, if you have an existing boolean and you require one of the child objects, you can copy them out of the tree. This is especially useful if you have deep booleans with transforms, and you don't wish to explode all the way down to the desired object.

Onto the more exciting bit!

Native Import/Export

Almost all the data in Shapesmith is JSON. From the HTTP API, to the storage format, to the serialisation format for the worker process. This makes things really simple, and hence the logical choice for native export and import for Shapesmith is JSON. If you would like to import or export a model, you would choose ‘json’ form the import or export options:

And you can share you designs with your friends, community, or on a website like Thingiverse. You can also export form a local installation to the online version of Shapesmith. Here you can see an iPhone 4* cupholder dock that I designed using Shapesmith:

JSON is also human-readable. So this is a good time to introduce the very interesting possibility of using Shapesmith as a scriptable modelling system. For example, if you create a design with a single 10x10x10 cube and export it, you will see the JSON file looks like this:

[{
    "type":"cuboid",
    "parameters": {
    "u":10, "v":10, "w":10
    },
    "origin": {
        "x":0, "y":0, "z":0
    }
}]

This means that you can write a program that outputs a JSON file, and import it into a Shapesmith design. In fact, the API is designed to be programmable, so you can use it as a 3D modelling platform (for example design your own shop that uses customizable 3D printable designs).

That's a glimpse into the future, but for now - make something!