ShapeJS

ShapeJS is a JavaScript-based programming language for creating 3D printable products and fully interactive creator applications. Hosted by Shapeways, it is a cloud-based system for creating 3D objects and web apps that make 3D printable things.

A series of blog posts by Alan Hudson shows how to code in the language and provides scripts for making many different objects including many jewelry and housewares items.

Previewing
For fast previewing of models, ShapeJS provides a cloud-based web service that turns ShapeJS into images at real time speeds. This allows very thin clients without graphics hardware to visualize the scripts. In addition it protects the underlying code and 3D models of the author by not sending the contents to the user.

Preview is relatively fast and allows interactive modifications while modifying the script.

Underlying Representation
ShapeJS uses a combination of signed distance functions and voxel representations. A voxel is similar to a 2D pixel but it represents a volume element in 3 dimensional space. This avoids some typical accuracy issues with triangle based representations when doing solid modeling. Allowing per-voxel level control enables generation of printable products at printer native resolutions. This representation also makes it easy to use high resolution image data in designs to leverage 2D art in making 3D objects without compromising functional design.

Exportation
Views can be exported in png and jpg format.

3D parts can be exported in X3D (color) and STL (non-color). In addition, an experimental voxel format called SVX can be used to export complete volumes.