Welcome to the Ogma AOgmaNeo library, C++ library that contains an implementation of Sparse Predictive Hierarchies (SPH) aimed at desktop, embedded, and microcontroller devices.
For easier use on desktop, we also have Python bindings.
This version of OgmaNeo (AOgmaNeo) is similar to OgmaNeo2, but optimized in order to be able to run on an Arduino or similar microcontroller. However, it has since become the default and preferred version of OgmaNeo for all tasks, as it works great on desktop as well.
For an introduction to how the algorithm works, see the user guide. For a more in-depth look, check out the whitepaper.
Version 3.13+ of CMake is required when building the library.
This version of OgmaNeo uses OpenMP for multiprocessing (on desktop). This will typically already be installed on your system.
The following commands can be used to build the AOgmaNeo library:
git clone https://github.com/ogmacorp/AOgmaNeo.git
cd AOgmaNeo mkdir build
cd build
cmake ..
make
make install
The cmake
command can be passed a CMAKE_INSTALL_PREFIX
to determine where to install the library and header files.
The BUILD_SHARED_LIBS
boolean cmake option can be used to create dynamic/shared object library (default is to create a static library). On Linux it's recommended to add -DBUILD_SHARED_LIBS=ON
(especially if you plan to use the Python bindings in PyAOgmaNeo).
make install
can be run to install the library. make uninstall
can be used to uninstall the library.
On Windows systems it is recommended to use cmake-gui
to define which generator to use and specify optional build parameters, such as CMAKE_INSTALL_PREFIX
.
Refer to the CONTRIBUTING.md file for information on making contributions to AOgmaNeo.
The work in this repository is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. See the AOGMANEO_LICENSE.md and LICENSE.md file for further information.
Contact Ogma via licenses@ogmacorp.com to discuss commercial use and licensing options.
AOgmaNeo Copyright (c) 2020-2024 Ogma Intelligent Systems Corp. All rights reserved.