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.
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.
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.
In this project, I further extended Pathtracer-1 to support Microfacet(rough-surface) materials, glass materials and mirror materials.
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.
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.
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.
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.
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.
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.
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: