/ Ripple Pool Simulator Back
Wave Physics

Ripple Pool Simulator

Quick answer
Ripples follow the 2-D wave equation ∂²u/∂t² = c²·∇²u (u = surface displacement, c = wave speed, ∇² = Laplacian), while surface waves travel at c = √((gλ/2π)·tanh(2πh/λ)) for wavelength λ and depth h. The solver is explicit, with the Courant number fixed at CFL = 0.5 for stability.

Click anywhere to drop a virtual stone in a pool. Watch ripples spread, collide, and create stunning interference patterns — all solved by the real 2D wave equation in your browser.

Finite Difference Method 2D Wave Equation Click & Drag Touch Enabled
Playback & controls
Presets
Parameters
Reflecting boundary
When OFF, waves are absorbed at the edges and do not reflect.
Colour map
Trough (blue) Zero (white) Crest (orange)
-A0+A
Controls

🖱️ Click — add a source
🖱️ Drag — make continuous ripples
📱 Tap / swipe — touch also works
⌨️ Spaceplay/stop, Ddroplet, RReset
💡 Use the presets to observe interference fringes

Live values
0.50
Wave speed c [cells/step]
0.990
Damping factor
0
Active sources
—
Wavelength λ [cells]
0.00
Maximum amplitude
60
FPS
0
Steps
0
Continuous sources
Ripples (propagation, reflection, interference)
t = 0.000 s 400 × 320
Theory & Key Formulas

$$\frac{\partial^2 u}{\partial t^2} = c^2 \nabla^2 u$$

2D wave equation: \(u\) surface displacement, \(c\) wave speed [m/s], \(\nabla^2\) Laplacian

$$c = \sqrt{\frac{g\lambda}{2\pi}\tanh\left(\frac{2\pi h}{\lambda}\right)}$$

Phase velocity of surface waves: \(\lambda\) wavelength, \(h\) water depth

This simulator approximates the 2D wave equation ∂²u/∂t² = c²∇²u on a grid. At each step the next displacement is computed from the current and previous displacements with an explicit scheme using central differences in both time and space (the leapfrog method), and the Laplacian is evaluated from differences with the four neighbouring points. For stability the Courant number is fixed at CFL = 0.5 and the wave-speed slider is limited to 0.10–0.90. The damping factor multiplies the amplitude after each update; the closer it is to 1, the longer the waves last. The boundary condition switches between Dirichlet type with "Reflection ON" (fixed at the edges, so waves reflect) and absorbing type with "Reflection OFF" (waves vanish at the edges). When a continuous source is driven, the wavelength can be estimated as λ ≈ c·CFL·(period in steps).

What Is the Ripple Pool Simulator?

🙋
It's fun how ripples spread when I click in this simulator! Is it the same principle as the waves when you throw a stone into a pond?
🎓
Exactly! Roughly speaking, it reproduces the up-and-down motion of the water surface on a computer. In practice, it uses the same equations as the CAE fundamentals for analysing how sound waves and seismic waves travel. Move the "Wave speed c" slider above and you will see the speed at which the waves spread change.
🙋
Really! There is also a "Damping" parameter. What does it change?
🎓
Damping is how much of the wave's energy is scattered to the surroundings or lost to friction. Real water waves, for example, gradually get smaller. In this tool, "Damping" is a factor applied to the amplitude at every step: the closer it is to 0.900, the faster the waves vanish, and the closer it is to 0.999, the longer they last and keep reflecting, approaching an ideal pool. Move the "Damping" slider in the simulator and see the difference.
🙋
Pressing the "Two sources" button makes beautiful stripes! Is this what they call interference? How is it used in CAE?
🎓
Yes, that is interference. Waves from two places overlap, creating places where they reinforce each other and places where they cancel. A common practical case is "sound field analysis", where the sound from two loudspeakers interferes so that it sounds louder in some places and quieter in others. Watching interference patterns while changing the parameters in this simulator is a basic experience that leads directly to designing products with several sound or vibration sources.

Frequently Asked Questions

