Computer Graphics

Mini Minecraft

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

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

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

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

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

GLSL Shaders

  • different GLSL vertex and fragment shaders
  • Blinn-Phong, Matcap, Vextex deformation, Worley noise
Scene Graph Editor

Scene Graph Editor

  • edit the scene graph with a GUI
  • rotate, translate and scale the nodes
Image Superpixel Segmentation

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

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)

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)

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)

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)

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

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)

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)

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