website code
piLibs C++
This is the set of libraries I've been using since 2006 to make all of my demos, experiments and CG activities. These have been used in demoscene productions, art exhibitions, VJ sessions, Siggraph tech demos, and private experiments. They cover everything from OS abstraction to file formats, rendering, VR, sound, meshes, compression, etc. This is not an engine or a framework. It's a set of individual modules, of which I only include a few as I need per project. There's no dependencies with external libraries other than a very few little for VR and sound. Right now the Windows implementation is the only maintained one, and it comes with Visual Studio 2015 projects.

Other than for that, I should warn the whole things is by no means a serious effort into making a nicely packaged product. Coding stlye changes across modules (some code is 15 years old), but I keep rewriting parts as I extend or revisit the modules (these happen very frequently) I don't support this publically in any other place but this page for now. Besides myself, Pol Jeremias and Sebastien Chevrel have contributed to the code. Oh, and they come with the MIT license.


Click here to get the latest update (22/12/2016, first update was 03/01/2015)

Module Category
libApp Contains the application entry point in an OS agnostic way.
libSystem Platform agnostic definition, and platform dependant implementation of Threads, Windows, Timers, Files, DLL/SO, Files, TCPIP, Critical Sections, Spinlocks, Mutex, Strings, etc.
libLog Message/Error/Warning output loging system (text and console)
libMath Basic (GLSL style) algebra, plus frustums, bounding volumes, random number generators, complex numbers, equation solvers, FFT, etc
libRender Very thin platform agnostic renderer (GL 4.5 feature set)
libHTTP HTTP and HTTPS support, servers/client classes and messaging system
libDataUtils Arrays, String, StringMap, Stack containers
libCamera Webcam and Kinect camera support
libImage Image storage. Loading from some simple file formats, and image manipulations
libMesh Mesh storage, construction, procedural generation, extrussion, etc
libMisc Modules that haven't been moved to a better place yet. Includes UI drawing, Midi interface, rendering text, etc
libSound Basic support for sound input and output
libVR Abstraction for VR rendering