OpenSimplex noise
OpenSimplex noise is an n-dimensional (up to 4D) gradient noise function that was developed by Kurt Spencer in 2014 in order to overcome the patent-related issues surrounding simplex noise, while likewise avoiding the visually-significant directional artifacts characteristic of Perlin noise. The algorithm shares numerous similarities with simplex noise, but has two primary differences: Whereas simplex noise starts with a hypercubic honeycomb and squashes it down the main diagonal in order to form its grid structure, OpenSimplex noise instead swaps the skew and inverse-skew factors and uses a stretched hypercubic honeycomb. The stretched hypercubic honeycomb becomes a simplicial honeycomb after subdivision. This means that 2D Simplex and 2D OpenSimplex both use different orientations of the triangular tiling, but whereas 3D Simplex uses the tetragonal disphenoid honeycomb, 3D OpenSimplex uses the tetrahedral-octahedral honeycomb. OpenSimplex noise uses a larger kernel size than simplex noise. The result is a smoother appearance at the cost of performance, as additional vertices need to be determined and factored into each evaluation. OpenSimplex has a variant called "SuperSimplex" (or OpenSimplex2S), which is visually smoother. "OpenSimplex2F" is identical to the original SuperSimplex.
The topic of this article may not meet Wikipedia's general notability guideline. (March 2016) |

OpenSimplex noise is an n-dimensional (up to 4D) gradient noise function that was developed by Kurt Spencer[1] in 2014 in order to overcome the patent-related issues surrounding simplex noise, while likewise avoiding the visually-significant directional artifacts characteristic of Perlin noise.
The algorithm shares numerous similarities with simplex noise, but has two primary differences:
- Whereas simplex noise starts with a hypercubic honeycomb and squashes it down the main diagonal in order to form its grid structure,[2] OpenSimplex noise instead swaps the skew and inverse-skew factors and uses a stretched hypercubic honeycomb. The stretched hypercubic honeycomb becomes a simplicial honeycomb after subdivision.[3][4] This means that 2D Simplex and 2D OpenSimplex both use different orientations of the triangular tiling, but whereas 3D Simplex uses the tetragonal disphenoid honeycomb, 3D OpenSimplex uses the tetrahedral-octahedral honeycomb.[3]
- OpenSimplex noise uses a larger kernel size than simplex noise. The result is a smoother appearance at the cost of performance, as additional vertices need to be determined and factored into each evaluation.[3]
OpenSimplex has a variant called "SuperSimplex" (or OpenSimplex2S), which is visually smoother. "OpenSimplex2F" is identical to the original SuperSimplex.
See also
[edit]References
[edit]- ^ peco, barbe (2025-04-24). "OpenSimplex Noise: The Evolution of Noise Representation". barbe_generative_diary. Retrieved 2025-09-14.
- ^ Ken Perlin, Noise hardware. In Real-Time Shading SIGGRAPH Course Notes (2001), Olano M., (Ed.). (pdf)
- ^ a b c Spirit of Iron: Simplectic Noise Michael Powell's blog
- ^ Stefan Gustavson, Simplex Noise Demystified (2005) (pdf)
External links
[edit]- Blog post introducing OpenSimplex noise
- Author's current implementation (OpenSimplex2)
- Android library
- C implementation
- GPU implementation in OpenCL
- Heavily-optimized implementation in C#
- Noise library for the Rust programming language providing OpenSimplex noise – does not hard code gradient initial values
- Python implementation
- R implementation