Igor Chiang's Demo Reel

Collection of significant work till May, 2011.
Break down:
L-System


Visual Stud






Jello Simulation

Tools Used:
Visual Studio(C++), Autodesk Maya, MentalRay

Steps:
1. Coded a
C++ mass-spring-damper systm to simulate deformation  jell-O cube.
2. Rendered the output L-System with MentalRay within Maya. Physical sky, causic photon, importon, global illumination, custom shaders, and depth of field were used to render the scene.
FaceFX

Tools Used:
Visual Studio(C++), Autodesk Maya, MentalRay

Features:
1. High-level controls forhigh-level details using blend shapes.
2. Low-level controls forlow-level details using bone structure.
3. High-level controls for low-level details using machine-learned support vectors on skeleton structure.

Super Smash Pro

Tools Used:
Visual Studio(C++), Autodesk Maya, MentalRay

Steps:
1. Use the Dynamica plugin created by Disney todeal with the external physics of our simulation. 
2. Use the polar form ofBox-Muller transformation to generate a normalized, random number of particles a normalized, random number of particles aroundit or, if wanted, around a line, a plane, a surface, or a volume.
3. Generate a Voronoi diagram using the open source library Voro++ .
4. Ramp the strength by increasing the percentageapplied to the object to avoid constraints exerting more force on the mesh thantheir limit.
Super Smash Pro-------------Version: Alpha 1.3Copyrighted: Igor Chiang & Raul Santos 2011

INSTALL-------------1.    Place "Super_Smash_Pro.mel" in maya\2011-x64\prefs\scripts2.    Place the 'maya' folder in the according directory in your my Documents2.5    If "userSetup.mel" already exists, just add the line to your existing one using notepad3.    Open/restart Maya4.    Go to plugin manager5.    Browse for Super_Smash_Pro.mll and load

UNINSTALL-------------1.    remove "source Super_Smash_Pro;" in "userSetup.mel"2.    Delete Super_Smash_Pro.mll and Super_Smash_Pro.mel

USAGE-------------Comannd:Select a mesh and click "Crack It!" under the drop-down menuOption box:-    Max Particle            = maximum number of particle emitted for Voronoi diagram calculation-    max Pieces                = number of pieces you want to get before the particle runs out
-    Preserve Shader            = keep the shader of the surface and sharpen the normal of the interior, SLOW!
-    Magnitude                = spread of the particle around the point/line of impact
-    Uniform                    = uniform shatter-    Point                    = point impact shatter-    Line                    = line impact shatter-    Plane                    = plane impact shatter-    Surface                    = surface impact shatter, select a mesh and click "set"-    Volume                    = volume impact shatter, select a mesh and click "set"
-    Point                    = point used in "Point," "Line," and "Plane"-    Line/Normal Vector        = vector used in "line" and "plane"-    "Surface/Volume" & Set    = mesh for "Surface" and "Volume"
-    Division                = uniform grid of voronoi container-    Particle per Division    = number of particles per gridNOTE: do not change the advance section if you don't know what you are doing
Node:Select a mesh and click "Shatter It!"-    Start                    = start time of simulation-    Time                    = connected to current time, not editable
-    Particle                = maximum number of particle emitted for Voronoi diagram calculation-    Pieces                    = number of pieces you want to get before the particle runs out
-    Magnitude                = spread of the particle around the point/line of impact
-    Type dropdown menu:-        Uniform                = uniform shatter-        Point                = point impact shatter-        Line                = line impact shatter-        Plane                = plane impact shatter-        Surface                = surface impact shatter, select a mesh and click "set"-        Volume                = volume impact shatter, select a mesh and click "set"
-    Point                    = point used in "Point," "line," and "plane"-    Vector                    = vector used in "Line" and "Plane"-    Collider                = mesh for "Surface" and "Volume"
-    Division                = uniform grid of voronoi container-    Division N                = number of particles per grid
-    Physics                    = Enable Physics-    Bond                    = Change bonding strength-    Ramp                    = number of ramps used for force ramping
Dance Dance Determination

Tools Used:
MATLAB, Autodesk Maya, MentalRay, Amazon Turks.

Steps:
1. Coded a
machine learning algorithm in MATLAB to train on samples with labeled dancing styles based on human perception.
2. Procedurally synthesized twist angle texture using image quilting technique and the model learned based on the training data.
3. Rendered the output dance texture with MentalRay within Maya.

