One of my tasks for Paperwork Forest was to create a workflow for animating thousands of pieces of paper. I arrived at a technique which allowed the animator to draw a single curve which expressed the general direction of travel. From there a MEL script built hundreds of paths derived from that prototype path, with user controllable parameters for variation. The script also did the duplicating of the paper geometry, and applied deformers to create bending derived from the accelerations of the paper's travel.
 
Above is an image of the geometry and corresponding animation curves generated by the script. To its right is a QuickTime of the same scene in action.

For the final shots I also developed a technique to assist artist Laurent Ledru in creating the paper trees. The process began with Laurent drawing a central NURBS curve defining the basic structure of the trunk or branch. Next he added additional circles along this curve to express variations in thickness as well as bends or other irregularities. A custom MEL command processed these curves and created a fully textured, singular piece of geometry made of thousands of pieces of paper. The left image above shows an example of a set of input curves and the resulting tree geometry. The right image shows a render based on the output of this process.

An additional process allowed Laurent to create the paper leaves of these trees. He first positioned and scaled ellipsoids expressing regions of the tree where leaves should grow. Then a MEL script would fill these ellipsoids with randomly selected, textured pieces of paper geometry. The result of the process is depicted in the image above.

Hai Nguyen and I collaborated on a final piece of code for the spot to optimize the render times of the paper trees. As a result of the process we used to create them, the trees were composed of a large amount of unnecessary geometry in the form of paper we never actually see. Hai and I developed some code which analyzed the geometry of a shot, accounted for the angles visible to the camera, and culled paper which was never visible. The result was a reduction of geometry often by 50% or more, and a similar dip in render times.