* Everything I did for this course was done from scratch

## Hierarchical Modeling & Animation

In this assignment I implemented an animation system that could reproduce 3D animations using the interpolation techniques seen in class (Catmull-Rom, Hermite, Bezier and Linear interpolation).

In the video you can see:

• 2D curves created by interpolating some control points using the techniques mentioned above.
• Animation reproduced by interpolating the data given by the keys of the animation (only skeletal animation).

## Motion Along a Curve

The objective of this assignment was to have a biped walking along a curve. The input of the program is a file with the control points (position and time) of the curve to be traversed.

In the video you can see:

• The skeleton of the model walking through the curve, which has been parametrized by its arc-length so the character wouldn’t accelerate in the straight segments and decelerate in the curves.
• Orientation of the model along the curve by using Frenet Frame and Center Of Interest.
• An Ease-in-out curve to make the character accelerate and decelerate at the beginning and end of the path.

## Skinning & Inverse Kinematics

The goal of this assignment was to make the hand of the character reach the target by using IK.

In the video you can see:

• Two Bone algorithm (2D), where the length of the bones (green lines) can be modified. Red ball is the target.
• Cyclic Coordinate Descent algorithm (3D), where user can choose if the IK gets resolved form the first bone (shoulder) to the last one (wrist) or vice versa.
• Skinning.

## Particle System Dynamics

The objective of the assignment was to implement a physics simulation based on particle systemsVerlet Integration and Iterative Constraint Relaxation, using as a base the implementation described by Thomas Jakobsen.

In the video you can see:

• Change of the system’s dimension on runtime.
• Bounding box for limiting the spreading of the particles.
• Gravity variation.
• Cloth elasticity variation (less passes, more elasticity).