Skip to main content

noiselib - 1.5.0

procedural noise generators for python


Chandler Armstrong
(omnirizon)
noiselib provides noise generators and manipulators. noiselib is modeled after libnoise, the C++ coherent noise library. noise generators are wrapped in 'modules' that manipulate, modify, filter, and combine noise generators. Each module expects and returns noise; thus modules can be stacked to create complex noise output.

Changes

corrected errors:
* gradient hash indices wrapping were hardcoded for a permutation table of size 256; fixed.
* simplex_noise3 function possessed extensive errors; all fixed.
* noiselib.init procedure did not double the size of supplied permutation tables; fixed.

An experimental module named TorusNoise has been added as an example script. The module is not yet implemented in the trunk. TorusNoise is used to create seamlessly tiled noise by sampling the noise from the surface of a torus. The method works, but is very distorted due to projecting the torus surface onto a 2d plane. I am researching projection methods that modify the nature of the distortion so that the projected 3d noise better approximates typical 2d noise.

Run the script "tiled.py" to see torus noise.

I've also added a script, "simplex.py", that demonstrates the minimum script to produce some noise. The script "complex.py" demonstrates using multiple noise generators and modules to produce much more complex noise.

A final note for windows users. I will make an msi distribution shortly. The source-code contains C files that will need to be compiled. This is not a problem for Linux or OS X, both packaged with GCC. Windows users will need VS or GCC installed to install noiselib. With an msi distribution all files will come pre-compiled.

Links

Home Page
http://code.google.com/p/noiselib/
Source
http://code.google.com/p/noiselib/downloads/list

Releases

noiselib 1.4.0 — 8 Jun, 2011

noiselib 1.5.0 — 27 Jul, 2011

Pygame.org account Comments