In Progress: VR Interactive Lighting Design

Unreal, HTC Vive

This is a personal side project to learn Unreal especially its blueprint, light, shading and VR features. In this experience, the player will be able to design the lighting of the scene as a toy-size model, then experience it in real size. It is still in progress.

  • VR in Unreal
  • Blueprint Programming
  • Material Network and Shaders
  • Unreal Lighting

Please find more details here:

Read more


Project Voyage 

Role: 3D Generalist, Technical Artist        

Maya, Substance Painter, Photoshop, Unity

We built a virtual field trip that takes the whole classroom into a deciduous forest. It is a mobile VR experience on Google Daydreams and Pixels and the teacher can control the experience on an iPad. We networked 20 devices together so the whole classroom can be in. 

  • Optimized assets for mobile VR’s limitation. (75 K triangles in a viewport)
  • Made most of the 3D assets (modeling, texturing, rigging, etc) and assemble
  • Baked light and shadow into the assets by rendering in Maya and composite in Photoshop
  • Figured out ways to reduce draw calls and solve device heating problem.
  • Maya – Substance Painter – Unity workflow. Experiment on pipeline and wrote scripts to speed up the process

Read more


OpenGL, C++

Use point-based method to simulate the elasticity material of an octopus.

Point sampled objects do neither have to store nor to maintain globally consistent topological information, which makes it more ideal than triangle meshes when it comes to handling dynamic changing shapes.

  • Point cloud need to have high density. If we call one point with all its physics properties phyxel, every phyxel needs to have more than four neighbours.
  • Our program is real time, interactive but can run with limited number of phyxels. For the octopus, we only simulate the points on the surface.

CCD IK Tool in Maya

pythOn scripting

Use Maya API to realize an CDD IK tool with customized functions.

You can create a locator as the IK handle and link one joint to it. The tool has the following functions:

  • Add a static handle that you can move the handle first, and then calculate the IK.
  • Add a dynamic handle that calculate the IK in real time when Maya renders.
  • Set the root for the calculation. 

Rigidbody Destruction

  • Red parts easier to break
  • Bullet Solver
  • Voronoi
  • Constriants

Model credit: David by Michelangelo by jerryfisher on Sketchfab



Interactive cloth simulation using verlet intergration.