Tuesday, December 16, 2008

Life Photo Archive Digitized

Google recently digitized the Life magazine photo archive. This means that many of the images from Margaret Bourke-White's documentation of Partition that I used as reference are now easily available online.

Thursday, November 27, 2008

'Topi' featured on VFXWorld + Massive Student Gallery

Some crowd tests that I did for my thesis are now featured on Massive Software's student gallery. There's a lot of other interesting projects that have been posted there as well.

VFXWorld also did a write-up on student work that features Massive, and included an image from my film - check out http://vfxworld.com/?atype=articles&id=3602&page=2

Sunday, November 2, 2008


Sometimes a crowd character tries to steal the limelight:

Wednesday, October 8, 2008

RenderMan for Maya Notes

There's not a whole lot of RenderMan for Maya tutorials out there, so I'm collecting all the little nuggets I've gotten from various blogs on this post:

Turn off the default Final pass that contains all the objects in the scene (useful when rendering out multiple passes)
setAttr "rmanFinalGlobals.rman__torattr___computeBehavior" 0;

To generate a shadow pass
Use the 'Occlusion Direct' ancillary output

To generate a multi-pass OpenEXR
In the pass, under Output, right-click and select Create Output->Custom. This pops open a list from which you can select multiple outputs
For 16-bit vs 32-bit, under Extra Output Settings for the pass, select and add 'OpenEXR Pixel Type'. 'Half' is 16-bit and 'Float' is 32-bit.

To create a Matte
Select a Material, open the Attribute Editor and add the custom RenderMan for Maya attribute "Matte Object". This attribute works the same way as the "Black Hole" setting in Maya Software/Mental Ray.

Jordan Reece Halsey's blog has a good tutorial that walks through a Global Illumination example using point-based techniques.

Confused about shading rate and the render quality in general? Check out:

Cheat Sheet from above site:
  • ShadingRate - should be 0.25 or smaller for final images. Smaller shading rates may be needed for large displacements. Larger shading rates may be needed if the render is too slow, but image quality will suffer.
  • PixelSamples - should be at least 8 in each direction for a shading rate of 0.25 and should never be less than 2 / sqrt(ShadingRate). Even numbers of samples are more efficient for many kernels. Larger numbers of samples may be needed for motion blur.
  • ShadingInterpolation - should be "smooth".
  • PixelFilter - start with the mitchell 4.0 filter. To soften and/or reduce aliasing, increase the width up to 5.0 (fractions are ok!). For a sharper filter, use a custom Mitchell with controllable sharpness (using a RIF plugin for example); or, use one of the recommended standard filters: separable-catmull-rom 4.0, lanczos 4.0 to 6.0.

I don't go below 0.5 for my own shading rate, and usually stay at 1, and use the relationships defined above to compute the appropriate parameters for my renders.
Also, when enabling Motion Blur, values of Motion Factor greater than 1 automatically drop the shading rate of motion blurred objects, which may or may not be desirable. I use this feature to speed up my Ambient Occlusion pass because AO is more noticeable when the object is not moving.

Tuesday, October 7, 2008

8 rules for writing a short story

From http://en.wikipedia.org/wiki/Kurt_Vonnegut#Writing

In his book Bagombo Snuff Box: Uncollected Short Fiction, Vonnegut listed eight rules for writing a short story:

1. Use the time of a total stranger in such a way that he or she will not feel the time was wasted.
2. Give the reader at least one character he or she can root for.
3. Every character should want something, even if it is only a glass of water.
4. Every sentence must do one of two things—reveal character or advance the action.
5. Start as close to the end as possible.
6. Be a Sadist. No matter how sweet and innocent your leading characters, make awful things happen to them—in order that the reader may see what they are made of.
7. Write to please just one person. If you open a window and make love to the world, so to speak, your story will get pneumonia.
8. Give your readers as much information as possible as soon as possible. To hell with suspense. Readers should have such complete understanding of what is going on, where and why, that they could finish the story themselves, should cockroaches eat the last few pages.

Vonnegut qualifies the list by adding that Flannery O'Connor broke all these rules except the first, and that great writers tend to do that.

Sunday, September 28, 2008

Shot 3 Comped