In this paper we introduce new motion capture based animation techniques that can create motions that A) can be controlled to vary along specific perceptual dimensions, and B) can create new animation styles that are significantly better in motion quality then the original source data. We verify this with extensive perceptual user ratings. Usually motion capture based systems produce quality that is almost as good as the source data, but this new goal of exceeding in quality can be achieved by an interplay between crowd-sourced
human ratings (using Amazon Mechanical Turk, MTurk), statistical learning techniques, and massive crowd-sourced re-evaluation of synthesized data to further improve the animation quality. Crowdsourcing is a relative new field, especially in the domain of computer graphics and animation that opens up new opportunities that
did not exist just a few years ago. Using Amazon’s MTurk system we demonstrate this on a large corpus of 172 female and male Jamaican dancers and the use of thousands of independent crowdsourced ratings.
Ray-tracer

Tools Used:
Visual Studio(C++).

Coded a
C++ ray-tracer with the following functionalities:
- Sphere and triangular mesh support
- Texture mapping
- Phong shading
- Soft shadow
- Reflection, refraction
- Special partitioning
- Photon mapping
- Translucence
- Multi-threading
Smoke Simulator

Tools Used:
Visual Studio(C++).

Coded a C++ smoke simulator with the following functionalities:
- Semi-Lagragian fluid grid with velocity, temperature, and density advections
- Poisson Equation of pressure
- Buoyancy force implementation, temperature gradient and mass dependent
- Vorticity confinement
- Preconditions implementation for linear equations
- Cubic interpolation
- 4th order Runge0Kutta integration scheme
- Color change based on temperature
Hide and Attack!

Tools Used:
Unity Engine, Adobe Photoshop, FRAPS

Steps:
1. Coded A* path-finding algorithm for the agents to find the nearest hiding spots away from the player
2. Coded a finite state machine for the agents to be interactive with the player:
    - Is in attack mode only if the agent can see the player, but the agent is not in front of the player in the player's perspective
    - Is not hidden only if the player can see the agent, and the agent is in front fo the player in the player's perspective
    - Is busted only if there is no where to hide
    - If the hidden spot is in the range of sight or the number of barrels changed
        - Update hiding spot
    - If the seeking position changed
        - Use A* path planner to find the target

    - If the agent is in attack mode
        - If the player is in range and in range of sight
            - Kick the player then run away for a short amount of time before next attempt
        - Else If the agent is not running into the player
            - Sneak up to the player
        - Else If the agent is jamming into the player, keep a safe distance
    - Else If the agent is hidden
        - avoid obstacles while wandering around after 5 seconds of hiding time
    - Else If the agent is busted
        - Flee away from the player
    - Else If there is a hiding spot available
        - Seek for it
    - Else Continue seeking to the hiding spot

    - If the in the range of sight of the player
        - Keep a safety distance away from the player
    - Else
        - Chase the player
3. Added audio for each motion and background music
Project Tactica

Tools Used:
Unreal Engine UDK, Autodesk Maya, Autodesk Mudbox, Adobe Photoshop, WACOM Intuos3 tablet

Steps:
1. Designed and illustrated concept digitally via Photoshop

2. Modeled low-polygon base model in Maya
3. Ported model into Mudbox
4. Sculpted and painted the mesh in Mudbox
5. Extracted ambient occlusion, diffuse, specular, and normal maps from the high-polygon model
6. Imported the extracted maps into low-polygon mesh in Maya

The goal of the project is to develop a mentally and visually stimulating game on the PC platform.
My Basement

Tools Used:
Autodesk Maya, MentalRay

Steps:
1. Measured the exact dimension of my basement
2. Redesigned my basement in Maya
2. Rendered the result with MentalRay within Maya. Causic photon, custom shaders, and depth of field were used to render the scene.
Cover Images

Tools Used:
Nano-fabrication labortory, Autodesk Maya, Adobe Photoshop

Steps:
1. Conducted state-of-the-art research in the field of nanotechnology

2. Designed cover-images based on researches in Maya
3. Rendered the scene with MentalRay within Maya. Causic photon, custom shaders, and depth of field were used to render the scene
4. Touched up the rendered images in Photoshop
5. Co-authored more than 5 papers with high impact in nanotechnology and microfluidics
Digital painting

Tools Used:
Adobe Photoshop, WACOM Intuoos3 tablet, Autodesk Maya(in a few cases)

Steps:
1. sketched out posture of the character on either digital or traditional medium. In case of matte-painting,
3D model created in Maya was used.
2. Designed the costume of the character on the same medium
2.5 Scanned traditional medium into computer and loaded up the file via photoshop
3. Airbrushed colors, shading, and lighting in Photoshop
Digital Eye Painting

Tools Used:
Adobe Photoshop, WACOM Intuoos3 tablet, CamStudio

Steps:
1. Recorded the entire painting process in Photoshop via CamStudio