Coding
Agent Behavior (C++, OPenGl)
This project helped in developing behavioral animation of vehicle-like walking agents. Human behavior such as Seek, Flee, Arrival, Departure, Wander and Obstacle Avoidance were implemented.Group Behaviors such as Seperation, Cohesion, Flocking, Leader-following and Alignment were implemented too.
Curve Editor (C++, OpenGL)
Worked on creating a framework to create curves such as BSlines, Hermite Splines and Bezier Curves. The user can draw Control Points and the program would generate the shape of the resulting cubic curve at every step. The control points can be edited to change the shape. (The tool works much like the cv curve tool available in Maya)
Particle Systems (C++, OpenGL)
This project familiarized me with physically based modeling and particle system dynamics. It helped me understand ordinary differential equations (ODE) and the state space representation as well as how to use them to simulate the dynamics of particles. The partcles were generated dynamically by the user and they behaved like fireworks. Forces such as wind, drag and gravity were applied and the simulation used a simple Eulerian approach.
BVH Player (C++, OpenGL)
The goal of this project was to get the character to move using forward kinematics as well as Inverse kinrmatics with both quaternion and Euler angle representations of transformation. The skeleton's body joints and motion data were read in from a .bvh file created through Motion Capture. An interpolation function was provided for blending two separate motions of the character stored in separate .bvh files. It essentially gave me hands on experience about developing a real-time animation system.
Volume Renderer (C++, OpenGL)
The project was to create a volume renderer using openGL and C++. The objective was to create a pyroclastic puff using Ray March and Perlin Noise algorithms. Light interaction and bounding volume was also implemented. To see the detailed report and more screenshots, click here. To see the video, click here.
Ray Caster (C++, OpenGL)
The project was to create a room editor/scene graph using openGL and C++. The user had the option to add various objects and translate or scale them in the room. The project was further modified to ray cast the objects in the room using various ray-object intersection algorithms.
Cloth Simulation (C++)
The project was to simulate a basic cloth. This was achieved by using the mass-spring-damper system. It was basically to understand the concepts of particle systems, particle-based cloth, numeric integration, collision detection and response. RK4, Euler and Midpoint integration methods were implemented. Further, collision detection of cloth and the skeleton and the penetration response were implemented. A small demo of the project can be seen here.