racingFont
p5.Font
Stores the loaded Oswald font, which is used to render the text "MAX VERSTAPPEN" with a racing-inspired typeface
let racingFont;
colors
object
An object storing the Red Bull racing color palette (darkBlue, red, yellow, white) for consistent, reusable styling throughout the sketch
let colors = { darkBlue: color(0, 24, 69), red: color(220, 0, 0), yellow: color(255, 200, 0), white: color(255) };
detail
number
The number of points per line—higher values create smoother curves, lower values create angular faceted geometry
let detail = 100;
lineCount
number
The total number of separate lines drawn in the visualization—more lines create a denser, fuller effect
let lineCount = 50;
radius
number
The base size of the line structure—controls how far from the center the lines extend
let radius = min(width, height) * 0.3;
noiseScale
number
A multiplier on the Perlin noise input—smaller values create larger, smoother waves; larger values create tighter detail
let noiseScale = 0.01;
speed
number
A time-based variable that animates the noise sampling over time, making the lines shift and morph each frame
let speed = frameCount * 0.01;
angleOffset
number
A per-line offset to the starting angle, generated by noise, so each of the 50 lines begins at a slightly different angle
let angleOffset = noise(i * 0.1, frameCount * 0.002) * TWO_PI;
angle
number
The angular position around the circle for each point on a line, mapped from 0 to TWO_PI and offset by angleOffset
let angle = map(j, 0, detail - 1, 0, TWO_PI) + angleOffset;
xNoise
number
A Perlin noise value sampled based on the point's angle and frame count, used to vary the radius of points
let xNoise = noise(cos(angle) * noiseScale + speed, sin(angle) * noiseScale + speed);
yNoise
number
Another Perlin noise value sampled with different offsets, used to vary the Z-depth of points
let yNoise = noise(cos(angle) * noiseScale + 1000 + speed, sin(angle) * noiseScale + 1000 + speed);
r
number
The mapped radius for a specific point on a line, scaled by the xNoise value to vary how far it sits from the center
let r = radius * map(xNoise, 0, 1, 0.5, 1.2);
x
number
The Cartesian X coordinate of a point, calculated from polar coordinates (angle and radius)
let x = r * cos(angle);
y
number
The Cartesian Y coordinate of a point, calculated from polar coordinates (angle and radius)
let y = r * sin(angle);
z
number
The Z-depth coordinate of a point in 3D space, mapped from yNoise to place points at different distances from the viewer
let z = map(yNoise, 0, 1, -radius * 0.5, radius * 0.5);