Took the settings of the last couple of shots, then added haze and subtle grain, blurred the horizon, added a ramp to the sky, and crushed the blacks a little (composited in After Effects).

Shake has been discontinued, and the compositor that everyone is shifting to is Nuke, but for my film, I'm thinking of continuing with After Effects because I'm happy with these results and AE now handles .iff files, which is what I render out of Maya.

Friday, September 26, 2008

Monday, September 22, 2008

More Style Frames

Finally started to render today. Did a quick style frame for fun.


After Color Correction:

Update - a couple more iterations that I went through on the look:

~December 2008

Final image:
~May 2009

Sunday, September 7, 2008

More Texturing

Added a sky, some trees and changed the gravel texture a little:

Monday, August 25, 2008


Schedules are a great reality check. This is an example of the many Excel spreadsheets that help me stay organized and on track (in theory).

The Crowd column is probably the most useful because crowd volume is the most important influence on the technical complexity of a shot in my film.

Sunday, August 24, 2008


Classmates Thomas Huang and Jake Albers helped me build a bunch of the props and set. Taking a break from animation, I've started texturing and incorporating the models into shots.

In terms of color, I went a little cooler on the train station to help the skin of the characters stand out more. I'll probly warm everything up in post.

  • Shot 5: Train station + Luggage model/textures
  • Shot 7: Train station model/textures
  • Shot 4: Cargo Train textures
  • Shot 3: Luggage models/textures

Wednesday, August 20, 2008

First Cut Part 2

I finally managed to upload the file, so here it is!

Monday, August 18, 2008

Mocap setup

