It all started with the Computer Graphics course I took up in my third year. The course immediately piqued my interest. Since then, I’ve been trying to learn new things and better my skills. Below is some of my work in the past year.
The following images were all rendered using OpenGL.
Simulation of the famous snake game. A tolerance was introduced for when the snake consumes the particle, to keep up the aesthetic factor of the game. The game ends when the snake crosses over itself.
The chess pieces were modeled in Blender and exported through the Wavefront format (.obj). The obj files were parsed, and rendered using OpenGL.
A simple Merry go round simulation.
A few models created using Blender as a part of a campus modelling project. They were rendered in OpenGL similar to the chess pieces seen earlier.
The academic building modeled using just the basic OpenGL primitives (quadrilaterals and lines) through an engine that takes in instructions during run-time and reflects the changes immediately. This was crucial as there were many parts to modeling the building, and it would’ve taken up a lot of time otherwise.
Simulation of the Sierpinski triangles fractal.
By the start of 2016 I had started contributing to BRL-CAD, an open source computer graphics organization. I started with a few bug fixes:
- Patch to correct the computation of the surface area of an arbitrary faceted solid (ars): Surface area of an ars.
- Patch to find the faces adjacent to a given face in a bag of triangles (bot): Adjacent faces in a bot.
After getting up to heat with the BRL-CAD source code, I focused on my project proposal for GSoC ’16.
Google Summer of Code ’16
Being accepted to participate in GSoC 2016 with BRL-CAD was a great opportunity, more so because the community’s developers were very helpful and knowledgeable. The project I did with them was Automatic Polygonal Mesh Healing. You can find my complete work here: GSoC ’16 final submission.
I started out by going through numerous research papers on the different mesh defects and the ways to heal them. It narrowed down to gaps, T-joints, overlaps and holes. For each of those defects, algorithms were formulated with help from related research papers with some modifications and additions. More information about the defects and the algorithms can be found in the project proposal: GSoC ’16 Project Proposal
Initially, it had been planned that the Mesh Healing module would be native to the BRL-CAD repository. But after discussing with the OpenSCAD developers, it was decided that the Mesh Healing functionality could be a portable module that could be used by multiple organizations with just a bit of conversion code specific to each of the organizations.
After a summer of immense learning, I continue to contribute to BRL-CAD.