Deep Learning AI Created Artwork

Data set of character art used to train a deep learning neural network structure that learns to turn a matrix of random pixel values into completely new and unique characters
Deep learning powered style transfer technique can also turn simple sketches into full ray-trace rendered images 
Quick explanation of how the GAN system works:
One neural network called a Generator creates images (starting off by creating a grid of random pixel values).
Another network called a Discriminator tries to sort images into real (from the data set) and fake (created by the Generator). The Generator is trained to switch up the way it arranges pixels until the Discriminator mistakenly sorts its images into the 'real' category.
The Discriminator is trained to get better and better at sorting between real and fake images. So in return the Generator has to get better and better at 'counterfeiting' images. Eventually the Generator can piece together pixels into images that really resemble the data set.

Character and Environment Randomizers

General purpose randomizer created with Python in Maya. Modular shapes randomly chosen and snapped to appropriate locators to create unique combinations.
Locators can be easily duplicated and arranged to create randomly generated environments.
System can also generate appealing random characters. 

Procedural Animation Character Controller

- Unity physics based procedural animation, paired with a controllable character.
          - Rag-doll created with Unity Configurable Joints and Rigidbodies 
                     - Rag-doll animated by a manually timed AddForce method.

Virtual Pet Automata with Procedural Animation 

- Virtual pet with procedural animation in Unity
          - Rag-doll (Configurable joint, rigidbody) animated with AddForce/AddTorque Methods
- Movement determined by a simple finite state machine
          - For instance, as the tadpole approaches certain objects, AddTorque method is used                to turn it in another direction
                    - Raycast is used to detect objects before the tadpole fully collides with them
                             - Behavior is decided based on which object layer the Raycast detects