View more on github.


Mobile application to provide neurofeedback on levels of personal brain activity. Helps the user balance the brain activity between hemispheres and avoid repetitive brain patterns which lead to headaches, anxiety, and lack of focus. Won the Judges' Choice award at a hackathon sponsored by Emotiv/Pivotal Labs.

Ray tracer

Wrote from scratch (including a library for vector operations) a ray tracer that rendered scenes with shadows, reflections, and refractions from .obj files. Implemented linear transformations including scales and rotations, and outputted images to .png files using lodePNG.

3D surface mesh generation

Subdivided parametric surfaces by interpolating control points defining a set of Bezier curves. Wrote one version for adaptive triangulation and another for uniform subdivision using de Casteljau's algorithm. Wrote parser to render arbitrary .obj files.
Rendered with OpenGL.

Inverse kinematics solver

Animated a 4-segment arm with 3 degrees of freedom. Used Newton’s method to approximate change in joint angles with linearization. Calculated the pseudo-inverse of Jacobian matrices using SVD.
Rendered with OpenGL.