Animating Octaves - Procedural GPU Patterns
Catlike Coding Godot demonstrates a subtle but important pitfall in procedural animation: if time is fed uniformly into the hash, it behaves like a third spatial axis and a 2D slice is effectively moving through a 3D noise field. That means every hash in an octave flips together, which is fine in isolation but becomes very noticeable once multiple octaves are layered.
The key detail is temporal lacunarity. With a value of 2, the second octave changes twice as fast as the first, so the combined signal alternates between moments where both octaves shift together and moments where only the faster octave changes. In practice, that creates a very obvious pulsing rhythm instead of the more organic motion developers usually want from procedural noise.
For graphics programmers and technical artists, the takeaway is that time scaling across octaves needs the same care as spatial frequency scaling. If the temporal relationship between layers is too neat, the animation can reveal its structure immediately, especially in effects that are supposed to feel continuous or natural. This is the kind of artifact that can sneak into shaders, VFX, and stylized materials if the temporal domain is treated too literally.
“we're effectively treating it as a third spatial dimension”
- what
- Uniformly adding time to the hash makes procedural octaves animate as if time were a third spatial dimension.
- who
- Catlike Coding Godot
- when
- No specific date was given; this is part of an ongoing tutorial series.
- impact
- Layered noise can develop a visible pulsing pattern if octave timing is too regular.
Technical insight with a cautionary artifact
Follow Godot updates
See relevant stories in your personalized news feed.
Discussion