tayloraswift / swift-noise

Generate and compose commonly-used procedural noises and distributions, in pure Swift
https://swiftinit.org/docs/swift-noise/noise
Apache License 2.0
116 stars 11 forks source link
graphics perlin-noise poisson-disc-sampling procedural-noise pseudo-random-generator simplex-noise supersimplex-noise worley-noise
***`noise`***
`2.0` [![ci build status](https://github.com/tayloraswift/swift-noise/actions/workflows/build.yml/badge.svg)](https://github.com/tayloraswift/swift-noise/actions/workflows/build.yml) [![ci build status](https://github.com/tayloraswift/swift-noise/actions/workflows/docs.yml/badge.svg)](https://github.com/tayloraswift/swift-noise/actions/workflows/docs.yml) [![swift package index versions](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Ftayloraswift%2Fswift-noise%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/tayloraswift/swift-noise) [![swift package index platforms](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Ftayloraswift%2Fswift-noise%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/tayloraswift/swift-noise)

swift-noise is a free, pure Swift procedural noise generation library. The library product has no dependencies and does not import Foundation or any system frameworks.

All popular types of procedural noise are supported, including three gradient noises (often called Perlin or simplex noises), and two cellular noises (sometimes called Worley or Voronoi noises).

swift-noise includes a fractal brownian motion (FBM) noise composition framework, and a disk point sampler (often called a Poisson sampler), for generating visually even point distributions in the plane. swift-noise also includes pseudo-random number generation and hashing tools.

swift-noise’s entire public API is documented.

Building

Build Noise with the Swift Package Manager. Noise itself has no dependencies, but the tests use

The package includes an executable, generate-noise, that depends on swift-png. It generates noise locally for visual inspection. To regenerate example images, run the following command in the terminal:

swift run -c release generate-noise