Archive for the ‘Animation’ Category.

CS6555 Computer Animation – Lab 5 – Simple Car Control

This lab was an open assignment where we were given the freedom to make up our own animation project of limited scope. There were many topics that were available and I played with a few potential projects; however, above all others there was segment of material that appeared interesting and challenging that requires considerable knowledge to properly implement a convincing demonstration. When I decided on this topic, I knew that I would not be able to complete the project in a short span, so I requested an extension at the cost of an incomplete. I ended up spending several months working on this project and I am very satisfied with the practical knowledge I gained choosing such a challenging project over the more obvious and less intellectually stimulating options I considered. The irony of this project though is that the end product appears mundane which after weeks of watching the dynamics explode, bad planning, and bad control is fantastic but obscures the complexity underlying the system. Below is a video of the car and following that is a report I submitted along with the source code.

Continue reading ‘CS6555 Computer Animation – Lab 5 – Simple Car Control’ »

CS6555 Computer Animation – Lab 4 – Reynolds Boids

In this lab, we were tasked with implementing the Reynolds' Boid model. Reynolds' paper defines an arbitration scheme where overall behavior is affected by suggestions from individual behaviors. The fundamental behaviors are collision avoidance [separation], velocity matching [alignment], and flock centering [cohesion]. Each behavior may cause a conflicting response from the simulated actor and so an arbitration scheme is used to determine which behavior is most significant. Reynolds proposes varying degrees of arbitration. The following demonstration does not use weighted sum parcelling, but instead uses the simplest scheme of a weighting factor to determine the most important behavior and to control based upon that behavior. An additional behavior is introduced in the form of a motivator [attracting] that gives the flocks overall movement the purpose to move toward the goal. Below is a demonstration of all four behaviors working in conjunction.

Continue reading ‘CS6555 Computer Animation – Lab 4 – Reynolds Boids’ »

CS6555 Computer Animation – Lab 3 – Physical Simulation

Physical simulation includes linear and rotation dynamics as well as collision restitution. Collision detection currently supports bounding spheres and axis aligned bounding boxes. There still exists issues when more than two bodies are involved with a collision such as when a ball gets caught in a corner or three balls collide in space.

Below is a demonstration of 10 balls dropped into a box.

Continue reading ‘CS6555 Computer Animation – Lab 3 – Physical Simulation’ »

CS6555 Computer Animation – Lab 2 – Hierarchical Animation

In this assignment, we were tasked with developing a hierarchical walking animation. The primary requirement was a basic bipedal motion, e.g. two legs attached to a pelvis, walking along a trajectory. I extended this requirement by developing a humanoid skeleton running along a trajectory. The hierarchy consists of links and joints where the joints are simple revolute joints, e.g. only one degree of freedom. The hip and shoulder joints actuate perpendicular to the inboard link while the knees and elbows actuate inline with the inboard link. Because this system is keyframe based, the joint constraints are a function of the joint trajectory rather than enforced by the joint itself and the animations are best approximations rather than physically based.

This first video demonstrates the final version of development and shows the running animation without any trajectory visualizations.

Continue reading ‘CS6555 Computer Animation – Lab 2 – Hierarchical Animation’ »

CS6555 Computer Animation – Lab 1 – Cubic Splines, Quaternions and Euler Angles

In this assignment I was tasked with developing a keyframe based animator capable of rendering a model following a cubic spline. Additionally, the requirements stated that the animator shall support both Uniform Non-Rational B-Splines and Catmull-Rom Splines and stated that the rotational movement calculations shall support both Euler Angle and Quaternion rotations.

The following videos are demonstrations of each of these requirements. The trajectory is that of a Double Immelmann flight maneuver. In each video and in the successive slides, the yellow arc traces the B-Spline trajectory and the red arc traces the Catmull-Rom trajectory.

The following video is a demonstration of the biplane actor following a Uniform Non-Rational B-Spline trajectory with rotations handled by Euler Angles:

Continue reading ‘CS6555 Computer Animation – Lab 1 – Cubic Splines, Quaternions and Euler Angles’ »