More Experiments with OpenSimplex

Previously @hamoid compared toxiclibs SimplexNosie with processing ValueNoise (Perlin). Here I used his test to compare OpenSimplex (which I’m developing for ruby-processing) with this PiCrate sketch:-

require 'picrate'
require 'toxiclibs'

class Hamoid < Processing::App
  ZOOM = 0.03

  def setup
    background(0)
    stroke(255, 50)
    noise_mode NoiseMode::OPEN_SMOOTH
  end

  def draw
    xx = rand(width)
    yy = rand(height)
    500.times do
      a = if xx < width / 2
            PI * noise(xx * ZOOM, yy * ZOOM)
          else
            PI * Toxi::SimplexNoise.noise(xx * ZOOM, yy * ZOOM)
          end
      xx += cos(a)
      yy += sin(a)
      point(xx, yy)
    end
  end

  def settings
    size(500, 500)
  end
end

Hamoid.new

Here’s the result with OpenSimplex2 on LHS

What can be seen here is that both noise generators produce a similar pattern, however toxiclibs SimplexNoise shows a clear diagonal bias. There are options in OpenSimplex2, and currently I am thinking of supporting the above classic Simplex as well as a version more suitable for terrain generation (with fast and smooth options for both) with a default as classic fast SimplexNoise.

5 Likes