This generation of Ao is not yet ready for mass consumption.
It's coming along nicely โ and if you've found your way here, you should try it out! โ but there's very little documentation, no stability guarantees, and limited support.
Please enjoy it responsibly and refrain from posting it to the wider web.
Ao is a framework for solid modeling using functional representations.
It includes several layers, ranging from infrastructure to GUI:
libao-kernel
is a shared library to build, manipulate, and render f-reps. A great deal of work has gone into the meshing algorithm, which produces watertight, manifold, hierarchical, feature-preserving triangle meshes. The library is written in C++ and exposes a C API inao/ao.h
.libao-guile
is a Guile binding tolibao-kernel
. It exposes a high-level API to construct shapes, and includes a standard library of shapes, transforms, and CSG operations.- Studio is a GUI application in the style of
OpenSCAD.
It wraps
libao-guile
and allows for live-coding of solid models. The interface also includes direct modeling, where the user can push and pull on the model's surface to change variables in the script.
mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.7.0 ..
make
Adjust based on your Qt installation path, and consider using ninja
for faster builds.
(c) 2015-2017 Matthew Keeter
Different layers of this project are released under different licenses:
ao-kernel
is released under the LGPL, version 2 or later.guile-ao
andStudio
are released under the GPL, version 2 or later.
Contact me to discuss custom development, integration, or commercial support.
scheme@(guile-user)> (load-extension "ao/bind/libguile-ao" "scm_init_ao_modules")
scheme@(guile-user)> (use-modules (ao csg) (ao transforms) (ao shapes))
Note that the standalong module does not include
the minimal OpenGL-based GUI described
here.
That GUI is no longer maintained,
but can be found in the ao-guile-repl
branch.