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.