Polygon deformer node plugin for Maya that using Disney's SeExpr
OCaml C++
Switch branches/tags
Nothing to show
Latest commit b8d55ec Jan 16, 2013 @taikomatsu add maelstorm sample
Failed to load latest commit information.
build Update win binaries to v0.5 Dec 16, 2012
samples add maelstorm sample Jan 16, 2013
scripts First release Nov 14, 2012
src remove unnecessary file Dec 12, 2012
.gitignore Added linux64_2013 binary Nov 14, 2012
LICENSE appended LICENSE Nov 16, 2012
README.md Update README.md Dec 6, 2012



Polygon deformer node plugin for Maya that using Disney's SeExpr


This plug-in is allowed you to edit meshes with Disney's SeExpr language.
You can develop your unique mesh deformer, furthermore, can coding just the method without troublesome C++ codings and plug-in declaration.

What's SeExpr?

Walt Disney Animation Studios: SeExpr
SeExpr is a expression language and the library developed by Disney.
It's a simple and easy, but has enough functions what you want in your daily work.
You can find it from here.


I developed this plug-in on Linux and I don't have any environment.
So I didn't build it on Win/Mac environment.

If you are a user of Maya2013/Linux and Windows, you can use pre-compiled binaly.
Please download it from here.

Windows version is built by Takkyun.
Thank you!


  1. Download the source.
  2. Unzip and cd to src directory.
  3. Edit the Makefile for your environment.
  4. run make

This plug-in uses OpenMP. So it's compiled by gcc4.2 or higher.


On Linux, the simplest way is make install after Makefile modification.
If you don't want it, you have to move some files to specified path.

  • build/SeExprMesh.so to any MAYA_PLUG_IN_PATH directory.
  • scripts/AESeExprMeshTemplate.mel to any MAYA_SCRIPT_PATH directory.


  1. Start Maya

  2. Open Plug-in Manager from Window > Settings/Preferences > Plug-in Manager.

  3. Load SeExprMesh.so(mll).

  4. Select a mesh.

  5. Execute seExprMesh command.


  1. You can find seExprMesh node from the network.



Do process or not.


You can select some output type.

  • Position
  • Normal
  • Color
  • uv

color and uv is processed on current colorSet or uvSet.


Enter your SeExpr expression here.
In this field, you can use extra attributes as SeExpr variable directly.
But it's just limited float and vector.


Deformation influence.
0 is no deformation, 1 is full.


You have to connect here from time1.outTime if you use time or frame local variable.
This parameter drives all time value on the node.


The mesh be processed.


Processed mesh.


Additional control mesh.
If you want to use closestPoint() or closestNormal(), have to connect any mesh.


If you want to move the object by its transform, and follow the deformation, you should connect matrix attribute here.
Furthermore, this attribute is shown in Attribute Editor.
Because when you unconnect it, its values may not reset right.
Then you have to clear the unnecessary values manually.

Local Variables

P (vector)


N (vector)


Cd (vector)

Vertex color

u (scalar)

Texture U coord

v (scalar)

Texture V coord

time (scalar)

Current time in second

frame (scalar)

Current time in frame

Additional Functions


Get closest point position on ctrlMesh from given pos.


Get closest normal on ctrlMesh from given pos.


If you have some ideas, or found bugs, please tell me it.

mail: taikomatsu AT gmail.com (Please replace AT to @)