Battlefield Mobile
#Unreal Engine #Maya #Houdini #Eigen #OpenVDB

A mobile Unreal Engine project I worked on as a software engineer at EA Industrial Toys.

Real-time Hair Shader (2020)
#Unity #HLSL

A hair shader I made for the mobile game uFighter at Tonk Tonk Games, inspired by the talk The Process of Creating Volumetric-based Materials in Uncharted 4 at SIGGRAPH 2016. It features the Scheuermann specular highlight model for hair rendering, an extra ambient occlusion map which utilizes the hair's secondary UV, and a faked transmission effect when the hair is seen against the light.

Credit: Warren Boonzaaier (Hair Authoring), Shalin Shodhan (IBL Shader Base).

Wind System (2019)
#Unity #ShaderGraph #Houdini

A system I made for the 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 the 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”.
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.
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.

#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.