Hi! I'm Aritra, from Stockholm, Sweden. I studied the Degree Programme in Engineering Physics at KTH Royal Institute of Technology. I pursued my masters in Computer Science, specialising in Visualisation and Interactive Graphics. I have a passion for topics in the intersection of physics and computer science. I possess a solid theoretical basis in physics and maths, as well as broad technical knowledge of GPU programming. Feel free to take a look at some of my projects down below 😊!
In order to learn the Vulkan API as well as get a deeper understanding of light transport theory I implemented a path tracer in Vulkan. It takes advantage of raytracing hardware by using Vulkan raytracing extensions. I implemented multiple importance sampling, with direct light sampling and material BSDF sampling for faster convergence. The material models are based mainly on the glTF spec and extensions, using a PBR metallic-roughness model with rough reflections and refractions.
GitHub repoMy master's thesis project was on approximate opacity optimisation (see [Günther et. al. 2013], [Rojo et. al. 2019], [Zeidan et. al. 2020]), which is a rendering technique that helps reveal important features in dense 3D datasets where there is a lot of occlussion. I compared different approximation with regards to their effect on execution time and their accuracy. The image shows how opacity optimisation reveals and highlights the important data at the vortex of a tornado. The project resulted in a contribution to the Inviwo open source project.
GitHub repoFor my advanced graphics course I implemented a isosurface renderer that uses implicit kD-trees to accelerate ray traversal for isosurface rendering (based on [Wald et. al. 2005] and [Hughes and Lim 2009] paper). The implicit kD-tree is a data structure that partitions the volume data and stores minimum and maximum density values. Both the kD-tree construction and rendering is done on the GPU using compute shaders, minimising data transfers. The image shows how regions of the volume can be skipped as the ray traverses deeper levels of the tree.
GitHub repoThis was my final project for my course in Graphics and Interaction, and what really sparked my interest in GPU/graphics programming. It is a particle based soft body simulation based on Müller's XPBD method, simulating the system by solving a set of volume and length constraints in every time step. One of the most interesting parts of the project was optimising it for parallelisation on the GPU, which involved clustering the particles using graph colouring. Check out the blog if you're interested in the details!
GitHub repoThis is a personal project I made after learning about volume rendering in my Visualisation course. It is a slice based volume renderer. One of the challenges in making this was the geometric calculations involved in order to generate view aligned polygons and optimise the renderer.
GitHub repoArrend was an OpenGL renderer project I worked on in my free time during the 3rd semester of my masters. I built it in parallel with learning the OpenGL API. Some of the features:
Rolling Reactions is a group project I'm part of in my course in Advanced Graphics and Interaction. It is a VR experience where you traverse in a wheelchair while overseeing experiments in the lab. My main contribution was creating a believable wheelchair experience by creating an interaction system and programming the physics of the wheelchair.
GitHub repoThe aim of this project was to simulate how an asteroid passing close by to the Earth would affects its, and the moon's, orbit. This was my final project for the course SI1336 Simulation and Modeling. The simulation is validated against the DE421 dataset, which contains accurate tables of positions and velocities of planets and their moons.
GitHub repo