Note the algorithm is patented(!) per Wikipedia: <a href="https://en.wikipedia.org/wiki/Simplex_noise#Legal_status" rel="nofollow">https://en.wikipedia.org/wiki/Simplex_noise#Legal_status</a><p>There are six patent claims that I have no interest in reading. Apparently there is also an OpenSimplex noise for circumventing the patent, but it only goes up to 4D [simplex usefully goes up to 5D].
This is a very important concept to understand in visual design too. Sometimes perfect alignment, symmetry, etc... can be the wrong way to do something. Hardly anything in nature is 100% symmetrical. These are sometimes things that go unnoticed by the conscious mind but your subconcious will pick up on it.
Really nice article and demos, very informative.<p>Maybe unsurprisingly, noise is a really important aspect of audio and music as well. A lot of synthesizers have a parameter for adding white or pink noise to sounds. What's interesting is in a lot of music, my ears would never pick out the noise without actively listening very closely, but if you take the noise away the music sounds way more plain and empty in a very subtle way.
Great article, I love all the picture and interactive demos. The flow visualizations are very cool too. I do feel like the foundations could be tidied up a little though.<p>> What we need is a smoother, more organic randomness. That is what the noise function generates<p>Noise is really interpolated random numbers, and you can interpolate spatially and/or temporally. So noise definitely is smoother than a random number, but not exactly more organic.<p>> There are two flavours of noise—Perlin and Simplex.<p>There are lots more than two kinds of noise, just like there are a lot of different ways to interpolate data. This sentence should be corrected if possible.<p>> Vector fields are cool, but flow fields are an even more exciting visualization.<p>I don’t think this is standard terminology, flow field and vector field mean the same thing to me. If you google those two terms, you find images of what you’re calling vector fields for both, and also articles that say explicitly that they mean the same thing.<p>I usually think of the advected lines that are referred to as “flow” here called “streamlines”, or a “streamline visualization”.<p>BTW, the flow visualization rabbit hole is deep. The advection method in the article is a Newton integration, and there are many other ways push the particles around a vector field - and sometimes it really matters! It’s fun to figure out how to draw flow streamlines if the field is chaotic or divergent. Even more interesting & difficult is to compute and visualize the boundary (“separatrix”) between sections of the field that have different behavior.
This is really cool and super informative! I used Perlin noise in a side project of mine a couple months ago to make cool textured planets, which you might enjoy checking out <a href="https://vinaybhaip.com/blog/2021/01/26/perlin-planets" rel="nofollow">https://vinaybhaip.com/blog/2021/01/26/perlin-planets</a>
> There are two flavours of noise—Perlin and Simplex.<p>Value noise? Worley? There's a ton of algorithms, not just Perlin's. I like Pixar's Wavelet more than the patent-free Simplex implementations, which are all kinda disappointing knockoffs.<p>Value noise is comically easy to implement, and comes in handy in a pinch. Usually loads of artifacts. Perlin noise is also easy but a bit more intricate (my first attempt at a fixed-point implementation got a sign wrong).<p>Notably I think Minecraft had a buggy implementation of multidimensional noise for a long long time, visible along chunk boundaries in the form of very sharp edges/transitions.
For some reason I thought this would randomly generate a test-drive suite that you'll to pass by creatively implementing whatever makes the random tests pass.