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.
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:
- More primitives and operations
- More scalable UI framework
- OpenGL-accelerated rendering
- Hierarchy and organization tools
antimony is hosted on GitHub.