pnoise is a pure-Python, Numpy-based, vectorized port of Processing's noise() function. The p in pnoise stands for Processing, Perlin, Python, "port", and probably other things I haven't though of yet.
I wrote this port before switching to vnoise and, although I'm no longer using it, I figured I would keep it around.
| pnoise | vnoise | |
|---|---|---|
| Algorithm | "classic Perlin noise of 1983" | "Perlin improved noise" |
| License | LGPL v2.1 | MIT |
| Scalar API | ✅ | ✅ |
| Vectorized API | ✅ | ✅ |
| 3D function | ✅ | ✅ |
| 2D function | ❌ (can be derived from 3D but slower) | ✅ |
| 1D function | ❌ (can be derived from 3D but slower) | ✅ |
See a performance comparison here.
pip install pnoise
LGPL 2.1, see LICENSE file.