SeExpr Expression Language
Collaboration between Technology, Look Development, Effects Animation, and Character TD teamsMay 2021 Open Source launch May 2011
Our films are made up of shots with enormous complexity. From elemental spirits to fantastical ice magic effects, each scene in our movies can have thousands of parameters artists can edit to achieve the final look of a film. In order to easily control and create these parameters, we’ve developed an open source, embeddable, arithmetic expression language called SeExpr (pronounced essie-expur; the prefix ‘Se’ stands for ‘Shared Expression’ ).
The language has a myriad of uses and enables quick iteration in areas like: procedural geometry synthesis, simulation control, image synthesis, crowd animation, and geometry deformation. SeExpr can also be used in the generation of procedural textures, point-based effects, hair and cloth deformations, and many other visuals.
The language began to take shape on Chicken Little (2005), as a way to move from numeric controls to more flexible algebraic expressions. Since this delivered significant benefits, our Look Development artists then wanted to use expressions in their shaders. We then added a user interface for SeExpr to our in-house texture authoring tool, so we could procedurally generate texture maps. Shortly after, the Effects Department saw a use for expressions in manipulating particles and later the Technical Animation department wanted to use it for deformations. With every new show, we’ve found additional uses for expressions in more and more departments. These new use cases brought added benefits of expanding user expertise and re-use between applications.
In 2011, we decided it would be good to share SeExpr as an open source, general purpose, expression language with the rest of the animation and visual effects industry. Some third party applications that have integrated SeExpr into their tools include Pixar’s RenderMan and Isotropix’s Clarisse iFX.
Below are some examples of the ways we use SeExpr in creating complex visuals in Disney films.
Look Development Materials
One of the simplest examples of the power of Disney’s SeExpr is in the development of textures for shading various materials. SeExpr allows for interactive generation of a wide variety of procedural patterns.
SeExpr provides a very tight feedback loop during authoring, which allows the artist to realize their vision more effectively with fewer delays and distractions.
Rain, Dust and Snow Effects
Disney artists also use SeExpr in the creation of point-based effects. We can easily create a single, reusable “box-of-points” based on expressions with default parameters (like density, speed, etc.). By adjusting these parameters and using different input geometry, artists can transform these “boxes-of-points” into things like rain, dust or snow.
Using SeExpr for Wind Effects on Cloth
When Elsa is trapped within a turbulent wind storm and struggles to control it, artists needed a way to show the effects of the wind on her clothing. Rather than iterate with a physical simulation, they turned to SeExpr and used expressions to direct the shape and flow of the cloth artistically.
Using SeExpr on the Nokk’s Mane
The Nokk is a water spirit that appears in the shape of a horse with a liquid, flowing mane. In order to animate the mane, artists made great use of SeExpr instead of more time-consuming physical simulation. SeExpr expressions were used to drive the width and length of the mane’s curves, as well as creating animation flow maps.
These examples represent a small subset of the ways artists at Disney Animation employ SeExpr to help them quickly develop complex looks and effects.
To learn more about the SeExpr library and how to use it, please visit our code repository here.
You can learn more about our Open Source Software here.