Pick a scenario; every slider below stays editable.
Speed falls with falling temperature (thermocline) and rises with pressure below it. Rays always bend toward the slow layer.
Green: received level of the call. Dashed: ocean noise. The call is heard wherever green is above dashed. The white dot is the ship.
The science
Sound speed. In seawater c rises with temperature and pressure. Near the surface the warm water makes c large; down the thermocline it falls; below about 1 km the pressure term wins and it rises again. The minimum is the SOFAR channel axis. The sim uses Munk's canonical profile c(z) = c1 [1 + ε (η - 1 + e-η)], η = 2 (z - z1) / B, B = 1300 m, ε = 0.00737, c1 = 1500 m/s, and a warm-layer profile c = cd + (cs - cd) e-z/h + 0.0167 z.
Rays. With angle θ from the horizontal, dr/ds = cos θ, dz/ds = sin θ, dθ/ds = -(cos θ / c) dc/dz, integrated with 4th-order Runge-Kutta. Snell's law cos θ / c = const is conserved along each ray; the sim reports the drift. Surface and seabed reflect, with a loss in dB per bounce (the seabed is a lossy mirror, not a layered sediment model).
Loudness. The source radiates 1 W isotropically; a ray launched in dθ0 carries cos θ0 dθ0 / 2. Intensity at (r, z) is the carried power per ring area, I = Σ w / (2 π r Δz), and TL = 10 log10[(1/4π) / I] referenced to 1 m (spherical spreading gives 20 log10 r; a trapped channel gives about 10 log10 r). Received level is RL = SL - TL - α r with Thorp absorption α(f); a call is heard where RL exceeds the noise level (taken as 70 dB re 1 µPa, illustrative).
What to look for. A source on the axis stays trapped: rays oscillate about the axis and the sound travels thousands of kilometres. A source near the surface sends rays down that turn back up at a convergence zone about 50-65 km away (the bright bands), with shadow zones in between. A shallow warm layer bends sound down into the seabed: short range and a shadow just below the surface.
Honest simplifications. Geometrical (ray) acoustics: no diffraction, so caustics are infinitely bright in theory and noisy here; low frequencies below about 20 Hz do not obey ray theory in a 1 km channel. Range-independent ocean (no fronts or eddies), no internal waves, flat seabed, no sea-state scattering. The ray bundle gives an intensity estimate, so the loss map is grainy where few rays pass. Numbers (source level, noise, bounce loss) are typical illustrative values, not those of a particular animal. The 3D view is vertically exaggerated and the animals and ship are not to scale. Based on W. H. Munk (1974) and standard texts (Jensen et al., Computational Ocean Acoustics).