asgardner / cacao

Compute And Control for Adaptive Optics

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

License: GPL v3

Latest Version (off main branch): latesttag

Branch Build Docker Deployment Travis-CI Activity
main CMake badge CMake badge Build Status lastcommit
dev CMake badge CMake badge Build Status dev lastcommit

Code metrics (dev branch) : CodeScene Code Health CodeScene System Mastery Codacy Badge CodeFactor

cacao : Compute And Control for Adaptive Optics

cacao is a computation engine for adaptive optics control.

Compute Performance: Uses multi-core CPUs and GPGPUs for high computing throughput. Written in C, optimized for performance. Holds images in RAM, with image stream support (shared memory with low-latency IPC support). cacao uses milk.

User input: Executable launches a command line interface (CLI) from which functions are accessible. Type "help" in the CLI to get started.

Modular, easy to add functions, loaded at runtime as shared objects.


Getting help, Documentation

Topic Chat room Documentation
How to use cacao ? Gitter Community Online documentation
Configuring computer system Gitter Hardware / OS setup RTC setup
Software development Gitter Developers coding standards and Online documentation

Report bugs and issues on this page and discuss them on the Developers chat.


Installing cacao

Install pre-requisite packages as needed. For example, under Ubuntu :

sudo apt install git make dpkg-dev libc6-dev cmake pkg-config python3-dev libcfitsio-dev pybind11-dev python3-pybind11 libgsl-dev libfftw3-dev libncurses-dev libbison-dev libfl-dev libreadline-dev pkg-config gcc-10 g++-10

cacao is a plugin of milk page.

git clone https://github.com/milk-org/milk.git
cd milk
./fetch_cacao_dev.sh
MILK_PYTHON="OFF" ./compile.sh
cd _build; sudo make install

Check compilation options with compile.sh -h option.


Documentation

See cacao's wiki page for detailed instructions to install, configure and use cacao.


Getting Started

All functions are accessible from the command line interface (CLI). Enter the CLI and type "help" for instructions.

cacao

To set up a cacao AO loop, use the cacao-setup script. Consult help with :

cacao-setup -h

Tools

Both cacao and milk use a common shared memory data stream format. See ImageStreamIO module for details.

Viewing real-time data streams

Additional software is required to view real-time data streams. Several options exist:

  • shmimviewGTK, a lightweight efficient GTK-based viewer.
  • milk2ds9 uses ds9 to view data streams (convenient for ds9 users)
  • rtimv, a qt-based image viewer, higher performance than ds9 option
  • shmimviewqt, another qt-based option (less polished than rtimv)
  • xaosim's shmview image viewer, using python qt interface

Python interface to data streams

Python users can read/write milk/cacao's data streams using additional packages:

  • pyMilk provides an interface to data streams.
  • xaosim includes a python interface to data streams.. and much more Both stream interfaces above are cross-compatible.

About

Compute And Control for Adaptive Optics

License:GNU General Public License v3.0


Languages

Language:C 57.1%Language:Shell 36.6%Language:HTML 5.9%Language:CMake 0.4%Language:Dockerfile 0.0%Language:Makefile 0.0%