opensimplex
OpenSimplex is a noise generation function like Perlin or Simplex noise, but better.
What it is and what it does
OpenSimplex is a Python port of Kurt Spencer's OpenSimplex noise algorithm, a gradient noise function designed to overcome patent issues with Simplex noise while avoiding Perlin noise's directional artifacts. It generates smooth, coherent noise values across 2D, 3D, and 4D spaces, returning floats between -1.0 and 1.0. The package provides both scalar functions (noise2, noise3, noise4) for single-point queries and array-oriented variants (noise2array, noise3array, noise4array) that accept NumPy arrays for batch processing.
The library depends on NumPy for array optimizations aimed at heavier workloads and supports optional Numba integration for further speed gains through caching. It is seeded via a 64-bit integer or system time, allowing reproducible or varied noise generation. The API underwent breaking changes in v0.4.*, so existing code may require updates. Maintenance is dormant but stable; the maintainer prioritizes library stability over new core features.
Use it for:
- Generate terrain heightmaps or procedural landscape data for games and simulations using 2D or 3D noise.
- Create texture patterns, cloud formations, or natural-looking visual effects in graphics applications.
- Seed random variation in machine learning or data augmentation pipelines where smooth, coherent randomness is needed.
- Batch-process large coordinate arrays with noise2array/noise3array/noise4array for performance-critical scientific workloads.
- Replace Perlin or Simplex noise in existing projects without patent concerns or directional visual artifacts.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Generates OpenSimplex noise across 2D, 3D, and 4D coordinate spaces, with both scalar and NumPy array interfaces for performance-critical workloads.
Yes, if you need patent-free gradient noise for procedural generation or scientific computing. The package is stable, has no known vulnerabilities, and installs cleanly with minimal friction. However, maintenance is dormant (last release 835 days ago), so expect no active development or rapid bug fixes—verify that the current API and behavior suit your use case before committing to it.
Install
opensimplex on PyPI
pip
pip install opensimplexuv
uv add opensimplexpoetry
poetry add opensimplexInstalling opensimplex
Before you install
Installs cleanly with a single NumPy dependency. Maintenance is dormant—last release was 835 days ago—but the package is stable and bug reports are welcomed during maintainer's free time. Breaking API changes occurred in v0.4.*, so verify compatibility if upgrading from earlier versions.
License in practice
MIT license is permissive and imposes no restrictions on use, modification, or distribution in proprietary or open-source projects.
Quickstart
pip install opensimplex
import opensimplex
import numpy
opensimplex.seed(1234)
n = opensimplex.noise2(x=10, y=10)
print(n) # 0.580279369186297
# Array-based for performance
rng = numpy.random.default_rng(seed=0)
ix, iy = rng.random(2), rng.random(2)
result = opensimplex.noise2array(ix, iy)
Requires Python 3.8 or later; NumPy is a hard dependency.
Verify before relying
- Whether Numba optional dependency is now functional (description notes it was untested due to llvmlite issues).
- Current state of repository and issue-handling responsiveness given 835-day dormancy since last release.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | dormant — 835 days since the last release |
| First released | |
| Downloads | 81,771/month — #14,202 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: opensimplex-0.4.5.1-py3-none-any.whl
Keywords: opensimplex, simplex, noise, 2D, 3D, 4D
Tags
More Mathematics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
kiwisolverkiwisolver is a Python binding to a fast C++…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
torchPyTorch provides GPU-accelerated tensor…
permissive · top 1,000 on PyPI
onnxruntimeonnxruntime loads and executes Open Neural…
permissive · top 1,000 on PyPI
oil-reservoir-synthesizerGenerates synthetic oil reservoir simulator…
copyleft · top 15,000 on PyPI
isosurfacesConstructs isolines and isosurfaces of 2D and…
permissive · top 15,000 on PyPI
edtComputes Euclidean distance transforms for 1D,…
copyleft · top 15,000 on PyPI
connected-components-3dLabels connected components in 2D and 3D images…
copyleft · top 15,000 on PyPI
batchgeneratorsbatchgenerators provides data augmentation…
permissive · top 15,000 on PyPI
vectorVector provides 2D, 3D, and 4D space-time…
permissive · top 15,000 on PyPI
spatial_imagespatial-image provides an N-dimensional spatial…
permissive · top 15,000 on PyPI
transformationsCalculates 4x4 homogeneous transformation…
permissive · top 5,000 on PyPI
fill-voidsFills interior voids in 2D and 3D binary images…
copyleft · top 15,000 on PyPI