Procedural systems

Trigonometry, functions, graphs, linear algebra, cross products, matrices, quaternions, programming, loops... Still there? All of the topics mentioned are crucial when producing tools for complex animation systems.


Fine detailed animations ar crucial to produce high quality images. While details add to overall realism they can be quite hard to manage. The goal of these systems is to introduce expandable design systems with animation ready properties.


To produce these systems I had to combine concepts from fields such as generative design, parametric architecture, computer science and animation. While all systems have a specific function, each one of them is based on a procedural approach to maintain scalability for scenes of any size.



A classic greeble tool to add infinite amount of detail to any geometry. The procedure is to take any polygon primitive, subdivide it and extrude the new primitives.

For added complexity different heights, orientations and skew factors are added to each primitive.


The box of random walk

While the vector random walk is a popular exercise, advancing it to geometry level seemed as an even better challenge.

To start walking the box follows a few rules, from the current point it chooses one of four directions. For the box to roll a matrix rotation around the edge in the chosen direction is performed. After the rotation is done, the box chooses a new direction, thus introducing an endless animation.


Noise time offset

Animations with organic flow are always satisfying to observe. The aim was to produce a system that emits noise from a certain point with an echo like effect that travels through the rest of the geometry.

To achieve this effect every spline is an iteration of an original spline. The displacement is achieved by offsetting the noise's time factor with the iteration number of the loop.

A great technique to fake wind effects when physics systems would be too costly.


Matrix lookAt

One of the more advanced systems. The idea was to displace a grid with a wormhole type effect.

With the help of dot and cross products it was possible introduce a more interesting movement than a regular linear movement. The approach was to update every cross's traveling direction with the inverse of the direction where the influence fields center is. This way the grid bends in to a new more complex form.


Geometry traverse

When building a model it's important to keep track of each vertices index number as it gives great flexibility to add detailed effects by traversing through the indices with patterned selections. To achieve the effect of a growing net splines are extruded in one of the traverse patterns.

Selected Works

ContinuaGenerative Design

Chrome SpillGenerative Design


Product TomorrowConcept Art

Flora (WIP)Animation

Spirit of VietnamPhotography

Ice FlashPhotography

Curling LandscapesGenerative Design