jeff young  
  ::  home  ::  portfolio  ::  resume  ::  
     By the end of this class, I had written a number of applications demonstrating various animation principles. For the classes' final project, my pièce de résistance, I built an inverse kinematic solution for a jointed armature.
     Dr. John McDonald provided the application framework for the various projects, some of which used the RenderGL framework and rgl scene description format, discussed more on the OpenGL page. I wrote all of the code demonstrating the animation techniques. Topics discussed in class include:
  •  keyframe animation
  •  linear interpolation
  •  easing
  •  the Hermite polynomial
  •  curve parameterization
  •  Hermite, Catmull-Rom and TCB splines
  •  achieving constant speed along a curve
  •  rotation quaternions
  •  Hamilton's Rules of quaternion multiplication
  •  spheri-linear quaternion interpolation (slerping)
  •  physical simulation
    •  air resistance
    •  gravity
    •  friction
  •  integration methods
    •  Euler
    •  Improved Euler
    •  Runge-Kutta
  •  mass spring systems
  •  particle systems
  •  inverse kinematics
     The applications and scene files are provided below, chosen to demonstrate a particular technique discussed during the course.
:: Animation ::
:: animation downloads ::

     After extracting the zipped files you'll find a number of applications, each in their own directory. If the file is alone, then it can run without loading a scene file. If the executable has a set of scene files with it (in 'scenes'), then the application should be run and file(s) loaded through File -> Open. Some of the executables come with a set of bitmaps - these must be in the executable's directory to run - they are buttons in the application.

     :: Download zip file and scenes ->

     The images to the left are screenshots taken from the programs included in the zip file. Here's a description of each scene application.

  •  Interpolation\LineSegment.exe - Demonstrates a set of curve types and interpolation of those curves. Choose the curve through the 'Animation Controls' menu. Each curve allows you to manipulate the path of the red sphere by clicking and dragging any yellow target spheres. Click the 'play' button to watch the sphere interpolate the path, or scrub through the animation with the slider control.
  •  Cube Animations\OORenderGL.exe - This application uses the RenderGL framework. Run the application, then open any of the included rgl scene files. They demonstrate the interpolation of various splines in space. Also included is an rgl file that animates the cube based on slerping quaternions - no gimbal lock! The jpg files provided with this scene texture the cube. The text files are generated by the application as it integrates the motion of the cube.
  •  ParticleImpact.exe - Demonstrates the particle system written during this class.
  •  ParticleWaterfall.exe - Also demonsrates the particle system written during class, and introduces wind into the application.
  •  SpringHanging.exe - A hanging mass-spring system in zero gravity.
  •  SpringDropping - A mass-spring system with gravity applied.
  •  SpringBallandChain.exe - A mass-spring system with a heavy weight attached.
  •  Inverse Kinematics\OORenderGL.exe - This extended version of OORenderGL adds an IKArmature class to the application which solves a jointed, two component armature. The scene files provided render the IK armature with or without the blue pyramid icons (the bone convention I'm familiar with by Lightwave) and traces through a rectangle (the green object) with either a linear or Catmull-Rom curve. The IK works by solving, per frame, the Euler rotations necessary to make the armature meet it's goal. A quaternion-based solution would be the next step for this project (eliminating any potential gimbal lock as a result of unfortunate rotation).

all content copyright © 2004-2005 jeff young