Randomness 🎲
Hello friends!
I hope you're enjoying this Serial Maker newsletter! You can now join me and other Serial Makers on Discord. Check out the past editions if you missed them. And if you know someone who might benefit from this newsletter, please forward this email to a friend 😀
Adding an element of randomness can be crucial for some products. And it can add some interest to others.
This issue is all about randomness 🎲
TL;DR
Use randomness to keep things interesting
Adjust noise thresholds to find the right amount of randomness
Using random configurations can speed up animation development time
Play with seeds to control the random number output
Gamification
In a game, an enemy who always moves in the exact same way is predictable and boring. This seems like an obvious use of randomness. Add some randomness, keep the player guessing, and things get interesting.
But this can be extended to other subtle aspects as well. Add some noise (a term for slightly altering from a single value) to the player's targeting device, and you can build in a leveling up feature. With more noise at lower levels, the player is not very accurate. Less noise at higher levels provides greater accuracy.
Procedural Design
Let's say you want to add a textured background to your design. You can certainly repeat a pattern at regular intervals. But if you add some randomness to the pattern elements, you can produce a more interesting, procedural, and ever-changing look.
Check out how Joshua Davis uses randomness to build procedural digital artwork.
Animation
I recently animated balloons rising from the bottom of the screen in an app. If you've ever released a bundle of balloons and watched them float up to the sky, they don't all move at the same speed or in the same direction. Randomness helps to make this more realistic.
I set up thresholds, and randomized the following balloon properties:
Initial horizontal position
Initial balloon size
Initial balloon rotation
Initial balloon color
Delay before starting to animate
Overall duration until the balloon arrives at its destination
Destination horizontal position
Manually adjusting these properties across 60 balloons would be incredibly time-consuming. By randomizing this in a loop, I was able to quickly produce a realistic balloon animation.
Seeding
Another aspect of random number generation is seeding. In computers, random numbers aren't ever actually truly random. There needs to be a seed. Typically, the computer's clock time is used as a seed. This is effective because the seed can be different down to the millisecond. So when you generate a random number now, and then again a second later, there are two different seeds, and therefore two different random numbers.
Seeds can also be used to generate the same "random" result every time. This is how Icotar works. A hash (a sequence of characters) is used as a seed. So the same hash generates the same icon every time. It's random, but it's also predictable. My name is always a blue flower: https://icotar.com/avatar/craig
Experiment
The next time you're designing a product, play around with some randomness. Tweak the noise thresholds, and see what comes out of it. You may stumble upon a happy accident.
Keep making, and thanks for reading! 🙌
Hit reply to tell me what you're making. I'm looking for anyone interested in talking about their own side-projects and maker journey, so speak up if you'd like to appear in Serial Maker. I'd also love to know what you thought of this issue, and what you want to hear about in the future. And don't forget to continue the conversation on Discord!
Until next week,
Craig


