Archives for posts with tag: c++

OpenVDB is an open source C++ library comprising a novel hierarchical data structure and a suite of tools for the efficient storage and manipulation of sparse volumetric data discretized on three-dimensional grids. It is developed and maintained by DreamWorks Animation for use in volumetric applications typically encountered in feature film production.

Home Page:
Project Page:
Language: C++
License: Mozilla Public License Version 2.0
Sponsor: DreamWorks Animation

Vfxgal is a geometric algorithms library for the VFX industry. It contains a very fast and robust voronoi fracturer, as well as several other geometric algorithms (plane-clip, hull-clip etc). Vfxgal comes with Houdini11 bindings but has been written in such a way that minimal work is needed to bind to other frameworks.

Project Page:
Language: C++, python
Platform: Linux, OSX
License: GNU LGPL

Pimath is a boost.python binding for the IMath library that is part of the OpenEXR project.

Pimath binds the Imath API as closely as possible. Each hpp file contains a comment block at the top, highlighting cases where the bindings differ and why. Common reasons include:

Making a function signature more Pythonic;
Removing slightly optimised functions (where the overhead of python itself would vastly outweigh the optimisation);
Removing API redundancy;
Changing misleading Imath function names (rare).
Nice things about pimath:

It provides integral template instantiations where possible – eg V3i;
It provides ‘half’ template instantiations where possible – eg M33h;
It provides to- and from-python conversion for the Imath ‘half’ type;
It spreads type instantiation over several cpp files for quick multithreaded compiling.
It’s organised as a mirror image of Imath – it has corresponding headers, and a free function in Imath is a free function in pimath. If you know Imath, you know pimath.

Project Page:
Language: C++, python
Platform: All
License: New BSD Licence
Sponsor: Dr. D. Studios

Arithmetic expressions appear in almost every animation system ever created. Being able to embed an expression language in a piece of custom software allows an amazing degree of artistic freedom. At Disney artists have enjoyed using expressions because they allow just enough flexibility without being overwhelming to non-programmer users. Developers have enjoyed them too for quick prototyping and deployment of fixes to production needs.


At Disney there have been various expression languages. SeExpr started as a language for our procedural geometry instancing tool, XGen. Work was done to generalize it into something that could be used in other contexts. Later it was integrated into paint3d, our texture painting facility, which opened the door to procedural synthesis. More recently, we have integrated it as a way of defining procedural controls to physical dynamical simulations and render time particle instancing.

Expressions can be seen as a way of allowing customization of inner loops. This is contrast to scripting which is mostly aimed at gluing large parts of code base together. So in this sense, C++ forms the center of your application, python could be used to put pieces of it together, and SeExpr is used to customize tight inner loops.

Major Features

  • Arithmetic expression of scalar/vector types
  • Large library of builtin functions
  • Extensible variables and functions (including with DSOs)
  • Simple to embed in any program

Home Page:
Project Page:
Language: C++
Platform: Linux, OSX, Windows
License: New BSD
Sponsor: Walt Disney Animation Studios

Afanasy is a free and open source tool to control remote computing. You can compute anything quicker using a render farm – remote computers connected by a network. Afanasy is designed for computer graphics (3d rendering and 2d compositing) parallel calculation. It can compute different frames (or even parts of frames) on several computers simultaneously.

Afanasy provides render farm monitoring. It is very important to watch computers resources during the render process. You can see what kind of resource (CPU, memory, network etc.) is needed to render. It is very useful to know what your farm hosts are doing.

The Afanasy engine simply runs different command lines on hosts and controls running processes. You can use Afanasy to parallel calculate anything you can describe (split) through command lines.

Home Page:
Project Page:
Language: C++, python
Platform: All
License: GPL