Nodevember 2019

I’m taking part in #nodevember, the idea is to do something small with nodes each day, according to prompts given at http://nodevember.io.

I’ll be adding stuff here as I go. Not too clever stuff so I’ll just dump it all into one post.

Nov 1 : LAVA

lava3
Just some simple sim fun

.hip

Nov 2 : CLOUDS

clouccoli.jpg
Lazy, just an lsystem with metaballs 🙂

.hip

Nov 3 : LIGHTNING

lavalightning.jpg
Can’t stay out of volcanoes

.hip

Nov 4 : TORNADO

tornado.jpg
Nested dielectrics are always a bit of a headache

.hip

NOV 5 : SNOW

flake46.png
A snowflake generator

.hip    .mp4

NOV 6 : REPTILE

reptile.jpg
Thinking of how to achieve a flowing scale pattern. The hip is quite meandering 🙂

.hip

Hodgepodge Cellular Automaton

It’s alive!

I was reading an old favourite, “The Computational Beauty of Nature“, and ran into this interesting cellular automaton the author dubbed Hodgepodge. The original source seems to be “A CELLULAR AUTOMATON DESCRIBING THE FORMATION OF SPATIALLY ORDERED STRUCTURES IN CHEMICAL SYSTEMS” from M. GERHARDT and H. SCHUSTER, 1988. It seems to also be known as a “Belousov-Zhabotinsky Reaction

Luckily the book is accompanied with some source code, so this was an easy steal 😉

.hip


2019-07-19 Hodgepodge 3d

This was easy to naively extend to three dimensions, here you go.

2019_07_19_hodgepodge3d

.hip

2d Convex Hull

A 2d convex hull is nothing new, but here we can control the number of vertices.

First we create the hull with Triangulate 2d and Divide, and measure edge lengths. Then we recursively collapse edges by finding the shortest edge and collapsing it into the intersection of the neighboring edges. Repeat until N points remain.

.hip

 

Max velocity volume blending

Velocity volume blending has always had a glaring omission in my opinion. Add mode gets out of hand, Blended Average values are hard to nail down, what I want is to pick the greater velocity from the existing vel and my new source vel. I’m sure most users think that’s what Maximum mode is, but it is not! In fact it picks the larger numeric value for each component – so if you have a volume of {0,0,0} and you try to blend in some {-2,0,-2}, you still end up with a volume of all zeros. This is easy to confirm with the attached scene by bypassing the added switch node.

2017_03_07_ee_maxvel

The attached scene has an additional Field VOP that overrides the default Maximum behaviour with what I think is the more logical operation – the longer velocity vector is picked for each voxel.

.hip