Sakib's Homepage
Search the web
 
   
     
 

 

Cloth Simulation

Implemented cloth simulation based on mass-spring model. Used Cuda to compute particle positions on the GPU and OpenGL for rendering.

Source Code

 

 

Modified Subdivision With Continuous Curvature

Implemented Catmull-Clark subdivision on arbitrary meshes, modified by blending the extraordinary points with a cubic polynomial to obtain continuous curvature. Used CGAL for mesh modification/navigation and OpenGL for rendering. Implemented in C++.

See relevant paper by Adi Levin.

Source Code

 

Particle System on GPU

Implemented a particle system on the GPU using the fragment shader to solve the ODE and compute particle positions. These were rendered to a texture using OpenGL's Vertex Buffer Object (VBO) and subsequently rendered using another pass. Implemented in C++ using OpenGL and GLSL.

Source Code

 

PN Triangles

Substituted the geometry of a triangular mesh with bi-cubic Bezier Triangles (evaluated using de Casteljau’s algorithm) and a quadratically varying normal to produce smoother shapes. Used OpenGL/C++/CGAL.

See relevant paper by Alex Vlachos, Jörg Peters, Chas Boyd and Jason L. Mitchell

Source Code

 

3D Face Rendering

This project involved modeling of the human face using 3D triangulation data provided in .ply format. Skin was implemented using texture mapping applied to a Nurbs Surface which was then fitted to the model by dragging the control points. Cartoon Shading and Glass Shading were implemented using Open GL Shading - GLSL. Also implemented were Normal Mapping and Shadow Volumes. All coding was done in Open GL.

Detailed Description..

Source Code

Perceptron Learning

Class DataCoded for a generative model in R3, with two classes each modeled by normal distributions, using a random number generator for a 1-D normal distribution. Implemented an incremental perceptron learning algorithm to classify samples generated i.i.d. and compared the empirical testing error with the expected classification error for the optimal discriminant, approximated by Monte Carlo integration. Implemented in MATLAB.

 

Spline Sketcher

Developed an Open GL program to implement a spline sketcher using Bezier Curves, NURBS and Subdivision methods. Allowed for picking and dynamic manipulation of control points.

 

 

 

 

Tetrahedron Linkage

Developed an Open GL program to implement linear transformations on platonic solids. A 3D scene was created, and 3 tetrahedrons were stacked onto one another, aligned by their edges. The lowermost tetrahedron was allowed to translate in the z-x plane, while the other two tetrahedrons were allowed to rotate about independent axes, at the point of contact. The transformations were hierarchical, so that a transformation to the lowermost tetrahedron affected the other two but not vice-versa (Akin to the robotic arm in the Redbook). Any tetrahedron could be picked using a mouse and manipulated using the mouse or the arrow keys. The world and the camera could also be rotated independently. Implemented projectile motion of a solid from the tip of the topmost tetrahedron onto the z-x plane.