This generation of Ao is not yet ready for mass consumption.
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; all rights reserved.
This project will eventually be released under an open-source license, something like
- LGPL for
ao-kernel
, - GPL for
guile-ao
andStudio
and an option for commercial licensing.
Stay tuned for further details.
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.