SIG is a class toolkit for the development of interactive 3D graphics applications. SIG is designed to be small, flexible, fast, portable, and standalone. It is fully written in C++ but with moderate use of C++ most advanced features. SIG's core modules do not use STL classes. While STL will most likely be used in your programs, SIG only relies on its internal classes for data structures, leading to more legible compiler error messages, consistent behavior across different compilers, significantly faster compilation, and improved execution times in some cases.
SIG includes a simple and extendible scene graph, a flexible skeleton structure supporting a variety of joint definitions, classes for loading and for manipulating .bvh motion files and .obj geometry files, several utilities for developing motion planners, an analytical Inverse Kinematics solver [K08], etc. It also includes functionality to manage resources such as textures and fonts. SIG is completely standalone, exposing the entire process of using OpenGL, making it a great tool for research and for learning computer graphics. Previous versions of SIG existed under different names and have been used to support a variety of research projects.
NEW: our newest SPM method [FK19] is now available in the libsigspm module. See example program spmtest.cpp.
SIG is released under the Apache License Version 2.0. It currently runs in Windows and Linux.
How does the code look like?
See here: A First SIG Application
To Learn More
Snapshots of some example programs included in the /examples folder:
[FK19] Optimal Path Maps on the GPU, R. Farias and M. Kallmann, IEEE Transactions on Visualization and Computer Graphics (TVCG), 2019.
[K08] Analytical Inverse Kinematics with Body Posture Control, M. Kallmann, Computer Animation and Virtual Worlds (CAVW) 19(2), 2008.