Rabbit Hole
3-D rendering and animated physical simulation
A collection of coursework for “Computer Graphics Fundamentals” and “Algorithms and Technologies for Computer Animation”. Program sources and lab reports have been published on GitHub.
PBR/IBL rendering

Implemented the physically based rendering (PBR) algorithm for simple physically authentic renderings of materials. Image-based lighting (IBL) was incorporated for global illumination. Implemented in the Rust language with the OpenGL application interface. Lab report.
Path tracer rendering



The path tracer is implemented in the Rust language.
GPU-accelerated rigid body physics simulation

Implemented a highly parallel rigid body physics simulation algorithm on GPU with Taichi. Lab report; demonstration video.
The second simulation animtion in the video is dubbed “Antichlorobenzene”, which originates from the song in 2010 by Owata-P. Being the second in the “dicholrobenzene doublet”, the song insinuates that a seemingly righteous warrior in an online opinion war is in fact wreaking havoc under the banner of opposing evil — “for justice, no evil is too much”.
In the second half of the song, the protagonist repeatedly calls “Para-dichlorobenzene”, which is her “opponent”; but the lyrics simply shows a run of asterisks “*”: what is the point of such violent “justice”? It is just a superficial and indulgent orgy of chaos, leaving only a chilling wreck.
In the simulation animation, objects in the shape of asterisks are mixed with para-dichlorobenzene, creating a mixture of complete chaos. Occasionally, the asterisks rotate to an angle that points at the viewer, but what appears on the screen becomes clear images of the cross “×”. When the flames of so-called justice are being thrown at innocent people, is it up to one’s conscience to insist that “I am right and you are wrong”?