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.

History

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: http://www.disneyanimation.com/technology/seexpr.html
Project Page: http://github.com/wdas/seexpr/
Language: C++
Platform: Linux, OSX, Windows
License: New BSD
Sponsor: Walt Disney Animation Studios