Recently I posted about selectable noise implementation in ruby processing. Since then I’ve done a bit more research and came upon the this post about about OpenSimplex in processing. That got me thinking, why don’t I extend the choice of noise implementations in my ruby-processing projects. So for PiCrate I implemented both OpenSimplex2 versions. Both these noise implementations seem to be superior to both processing ‘Perlin’ and regular ‘Simplex’ noise.
See example PiCrate sketch:-
require 'picrate' # OpenSimplex has a range -1.0 to 1.0 class NoiseImage < Processing::App SCALE = 0.02 def setup sketch_title 'Noise Image' background(0) stroke(255) no_fill noise_mode(NoiseMode::OPEN_FAST) end def draw background(0) scale = 0.02 load_pixels grid(500, 500) do |x, y| col = noise(SCALE * x, SCALE * y) > 0 ? 255 : 0 pixels[x + width * y] = color(col, 0, 0) end update_pixels save_frame(data_path('OpenFast.png')) end def settings size 500, 500 end end NoiseImage.new
Perlin (really value noise) adjusted sketch for range
0..1 cf -1.0…1.0`
It should be noted that within OpenSimplex2, there is a possibility of different options within the noise functions, and I have somewhat arbitrarily chosen one of those options. I might explore making those options selectable, and possibly ditch processing ‘Perlin noise’ which lacks that organic feel…