Computer Graphics

Mini Minecraft
- a Minecraft-inspired open-world game
- team of 3, collarboted on git branches, 3 milestones
- player physics, 3D camera, collision detection, block breaking/placing, player inventory
- procedural cave systems generated with with 3D Perlin noise
- Link to demo video
Mini Minecraft
- a Minecraft-inspired open-world game
- team of 3, collarboted on git branches, 3 milestones
- player physics, 3D camera, collision detection, block breaking/placing, player inventory
- procedural cave systems generated with with 3D Perlin noise
- Link to demo video

Path Tracer
- implemented path tracing algorithm based on Rendering Equation
- used techniques like BRDF materials, Monte Carlo Estimator, Importance Sampling
- stored the mesh in Bounding Volume Hierarchies (BVH)
- coped with ideal specular and translucent materials

Path Tracer
- implemented path tracing algorithm based on Rendering Equation
- used techniques like BRDF materials, Monte Carlo Estimator, Importance Sampling
- stored the mesh in Bounding Volume Hierarchies (BVH)
- coped with ideal specular and translucent materials

Dividing 3D space with Chordal Axis Transform
- reproduced the paper: Ma, Y., Chen, Z., Hu, W. and Wang, W. (2018), Packing Irregular Objects in 3D Space via Hybrid Optimization. Computer Graphics Forum, 37: 49-59. https://doi.org/10.1111/cgf.13490
- experimented with various scenes, ranging from simple cubes to complex bunny meshes

Dividing 3D space with Chordal Axis Transform
- reproduced the paper: Ma, Y., Chen, Z., Hu, W. and Wang, W. (2018), Packing Irregular Objects in 3D Space via Hybrid Optimization. Computer Graphics Forum, 37: 49-59. https://doi.org/10.1111/cgf.13490
- experimented with various scenes, ranging from simple cubes to complex bunny meshes

Cloth Simulator
- implemented Mass Spring Mesh to simulate cloth
- support mouse interactions --- you can drag a point on the cloth with mouse
- added friction force when colliding with a sphere
Cloth Simulator
- implemented Mass Spring Mesh to simulate cloth
- support mouse interactions --- you can drag a point on the cloth with mouse
- added friction force when colliding with a sphere

Mesh Editor
- a mesh editor based on half-edge structure
- support loading mesh from an obj file
- vertex/edge/face selection and movement
- mesh transformations: edge split, face triangulation, Catmull-Clark Subdivision
Mesh Editor
- a mesh editor based on half-edge structure
- support loading mesh from an obj file
- vertex/edge/face selection and movement
- mesh transformations: edge split, face triangulation, Catmull-Clark Subdivision

GLSL Shaders
- different GLSL vertex and fragment shaders
- Blinn-Phong, Matcap, Vextex deformation, Worley noise
GLSL Shaders
- different GLSL vertex and fragment shaders
- Blinn-Phong, Matcap, Vextex deformation, Worley noise

Scene Graph Editor
- edit the scene graph with a GUI
- rotate, translate and scale the nodes

Scene Graph Editor
- edit the scene graph with a GUI
- rotate, translate and scale the nodes

Image Superpixel Segmentation
- implemented superpixel from: Achanta, Radhakrishna & Shaji, Appu & Smith, Kevin & Lucchi, Aurélien & Fua, Pascal & Susstrunk, Sabine. (2012). SLIC Superpixels Compared to State-of-the-Art Superpixel Methods. IEEE transactions on pattern analysis and machine intelligence. 34. https://doi.org/10.1109/TPAMI.2012.120
- compared the effects under different parameters iteration steps, spatial proximty importance, number of clusters

Image Superpixel Segmentation
- implemented superpixel from: Achanta, Radhakrishna & Shaji, Appu & Smith, Kevin & Lucchi, Aurélien & Fua, Pascal & Susstrunk, Sabine. (2012). SLIC Superpixels Compared to State-of-the-Art Superpixel Methods. IEEE transactions on pattern analysis and machine intelligence. 34. https://doi.org/10.1109/TPAMI.2012.120
- compared the effects under different parameters iteration steps, spatial proximty importance, number of clusters

