Demo Reel


HD version available on Vimeo

Breakdown

Eye Nebula

  • Pre-visualization done in Houdini. Scene composition and camera movement are determined by using object primitives as placeholders. Object positions are written out to .geo file
  • Simulation and rendering done with volumetric software I have written in C++. Clouds, stored in sparse grids, are generated by instantiating a combination of pyroclastic spheres, stamped noise, and volumetric wisps on positions read in from the .geo file. Several layers of Semi-Lagrangian advection are applied to give finer detail.
  • Lighting is done with multiple deep shadow maps.
  • Compositing done in Nuke.

Wisps

  • Raw renders of wisps generated with different parameters. Written in C++. Emission color is a function of voxel density. ImageMagick is used to write parameters in the top left corner so they can be replicated later.

Hexagon Islands

  • A hexagonal grid with multiple layers of animated noise. Color is determined by height. Depth of field applied in Nuke by rendering out z-depth from Houdini.

Spawning Portal

  • Several particle simulations in Houdini composited in Nuke.
  • POP axis force is used to create swirling motion.
  • Hex Grid is projected onto a round surface to bulge outward, with its visibility controlled by an expanding and contracting sphere.

Missile Explosion

  • Pyro simulation in Houdini
  • Rocket trail created by instantiating multiple pyro containers along the curve of the missile's trajectory
  • Explosion created in a second simulation

N-Bodies Gravity Simulation

  • Art directable simulation of the n-body problem run with OpenGL and accelerated in OpenCL.
  • 9216 total particles.
  • To reduce calculations, every frame the scene is divided into a grid, mass is accumulated in every voxel, and a center of gravity calculated. Force is then calculated with these values to determine acceleration and velocity.
  • Runge-Kutta integration is required to maintain stabile orbits.

Craving Crustacean

  • Lead rigger, animator, and visual developer for this project
  • The character was designed and animated to look powerless and pathetic with his tiny hind shell, implying his sadness and desire for a larger shell.
  • The small shell allowed him to emote like a dog, so he was animated as very flighty and excited.