Return of The Noise

Ok, @zranger1 , I searched for PRNG and xorshift and both yielded hints of multiple things you’ve written (rule30, among others) but no links to them. Oh wait, found the rule30… But yeah, we need a PRNG library thread…

Given that cellnoise is basically a PRNG, we should replace that non16.16 stuff with one of those…
Where’s the code I can crib from?

added later, moved from the PRNG thread, as it’s more appropriate here:

So interestingly, playing with graphtoy, which similar to Tixy, allows you to use t as a time changing variable, and thus, most movement is t based. So using noise(t), or voronoi(t), or even sin(t), all of it is directly tied to the same variable. So that means if you call noise(t) in two places, they get the same value back. This is great if you want them synchronizing… But if you don’t, and you wish bits A and B to both be random noisy/moving but NOT obviously synced, you attempt to do tricks like use some odd variation of t (like 1/t), such that the eye doesn’t see the true hidden variable. (This has deep quantum thoughts about the true nature of free will… But besides that…)

So ideally you could have multiple random sources and call the same noise() using t but invoking noise source (PNRG) #2, (so noise(t, 2) which will give you a different result from source #1, even though they both use t. Different PRNGs yields (likely) different results even from same seed.

So worth doing… maybe worth doing 3+ times…

Added after for clarity for those reading later:

You need a PRNG (where you give it a seed x, and it returns the same result each time, consistent but change x slightly and you’ll get a different random number) as a noise source, so it can generate a smooth curve between two given values. So noise(x) yields some random set of values but smoothly between values of x. Random() yields just a range of values, so not smooth. Voronoi is more discrete, think of it as the triangle version of noise (if noise is considered as a wave)

So if I do two noise(x) waves, even though it’s going to randomly fluctuate, it will fluctuate exactly the same way for any given value of X.
So two noise(x) look identical. So the key is to use different PRNG sources and then noise(x,1) could be very different from noise(x,2).

Without a second PRNG, you end up faking it by doing things like noise(x * 2), or noise(x * 3) etc…
So that your input value of X looks different enough that it won’t match the first.

But if you use t (time) as a noise source (causing wiggles), using t * 2,for example, is changing twice as fast as t… So you can do t * 1.00001 but… that looks very similar to just 1… side by side, they move at the same speed. Having two+ PRNGs would be much cleaner.

Illustration might help here

Afterwards: I’m now beginning to understand that the noise seed is more a hash than a PRNG. It’s a spectrum, really… It doesn’t have to be as complex and “random” as a PRNG does.