A minimal backend for nodes.
- No external dependencies - only the C++ standard library is used
- Backend only - you can implement your own frontend
- Simple API (at least in my opinion)
- Node muting
- Node groups (see the example group node under
src/nodes/groupnode.[cpp,h]
)
- Looping
- Evaluation using concurrency/parellism
This assumes you already have C/C++ and CMake already set up.
- Download or clone this repository
- Open a terminal in the top level directory.
- Run
mkdir build && cd build
- Run
cmake ..
- Run the appropriate command for the compiler you're using, i.e.
make
# or
ninja
# or
clang
# etc.
To run the example found in src/main.cpp
, run ./src/nodes{{OS EXECUTABLE EXTENSION}}
still inside of the build/
directory, where {{OS EXECUTABLE EXTENSION}}
is the operating system's executable extension, i.e. blank for Linux, .exe
for Windows, etc..
- As of writing, I am not completely convinced that this uses the most efficient evaluation system. A key problem is that the whole node tree is evaluated every time, even if some nodes don't need to be run again.
- I am not entirely sure how much I will maintain this repository, particularly as this was originally intended to be a prototype for Gimel Studio, but if there is enough interest I will continue working on it.
This project is released under the MIT license. Do what you wish with it. :)