https://editor.p5js.org/is2431/sketches/FM0-hjygj
Description of the Code
This p5.js sketch creates a 3D cube grid with a dynamic ripple effect. Each cube’s vertical position oscillates based on its distance from the center, while its color changes according to its depth (z
coordinate). The concept is inspired by natural wave patterns, where the ripple effect imitates waves traveling through the surface, and color gradients add depth perception to the 3D space. The visual result is a dynamic, pulsating cube, creating an engaging, hypnotic effect.
Functions and Organization
The program organizes the core logic in the draw()
function, which is responsible for rendering each frame of the sketch. The ripple effect is achieved through a combination of sin()
and dist()
functions to compute the oscillation offsets, and the color fill is managed by mapping the z
values to RGB values.
Variable and Function Naming
w
stands for the width of each cube, ensuring the ripple and grid are proportional.rippleHeight
controls the amplitude of the waves.cols
androws
are used for calculating how many cubes fill the canvas based on the grid spacing.
Reflection and Future Improvements
I’m proud of how well the ripple effect integrates with the 3D rendering and color mapping. However, future improvements could involve adding user interactivity, allowing control over ripple speed, amplitude, or even camera rotation. Another potential idea could be integrating sound, where the ripple responds to external audio input or ambient sounds, enhancing the immersive experience.
The sketch could also evolve into more complex 3D shapes, expanding from simple cubes to spheres or even irregular polygons, to add variety and depth to the visual.