Skip to main content
100%

Simplex Radiations

✓ Published0🌍 Public
KKcnarf
Last edited Dec 3, 2018
Created on Aug 11, 2016

Animated radial lines bloom outward from a moving center point on a canvas, each shape growing continuously via SimplexNoise. The visualization uses simplex-noise.js to generate smooth, evolving vertex positions in polar coordinates, addressing the challenge of creating seamless noise around the 0 and 2π boundary by blending two noise functions. Rendered with the Canvas 2D API and d3.interval for animation, the radiations follow the mouse cursor while damping their movement, showing how polar-coordinate noise can produce organic, ever-changing geometric forms.

AI-generated description

This block experiments SimplexNoise (see also 2, 1). More particularly, how to produce a continous radial noise.

Work initiated by this block from elenstar, Drawing Vector Field, and the outstanding Neonflames.

In this block, I use SimplexNoise to produce each radiation's shape and growth. The shape is composed of lines joining several verteces. Verteces evolve thanks to values produced with SimplexNoise. The challenge was to compute a continuous noise between the first few verteces (from 0 rad) and the last few verteces (before 2*PI). The technique I use is:

  • define 2 noise functions; 1 discontinued around 0 rad, and 1 discontinued around PI
  • mix the 2 noises so that:
  • around 0 rad, only the second noise is used (discontinuity of the first noise is eliminated)
  • around PI, only the first noise is used (discontinuity of the second noise is eliminated)
  • for other angles, use a smooth mix of the 2 noises (I use a cos-based function)

The Simplex Wave + Explanations block explains this technique in a more appealing way (with drawings ;-).

This block is also the first one that allows me to use SimplexNoise with polar coordinates (instead of cartesian coordinates). Noise depends on r and θ (intead of the more classical x and y).

Acknowledgments to:

  • <a href='https://d3js.org/'>D3.js</a> (v.4)
  • <a href='http://blockbuilder.org'>blockbuilder.org</a>
  • <a href='https://github.com/jwagner/simplex-noise.js'>simplex-noise.js</a>
gpl-3.0 Licensed

Similar vizzes