SELECTED WORKS
Wind System (2019)
#Unity #ShaderGraph #Houdini

A system I made for game Exodus to add dynamic effects for vegetation. First, a custom Houdini tool was made to bake pivot information into the mesh. Then, in Unity, a Shader Graph shader unpacks the data and applies vertex animation to the model. The vertex animation logic is based on Unity's Book of the Dead demo.

Role: Houdini mesh processing tool, Wind shader.

VR Scene Transitioning (2019)
#Unity #Oculus

A set of shaders and editor tools I made for project Cutting Edge. The tool allowed the team to implement content-aware scene transitions with ease, for storytelling purposes. The shaders not only implements traditional film cut techniques like crossfading and wiping, but also effects that only make sense in VR like 3D spreading.

Role: Scene transitioning shaders, Unity editor tools.

Liquid-In-A-Container Effect (2018)
#Unity #Vive
A liquid-in-a-container effect I implemented for a three-week student project Space Bar. The volume of the water is done by clipping a mesh that represents the dimension of the container. Instead of filling the backface with a solid color to mimic the water surface, I use a real water plane and clip it according to the shape and transform of the container. This gives the water surface correct depth information, thus let the visual interaction between the water and objects inside the water correct, which realized the teams’ imagination of “alien customers sit in giant martini glasses waiting to be served”.
Rope (2018)
#Unity #Vive
A rope that I implemented for a two-week student project SpaceFed. The rope consists of 20 (configurable) spring joint for realistic physical movement. 20 points are interpolated between every two joint using a Catmull-Rom spline for smoothing and reducing computational complexity. The rope is rendered using Unity’s line renderer with a gradient texture to simulate volume. In the game, players need to cut the rope using a laser cutter. A simple shader is used to add a glowing effect to represent the red-hot surface. The rope will break after a point reaches a certain “temperature”.
SELECTED WORKS
Inverse Kinematics
#OpenMaya #PyMel
A 3D reimplementation of Damped Least Square (DLS) inverse kinematics system in Maya using Python. Supports real-time interaction.
Constrained Based Cloth
#Houdini #VEX
A constraint based cloth simulation implemented in Houdini from scratch (no simulation shelf tool used.) Supports contacts handling.
Surface Parametrization
#C++ #Qt #Eigen
A reimplementation of [Floater 97] paper about surface triangulation. Automatically unwrap UV by constructing and solving a sparse matrix.
SELECTED WORKS
Animation Reel
Assignments for the class Character Technical Animation. Hand animated and rendered by me. Used rigs including Ultimate Beefy (Ugur Ulvi Yetiskin), CMU Squid Rig (Katie Tender and Moshe Mahler), CMU Pendulum Rig (Katie Tender), and CMU Simple Ball Rig (Katie Tender).
USTC Online Judge
#AngularJS #Redis #Flask #Docker

A modern designed website with static front-end pages, cloud API and scalable judge servers.

Role: Front-end Implementation and Web Design.

Re:Verb
#UnrealEngine #IBMWatson #OSC #Flask

Inspired by the poem, Stealing Flowers by Julie Peters, and brought to life with dancer Alejandra Caballero, the choreography by Olivia C. Davies seeks to express the nuances of love and loss with an affirmation of hope. A parallel story unfolds in a virtual environment reflecting the poetic words and the dancers’ movements.

Role: Programming.

I Am Afraid
#Unity3D #NodeJS #IBMWatson

I Am Afraid is a networked virtual reality application (currently for the Daydream platform) where multiple people can create interactive sound sculptures using their own voice.

Role: Programming, UX.