Composition and Rendering of Bharatanatyam Performance in Augmented Reality

Github Code Repository link
Project Report

The objective of this project was to write a program using Blender’s Python API That is capable of taking a list of 30-dimensional vectors and creating an animation of a dancer. Or simply put, we want to use this:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 -1 2 0 2 -1 3 -1 -1 -1 3 0 1 1 2 1 1 1 0 2 2 0 0 0 -3 1 1 0 0 0
2 1 2 0 2 -1 3 -1 1 1 3 0 1 1 2 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0
2 1 2 0 2 -1 3 -1 1 1 6 4 -2 0 2 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0
2 1 2 1 2 0 3 0 0 0 0 2 -1 1 3 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0
1 -1 2 -2 2 0 2 0 0 0 0 2 -1 1 3 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

To create this:

Alt Text

Codification of a Bharathnatyam pose

The Codification of a pose in Bharathanatyam into a 30-dimensional vector was done by professor Sangeeta Jadhav, Goa University (2018). In her work, positions of different parts of the body are represented by different integers within the 30-dimensional vector as shown below:

Position of Head : 1 and 2,
Position of Right Hand : 3 to 10,
Position of Left Hand : 11 to 18,
Waist position : 19 and 20,
Right Leg position : 21 to 25,
Left Leg position : 26 to 30.

Therefore, from a list of 30-dimensional vectors, we can get a list of poses that we can use as keyframes in creating the animation of the dancer.

Object Oriented design to manipulate the dancer

Once we had created the 3d model, its armature and completed the rigging, We came up with an object-oriented design to set the pose of the dancer based on the 30-dimensional vector. The design had to be such that the dancer would not be able to assume any pose that is not anatomically possible. The challenge was that the possible configurations a particular bone can take depended on the configuration of its parent bones. For example, the possible configuration of the palm depends on the current configuration of the forearm.
To deal with this we created a design that would alter the poses of the bones from the top to the bottom of the bone hierarchy; Starting from the pelvis bone to the finger and the feet bones. This process is depicted in the below diagram:

image

The overall design is depicted in this UML diagram (svg):

image


For more details refer to the report