cacao is a real-time computation engine for adaptive optics control. It is written in C for low latency, uses multi-core CPUs and GPUs, and keeps data in shared-memory image streams with low-latency inter-process signaling.
cacao is a plugin of milk. It is built inside milk's source tree and adds AO modules, CLI commands and loop setup scripts on top of milk.
This repository is the Caltech Optical Observatories fork of cacao-org/cacao.
The documentation is published at
https://caltechopticalobservatories.github.io/cacao/. Its sources are in
docs/:
To build the HTML documentation, run tox -e docs.
Install the prerequisites first (list). Then:
git clone https://github.com/milk-org/milk.git
cd milk
git clone https://github.com/CaltechOpticalObservatories/cacao.git plugins/cacao-src
cmake -S . -B _build -DCMAKE_BUILD_TYPE=Release -DINSTALLMAKEDEFAULT=ON
cmake --build _build -j "$(nproc)"
sudo cmake --install _buildRun cmake from the milk source root as shown. Configuring from inside
_build/ (cmake .., or milk's compile.sh) silently leaves cacao out of the
build.
Then set MILK_ROOT, MILK_INSTALLDIR, PATH and PKG_CONFIG_PATH, and set
up the shared-memory directory, as described in the
installation guide.
To build in Docker instead: docker build -t cacao .
cacao-loop-deploy -h # list example configurations
cacao-loop-deploy -c scexao-vispyr-bin2 # copy an example into the current directory
cacao-loop-deploy -r scexao-vispyr-bin2 # run its setupSee Running a loop from an example.
Report bugs on the issue tracker.
