Rayster

Vulkan based hybrid raytracer, 2019 - Prresent

Abstract

Rayster is a 3D hybrid rendering system for research and experimental purposes. The target applications include denoising across space and time, direct illumination, analytic shading and distribution effects such as soft shadows, depth of field and motion blur. Rayster complements offline raytracers such as Mitsuba, which are not ideal for prototyping real-time/interactive applications. There is also a plan to use Embree for exploring multi-core CPU for control-divergence prone multi-bounce effects in combination with GPU for single bounce effects.

[Code]  [Manual]

Fun In Flatland

A Python based 2D visulization and raytracing API, 2019-present

Abstract

Fun In Flatland is an API to facilitate the prototyping of 2D raytracing algorithms. It provides the basic infrastructure required to create a scene such as materials, objects and camera along with their intersection routines. One important aspect of the API is that all objects, camera and math primitives such as points, vectors, normals, and rays can be visualized.

[Code]  [Demo]

Rigid body simulation on GPU

A class project for course Computer Animation course, Winter 2017

Abstract

The project explores the performance and statbility of rigid body simulations across GPU and CPU using two different solvers - Gauss Siedel and Gauss Jacobi. The project uses OpenCL to parallelize GPU workload while C++ threads for multi-core CPUs.

[Code]  [Report]

A pathtracer

A class project for Realistic Image Synthesis course, Fall 2016

Abstract

The project is a rather large extension of Tiny-render that includes a SAH-BVH implementation from book PBRT. It includes several MC sampling algorithms for spherical lights, area lights, environment lights, and various BRDFs. It also has a generic MIS implementation for more than two sampling schemes. There is also an implementation of Linearly Transformed Cosines as the final project.

[Code]

John-the-Ripper

Open-source password security auditing tool, Winter 2012 - Summer 2015

I worked on accelerating password cracking using GPU(s). More specifically -
  • Minimizing instruction count for boolean functions by exploiting hardware specific instructions.
  • Implemented a Perfect hash table that uses exactly two memeory operations per lookup for accelerating hash collisions on GPU.
  • Maintaining GPUkernels for wide range of GPUs taking into account sharedmemory, register pressure, constant buffer, pipelining (overlap data transfer and compute), GPU temperature etc.

[Official repo]  [Perfect hash table]

Reach me at