Building a Spiral Generator in Substance Designer

Rosen Kazlachev, has published an article on his amazing experiment with Substance Designer.

Rosen Kazlachev, has published an article on his amazing experiment with Substance Designer. The artist has built a complex spiral generator that lets him control size, pattern, color and other parameters. 

Here goes the breakdown from the artist:

I started this project a few weeks back during my lunch breaks at work. At first I just wanted to learn a bit  about FX maps. There’s some tutorials out there, but I can’t say it’s enough to get you started. Luckily for us, the good guys at Allegorithmic allow us to dive into their nodes and see how they’re set up- love this! Of course, if you’re delving in there, you want to know some Math. Luckily for us, there’s a lot out there to read from and basic Math could get you to at least creating your own Noise Generator. Honestly, I got hooked on that last Summer when I started learning Houdini. You can apply pretty much the same principles in both SD and Houdini, keeping in mind that its either 2D or 3D.

In that regard, a big shout-out to the guys at Entagma and Anastasia Opara! Amazing tutorials and a great motivation!

Sunflower Substance here:

So, let’s get this breakdown started. Basically, you have a loop that will draw some spiral with N number of points/shapes/. At some point it might resemble the Splatter Circular, but it very clearly isn’t. 

Base Controls

  1. Number – Controls the number of iterations(how many shapes you get). The more you increase this number, the bigger radius you get.
  2. Seed – Just a global seed for all the random functions.
  3. Position Random – offsets the shapes by a random amount. Leads to interesting results in some cases: you could replicate a Cells 1 node to some extent with the correct setup
  4. Radius – Global Radius. rule of thumb: more iterations, smaller Radius and vice versa.
  5. Circle – Maps the shapes to a circle, rather than a spiral
  6. Golden Angle – Sets the angle of rotation to be ~137,5 degrees.
  7. Spiral Pattern – if Golden Angle is set to False you can use this slider to adjust the pattern

Random Colour, Random Scale, Random Offset.

Pattern and Colour

  1. Pattern – this is pretty much the basic stuff, image input and all the shapes you can get from a basic tile generator/shape node
  2. Random Colour- random colours + a control slider if set to True
  3. Blending mode – only added Max and Add
  4. Number Colour – I’ve used this naming in a few places in this node. Number basically means Iteration number. So basically, you can get white to black radiating from the center or invert that.

Size

  1. X Size
  2. Y Size
  3. Scale
  4. Random Size – randomizes X and Y seperately. Slider control if True
  5. Scale Random
  6. Scale Random Seed
  7. Scale by Position – scales the shapes by a Position vector we’ve calculated in the FX map
  8. Scale by Rotation – scales the shapes by an angle we’ve calculated in the FX map
  9. Number Size Control – like the Number Colour function, but for scale

Rotation (Orientation)

Best part of the generator for me
  1. Spiral Rotation – orients the shapes to follow along the spiral
  2. Constant Rotation – a constant rotation angle for all the shapes
  3. Random Rotation
  4. Inward Orient – orients all the shapes facing the center. Results may vary, have a Transform 2D to correctly orient the shape beforehand
  5. Outward Orient – reverses the Inward Orient
  6. Negate – Negates the Inward/Outward Orient (*(-1))
  7. Negate Lerp- blends between the Orient and the Negated Orient
  8. Negate Control – the fun part starts here! Simply put- gives you X number of orientation axis. You could do a lot of crazy stuff with this…like knitting in a spiral/circular pattern.

Did I mention you could knit with that? Just like my grandma used to do it.

negate lerp controls

Rosen Kazlachev, 3D Generalist at BottleshipVFX

The article was originally published on ArtStation

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more