Cricket, a coherent noise generation and manipulation library

This page summarizes the projects mentioned and recommended in the original post on /r/proceduralgeneration

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • FastNoise

    Fast Portable Noise Library - C# C++ C Java HLSL GLSL JavaScript Rust Go

  • I also think it would be cool if the library supported a few specific domain rotations in an upfront and intuitive manner. These rotations would be the 3D and 4D rotations shown in this file (two 3D rotations also shown in FastNoiseLite). These make the Perlin and Value noises look significantly better when taking 2D slices of 3D, or 3D slices of 4D. They also improve the two OpenSimplex2 noises (and I imagine Simplex as well) for this purpose as well. While still I don't think Perlin should be the default for any fractal if the rotation isn't somehow included as part of the default setting, I actually do prefer using domain-rotated Perlin over OpenSimplex2S for many 2D-focused use cases for 3D. The 2D slices look mostly the same, but is faster. The main tricky part with these, I would say, is communicating to the user that coordinate order makes a difference with them.

  • FastNoise2

    Modular node graph based noise generation library using SIMD, C++17 and templates

  • Let Simplex 3D use its same gradient generator, but use 1/2 instead of 1/6 for the noise's unskew constant. This rotates the axis angles of the gradient set out of the main noise evaluation planes. I haven't implemented+run this myself, but it is implemented here in FastNoise2 (SIMD library), and I simulated the difference using OpenSimplex2 in this image (bottom with change). The result isn't perfect, but it's much nicer I think. After making this change, either set scale to 32.69428253173828125 to make a proper -1 to 1 range, or bake it into the gradient table directly.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • NoiseNormalizer

    Uses gradient ascent to attempt to determine the maximum value that a gradient-based coherent noise would generate.

  • I think Simplex 4D could benefit from that in almost as good of a way. I haven't tested this myself, but the unskew constant to change to would be 0.3618033988749895 or changing the - to a + in the unskew constant so it becomes (5.0f + SQRT5) / 20.0f. I computed this by taking the unskew constant, writing out the full unskew matrix, multiplying by a rotation matrix, seeing that it can be converted back into a constant, then seeing that it just amounts to the sqrt term sign change. The new scale value will be (TBD - running NoiseNormalizer as I type this, will update with result).

  • OpenSimplex2

    Successors to OpenSimplex Noise, plus updated OpenSimplex.

  • It looks like you based the original OpenSimplex off of the old version before I updated the gradients. While I think OpenSimplex2(F/S) are better suited to more scenarios than original OpenSimplex, it helps to give original OpenSimplex the better gradient tables regardless. I also properly normalized them, so the range is -1 to 1. I made two implementations available here, for reference. https://github.com/KdotJPG/OpenSimplex2/tree/master/java/legacy No scale needed if you bake it into the gradients.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Is PerlinNoise overloaded to make procedural maps?

    2 projects | /r/gamedev | 12 Dec 2022
  • Starting of a voxel terrain engine

    2 projects | /r/VoxelGameDev | 30 Oct 2022
  • How do space games handle the scale without loading screens?

    2 projects | /r/howdidtheycodeit | 7 Jun 2022
  • UltraNoise - An OpenSource Node based processing tool for Unity (link in comments)

    4 projects | /r/Unity3D | 12 Jan 2022
  • Using FastNoiseLite (or any GLSL library) in a shader.

    1 project | /r/godot | 7 Jul 2023