Parametric, Open source, 3D modelling

- in your browser


Shapesmith is parametric, so it's very quick and easy to modify your models. You can also use variables with expressions to quickly change models, like changing the radius of holes:


3D-print ready

Import STL models and edit them, and export your models to STL and print it on your 3D printer:



No install required - if you have a WebGL-capable browser you can use Shapesmith. Shapesmith is built with pure HTML5 and Javascript, and makes use of various new web technologies.

chrome safari* firefox
* WebGL is not enabled in Safari by default. Here are the instructions to enable it.

Open source

Shapesmith is completely open source under a permissable license (MIT). You don't have to worry about the hosted version disappearing, you can always run your own server. You can also run you own server in your school or business to keep your models private.

Shapesmith is on Github.


Follow this project on twitter for updates, or just try it:

More about Shapesmith

This has taken a bit longer than I had hoped! Welcome to the Shapesmith blog and my first post about This is a quick update on the project and the plans for the near future.

Since posting on my blog about working on this project, progress has been steady but slow. I have made some progress in terms of user features (such as undo/redo, saving of models and validation), but the majority of work has gone into making the backend lean and mean. Most noteworthy is the separation of api, database and worker components.

The success of a cloud-based Shapesmith depends very much on addressing the scalability of BRep operations, or, effectively using processing power for multiple users. For deploying a local solution (for example on a school network), this is not as important a consideration, but a hosted Shapesmith needs to be very effective with processor utilisation in order to contain the hosting cost. "Traditional" LAMP web applications don't use a lot of processing power per user action, whereas BRep operations are by nature N cubed and require an architecture that is sentisive to this fact. The good news is that it makes the optimisation path clear - BRep operations take much longer than database operations, serializing and deserializing data, validation, etc, and I can optmize taking this into account.

Is it worth mentioning that I have now transitioned to using an actual database, Riak, and have switched to the community version of OpenCASCADE, OCE. This is an important step for users to be able to install their own local version of Shapesmith with a stable data store and BRep library. OCE is a new community effort to improve on some of the shortcomings of OpenCASCADE, and I am pleased with the results so far (especially the cross -platform build support). I will not go into the architecture in detail in this post, but the design can accomodate scaling the application in 3 dimensions, the API nodes which handle the ReSTful calls, the DB nodes, and the worker nodes which perform the BRep operations:

continue reading →

Copyright © - All Rights Reserved. | Terms & Privacy Policy