This is an image of an actor, Kevin J. Ryan, that I motion captured performing some fight sequences (with my classmate, John Helton) in the fall semester. At the time, the footage was shot as a test, but I now plan to include it in the final film (it's the fight between Sam and Manoj, my secondary characters).

The markers are very reflective and appear to glow because of the camera flash. Note that the fingers are not mocapped and need to be animated by hand.

(Btw, Kevin's a great actor to work with, and I highly recommend him for both mocap and live-action shoots).

Sunday, August 17, 2008

Sam's friend, Manoj

Well, they're not actually friends. Sam and Manoj will scuffle in the beginning of the film (the fight that leads to Maqbool being pushed over and losing his hat).

I tried to make him more blocky as opposed to Sam's angles, and messed with his clothes so it'll be easy to separate the two characters. I think he's my best model yet and it's a pity he's only a cameo.

First Cut

After exactly 7 months of animating, I have my first cut of the film.

Naturally, since this is an important milestone, Blogger won't let me upload the video. But I want to mark the occasion with a post anyway.

While there's still a lot of work to be done on the crowd/animation fixes/lighting/rendering/etc, I'm at a point at which I can get feedback on the film as a whole.

Sunday, July 27, 2008

Video Reference

Video reference is pretty useful, especially when animating scenes where there is a lot of complicated body movement. For example:

(with classmate Paul Shepherd)

Rough Animation:

Final animation:

Another Example:

A lot of things change during the animation, but the reference is a great way to avoid starting with a blank piece of paper.

(I also feel that reference video footage will soon be replaced by low-cost motion capture systems. Same idea, but the reference will automatically be available as 3D information in the computer, and then you can either layer keyframe animation on top, or use it purely as a traditional reference.)

Yet Another Example:

Reference (starring myself and classmate Joanna Griebel):


Motion Capture Performance Final Project

Should've posted this a while ago - my final from the Eric Furie/Robert Zemeckis Motion Capture Performance class which includes more crowd work. (I also shot some fight sequences that were not yet reconstructed in time for this video but can be seen here.)

The foreground and middle ground crowd elements are motion captured (the performers are my classmates John and Nahomi, myself and an actor, Kevin), and the background crowd elements are generated out of Massive. This is my new approach to the crowd because I can still art direct the crowd manually and then just give it additional volume using Massive.

I liked where this is going, but my advisor, Christine Panushka, wants to see A LOT more people and some children so I need to work on that. RenderMan for Maya 2.0 supports instancing, so my plan is to create instances of the FG and MG crowd individuals that I already have, giving me a lot more volume closer to the camera without a substantial performance hit (I hope).

Other than that I got good feedback on the look, the design of the crowd, etc. from the faculty.

Saturday, July 26, 2008

Ollie Johnston's Notes on Animation

These are posted on an old Siggraph site, and John Lasseter got them from Glen Keane who got them from Ollie.

  1. Don’t illustrate words or mechanical movements. Illustrate ideas or thoughts, with the attitudes and actions.
  2. Squash and stretch entire body for attitudes.
  3. If possible, make definite changes from one attitude to another in timing and expression.
  4. What is the character thinking?
  5. It is the thought and circumstances behind the action that will make the action interesting. Example: A man walks up to a mailbox, drops in his letter and walks away OR A man desperately in love with a girl far away carefully mails a letter in which he has poured his heart out.
  6. When drawing dialogue, go for phrasing. (Simplify the dialogue into pictures of the dominating vowel and consonant sounds, especially in fast dialogue.
  7. Lift the body attitude 4 frames before dialogue modulation (but use identical timing on mouth as on X sheet).
  8. Change of expression and major dialogue sounds are a point of interest. Do them, if at all possible, within a pose. If the head moves too much you won’t see the changes.
  9. Don’t move anything unless it’s for a purpose.
  10. Concentrate on drawing clear, not clean.
  11. Don’t be careless.
  12. Everything has a function. Don’t draw without knowing why.
  13. Let the body attitude echo the facial.
  14. Get the best picture in your drawing by thumbnails and exploring all avenues.
  15. Analyze a character in a specific pose for the best areas to show stretch and squash. Keep these areas simple.
  16. Picture in your head what it is you’re drawing.
  17. Think in terms of drawing the whole character, not just the head or eyes, etc. Keep a balanced relation of one part of the drawing to the other.
  18. Stage for most effective drawing.
  19. Draw a profile of the drawing you’re working on every once in a while. A profile is easier on which to show the proper proportions of the face.
  20. Usually the break in the eyebrow relates to the highpoint of the eye.
  21. The eye is pulled by the eyebrow muscles.
  22. Get a plastic quality in face — cheeks, mouth and eyes.
  23. Attain a flow thru the body rhythm in your drawing.
  24. Simple animated shapes.
  25. The audience has a difficult time reading the first 6-8 frames in a scene.
  26. Does the added action in a scene contribute to the main idea in that scene? Will it help sell it or confuse it?
  27. Don’t animate for the sake of animation but think what the character is thinking and what the scene needs to fit into the sequence.
  28. Actions can be eliminated and staging "cheated" if it simplifies the picture you are trying to show and is not disturbing to the audience.
  29. Spend half your time planning your scene and the other half animating.
  30. How to animate a scene of a four-legged character acting and walking: Work out the acting patterns first with the stretch and squash in the body, neck and head; then go back in and animate the legs. Finally, adjust the up and down motion on the body according to the legs.
I pasted them here in case the source site disappears.


I can't listen to music when I'm doing the thinking part of the animation e.g. poses, but I do listen to it when I'm watching the edit. This way I have some internal rhythm to edit to. Of course, this doesn't have to be the final music but just something to set the mood in my brain. The music I listen to varies widely depending on the scene and its emotional intensity/tone. For the more dramatic slower scenes that I've been working on recently, I listen to Zakir Hussain's Kalpana a lot. Not that I listen to a lot of classical music but this track is one of my favorite pieces of music. I would've liked to use it in the final music but it may be too meditative for the film.

Tuesday, July 22, 2008

Rope a dope

Often, my scenes have funny intermediate states. Sam's hand grab is particularly good when looped.

Thoughts on Animation

How has my approach to character animation changed over the course of this film?

I plan things out a lot more. Probably a third or half the time on each shot is spent planning out the camera and poses. Earlier, I'd rush through the scene and go straight to subtle stuff like the fingers, but now I spend the bulk of my time trying to iron out the timing of the main actions.

I also step the keys a lot more, which is making 3d animation seem more and more like 2d animation since I feel like I'm animating keys and holding them on 3s, 4s or 6s before doing in-betweens. It's all perfectly obvious now, but it's taken me a while to start thinking like that.

I go a lot broader on facial animation and close-ups. A lot of my earlier scenes are quite stiff because I was being too subtle. Some of the faces were so rigid that I went in and reanimated them, particularly with Bir.

On the other hand, my body animation is a lot less broad than the usual manic stuff I churn out. Part of the reason is that Looney Tunes animation wouldn't really fit the content and style of this film, but I also try to plan each scene around fewer big poses than I used to. That way, I only emphasize what I want to in each scene by balancing big and small, fast and slow gestures. So if there's enough slow and medium paced action, fast action stands out more, and vice versa.

Similarly, less is often more. By resisting the temptation to do a zany wrist snap or an overexaggerated take, I am trying not to distract the audience in order to give them more time to digest a shot and understand its main point.

Of course, my animation might still not be any better, but I like to think that it's clearer.

Tuesday, July 1, 2008

Anatomy of a Shot

I picked a random shot to illustrate the steps that I go through. I'll keep updating this post until the final render.

Shot 53: Goon moves toward Bir
Animatic Duration: 2 sec

Stage 1: Storyboard/Animatic - mid-December 2007

Stage 2: Layout Create Maya scene and import characters. Rough out camera angle/scene composition. - July 2, 2008

Notice that the screen direction is flipped horizontally compared to the storyboards as a side-effect of some story edits that I made during the animation phase of the film.

The character design has also changed significantly. I didn't feel that this character (Sam) needed a beard because the hat is the point of the story. Also, Maqbool already has a beard which will contrast well with Sam's lack of one during the final confrontation scene.

Angle 1:

Angle 2: Roof lines up better with his eyes

Stage 3: Animation July, 2 2008

1st pass blocking/rough animation

More blocking - the hand wipe was really slowing down the momentum of the scene, and felt out of character/confusing i.e. is poor Sam sweating and tired after a long day of killing people? I considered other options such as having Sam wipe his mouth instead or maybe spit, but none of those actions seemed to fit either. So now he's just going to walk towards Bir. By framing the shot wider, Sam doesn't need to raise the knife as high, again making the shot less over-the-top as compared to the storyboards.

Several hours later, this is the final animation. I also adjusted the camera movement.

Since I use RenderMan to smooth the models at render time, I usually do a quick render to preview the animation without paying much attention to lighting.

Sure enough, I ended up tweaking the camera angle based on the preview render - I widened the shot by changing the lens so you can see Sam's leg stepping over the dead body. No one will probably notice, but I like having it in there because it also breaks up the walk cycle a little bit.

Stage 4 - Crowd - November 25, 2008
I usually add in the crowd right before I render, because my pipeline involves getting all the crowd animation into Maya, and this makes the scenes really heavy. At this stage, it takes about 5 minutes just to open the Maya file for the shot.

Stage 5 - Lighting/Rendering - November 27, 2008
I'm not the best lighter :) so everything comes out looking pretty flat usually.

Stage 6 - Compositing/Final Shot: March 8, 2009
Here's where I add dust, depth of field and color correction.



Should Sam have a dagger or a machete? The machete has drawn some strong reactions from classmates about potentially being over the top ("too Arabian Nights"), but more threatening and a lot easier to see. At the same time, I've heard accounts that swords were used in these riots. So I have a decision to make. For right now, I'm leaning towards the dagger because I've tried to shy away from overstating the violence in the film to make it feel a little more realistic as opposed to exaggerated. Of course, using the word "realistic" is a contradiction because I just mentioned that swords were used in the Partition riots, but I need to be conscious of both historical accuracy and cinematic stereotypes.

I'll ask the faculty what they think at a later date



And here is the same comparison with movement:
(The difference is more subtle when the characters are animated but there are going to be enough scenes with the dagger/machete that deciding between them is important.)



Sunday, June 29, 2008

Goon #1: Sam

This is the character who threatens Bir at the climax of the film.
(His name is Sam because Brittany thinks he looks like Sam Waterston)

Here's how I got there:

Step 1: Start with Maqbool

Step 2: Get rid of all the hair and modify the base model so the face starts to look different

Step 3: Start adding back hair, eyes, etc., and try to tweak each component as it's added

Step 4: More tweaks after a review with colleagues - add a widow's peak, get rid of the beard, and a nose job. (He resembles my dad slightly, which is not surprising since I used a picture of my father as a loose reference.)

Final: More tweaks, a change of clothes and some stubble.

The base mesh looks like this:

Final Final: Oops. I got some more feedback saying that he was too handsome. So this is the new and more evil Sam after I made his features more angular.

Saturday, June 21, 2008

Prayer reference

Some references for Scene 3, when Maqbool prays on the train.

Sunday, June 1, 2008


This the first pass on the beginning of the riot. There will be more characters added, but I'm trying to get the blocking/edit down.


V2: Tighter shot on the two characters fighting

Wednesday, April 9, 2008

Look Test

First pass render/composite:

Monday, March 24, 2008

Massive woes

I've been unable to import mocap data into Massive without crashing. After some more debugging, I think that the problem comes down to the fact that I am using Maya 2008, whereas Massive only appears to work with Maya 8.5. This incompatibility is probably also what caused all my camera headaches a couple of weeks ago.

For example, when I save an animated camera using Maya 8.5, the end of the file has the following snippet:

connectAttr "persp1_visibility.o" "persp1.v";
connectAttr "persp1_translateX.o" "persp1.tx";
connectAttr "persp1_translateY.o" "persp1.ty";
connectAttr "persp1_translateZ.o" "persp1.tz";
connectAttr "persp1_rotateX.o" "persp1.rx";
connectAttr "persp1_rotateY.o" "persp1.ry";
connectAttr "persp1_rotateZ.o" "persp1.rz";
connectAttr "persp1_scaleX.o" "persp1.sx";
connectAttr "persp1_scaleY.o" "persp1.sy";
connectAttr "persp1_scaleZ.o" "persp1.sz";

On the other hand, in Maya 2008 the same section looks like this:

connectAttr "persp1_visibility.output" "persp1.visibility";
connectAttr "persp1_translateX.output" "persp1.translateX";
connectAttr "persp1_translateY.output" "persp1.translateY";
connectAttr "persp1_translateZ.output" "persp1.translateZ";
connectAttr "persp1_rotateX.output" "persp1.rotateX";
connectAttr "persp1_rotateY.output" "persp1.rotateY";
connectAttr "persp1_rotateZ.output" "persp1.rotateZ";
connectAttr "persp1_scaleX.output" "persp1.scaleX";
connectAttr "persp1_scaleY.output" "persp1.scaleY";
connectAttr "persp1_scaleZ.output" "persp1.scaleZ";

Even a non-programmer can tell that these two code blocks are semantically identical, Maya 2008 is just more verbose than Maya 8.5. Still, that's all it took - when I copy-paste the same code block from my Maya 8.5 file to the Maya 2008 file, everything works like a charm.


Even though it might seem that all I do for my thesis is collect references, I have been known to animate on occasion. I have a nice long segment done, there are bugs in it but I think it's mostly there.

(As for the titlecards, I've never really liked them and I am playing around with the idea of replacing them with some narration from the boy - same information, but instead of saying "1 million people" maybe the boy can say "lots of people". This will move the intro more towards the boy's POV. The problem is that I already have some dialogue in the film where the mom tells the boy that India has been partitioned. So the boy's narration in the beginning shouldn't make this dialogue redundant since I've already animated it).

Wednesday, March 12, 2008

More crowd stuff - Salaam Bombay

Salaam Bombay is one of my favorite Indian films (everyone should watch it), and there's a good crowd scene at the end. In fact, it's not too hard to find a couple of shots from this clip in my film :)

Monday, March 10, 2008

Mocap shoot 2

Speaking of mocap, I just got my latest shoot approved by the head of physical production. I have two actors, Lester Reynolds and John Michael Herndon, coming in on Thursday and I'm going to capture some fight sequences and some falls. Since the actors are going to be scuffling, technically I am conducting a hazardous shoot, which meant going through some paperwork and the production division in order to make sure everyone was insured. So I'm all clear and now I've got some planning to do to make sure things go smoothly. I don't have any experience choreographing a fight, but I need to make sure I get what I need. Previz, previz, previz.

I'm planning to buy some foam props and mesh clothing to simulate swords, lathis (staffs) and kurtas. I was inspired by a class visit to the set of the new Zemeckis film ("A Christmas Carol") last week; these little tactile touches do a lot to help an actor get into character.

Huge update

It pains me to leave this scene looking so crude, but I'm shelving it for now. I'll be back, with better models, more foreground characters and some custom mocap walks. At least I know that I can pump shots through this pipeline, and for the sake of my sanity, I need a break.

Saturday, March 8, 2008


After a week of hacking on Massive, I was finally able to get something out of it.

A couple of highlights:
1. Gave up on RenderMan Pro Server - I haven't been able to get a hold of this software for months now, and I decided to just render with Massive's native hardware renderer and make the most of it. Also, the integration between the Windows version of Massive and RenderMan might present additional problems.

2. Camera moves - you're supposed to be able to import a Maya camera straight into Massive, which is really nice if you want to choreograph the crowd to an existing camera move. But I couldn't get this feature doesn't work, and after two and a half days of segmentation faults and crashes, I gave up. So now I am manually copying the camera keyframes from Maya to Massive, one channel at a time. This process is not as simple as it sounds because Maya and Massive deal with camera aperture in completely different ways. As a result, I had to figure out the conversion between Maya's aperture/film aspect values and Massive's film back to make sure that the camera angles matched. Totally fun.

The first video is what I got when I aligned the camera position but the aperture/filmback didn't match.

The second is a much more accurate alignment after I figured out how to convert between the cameras (the color correction is just something I threw on in Premiere).

So now I have to get the dudes to stop walking back into the train. This is harder than it sounds because I am working with a library agent that Massive provides which is tricky to customize. Still, at this point I'm not averse to manually painting them out if I have to.

Also, I'll work on replacing the models with my own, or at least switch their clothing. I also need to integrate my own motion capture shoot data into this scene. I may just do that as a separate pass at this point.

I'm still not entirely convinced that trying to render in Massive is better than my earlier hacked Maya workflow in which I exported the animation curves out of Massive and then attached them to characters I had created in Maya. The advantage to using Massive is that it's very efficient at rendering (so far) and it's easy to move the agents around, change their outfits, etc. The disadvantages are that the Windows version of Massive isn't very stable, and that I need industry-grade RenderMan Pro Server (to match the rest of my elements that are rendered with RenderMan for Maya) which is not available at my school.

Sunday, March 2, 2008

Monster House reference

I don't know why I didn't think of this before, but Monster House has some pretty scary and suspenseful scenes involving a boy and an old man, and I really like the cinematography in Zemeckis films as well. So I'm going to refer to sections such as the one below for either when Bir encounters Maqbool the second time, or when Bir is being chased by the goons. I especially like the couple of shots with the kid peeking around the ambulance - I've been wanting to have Bir interact more with the set in a similar fashion.

Hmm...Scary faces coming out of the fog/dust? Could be good.

Thursday, February 28, 2008

Crowd reel

After much procrastination, I am starting mocap shoots for the crowd scenes in the film. My goal will be to capture small segments of animation (e.g. walks, characters sitting, etc) that I can blend together to create different crowd people. I hope to use Massive to achieve this blending, but given my lack of progress at learning the software, I may just have to do all of this in Motion Builder and Maya (i.e. create the scene by hand, instead of relying on Massive's AI).

I compiled a reel of crowd shots from 'Gandhi' and 'Water' to help me figure out what I need.

Saturday, February 23, 2008

Hmmm...too dignified?

What if he was younger? Maybe then it would be less obvious that he's a good guy. And what if he's the guy fighting in the beginning?
If he's younger, then he's going to come across more as Bir's dad than his granddad.

Maqbool Update

This is Maqbool, rigged and ready to go...his collar and cuff textures will be updated eventually. I made some tweaks in his outfit to make him appear more dignified - so now he has cuffs and is wearing some nifty mojaris on his feet. His hands aren't great but I will probably just tweak them in specific shots if I need to.

Wednesday, February 20, 2008

Character facial references

Now that I'm animating, I turned to some of my favourite films for ideas on facial expressions and acting. These really help get me thinking about how far I can push my characters, as well as how to express certain emotions.

Dash is a really great character study because he's a manipulative brat and cute at the same time - studying him has helped me loosen up Bir's animation so that he's not so angelic all the time.

Looking at Elastigirl/Helen Parr helped me develop the mom into more of a character as well, instead of the stiff person I had in my storyboards. However, I've always found the animation on Elastigirl to be just a little bit awkward, so studying the animation also helped me dial into the elegance that I wanted in my character (of course, whether I'll succeed is another issue altogether).