We are planning to program it using C++, OpenGL and Cg. There is a small doubt in our mind whether it is possible to to make use of CUDA as well as Cg together and whether it will suit our requirement. We will figure out something and start working on the project soon.
We have now started working on the initial tasks. Mitesh is working drawing a catmul rom spline given a fixed number of points. The idea is to have a couple of points joined together based on a cubic bezier curve.This will give us the foundation for the hair strand.
In parallel I(Chitranjan) have started working on making and rendering billboard particles out of the hair strand particles. The points that make up the catmul-rom spline are considered as the center points of the billboard particles. In the paper they explained it as sending a texture coordinate along with the coordinates of the catmul-rom particle. This part is still unclear to me and I need to ponder over it for some time.
Ok....So I(Chitranjan) have been able to render the single strand of hair. I found the GL_POINTS to be the right implementation for the purpose.I just considered a vertical strand of hair and then resized the particles as specified by the algorithm.What remains now is to fetch the coordinates of the catmul-rom spline and render points at those positions.

We intend to calculate the catmul splines using cuda.We may also do the resizing using cuda itself.Attaching the screenshot of the hair strand.A better shaped hair strand can easily be obtained by tweaking different parameters.
I will now start working on the next step which is sorting of hair strands and which is a very important part of the algorithm.This will decide the rendering order of the billboards.It is very important to solve the depth issues and the root of the hair strand plays an important role in this.The sorting is to be done according to the distance from the eye position to the root position of the hair strand.