MARDINI Octopus Setup

MARDINI Octopus Setup

by tomminor 0 Comments

This was a good excuse to get into animated softbody stuff πŸ˜€

Octopus Setup

Rigging the octopus

I made a very simple skeleton using kinefx, most of the detail is naturally in octo’s tentacles. Bone Capture Biharmonic is used to generate the skinning, nothing too crazy.

Next up we need some pseudo animation of wiggling tentacles, this doesn’t need to be perfect since it’s just influencing the vellum constraints at sim time.

I apply a ripple around the axis of each tentacle, originally it wasn’t so extreme but when I started testing sims I had to push it to get the look I wanted. The ‘corkscrew’ effect helps our octopus navigate along the floor in the sim, originally I omitted the Y axis ripple but it didn’t look as nice.

Simulating the softbody

The core of the animated softbody is to calculate a delta between the rest position and the animated reference geo.

For each instance of the octo gang we apply this delta as linearly move along the ground, this is the reference animated geometry for the vellum sim.

Once the setup is done, all we need to do is setup vellum source to point at the animated reference geo.

After the sim we use a point deform *per octopus*, (this can be done in a compiled for loop for better scalability). Note that as we iterate over each octopus, we also have to isolate the corresponding rest tetra geo / rest geo.


After all that (+ some extra magic which you can see in the scene file), we get a happy octo family!

Scene File

Download the scene file from my patreon:


MARDINI Magma-rtini Setup

MARDINI Magma-rtini Setup

by tomminor 0 Comments

Lava sims make life happier

Breaking down the setup

Lava Sim

The emitter is just an angry blob which moves back and forth, the real magic is in the viscous fluid setup.

Turn viscosity and temperature on, these will be needed later (but don’t worry about setting a specific default values, as it will be overriden anyway)

The default temperature will be initialized in/obj/lava_emitter, since it’s a normalised value I just set it to 1 so it can cool towards 0 in the sim.

To achieve a cooling effect I use the gas temperature update node. Note that I have “Map Temperature to Viscosity” enabled, this is where the actual viscosity value range is set and gives the neat ‘hardening’ effect as the fluid cools.

After the sim I just surface it like any fluid, although I do prepare an ’emitcolor’ attribute for the shader (I couldn’t get the look I wanted with a PxrBlackbody shader for reasons I can’t remember, so I hacked it)

Steam Sim

A magma sim wouldn’t feel complete without some steam to show off how hot it is. This was really easy to do!

For convenience I reused the emitcolor from the previous stage, but practically I just blast away any surface geometry that isn’t hot enough, scatter points on it and feed it into a fluid source.

I probably could have improved this so it isn’t emitted along the whole stream of magma, but I only had a day

This post is long enough, so I’ll let you dig into the cocktail umbrella creation yourself πŸ™‚

Scene File

Download the scene file from my patreon:


MARDINI Bouncy Martini Glass Setup

MARDINI Bouncy Martini Glass Setup

by tomminor 0 Comments

Subverting expectations 😎

Wobbly Setup

The setup of the martini sim geometry constraints is just a Vellum Configure Strut Softbody:

To preserve the volume I simulated a much thicker proxy geometry, then used point deform to apply it ot the original martini glass. Using the actual martini glass geo failed because it would just topple over

Olive Setup

It all starts with a single olive geometry:

But then to add a bit of realism, for every reference point I create a unique olive by deforming it with noise

It’s a really subtle effect but it adds a nice bit of randomness to the sim and look

This is of course combined with attribrandomize nodes which vary the orient and pscale attributes, adding even more variety.

Finally, the olives are simulated as RBD objects using the cached bouncy martini glass as a collision object

Scene File

Download the scene file from my patreon:


MARDINI Frog Agent Setup

MARDINI Frog Agent Setup

by tomminor 0 Comments

This setup is a cute example of building your own custom Packed Agents from scratch!

Agent Setup

The agent is created in /obj/frog_agent directly from /obj/frog_rig, hopefully most of this is self explanatory (or covered in the docs):

I also override the physics mesh by setting up a custom agent collision layer which is a tad more accurate than the default shrinkwrap method.

Crowd Setup

The stream is split into two here – simulated ‘fallen’ frogs and animated jumping frogs.

Simulated Frogs

To quickly place the fallen over frogs I use the multisolver approach of combining a crowd solver and an rbd solver, I didn’t bother animating these guys at all but it might have been a nice detail to add

Clip Based Frogs

For the jumping frogs I’m lucky that the frog only has a single jump animation, I can get away with relying entirely on crowdsource to play the clip for me (with a random offset):

SOP based crowd workflows often provide the most control and I use them whenever I can! For more complex use cases you should dive into the crowd vex functions and start building your own crowd tools directly in SOPs:

Scene File

Download the scene file from my patreon:


MARDINI Trippy Wave Setup

MARDINI Trippy Wave Setup

