antimony is an experimental software package for computer-aided design.

Objects are designed by linking nodes into a graph, where each node either creates a primitive shape or applies a transformation to one or more inputs.

It is the successor of kokopelli by way of fabserver, and is a project supported by the Center for Bits and Atoms.


Objects are represented implicitly as signed distance functions. This means that constructive solid geometry operations are trivial.

It's also easy to apply coordinate field transformations, which can be used for interesting distortions. Because objects are represented by a mathematical expression -- rather than by a set of points or triangles -- these distortions don't reduce the resolution of the output.

All of the parameters that define objects can be linked and scripted. In its simplest form, this allows users to set parameters equal to one another. However, there's the potential for much more greater sophistication. Under the hood, each parameter is evaluated as a Python expression, which can lead to complex reactive design systems.

antimony can be used for both 2D and 3D design, though it's still fairly limited. There are a handful of 3D primitives, and extrusion can be used to make basic 3D shapes from 2D drawings.

Finally, users can write scripts (as in kokopelli). Unlike kokopelli, these scripts can be composed into the graphs with user-defined inputs and outputs.



antimony is still under active development, and should currently be considered pre-alpha software. In the near term, priorities include:

If you're interested in contributing, send me an email or fork the project on GitHub.


antimony is hosted on GitHub.