/ tags / 3d

BMW E24 6-series Model

This is my second serious car modelling project. The reference photos were harder to find, and the blueprints were quite approximate. With the first car, I’ve learned about how not to model, so this one’s all polys and good topology.

BMW M5 Model

This is a side project that I started back in first year of university. It’s my first “real” 3D modelling work. I got reference photos and approximate blueprints for an E60 (‘05-‘10) and did the model from them.

CS488 Final Project

This is my final project for the CS488 Graphics course. It has OpenGL rendering a few cubes with specular+diffuse shading and parallax mapping. Originally, the idea was to get a simulated windowing environment, but there's never enough time.



Rasterization with Perspective-correct Texturing

A friend of mine wrote a simple 2.5D texture renderer using an algorithm from the Doom & Quake era. I whipped up a Matlab script to see how much difference would a "correct" algoritm make. The script takes in any 4 verteces and renders the texture over them with a wide (90*) FOV.


I wrote my raytracer as a part of my CS488 Graphics course. It’s pretty straight-forward: single-threaded, non-AA non-accelerated raytracer. It renders polygons and spheres.

Software Rasterization

As a part of my CS488 Graphics course, I wrote a software implementation of edge rasterization. Features a full projection matrix, screen clipping, frustum culling, etc + object transformation. The 2 RGB gnomons represent the model-space and world-space. A line drawing API was given.


I wrote a functional 3D-rendered Tetris game as a part of my CS488 Graphics course. The game is still "flat", it's just rendered using cubes in OpenGL. Most of the game logic was provided.


A collection of 3D & VFX videos.