Works

Streamlines with Raytraced Impostors

WebGL, GLSL, JavaScript, lil-gui

Efficient rendering of cylinder streamlines and spheres using raytraced impostors. Implemented hierarchical Z-buffer occlusion culling to cull unseen objects and mitigate overdraw. Features post-processing with depth of field and bloom, along with screen-space ambient occlusion and temporal anti-aliasing.

Streamlines with Raytraced Impostors

WebGL, GLSL, JavaScript, lil-gui

Efficient rendering of cylinder streamlines and spheres using raytraced impostors. Implemented hierarchical Z-buffer occlusion culling to cull unseen objects and mitigate overdraw. Features post-processing with depth of field and bloom, along with screen-space ambient occlusion and temporal anti-aliasing.

Streamlines with Raytraced Impostors

WebGL, GLSL, JavaScript, lil-gui

Efficient rendering of cylinder streamlines and spheres using raytraced impostors. Implemented hierarchical Z-buffer occlusion culling to cull unseen objects and mitigate overdraw. Features post-processing with depth of field and bloom, along with screen-space ambient occlusion and temporal anti-aliasing.

Voxel Terrain Min-max Mipmap Traversal

WebGL, GLSL

Voxel terrain rendering with quadtree displacement mapping using min-max mipmaps. Terrain texturing done procedurally using multiple noise functions. Clouds are rendered as 2D with shadows to give depth. Smooth camera path is done using Catmull-rom splines. Project Link

Heightmap Pathtracing using Quadtree Displacement Mapping

WebGL, GLSL, JavaScript, dat.GUI

Efficient ray-traversal of heightmaps using quadtree displacement mapping. Allows modification of texture offset and scale without recomputation of any acceleration structure. Project Link

GPU Falling Sand Cellular Automata Simulation

WebGL, GLSL, JavaScript

Falling sand simulation done in the GPU in fragment shaders using block cellular automata with a Margolus neighborhood.
Features colored dynamic 2D lighting using the jump flooding algorithm. Project Link

Hybrid SDF-Voxel Traversal

WebGL, GLSL, Shadertoy

Voxel traversal using a hybrid SDF-voxel method. Traversal is done by initially doing raymarching/sphere tracing, and switching to voxel traversal when the distance is less than the bounding radius of the voxel. Project Link

Extruded Quadtree Path Tracing

WebGL, GLSL, Shadertoy

Path tracing of an extruded quadtree structure of rectangular prisms using an implicit algorithm. Features polygonal bokeh for depth of field. Project Link

SDF Octree Voxel Traversal

WebGL, GLSL, Shadertoy

Implicit octree traversal using SDFs to define occupancy of a given cell. The basic idea is to check for occupancy of a cell by querying the SDF at the cell center, and if the distance is less than the bounding radius of the cell, it is occupied. Project Link

SpectraPT - Spectral Compute Shader Pathtracer

OpenGL, C++, GLSL, Dear ImGUI

Spectral rendering in a compute path tracer.

Blender Sky and Atmosphere Rendering

Blender, Python, GLSL

Physically-based real-time sky and atmosphere with multiple scattering, implemented in Blender shader nodes.

PBR GGX Path Tracing

WebGL, GLSL, Shadertoy

Path tracing with Physically-based shading with GGX BRDF with approximate multiscattering. Features depth of field with uniform sampling of various shapes for different aperature shapes for bokeh. Project Link

Rhombic Dodecahedron Voxel Traversal

WebGL, GLSL, Shadertoy

Ray traversal of a packed sphere grid/rhombic dodecahedral honeycomb. Project Link

Hybrid SDF-Voxel Traversal

WebGL, GLSL, Shadertoy

Voxel traversal using a hybrid SDF-voxel method. Traversal is done by initially doing raymarching/sphere tracing, and switching to voxel traversal when the distance is less than the bounding radius of the voxel. Project Link

Two Grid Traversal w/ 1-Pass DoF

WebGL, GLSL, Shadertoy

Ray-traversal of two grids of primitives in a single traversal loop with single-pass depth of field. Project Link

GPU Falling Sand Cellular Automata Simulation

WebGL, GLSL, Shadertoy

A falling sand simulation using block cellular automata with Margolus neighborhood. Project Link

Extruded Hexagonal Grid Traversal

WebGL, GLSL, Shadertoy

Fast ray-traversal of an extruded hexagonal grid. Project Link

Implicit Quadtree Traversal

WebGL, GLSL, Shadertoy

Fast traversal of a dense grid of rectangular pillars using an implicit quadtree acceleration structure. Project Link

Spectral Cornell Box Path Tracing

WebGL, GLSL, Shadertoy

Spectral path tracing of a Cornell box scene with next event estimation/multiple importance sampling and basic hero wavelength spectral sampling. Project Link

2-Pass Mipmap Bloom

WebGL, GLSL, Shadertoy

Bloom implementation using only 2 buffer passes by making use of texture mipmaps. Project Link

Blender Sky and Atmosphere Rendering (Nightsky)

Physically-based real-time sky and atmosphere with multiple scattering, implemented in Blender shader nodes.

Production Sky and Atmosphere

Blender, Python, GLSL

Physically-based real-time sky and atmosphere with multiple scattering and aerial perspective.

Volumetric Shadows using Shadowmaps

WebGL, GLSL, Shadertoy

Rendering volumetric shadows using raymarching with shadowmaps.

Bitruncated Cubic Honeycomb Traversal

WebGL, GLSL, Shadertoy

Ray-traversal of a truncated octahedron tessellation/bitruncated cubic honeycomb.