top of page

​Featured Artist:  Heribert Raab, Germany

My name is Heribert Raab and I am originally from Germany. I am a certified electrician, but for some mysterious reason I moved into VFX later on. I started computer graphics as a young kid in 1992, playing with an Amiga 500. In 2000 I started my career in VFX as an Animator and 3D Artist. After this I did modeling, lighting, rendering and compositing jobs. Over the last couple of years, I’ve become an effects technical director. I’ve worked for most major animation / VFX studios worldwide, such as Weta Digital, Dreamworks Animation, Digital Domain, Animal Logic, Sony Imageworks. Currently, I am working at Image Engine as Effects TD. In my free time, besides being a dad, I enjoy doing lots of different art.

 

I like any kind of complexity, that’s why I like doing effects. Huge particles or fluids sims are favorite problems to solve - I strive to make them faster, easier and more controllable. This brought me to fractals with their complexity and high level of detail.

 

I had played around with typical fractal methods such as mandelbulb for a long time. Mandelbulb is a three-dimensional fractal, which is based on the 2D mandelbrot set. The Mandelbulb set creates images based on a math equation in countless loops. Because of the huge amount of data generated, the method calculates pixels directly.

 

Eventually, I got tired of the limitations and lack of control inherent to typical fractal methods. You basically type in random numbers and hope for the best and continue until you get satisfying shapes. I lacked control over the end results, I couldn’t take away part of a shape, deform it, sculpt it or replace it with something different. Because of the huge amount of data created, it was almost impossible to visualize a fast preview or get a usable 3d Object. That’s why started to break down complex shapes into simple geometry and to re-create them to my liking with proper 3d Tools.    

 

I need a lot of geometry to fill the whole 3d space with enough objects to create readable patterns and structures. It can be difficult to get nice looking results. That‘s why I start on a 2d plane. I force all Y-Positions with a point wrangle to zero. ( @P.y=0; ).  This way I get all splines and points dense enough to form nice shapes. Instead of hundreds of millions of points I just need 200k to 1 million points. Result: almost real time feedback, and I can focus on experimenting with shapes, expressions etc. to create some nice looking stuff. One important aspect are Ramps and AOV’s . With these “Lowres” 2d Fractals, I can add and tweak ramps in Point VOP live without long calculation times. I can use dozens of ramps, based length, density, distance, sin / cos functions. Sometimes, I render all ramps on different AOV renderpasses and play with them in compositing to create nice 2D shading. 

 

As I advanced to more and more complex fractals, I got lost with the different renderpasses; that’s when I started to work as much as possible with pointvop. Creating out of the box complete rendering is more efficient than tweaking comps for hours.  

 

This video shows a 2d fractal; it contains dozens of deformed grids. Each grid is deformed on the XZ axis with simple soft-transforms nodes. The parameters of the transform nodes are keyframed to create the animation.

 

In the following example I’ve fused points on regular patterns from a grid. And then I subdivided a polygon in different selected patterns. This can be done easily with a regular group node in Houdini. 

Fusion points on regular patterns from a grid.

 

After a couple dozen 2D fractals, I started to move into the 3D Space. First, I started to mesh out the spline as wireframes/tubes. After much experimentation I decided to switch to physical rendering. To keep maximum control over shapes and structures I followed the same process as with 2d-grid fractals, namely building everything from scratch. This way I could use rendering tricks (instancing etc.) to keep the data amount under control. If I keep using Tubes / Splines as raw material for the fractals I can render Splines with thickness directly with Mantra or Arnold, which saves me a lot of meshing process times.

 

This video shows splines with random rotation and shifting pivot point on each spline. The final splines are meshed into polygon tubes.

 

Building fractals from scratch is pretty simple: Create a simple mesh, copy it multiple times with offset in scale, translation or rotation. Take the result, copy with a different offset and so on. The following video shows the process:

The following image is using a similar method, but has a simpler structure than the one in the video above:

Fractals from scratch

Once I have a nice complex fractals shape, I go on and scatter it around the scene as a render instance. This way I can render millions or billions of polygons with just 32GB Ram on my workstation. Instead of just scattering it multiple times on a plane, here I’ve mirrored the geometry before scattering to get seamless connection between the copies. This follows the same principle as creating seamless textures in photoshop:

Same principle as creating seamless textures in photoshop

The next image shows the same technique as the previous one - scattering with mirroring of the geometry:

Scattering with mirroring of the geometry

I find it much easier to work with Houdini than with Mandelbulb style fractals. I have less data to handle and I have a lightweight geo presentation through the Houdini viewport.

 

Here I have used a simple tube and copied it 100 times resulting in a series of polygon stripes. After that I added a pointvop with a transform-matrix node, then multiplied by the cos function and divided by 5 random point positions for each axis:

Using a simple tube and copying it 100 times resulting in a series of polygon stripes.

 

The following screen shot shows a random variation of the image above. The setup is done by a handful of Houdini nodes.

Random variation of the image above.

 

Here is a platonic primitive “tretrahedron” with connected polygon lines connecting opposite sides. Everything wireframes B with random thickness, is then converted into VDB and meshed out as polygons:

Platonic primitive “tretrahedron” with connected polygon lines connecting opposite sides.

 

The starting geometry here was a random deformed wireframe cube, which was then copied, rotated and scaled with random expressions:

Deformed wireframe cube

 

I will continue my fractal journey by gradually increasing the complexity of my creations. Eventually I’d like to make a camera flight through endless fractal structures. To achieve this goal I have to reduce the amount of data and I need work out a smart Level-of-Detail system for my geometry to display and render it in a efficient way.

 

To follow my journey through the world of fractals, you can find me on Instagram, Twitter or have look at my homepage.

 

Useful links :

Mandelbulber - Mandelbulb Software

An Introduction to Fractals by Paul Bourke

2D and 3D Fractals in 3D packages by Duncan Brinsmead

Playing with chaos by Keith Peters

 
Heribert Raab 2017

 

By: Patricia Cornet
GridMarkets marketing

bottom of page