Projects

Selected Work

Here is a collection of projects I've done as part of coursework or in my free time. Click on a project to see more details!

Custom PyTorch (Needle)

Implemented a subset of PyTorch from scratch that supports autograd, NDArrays, common deep-learning architectures, and acceleration using custom CUDA code.

Autograd CUDA Systems

Custom Ray Tracer

Modular C++ Monte Carlo ray tracer with subsurface scattering, GPU parallelization, and a Blender plugin.

Custom ray tracer final render
C++ Rendering Multithreading

Linux Shell

Low-level UNIX shell in C with fork/exec/waitpid, signal handling, pipes, I/O redirection, and custom command parsing.

GitHub

ash shell terminal screenshot
C Systems OS

CarAI

  • Self-driving car simulation with ML and reinforcement learning on custom road maps.
  • Training features collected by recording human driving on the track.

GitHub · with Yoogottam Khandelwal

CarAI self-driving simulation
Python TensorFlow Reinforcement Learning

Movie Recommender

  • Builds user profiles from past reviews to predict ratings for unseen movies.

GitHub

Movie Recommender interface
Python TensorFlow Machine Learning

MIPS Processor

  • MIPS32 ISA processor in Verilog, running programs such as bubble sort and merge sort.
  • Modular design for easy parameter changes; custom assembler converts assembly to binary.

GitHub

MIPS processor block diagram
Verilog FPGA Computer Architecture

VGA Card

  • VGA controller for CRT, LCD, and LED displays; tested on Nexys 2 FPGA.
  • Image input → timing and RGB pixel stream for on-screen rendering.

GitHub · with Shivansh Rakesh

VGA card output on a display
Verilog FPGA Digital Design

Epicycle Drawer

  • Draws user sketches using epicycles via Fourier transforms and DSP.
  • Arranges circles so a point on the final circle traces the input drawing.

GitHub

Epicycle drawing animation
Python DSP Visualization

Banaras, India