logoalt Hacker News

Perlin's Noise Algorithm (2023)

52 pointsby ibobevtoday at 2:59 PM12 commentsview on HN

Comments

emil-lptoday at 8:44 PM

I use Perlin noise in all games I make, and in my research. It's marvellous!

+1 to Perlin.

jlhawntoday at 4:51 PM

y'know what's cooler than Perlin Noise? Simplex Noise [1]! This is what is hinted at at the end of this article. Also invented by the same person to address issues in the original Perlin Noise function. It's not as popularly known because it was restricted by patent issues for so long but as of 2022 the patent has expired!

1. https://en.wikipedia.org/wiki/Simplex_noise

show 2 replies
erhuvetoday at 8:14 PM

i had the privilege of taking perlin's computer graphics course at nyu- amazing person. fun fact, his conference submissions are easily spottable because he's the only person in the world who doesn't refer to it as "Perlin Noise"

RMarcustoday at 6:36 PM

You can also interpret each value in Perlin noise as a vector in a flow field to make some interesting and smooth animations reminiscent of older MacOS desktop wallpapers: https://rmarcus.info/blog/2018/03/04/perlin-noise.html

vintagedavetoday at 4:17 PM

I did not know that there were two versions of the algorithm:

> ...the algorithm we discussed here is the original algorithm given by Ken Perlin. But after a few years of giving this algorithm, he improved this in some ways, like he changed the smoothing curve, the way gradients are calculated, etc. And that will be the topic of our next article.

...and that next article doesn't exist. But:

* The 2002 paper improving it (this was likely after I first encountered Perlin noise, so I would have implemented v1!) https://mrl.cs.nyu.edu/~perlin/paper445.pdf

* A really good article explaining the v2 algorithm: https://adrianb.io/2014/08/09/perlinnoise.html

HelloUsernametoday at 7:43 PM

(2023)

badpuntoday at 5:15 PM

I've implemented 3D perlin noise recently and was surprised that the lighting was always off on the created model around the grid lattice (the model itself was continuous there, just the light was not correct). After a delightful couple of days debugging it, I finally learned that Perlin noise's derivative is not continuous around grid lattice, which makes normals not continous there (as normals are orthogonal to a tangent, and tangent is based on derivative). It's possible to improve it by cleverly changing Perlin's wavelet function, which makes the noise C(1) (derivative is continuous, second derivative is not) - this makes the visual artifacts smaller, but they don't go away.

show 1 reply
yogthostoday at 7:03 PM

where it gets really fun is when you add a temporal dimension to the noise :) https://yogthos.net/posts/2026-06-17-perlin-flow.html