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”?

permalink | by Ayu