Cool Stuff

Dance Mocap

So at the end of 2014 I was capturing dancers for an installation project run by a group of Drexel University professors. The piece isn’t done but it should be a great one. Dancers responded to poetry with improv dance in the mocap studio. The data will then be used to generate some abstract imagery and animations that will be played over the dancers as they respond to the same poetry but months later. Its been an interesting project to work on. I just wrapped on cleaning the data (8 dancers at about 45 minutes a piece was tough by myself) so I thought I’d post up some Instagram videos I took during them. I’ll try and take some more when the piece is complete! Until then I’m gearing up to teach the mocap class again this spring term. My second syllabus rewrite, I’m feeling good about it.


A video posted by Stephen Pettit (@space_bit) on

A video posted by Stephen Pettit (@space_bit) on

A video posted by Stephen Pettit (@space_bit) on

A video posted by Stephen Pettit (@space_bit) on

Christmas Cards

I made some Christmas cards in maya this year. I’m trying out a style I’ve seen in a few places, namely Turnislefthome and the David O’Reilly episode of Adventure Time. Basically its just using a ramp shader, making a good color scheme, and applying that to a mesh with the edges hardened. Hard edges are zero degree normals I believe. The ramp shader is also set to Facing Ratio so that the color is pulled based on the ratio of the camera angle and the normal angle. Then I drop a mental ray ambient occlusion on them to give it a little nicer shading. The mesh’s surface is edited with the Transform Component tool to add some variation. It is kind of like noise, but I may write my own vertex noise tool since Transform Component isn’t the greatest tool to use. It took a while to mess with the lighting. All in all it was a fun break from animation and everyone seemed to like them.

candle xmasRender_02 yulelog

skateboard mocap

So for my senior project game we needed some serious skating animations so I brought in 3 very talented Philly skaters and tried a lot of things out. I got basic movement, turning and riding very easily. Much like with running I had them try and go fast and just ride out of the volume and reenter it before cutting. The trouble was getting them to land tricks. It was tough for them to get enough speed to perform the trick and land all in the diagonal of the volume. I just let the cameras roll and had them go back and forth doing the same move a few times and will try to splice together the best takes of take off, trick and landing. I made an attempt to capture the board as a prop, but do to the skater’s foot placement changing it was impossible to get a spot where it wouldn’t swap with their feet or fall off if the board didn’t land perfectly. Luckily for our purposes in the game, their feet will likely be locked to the board with and IK solver and be more similar to a snowboard. I’m looking forward to combing through these 5 gigs of animations.

skateCapture6 skateCapture7 skateCapture8 skateCapture9 skateCapture10 skateCapture111 skateCapture12 skateCapture2 skateCapture3 skateCapture4 skateCapture5


Python rigging tools

Hey yall, I’ve been working on a couple quick little python scripts to speed up some basic maya rigging steps. I wrote them in python instead of mel, but now wish i had written them in pymel instead. what a crazy world this whole maya scripting thing is. anyway i’m gonna start posting some, feel free to take them, would you kindly  just leave my name on them 😀

duplicate and rename a hierarchy. useful for quickly creating multiple skeletons for IK/FK switches. the raw data popup is asking for a suffix to append to the name of the objects

#==Script by Steve Pettit==#
import maya.cmds as cmds
suffix = raw_input("Enter a suffix: ")
selection = = True)
cmds.duplicate(selection[0], n = selection[0] + suffix)[0] + suffix, hi=1)
dupSelection = = True)
relSel = cmds.listRelatives(dupSelection, children = True)
curParent = selection[0] + suffix
for i in relSel:
curSel = relSel[relSel.index(i)]
cmds.rename(curParent + '|' + curSel, curSel+ suffix)
curParent = curParent + '|' + curSel + suffix + '|'

these ones will create controls for fingers that make them curl when rotated down the finger chain

#==Script by Steve Pettit==#
hiSelection = = 1)
selection = = True)
fingerCtrl = cmds.curve(d=1, p=[(0,0,0),(0,3,0),(0,4,-1),(0,5,0),(0,4,1),(0,3,0)], k=[1,2,3,4,5,6])
cmds.pointConstraint(fingerCtrl, selection[0])
mult = cmds.createNode('multiplyDivide', n='myNode')
cmds.setAttr('myNode.input2X', -1)
cmds.connectAttr('myNode.outputX', selection[0]+'.rz')
cmds.connectAttr('myNode.outputX', selection[1]+'.rz')
cmds.connectAttr('myNode.outputX', selection[2]+'.rz')
hiSelection = = 1)
selection = = True)
fingerCtrl = cmds.curve(d=1, p=[(0,0,0),(0,3,0),(0,4,-1),(0,5,0),(0,4,1),(0,3,0)], k=[1,2,3,4,5,6])
cmds.pointConstraint(fingerCtrl, selection[0])
cmds.connectAttr(fingerCtrl+'.rz', selection[0]+'.rz')
cmds.connectAttr(fingerCtrl+'.rz', selection[1]+'.rz')
cmds.connectAttr(fingerCtrl+'.rz', selection[2]+'.rz')

that’s all for now friends. more later

facial animation progress

Been working on my character animation 2 face. This is the rough cut i suppose. I started by blocking in the head motion, adding eye movement and blinking to get some of the rhythm down. then I blocked in the opening and closing of the mouth, then wide and tight. started adding some expression and visemes to round it out. then got the eyebrows in a little. a lot more to do to make sure the timing and speed is deliberate. and i think i need to tweak things and add a lot of subtle things but i think this is all the big movements i want. audio is also pretty quiet so i’ll have to fix that somehow.

Character Animation 2 rough draft from Steve Pettit on Vimeo.


This has been floating around my server since the summer and I thought i’d post it since it isn’t going to make my frontpage portfolio but I still like it. the assignment was to an interactive poster for a band. i made one for anamanaguchi, my favorite chiptune punk funcore band. you can click on things and try to make them interact, find all the secrets! most of the animation is just based on fun little trigonometry tricks. based off Cory Schmitz and Maré Odomo’s print poster for anamanaguchi <3



ACM SIGGRAPH Drexel Chapter

Over in the right hand corner in the brown and white stripes is me. This is me teaching a packed room of Drexel students about split body animating with the Trax Editor in Maya and how to get started using Unity 4’s Mechanim. It was fun getting to take some time out of my busy schedule and show off some stuff I taught myself. I was super nervous, the facebook event said like 10 people, ended up being almost 30 i think ,yeesh. Drexel’s SIGGRAPH chapter might be the best thing about this major.

Maybe i’ll post some formal version of my notes as a tutorial later.