node.gl
is a GoPro OpenGL engine for building and rendering
graph-based scenes. It is designed to run on both desktop (Linux, OSX, Windows)
and mobile (Android, iOS).
The node.gl
project is split in 3 parts:
libnodegl
: the core of the project, anOpenGL
engine inC
ngl-tools
: a set of program tools usinglibnodegl
pynodegl
: a Python binding forlibnodegl
(with the help ofCython
)pynodegl-utils
: various Python utilities and examples such as a Qt5 viewer
Warning: note that node.gl
is still highly experimental. This means the ABI
and API can change at any time.
libnodegl
requires a standard C toolchain (C compiler, linker, GNU/Make). It also depends on sxplayer library for media (video and images) playback. Graphviz is optional but can be used to render and preview graphs obtained from the API.ngl-tools
needs GLFW3 andlibnodegl
installed.pynodegl
needs Python and Cython, andlibnodegl
installed.pynodegl-utils
needs Python andpynodegl
. The viewer depends onPyQt5
(which is the main reason why this package is separated from thepynodegl
package). It is also recommended to install Graphviz in order to render graph in the viewer.
make
is enough to build libnodegl.a
.
If you prefer a dynamic library, you can use the variable SHARED
, such as
make SHARED=yes
.
If you need symbol debugging, you can use make DEBUG=yes
.
Make allow options to be combinable, so make SHARED=yes DEBUG=yes
is valid.
Additionally, PYTHON
and PKG_CONFIG
which respectively allows to customize
python
and pkg-config
executable paths.
make install
will install the library in PREFIX
, which you can override,
for example using make install PREFIX=/tmp/local
.
You can check the installed version of libnodegl
using pkg-config --modversion libnodegl
The node.gl
tools located in the ngl-tools/
directory are to be built and
installed exactly the same way as libnodegl
.
pip install ./pynodegl
pip install -r ./pynodegl-utils/requirements.txt
pip install ./pynodegl-utils
node.gl
is licensed under the Apache License, Version 2.0. Read the LICENSE
and NOTICE
files for details.
Warning: pynodegl-utils
has an optional dependency on PyQt5 which is
licensed under the GPL and thus restrict the pynodegl-utils
module
distribution.
All the API is defined in the installed header nodegl.h
. You can consult the
nodes parameters in the nodes.specs
file installed in the data root dir
(usually something along the lines /usr/share/nodegl/nodes.specs
).
See DEVELOPERS.md
file.