Fast Perlin Noise
This is a very fast Perlin noise library, mostly in Go with Python bindings, that I developed upon trying out a few other available Python libraries and realized that none were fast enough for my project requirements. Algorithms are from the libnoise dotnet project which I ported to Go.
Installation
To install fast_perlin_noise,
pip3 install fast-perlin-noise
Wheels are automatically built for Windows, Linux, and macOS for x86-64 and ARM64 architectures. If a wheel does not exist for your platform, you will require a Go compiler to complete the installation.
Dependencies
fast_perlin_noise has very limited dependencies: only numpy is required!
Tests and Examples
fast_perlin_noise has a very beginner friendly Python interface, with optional advanced use.
from fast_perlin_noise import PerlinNoise
import numpy as np
import matplotlib.pyplot as plt
noise_generator: PerlinNoise = PerlinNoise(width=256, height=256)
noise_image: np.ndarray = noise_generator.generate_noise_matrix()
plt.imshow(noise_image) # View the resulting noise
You can run and look at example/example.py to see this in action.
Output
fast_perlin_noise currently outputs a matrix (an ndarray with the shape m, n) of noise of which the values range from 0.0 to 1.0.
Interface and Parameters
For more advanced use, many parameters can be tuned to adjust the resulting noise.
Perlin noise can be generated using the generate_noise_matrix function.
| Parameter | Type | Description |
|---|---|---|
| width | uint | Width of resultant matrix. |
| height | uint | Height of resultant matrix. |
| persistence | float | Intensity falloff coefficient of subsequent noise layers. |
| numLayers | uint | Number of simplex noise layers to use. |
| roughness | float | Frequency increase coefficient for subsequent noise layers. |
| baseRoughness | float | Initial frequency for noise |
| strength | float | Scalar multiplier for noise values |
| randomSeed | float | Define the random seed to be used |
Controlling Noise Output
Behaviour of the noise can be changed by changing parameters to the PerlinNoise interface.
Settings include width and height to determine the dimensions of the resulting matrix. baseRoughness and roughness to control the frequency and frequency falloff.
persistence to change the impact of subsequent layers (low value results in a "softer" look). numLayers controls how many layers of noise will be used (more layers results in more complex, structured noise).
strength is a simple scalar multiplier to the matrix (control intensity of noise). Lastly, randomSeed can be changed to change the seed of the noise (fast_perlin_noise is deterministic when randomSeed is known).
Metadata
Release files for fast-perlin-noise 1.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| fast_perlin_noise-1.1.2.tar.gz | 96.3 kB | Without provenance | Details for fast_perlin_noise-1.1.2.tar.gz |
Built distributions (wheels)
Total release size: 8.1 MB
Release files / fast_perlin_noise-1.1.2.tar.gz
| Download URL | fast_perlin_noise-1.1.2.tar.gz |
|---|---|
| Size | 96.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d94a2e6f13b9841e328b1aebc2dbee28ebc71289562a31ea002fe058aac1ac95
|
|
BLAKE2b-256 checksum How to use checksums |
037fd1a1e2cf97f34d2ae03ca0396460522f93df487640a8b6a1b91140e2da96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.20
|
Release files / fast_perlin_noise-1.1.2-cp313-cp313-win_amd64.whl
| Download URL | fast_perlin_noise-1.1.2-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 814.2 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
59c0b798aa08cb2d6ee014347292517ca27b59289257ef5d35952f95246298cb
|
|
BLAKE2b-256 checksum How to use checksums |
bfa9b45babe50c9938343f115410e51b54a0ded7ab3a45a0fae46c796644cd5d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.8
|
Release files / fast_perlin_noise-1.1.2-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | fast_perlin_noise-1.1.2-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 788.9 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ae3b0ea5ba1161baaed179bb2b679b0318d4a95e336be632390ba6cd281c244d
|
|
BLAKE2b-256 checksum How to use checksums |
cf240649b4a17c9fdb0705cab4a95516b240e95bcbf71b1776e3bdda19916cf0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.13.1
|
Release files / fast_perlin_noise-1.1.2-cp312-cp312-win_amd64.whl
| Download URL | fast_perlin_noise-1.1.2-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 814.4 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
204f5679e67213f38aa164584dc00e2c8c050c52d3d27cf698fcdd174093dc2c
|
|
BLAKE2b-256 checksum How to use checksums |
efa5dc9e35c16d31acd105f57d7ca888aeb9407d8a0c690a2087998af7b079e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.8
|
Release files / fast_perlin_noise-1.1.2-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | fast_perlin_noise-1.1.2-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 788.9 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
530897c34efbd25c2d93a582d71f1e8c6f9c7882b730151e1cc6b1d88a9c142d
|
|
BLAKE2b-256 checksum How to use checksums |
8e6f4a1b82e8ba36c09864b0d3ad7781938bb4f4622663a2aca26d3ff876bc7f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.13.1
|
Release files / fast_perlin_noise-1.1.2-cp311-cp311-win_amd64.whl
| Download URL | fast_perlin_noise-1.1.2-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 814.4 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
caee7117d837adbb5ba32214f4c10493f374facac02ce278cc7a30b807ef6466
|
|
BLAKE2b-256 checksum How to use checksums |
759caad6f87e810940d1c3b99ecfda1b082f105206575587824cfe135a7ec54d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.8
|
Release files / fast_perlin_noise-1.1.2-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | fast_perlin_noise-1.1.2-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 788.9 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
777f7d5f6e5a4928a097705af67f4af2e17cd9203b8e62376e95ec36c3e3c513
|
|
BLAKE2b-256 checksum How to use checksums |
61b3b9f04b62b38ec1f28b31c49df37d9f0f370edee42d07291eef0880cca9c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.13.1
|
Release files / fast_perlin_noise-1.1.2-cp310-cp310-win_amd64.whl
| Download URL | fast_perlin_noise-1.1.2-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 814.4 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
6a61f943b4d0de18bc0b81ca91f476aec10127ab8de53b2a32978345954cabba
|
|
BLAKE2b-256 checksum How to use checksums |
fba5b4b50bd3f9eca00ee28dcb11a54af8f330db3368db7ce7393c70159f53af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.8
|
Release files / fast_perlin_noise-1.1.2-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | fast_perlin_noise-1.1.2-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 788.9 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4d6400af3e59e05d2d119be7e28587b579dbfbc9408bbae3e056506f251782db
|
|
BLAKE2b-256 checksum How to use checksums |
0350579fa2f73809b75190d9fb99d33389ddb700d2b7e89daa81817263210855
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.13.1
|
Release files / fast_perlin_noise-1.1.2-cp39-cp39-win_amd64.whl
| Download URL | fast_perlin_noise-1.1.2-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 814.4 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
41eb451ce576bee7ec2c81ae9a9f6c353c7f56dd66fe0a909e8e698f4d7f26e0
|
|
BLAKE2b-256 checksum How to use checksums |
97c3958bea6f5e5546880f87f20945a64741c245994e6d2fb4de977293a0bf40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.8
|
Release files / fast_perlin_noise-1.1.2-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | fast_perlin_noise-1.1.2-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 788.9 kB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
839a4c6a85ad6fef925cdc1e2ac41a6150a199d1108aaaa36ef48f35e6fa4e77
|
|
BLAKE2b-256 checksum How to use checksums |
e8b62b90e7386c399c604ad842e3d95ebece02432f3625b1a376fe85bd562019
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.13.1
|
Security for fast-perlin-noise 1.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.