Point Cloud Registration
- implemented Iterative Closest Point Algorithm from: P. J. Besl and N. D. McKay, "A method for registration of 3-D shapes," in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 14, no. 2, pp. 239-256, Feb. 1992. https://doi.org/10.1109/34.121791
- conducted experiments, and discussed its limitations in initial position, local optimum trap and efficiency
Point Cloud Registration
- implemented Iterative Closest Point Algorithm from: P. J. Besl and N. D. McKay, "A method for registration of 3-D shapes," in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 14, no. 2, pp. 239-256, Feb. 1992. https://doi.org/10.1109/34.121791
- conducted experiments, and discussed its limitations in initial position, local optimum trap and efficiency
Systems & Software

Nexus (search engine)
- distributed key-value store and RDD framework
- responsible for AWS deployment in team of 4
- crawled 300k+ webpages, 20m+ rows of data
- average query response time of 1.34s
Nexus (search engine)
- distributed key-value store and RDD framework
- responsible for AWS deployment in team of 4
- crawled 300k+ webpages, 20m+ rows of data
- average query response time of 1.34s

AConn (voice chat program)
- a cross-platform voice chat application
- low latency, multiple speaker, 13Kbps bandwidth
- voice anonymization module that conceals speaker's identity
- Link to Github

AConn (voice chat program)
- a cross-platform voice chat application
- low latency, multiple speaker, 13Kbps bandwidth
- voice anonymization module that conceals speaker's identity
- Link to Github

ATNet (acoustic networking)
- network based on acoustic signal, wired/wireless
- support reliable linking with custom protocol
- a NAT that supports UDP, ICMP and FTP

ATNet (acoustic networking)
- network based on acoustic signal, wired/wireless
- support reliable linking with custom protocol
- a NAT that supports UDP, ICMP and FTP
Other Projects

Feminine Energy (3D game)
- a 3D puzzle game developed with Unity
- team of 3, collarborated with burndown chart
- added post-processing effects, including camera shake, auto focus, VHS effect
- implemented interactive objects, player movement, subtitle system, shaders
Feminine Energy (3D game)
- a 3D puzzle game developed with Unity
- team of 3, collarborated with burndown chart
- added post-processing effects, including camera shake, auto focus, VHS effect
- implemented interactive objects, player movement, subtitle system, shaders

Reveal the Moving Pattern of Pseudo Base Station
- an interactive webpage that visualizes the pseudo base stations in Beijing
- reveals their moving patterns with a heatmap and their peak activity period of a day with a stream chart
- allows user to filter/categorize/trace spam messages
- cleaned, filtered and analyzed ~3,350,000 spam messages, and classified them into 5 categories
Reveal the Moving Pattern of Pseudo Base Station
- an interactive webpage that visualizes the pseudo base stations in Beijing
- reveals their moving patterns with a heatmap and their peak activity period of a day with a stream chart
- allows user to filter/categorize/trace spam messages
- cleaned, filtered and analyzed ~3,350,000 spam messages, and classified them into 5 categories

Ballistic (VR game)
- a VR game running on VIVE Focus
- adopted a novel interaction mechanism, which allows the player to control the character by rotating his head
- Link to Website
Ballistic (VR game)
- a VR game running on VIVE Focus
- adopted a novel interaction mechanism, which allows the player to control the character by rotating his head
- Link to Website

Escape (retro game)
- a simple runner game on Longan Nano, developed in C and RISC-V
- move the player to avoid obstacles, and get highest on scoreboard
Escape (retro game)
- a simple runner game on Longan Nano, developed in C and RISC-V
- move the player to avoid obstacles, and get highest on scoreboard