🖱️ Click — add a wave impulse
🖱️ Drag — continuous ripple trail
📱 Tap / Swipe — touch supported
💡 Try the 2-source preset for interference fringes!
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.
🖱️ Click — add a wave impulse
🖱️ Drag — continuous ripple trail
📱 Tap / Swipe — touch supported
💡 Try the 2-source preset for interference fringes!
$u(x,y,t)$ is surface displacement, $c$ is wave speed. The explicit FDM discretization:
After each step, $u \leftarrow u \times d$ ($d$ = damping factor) models energy dissipation.
Huygens' principle: every point on a wavefront acts as a new point source. For two sources $S_1, S_2$:
The 2-source preset shows beautiful hyperbolic fringes where these conditions alternate.
The same wave equation governs:
The Courant–Friedrichs–Lewy (CFL) condition ensures stability:
This simulator uses $\text{CFL} = 0.5$ (fixed), so the time step $\Delta t$ automatically scales with the wave speed slider, ensuring always-stable integration.
The simulator solves the two-dimensional wave equation, which governs how a disturbance propagates through a medium like the surface of water. It relates the acceleration of the wave height to its spatial curvature.
$$ \frac{\partial^2 u}{\partial t^2}= c^2 \left( \frac{\partial^2 u}{\partial x^2}+ \frac{\partial^2 u}{\partial y^2}\right) $$Here, $u(x,y,t)$ is the wave height (displacement) at position $(x, y)$ and time $t$. The constant $c$ is the **wave speed**, a key parameter you control in the simulator. The terms $\frac{\partial^2 u}{\partial x^2}$ and $\frac{\partial^2 u}{\partial y^2}$ describe how curved or "bent" the wave surface is in the horizontal directions.
In the numerical simulation, a damping term is added to model energy loss, making the waves gradually fade. This is the equation being solved behind the scenes.
$$ \frac{\partial^2 u}{\partial t^2}= c^2 \nabla^2 u - \beta \frac{\partial u}{\partial t}$$The new term, $- \beta \frac{\partial u}{\partial t}$, is the damping force. The parameter $\beta$ (beta) is controlled by the **Damping** slider. It's proportional to the velocity of the wave, acting like a drag force that slows it down and converts its energy into heat.
Acoustic Engineering & Speaker Design: The same 2D wave equation models sound pressure waves in air. Engineers use simulations like this to design concert halls, predict how sound propagates in a room, and optimize speaker cabinet shapes to minimize destructive interference that causes "dead spots."
Seismic Wave Analysis: Geophysicists use advanced versions of this simulation to understand how earthquake waves (like surface waves) travel through the Earth's crust. Analyzing the interference patterns helps them locate the epicenter and determine the underground structure.
Water Wave Dynamics: Coastal and naval engineers simulate wave interference to study the impact of waves on ship hulls, offshore platforms, and harbor designs. Understanding how waves combine is crucial for predicting stability and potential structural fatigue.
Medical Ultrasound Imaging: The principle of wave interference is fundamental to phased-array ultrasound transducers. By carefully timing impulses from multiple elements, technicians can steer and focus sound waves into the body to create detailed images without invasive surgery.
When you start using this simulator, there are a few points that are easy to misunderstand. First, if you set the "wave speed c" too high, the simulation may diverge (the numerical values explode). This happens because you violate a constraint called the CFL condition. Simply put, the distance a wave travels in one step must not exceed the spacing of the computational grid, or you'll get physically unnatural results. For example, if the grid spacing is 1 and you set the wave speed c to 100, the calculation will immediately break down. Professional CAE software internally checks this condition, but remember that you need to adjust it yourself in this tool.
Next is the "damping" setting. Setting this close to zero creates an ideal system where waves oscillate forever, but in most real-world phenomena, such as building vibrations or acoustics, some form of damping (vibration suppression) always exists. Designs that ignore damping risk failure due to resonance. Conversely, setting damping too high makes it difficult to observe the interference patterns that are the essence of the phenomenon. Balance is key.
Finally, this simulation is based on the "linear" wave equation. This means the wave speed doesn't change even if the wave height becomes large, and waves pass right through each other when they collide (there are no nonlinear effects). Nonlinearity is important for actual large waves (e.g., tsunamis) or certain optical phenomena, but mastering the basics with this linear model is the starting point for everything.
The calculation you're experiencing in this ripple pool is actually a "common language" underlying a wide variety of engineering fields. The first to mention is structural mechanics and vibration analysis. The vibration of thin plates (e.g., smartphone casings or aircraft wing skins) can be modeled precisely by the 2D wave equation. The point vibration added by a click corresponds to an impact location, observable as a "flexural wave" propagating through the plate.
Another is the field of electromagnetism and wireless communications. Radio waves (electromagnetic waves) also propagate according to the wave equation. If you imagine this simulator's pool as an infinitely wide space, you can visualize how radio waves radiated from an antenna spread out. In particular, the principles behind phased array radar and MIMO communication, which involve arranging multiple antenna elements, are technologies that actively control the interference patterns you saw with "two wave sources" to form beams, among other things.
Furthermore, in geophysics, this method is applied to seismic wave propagation simulation. By analyzing how seismic waves travel through various underground layers (regions with different wave speeds c), we can explore subsurface structures. If you could vary the "wave speed c" by location in the simulator, you could reproduce something close to that.
Once you're comfortable with this tool, try moving to the next step. First is understanding the numerical solution method. The explicit finite difference method mentioned in the explanation is intuitive but has strict conditions. As your next learning topic, it's good to study the more stable implicit method or the Finite Element Method (FEM), which can handle complex shapes. FEM is a nearly standard solver in CAE software, so it's essential knowledge.
Mathematically, the concept of the Fourier Transform becomes a powerful tool for understanding the solutions to the wave equation. It's the idea that any complex waveform can be expressed as a superposition of simple sine waves. Understanding this allows you to deeply grasp the meaning of "frequency analysis" in vibrations and acoustics. For example, when you change the damping setting, it's good practice to think about not just how the wave shape changes, but also how the contained frequency components change.
As a practical next step, I strongly recommend using a programming environment (like Python's NumPy or MATLAB) to code this same simulation calculation yourself. By freely changing parameters and implementing different boundary conditions (e.g., walls that completely reflect or absorb waves), you'll gain an intuitive, hands-on understanding of the essence of numerical simulation.