Projects

Projects with Writeups / Presentations

ROAR_PY

ROAR_PY

I led the development of ROAR lab’s new control suite ROAR_PY: a streamable, gymnasium compatible control suite that unifies control of vehicles / reading of sensors in simulation and in real world for any robots. The project is currently in active development and is used by the lab for research and teaching.

Github Repo Read Documentation

Rasterizer

Rasterizer

In this project, I implemented a simple 2d rasterizer that rasterizes mathematical expressions for shapes into pixel image buffers the implemented features include supersampling, hierarchical transforms, and texture(uv) mapping with antialiasing. The above image was rendered using my program.

Read More

MeshEdit

Meshedit

In this project, I built Bezier curves and surfaces using de Casteljau’s algorithm, implemented algorithms to manipulate half-edge meshes, and implemented mesh up-sampling using loop subdivision.

Read More

Pathtracer-1

Pathtracer

In this project, I implemented a CPU-based ray-traced renderer that can render complex scenes with multiple light sources and complex materials. The above image was rendered using my program.

Read More

Pathtracer-2

Pathtracer

In this project, I further extended Pathtracer-1 to support Microfacet(rough-surface) materials, glass materials and mirror materials.

Read More

ClothSim

ClothSim

In this project, I wrote a physics engine that simulates clothing materials. I also implemented shaders to render the cloth (and environments) in real-time.

Read More

ClothingMC

ClothingMC

In this project, we wrote a physics-based cloak simulation mod in Minecraft. The cloak is made of cubical meshes with $32 \times 20$ by size and is simulated by a mass-spring system.

Read Project Report

SIXT33N Voice-controlled Car

SIXT33N

For this project, I built a voice-controlled car using an Launchpad SIXT33N. Me and my partner built the microphone circuit (band-pass) and the motor control circuit. We also wrote the code to control the car using the voice commands.

View Video Read Project Report

Projects without Writeups / Presentations

UGBA 96 Clectricity

Clectricity

In UGBA 96, our team “Cookie Crumbs” developed a start-up pitch called Clectricity. Clectricity is an idea about an AI platform that connects small businesses with energy experts to help them achieve zero carbon emissions. We used value-proposition analysis, demos, revenue model analysis, target market analysis(competitors and market size), market differentiation analysis to pitch our idea to a panel of judges at the end of the class.

CS61CPU

CS61CPU

For this project, I made a CPU design based on the RISC-V 32Bit Integer ISA. The final project is a fully 3-stage pipelined CPU with a 32-bit instruction set that supports RV32I ISA.

numC

CS61C-Numc

For this project, I used C and AVX instruction set to implement a matrix library that can perform matrix multiplication, matrix addition, and matrix transpose. The library is optimized for cache and vectorization.

Gitlet

Gitlet

For this project, I implemented a version control system using Java called Gitlet. Gitlet is a local version control system that mimics the basic features of Git.

The features implemented are:

  1. Stage/Unstage files for commit
  2. Commit files
  3. Reset to a previous commit
  4. Automatically merge branches, and when there is a conflict, the user can manually resolve the conflict