Yes, you can adjust the "Damping factor" in the simulator's settings panel. The value is a factor applied to the amplitude at every step, so the closer it is to 0.999 the longer the waves keep moving, and the closer it is to 0.900 the sooner they settle. You can try behaviour that mimics the viscosity of real water.
Just click or tap several places on the screen and waves start from each point. Waves started at the same time interfere with each other, and you can watch the points where they reinforce and cancel in real time.
You can change the "Wave speed" parameter in the settings. A larger value makes the waves travel faster and the wavelength longer. Use it when simulating differences in the physical medium (shallow versus deep water, for example).
It uses a 2D wave equation with a damping term and reproduces the interference, diffraction and damping of waves qualitatively. Complex factors such as wind and changes in water depth are omitted, however, so please use it as an educational visualisation tool.

Real-World Applications

Room acoustics and noise analysis:In designing concert halls and studios, the reflection and interference of sound waves at walls and ceilings are simulated to predict how the sound reverberates and how noise travels. The interference fringes seen in this tool can be thought of as a 2D version of "beats" and "standing waves" in sound.

Microphone and loudspeaker array design:When several microphones or loudspeakers are arranged, the basic principle of the techniques for emphasising sound from a particular direction or, conversely, cancelling noise (beamforming) is wave interference. Placing several sources in the simulator is a basic experience of it.

Seismic wave propagation analysis:Similar wave equations are used to simulate seismic waves (surface waves) travelling through the ground. Studying how the heterogeneity of the ground (differences in wave speed c) affects how waves travel helps the seismic design of buildings.

Simulation of fluid surface waves:They are also applied to predicting the waves made by ships and the propagation of waves in coastal areas. Because they form the basis of more complex equations, understanding the principles with a simple 2D simulator like this is important.

Common Misconceptions and Points to Note

There are a few points that are easy to misunderstand when you start using this simulator. First, numerical stability is determined bythe CFL condition, and this tool fixes CFL = 0.5 and clamps the wave-speed input to 0.10–0.90. It is set up so that it does not diverge within the range of the slider and number input, so when changing the wave speed it is enough to understand that "the faster it is, the more grid cells the wavefront advances per step".

Next, the "Damping" setting. Bringing the value close to 1 (weakening the damping) gives an ideal system in which the waves keep moving forever, but almost all real phenomena, such as the vibration of buildings and acoustics, always have some damping. A design that ignores damping risks failure by resonance. Conversely, making the damping too strong makes the interference patterns, which are the essence of the phenomenon, hard to observe. Balance is what matters.

Finally, this simulation is based on the "linear" wave equation. That is, the wave speed does not change as the waves get higher, and waves pass straight through each other when they meet (no non-linear effects). Non-linearity is important in real large waves (tsunamis, for example) and in some optical phenomena, but getting the basics with this linear model is the starting point for everything.

How to Use

  1. Adjust "Wave speed c" in the range 0.10–0.90 to set the propagation speed on the grid
  2. Set "Damping" between 0.900 and 0.999 to control the energy loss of the waves
  3. Specify the initial strength of the wave with "Impulse strength" in the range 1–3, and click the pool to create waves
  4. Generate ripples automatically with the "Drop a droplet" button or "Rain mode", and adjust the density of the rain with "Drip rate"
  5. Toggle play/pause and the reflecting boundary ON/OFF to check the propagation, reflection, interference and changes in wavelength of the waves

Worked Example

Clicking the centre with wave speed c = 0.5, damping 0.95 and impulse 2.0: since CFL = 0.5, the wavefront advances CFL × c = 0.25 cells/step. After 150 steps the typical radius reached is about 37.5 cells, about 9.4% of the 400-cell width. Distances and amplitudes in this model are treated as dimensionless grid units and are not converted to mm or real wavelengths. With the two-source preset (period about 25 steps), the wavelength can be estimated as λ ≈ c·CFL·period ≈ 0.5 × 0.5 × 25 ≈ 6.3 cells, which is shown as "Wavelength λ" in the live values. Clicking two points lets you observe constructive and destructive interference where the wavefronts overlap.

Practical Notes

  1. A smaller damping value makes the waves disappear quickly, and values closer to 0.999 make them last longer. Adjust it in the range 0.900–0.999 according to the purpose
  2. Adding continuous sources makes the interference fringes more complex, and with reflecting boundaries reflections from the edges are added too. Adjust the number of sources while watching the FPS
  3. The wave-speed parameter is limited to 0.10–0.90 and is computed stably under the condition CFL = 0.5
  4. Clicked sources are instantaneous impulses, while the continuous sources of the presets are reflected in the "Continuous sources" stat