Randomization methods

A common use-case for using a procedural design system like Paragraphic is when you want to add some form of randomization to repeated graphical elements. For example to make a pattern more interesting or organic by making it a little uneven. Or if you want to make some generative design with randomized components. Doing this manually is possible, but very time consuming, and it’s hard to manually make even random distributions, or tweak the amount.

For this reason there are many methods of adding randomization in Paragraphic, available in more or less any stage of the design process. In this post we’ll go through four different methods you can use to get started.

The methods are quickly presented in this video, or you can read about them more in depth below.

Method 1 – The Randomize Node

The Group: Randomize node is the first and perhaps most straight forward method to add randomization to a group of elements. You can add it to any layer with a number of elements, like this group of repeated lines, and it will allow you to apply random changes to the individual elements in the group.

In the node parameters you can set what type of change to randomize, like rotating, scaling or changing the color, and set the random of randomization. There is also a Random seed parameter that you can change to get a new random distribution of changes. As long as it’s the same, the same random values will be generated, but if it changes it will result in different random values.

Like in most other Change and Group nodes the Randomize node also has “Apply to”-settings at the top, which lets you change which elements in the group the effect will be applied to. The default is to apply it to all elements, but you can also change it to just apply the randomization to for example every other element, leaving the rest unchanged. There is even a Random option to have the node apply the change to a random selection of the elements, which can be used as randomization method in itself.

Method 2 – Value list random value

The second method we’ll cover is to use a value list, and pick a value at random from the values in the list to use for our randomization. In the example above this is done using the Group : Apply value list, which allows you to easily apply a change to individual elements in a group using values from a comma-separated list of values. By default this node will use the values in the list in order, which can be used to create repeating patterns. But there is also an option to pick a value from the list at random, allowing you to use it for randomization where you have full control of what possible values the randomization will use.

Method 3 – Random value input node

In addition to using Group nodes that have built in options to randomize elements, like the previous two methods, you can also add randomization to any change that is applied to individual elements using input nodes. For example the simple Transform node above has no built in randomization to the Angle property. However, we can add an input node that provides a new input value for the Angle property, and this way have it generate a random Angle value for each element. To do this just right click the Angle parameter or click the input socket to the left of the parameter and select Add input node: Random value.

This will add a new input node panel that is connected to the Angle parameter and controls its value.

Using this method we can now control the value range and seed for the random value that will be used for the Angle in the Transform node. In this panel we can also set an increment value, that restricts the random values to be set with these increments within the value range.

This allows you to add randomization to any property of any node as long as it’s applied somewhere in a sequence that generates multiple repetitions. Along with the Random value input node you could also similarly use the Value from list input node to set up a list of values to pick from at random, similar to Method 2 above.

Method 4 – Apply function noise

The first three methods we’ve covered allow you to add randomization using even distributed random values. However, sometimes you want a more organic smooth gradual randomization. For these cases you can use the Noise function available via the Apply function node Noise function.

The Apply function node is a flexible node that allows you to apply many different sort of gradual changes on groups of elements by specifying a function for how these will change over the group. One of the functions you can pick is Noise, which allows you to apply a noise field that works like a more smooth gradual randomization. By changing the function periods setting you can adjust the noise density, and like in the previous methods you can set what the effect is applied to and change the random seed to get a new random distribution.

Conclusions and combinations

We’ve now gone through four different methods for applying randomization in isolation. But you can also combine these, as the node system is fully modular. For example you could add a low level randomization to all elements and then apply a greater magnitude randomization to some selected element using a second Randomize node. Or combine first rotating shapes at random 90° angles and then add a second +/- 2° rotation.

Now, go try it out for yourself!

Paragraphic is free to download and try in trial mode.

Then buy a single purchase user license if you like it to unlock the full version and support continued development.