by tomminor 0 Comments

This one is nice and quick!

For the wave motion geo I just use a standard ocean spectrum setup:

Then I use attribinterpolate to stick points to the surface

Generate a simple velocity field (visualised as points here)

Feed everything into VDB Advect Points and yay, cool waves! If the velocity field is animated then they’ll animate too, which is how the final effect works

Scene File

Download the scene file from my patreon:


MARDINI Buzz Honey Setup

MARDINI Buzz Honey Setup

by tomminor 0 Comments

I’ve finally found some time to start uploading my Mardini stuff, but I’ll be starting with my favourite entries first πŸ™‚

Let’s go through how I made this:

Geometry Creation

I wanted an excuse to use the SideFX logo somewhere, with the right effect it stands out more than the rubber toy or pighead! Since this is a honeycomb hive, we naturally get the orange/yellow colour scheme too.

What’s the fastest way to get the SideFX logo as geometry?

  • Make a dense grid
  • Use “Attribute from map” to transfer $HIP/Houdini3D_icon.png to the grid points
  • Blast @Cd.x<1 or something equally lazy πŸ™‚

Our geometry needs a remesh before the next step, it looks *better* if the surface isn’t perfect.

For the honeycomb generation I used Arvid’s fantastic tutorial as a base, I didn’t have to tweak much at all:

The final geometry (pretty dense):

Honey Simulation

Although we don’t see it because it’s a static image, I did try to make the honey as realistic as possible. A critical ‘honey feature’ is the liquid rope-coil effect, seen below:

We can save a lot of effort by simming at a low res, since honey is meant to be incredibly viscous and I don’t need droplets to get the fancy coiling.

I ended up using:

  • Density of 12000
  • Viscosity of 10000
  • No reseeding
  • Slip On Collision Enabled

The effect isn’t actually that obvious in the final result since I dribbled the honey on the edge, but I did keep it in mind for initial tests.

Setting up the materials in Renderman

Most of my MARDINI entries use prman, which may be troublesome if you want to follow the scene as is with a non-commercial license, sorry πŸ˜€

This all happens in the /stage context, the actual stage is quite simply (grid, honeycomb geometry, honey sim) so I’m going to focus on the materials.

Honeycomb Shader

Started with a rough glass settings on the shader, using the hexcenter attributes to drive the refraction colour. Adding this faked a deeper honeycomb feel more than using a uniform refraction colour.

This gives us a juicy effect, but it doesn’t show the detail very well. Turning on the diffuse component works, but I only wanted the honey comb edges to be accentuated. Very simple to do, I just use the hex centers as a mask:

Now we get the juicy glass feel, but a fake ‘thickness’ on the edges:

Dripping Honey Shader

Basically the same rough glass shader setup I used as the base of the honeycomb, but applied to the dripping honey geometry

Scene File

Download the scene file from my patreon:


SideFX MARDINI 2021 (Iron Heart / Daily Winner)

SideFX MARDINI 2021 (Iron Heart / Daily Winner)

by tomminor 0 Comments

A few weeks ago I finished the SideFX Mardini Challenge, a month long marathon to submit a new Houdini artifact daily. Each submission was developed and rendered in less than a day – the same as last year’s HOULY challenge.

You can findΒ  last year’s HOULY submissions here!

Submission Contact Sheet

Since I submitted something on time (before midnight EST) I qualify as an iron heart winner, woo!

Here’s a contact sheet showcasing my submissions:

Daily Winner for Day 28 – Earth

I was surprised to be the 3rd place entry for Earth, shown below:

Technical Breakdowns

I’ve made breakdowns for the most popular/interesting setups,

The vast majority of my submissions were rendered with Renderman in Solaris, so here’s the obligatory watermark!

GlobalGameJam “Gnome Comb”

GlobalGameJam “Gnome Comb”

by tomminor 0 Comments

Solo submission to GlobalGameJam 2021, developed in a day. I needed an Unreal Engine refresher and hunting gnomes seemed like a fun idea πŸ™‚

The aim of the game is to find and break as many gnomes as possible until the time limit runs out, imagine the gun is a potato gun and you’re all set!

You can find the GGJ page for it here, which contains source code and download links.

For now they’re also mirrored on my dropbox, but might eventually uploaded these to the site:

Executable Download:

Source Download:

A gameplay demo

Karma Droste Lens Shader

Karma Droste Lens Shader

by tomminor 0 Comments

More detailed blog post here (still a WIP effect)

A fun test for the Think Procedural January 2021 challenge “Fractals”. The actual fractal is just a raymarched mandelbulb projected as Houdini geometry, if I had more time this would be something more exotic than just a mandelbulb but I still think it looks cool πŸ™‚

The novel thing here is a custom Karma lens shader that gave me the excuse to delve into the SideFX physical lens and modify it a bit.

Here’s an earlier test that makes the effect more obvious