Real-time 2.5 dimension outdoor acoustic simulation
GeoNoise implements ISO 9613-based outdoor sound propagation with coherent phasor summation for multi-path interference modeling. All calculations are performed per octave band (63 Hz – 16 kHz). A binaural listener with analytical HRTF (head-related transfer function) provides per-ear spectral readout — ITD and ILD — for spatial hearing analysis. Press L to add a binaural listener.
Point source spherical spreading models how sound energy spreads over an expanding sphere.
where d = 3D distance (m), 10·log₁₀(4π) ≈ 10.99 dB for full spherical radiation.
Derivation: Power flux Φ = W/(4πr²), therefore Lp = LW - 10·log₁₀(4πr²)
Cylindrical spreading (line sources): Uses 2π instead of 4π, as energy spreads over a cylinder's circumference rather than a sphere's surface area. Formula: Adiv = 10·log₁₀(d) + 10·log₁₀(2π), where 10·log₁₀(2π) ≈ 7.98 dB.
Air absorbs sound energy through viscous, thermal, and molecular relaxation processes.
ISO 9613-1: Calculates α from temperature, humidity, and pressure.
The coefficient $\alpha$ combines classical losses with N₂ and O₂ molecular relaxation.
Simple: Uses the lookup table below at standard conditions (20°C, 70% RH).
| 63 Hz | 125 Hz | 250 Hz | 500 Hz | 1 kHz | 2 kHz | 4 kHz | 8 kHz | 16 kHz |
|---|---|---|---|---|---|---|---|---|
| 0.1 | 0.4 | 1.0 | 1.9 | 3.7 | 9.7 | 33 | 117 | 392 |
Values in dB/km
Ground effect accounts for sound interaction with the ground surface. GeoNoise offers two models:
ISO 9613-2 Table 3 (Standard Compliant):
Divides the path into source, middle, and receiver regions. Each region uses height-dependent exponential functions per octave band.
S ──────────────────────────────────────── R │←── As ──→│←────── Am ────────→│←── Ar ──→│ │ source │ middle │ receiver │ └──────────┴────────────────────┴──────────┘
As, Ar per band (use h=hs or hr, dp=min(30h, d)):
| Band | Formula |
|---|---|
| 63 Hz | $A = -1.5$ (fixed) |
| 125 Hz | $A = -1.5 + G \cdot a'(h, d_p)$ |
| 250 Hz | $A = -1.5 + G \cdot b'(h, d_p)$ |
| 500 Hz | $A = -1.5 + G \cdot c'(h, d_p)$ |
| 1 kHz | $A = -1.5 + G \cdot d'(h, d_p)$ |
| 2–8 kHz | $A = -1.5(1-G)$ |
where the Table 3 functions are:
Am: 63 Hz → $-3q$ · 125–8 kHz → $-3q(1-G_m)$ · where $q = \max(0, 1 - 30(h_s+h_r)/d_p)$
Two-Ray Phasor Model (Physically Accurate):
Models coherent interference between direct and ground-reflected paths:
Γ via Delany-Bazley impedance: Zn = 1 + 9.08(f/σ)-0.75 − j·11.9(f/σ)-0.73. Captures constructive/destructive interference (ground dip).
Model Comparison:
| Aspect | ISO 9613-2 | Two-Ray Phasor |
|---|---|---|
| Standards | Compliant | Physics-based |
| Frequency | Exponential h/d functions | Wavelength-based phase |
| Interference | Empirical (Table 3) | Full wave interference |
| Ground dip | Not modeled | Naturally captured |
ISO 9613-2:2024 Corrections:
The 2024 revision adds Kgeo geometric correction (§7.3) to scale Agr down at short distances where source and receiver regions overlap, and barrier ground cancellation (§7.4) to zero positive Agr for barrier-blocked paths. See the ISO 9613-2:2024 revisions section below.
Corrects the plane-wave Fresnel coefficient for spherical wave spreading near the ground. Transitions from Q → 1 (near-field) to Q → Γplane (far-field).
Numerical distance (complex):
Boundary loss factor via Faddeeva function:
wofz computed via Weideman (1994) N=32 rational approximation — O(1), stable across the entire complex plane. No Taylor series or region switching.
Note: The grid engine uses a simplified asymptotic approximation (valid for |w| ≥ 4). The full Weideman N=32 computation is used in the probe engine only.
Limits: ν → 0 ⇒ F → 1 ⇒ Q → 1 (total reflection) · |ν| → ∞ ⇒ F → 0 ⇒ Q → Γplane · Passive surfaces: |Q| ≤ 1 enforced.
Sound diffracts over and around barriers. Attenuation depends on the path difference δ.
Over-Top Diffraction (vertical):
S R
\ /
\ δ = A+B-d /
A ──→ ● ←── B
│
═══════╧══════ Barrier
Insertion loss:
Side Diffraction (horizontal):
Sound can also bend around the ends of finite-length barriers:
════════════════ Barrier (top view)
● ●
Left Right
Edge Edge
↑ ↑
S ─┘ └─ R
(around left) (around right)
Path difference for side: $\delta = |S \to Edge| + |Edge \to R| - |S \to R|$
The path with minimum δ (over-top or around sides) determines the effective attenuation.
Side Diffraction Toggle:
| Mode | Behavior |
|---|---|
| Off | ISO 9613-2 infinite barrier assumption. Only over-top diffraction. |
| Auto | Enable side diffraction for barriers < 50m (recommended default). |
| On | Always compute side diffraction for all barriers. |
Low frequencies diffract easily → less attenuation. High frequencies are blocked effectively.
ISO 9613-2:2024 Alternative:
The 2024 revision replaces the Maekawa formula with Dz = −10·log₁₀(1 + 2 + C₂/λ·C₃·δ·Kmet), which includes explicit meteorological correction for wind/temperature gradient effects on barrier effectiveness. See the ISO 9613-2:2024 revisions section below.
The 2024 revision (ISO 9613-2:2024 — "Engineering method") supersedes ISO 9613-2:1996 with three corrections to the ground effect and barrier diffraction models. All three are optional in GeoNoise — select the ISO 9613-2:2024 calculation profile or enable individually.
1. Kgeo Geometric Correction (§7.3)
At short source–receiver distances, the three-region ground model (As + Ar + Am) becomes geometrically invalid because source and receiver regions overlap. Kgeo reduces Agr in this regime:
where dp = horizontal distance [m], hs = source height [m], hr = receiver height [m]. Applied as: Agr,2024 = Kgeo × Agr.
Behavior: Kgeo → 1.0 for dp >> hs + hr (1996 and 2024 agree at distance). Significant only below ~20 m. Dimensionless: [m²]/[m²].
| dp | hs | hr | Kgeo | Effect |
|---|---|---|---|---|
| 100 m | 1 m | 1.5 m | 0.999 | <0.1% — negligible |
| 20 m | 1 m | 1.5 m | 0.985 | ~2% reduction |
| 5 m | 1 m | 1.5 m | 0.808 | ~19% reduction |
2. Barrier Ground-Effect Cancellation (§7.4)
When a barrier blocks the direct path, the ground reflection geometry is disrupted. The 2024 revision cancels positive ground attenuation for blocked paths:
This is the conservative choice — it predicts higher noise levels at the receiver. Ground boosts (Agr < 0 from constructive interference) are preserved.
Algebraically: the standard writes Abar = Dz − Agr. In the total sum Adiv + Aatm + Agr + Abar, the Agr terms cancel. GeoNoise implements this equivalently by setting Agr = 0.
3. Revised Barrier Dz + Kmet (§7.4)
Replaces the 1996 Maekawa formula with a revised insertion loss that includes explicit meteorological correction:
Condition: δ > zmin. If δ ≤ zmin, Dz = 0.
where C2 = 20 (thin/single-edge) or 40 (thick/building), C3 = 1 (single diffraction), λ = c/f [m], δ = path difference [m].
Meteorological correction:
where dss, dsr = source/receiver to diffraction edge [m], e = edge separation [m] (0 for thin barriers), d = total distance [m]. For lateral (horizontal) diffraction: Kmet = 1.
Why revised: The 1996 Kmet over-corrected at large distances with low barriers, predicting near-zero barrier attenuation that contradicted field measurements. The 2024 formula uses (δ − zmin) in the denominator and max/min ordering to prevent this.
Dz produces ~2–3 dB less attenuation than 1996 Maekawa for the same geometry, consistent with the revision intent. Caps: 20 dB (thin), 25 dB (thick).
Dimensional Verification:
Reflections from building walls computed using virtual image sources:
Wall
│
S ──────●────── R
\ │ /
\ │ /
S' │ (S' = mirror of S across wall)
Reflections are validated for line-of-sight and checked against other buildings.
Multiple paths from the same source are summed with phase (capturing interference):
This captures:
Multiple sources are summed energetically (incoherent):
GeoNoise includes a library of 40 pre-defined noise source templates based on standardized emission data from ASHRAE Handbook, BS 5228, and FHWA RCNM.
Categories:
Data sourced from ASHRAE Handbook, BS 5228, and FHWA RCNM.
Known Limitations:
ISO 9613-2:2024 Support:
Numerical Guards:
Map Integration:
GeoNoise uses two calculation engines optimized for different use cases. Understanding when each is applied helps interpret results correctly.
┌─────────────────────────────────────────────────────────────────┐ │ GeoNoise Calculation Flow │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────────┐ ┌──────────────┐ │ │ │ Sources │ │ Receivers │ │ │ │ (with Lw/f) │ │ Grids │ │ │ └──────┬───────┘ │ Probes │ │ │ │ └──────┬───────┘ │ │ ▼ │ │ │ ┌──────────────────────────────────────────────────────────────┤ │ │ PATH FINDING │ │ ├──────────────────────────────────────────────────────────────┤ │ │ │ │ │ ┌─────────────────────┐ ┌─────────────────────────────┐ │ │ │ │ GRID ENGINE │ │ PROBE ENGINE │ │ │ │ │ │ │ │ │ │ │ │ • Single path │ │ • Ray tracing (multi-path) │ │ │ │ │ • Direct + best │ │ • Ground reflection rays │ │ │ │ │ diffraction │ │ • Wall reflection rays │ │ │ │ │ • A_gr handles │ │ • Side diffraction paths │ │ │ │ │ ground effect │ │ • Used for: Probes only │ │ │ │ └─────────┬───────────┘ └─────────────┬───────────────┘ │ │ │ │ │ │ │ └─────────────┼──────────────────────────────┼─────────────────┤ │ ▼ ▼ │ │ ┌──────────────────────────────────────────────────────────────┤ │ │ ATTENUATION (ISO 9613-2) │ │ ├──────────────────────────────────────────────────────────────┤ │ │ For each path, apply per-band: │ │ │ • A_div (geometric spreading) │ │ │ • A_atm (atmospheric absorption) │ │ │ • A_gr (ground effect — ISO or Two-Ray phasor) │ │ │ • A_bar (barrier diffraction if blocked) │ │ └──────────────────────────────────────────────────────────────┤ │ │ │ │ ▼ │ │ ┌──────────────────────────────────────────────────────────────┤ │ │ SUMMATION │ │ ├──────────────────────────────────────────────────────────────┤ │ │ │ │ │ ┌─────────────────────┐ ┌─────────────────────────────┐ │ │ │ │ INCOHERENT │ │ COHERENT (Phasor) │ │ │ │ │ │ │ │ │ │ │ │ L = 10·log₁₀(Σ10^ │ │ p = Σ pᵢ·e^(jφᵢ) │ │ │ │ │ (Lᵢ/10)) │ │ L = 20·log₁₀|p| │ │ │ │ │ │ │ │ │ │ │ │ • Power summation │ │ • Phase-aware interference │ │ │ │ │ • Fast, stable │ │ • Captures nulls & peaks │ │ │ │ │ • Used by: Grids │ │ • Used by: Probes │ │ │ │ └─────────────────────┘ └─────────────────────────────┘ │ │ │ │ │ └──────────────────────────────────────────────────────────────┘ └─────────────────────────────────────────────────────────────────┘
| Aspect | Grid Engine | Probe Engine |
|---|---|---|
| Path count | 1 per source | Multiple (ray traced) |
| Ground effect | ISO or Two-Ray phasor | Physical Impedance or ISO 9613-2 |
| Wall reflections | No | Yes (first-order) |
| Summation | Incoherent (power) | Coherent (phasor) |
| Ground interference | With Two-Ray only | Always (if enabled) |
| Multi-path interference | No (walls, etc.) | Yes (walls, diffraction) |
| Ground dip | With Two-Ray enabled | Naturally emerges |
| Performance | Fast (grid-parallel) | Slower (per-probe) |
| Output | Heatmap, single dB value | Frequency response curve |
Grids/Receivers need to compute thousands of points quickly for heat maps. Using multi-path ray tracing everywhere would be prohibitively slow. The ISO 9613-2 single-path approach is designed for this: it's an engineering standard optimized for outdoor prediction across large areas with acceptable accuracy.
Probes are point measurements where you want detailed frequency response. Ray tracing + coherent summation reveals interference effects invisible to incoherent methods: the ground dip phenomenon, wall reflection comb filtering, and barrier edge diffraction patterns.
Both engines share the same ISO 9613-2 attenuation functions for Adiv, Aatm, Agr, and Abar. The difference is in how many paths are traced and how they're combined at the receiver.
GeoNoise's diffraction models are physically defensible for the most common use cases (single thin barriers, free-field, audio frequencies, audio screens up to ~15 m) but contain four documented approximations. Each is enumerated below with the drift bound, what it means for your results, and the planned closure.
Sound diffracting over two or more obstacles in series (e.g. a noise wall behind a hedge) is summed as independent paths (Epstein-Peterson coherent phasor sum in the probe engine; max(δ) heuristic in the grid engine). The strict acoustic prescription — ISO 9613-2:1996/2024 §7.4 multiple-screen treatment with CNOSSOS-EU equivalent-screen reduction — is not yet implemented. The underlying wave-diffraction theory of multi-edge cascade was originally developed for RF / microwave propagation (Deygout 1966, ITU-R P.526) and adapted in acoustic research; see PRIMARY REFERENCES below.
Drift bound: ~5–10 dB at low frequencies (250 Hz–1 kHz) for thrice-cascaded geometries. Single-barrier scenes are unaffected.
Closure: A future release will surface a user-toggleable “Diffraction model” selector in Advanced Settings. Default stays Maekawa single-edge per ISO 9613-2 §7.4. Opt-in modes target ISO 9613-2 §7.4 multiple-screen / CNOSSOS-EU equivalent-screen for the probe engine; full ISO 9613-2:2024 strict (with C₃(e/λ) coupling) is gated as Pro and requires building roof-depth input. The Deygout (RF) cascade is preserved as a research / cross-validation option.
The thick-barrier formula A_bar = 10·log₁₀(3 + 40·N) capped at 25 dB
is not a direct ISO 9613-2:1996 §7.4 thick-obstacle citation —
strict ISO requires the building roof depth e as input and computes
C₃ = (1 + (5λ/e)²) / (⅓ + (5λ/e)²) per band. The current
implementation bakes a single e ≈ 3 m (the 1-kHz reference) into the
constant 40 and ships it for all bands.
Drift bound: within ±2 dB of strict ISO for typical buildings (3–10 m roof depth, 250 Hz–4 kHz). Worst-case under-prediction at 4 kHz with 10 m roof: −1.7 dB. Still well inside the ISO 9613-2:1996 §9 stated ±3 dB(A) overall prediction accuracy, which is itself inside the class-1 SLM tolerance per IEC 61672-1:2013 §5 (±1.5 dB at 1 kHz). End users measuring with class-1 SLMs cannot resolve the gap.
Closure: v0.11.0 surfaces the model knob; full ISO 9613-2:2024 Dz with C₃(e/λ) per band is gated behind a Pro “ISO 9613-2 strict” option that requires building roof depth as input (deferred to v0.12+).
The grid (heatmap) compute backend selects the worst single-edge
δ over all candidate barriers between source and receiver, then runs
that single δ through barrierAttenuation(). This is the classic
max(δ) heuristic — it does not implement the
ISO 9613-2 §7.4 multiple-screen treatment (which would combine
the multiple shadowing edges into an equivalent screen, per the CNOSSOS-EU
equivalent-screen reduction).
Drift bound: probe and grid engines disagree by 1–4 dB for single-barrier scenes and can disagree by 5–8 dB for cascaded scenes. Heatmap users see the grid result; probe users see the phasor-sum result — probe is the recommended ground truth for compound-barrier compliance work today.
Closure: A future release ports the ISO 9613-2 §7.4 multiple-screen / CNOSSOS-EU equivalent-screen treatment into the grid backend (CPU + WGSL shader).
The probe engine ships two byte-identical functions:
maekawaDiffraction() and singleEdgeDiffraction(). Both
implement A_bar = 10·log₁₀(3 + 20·N) capped at 20 dB. Production
callers were swapped to maekawaDiffraction on 2026-04-29;
singleEdgeDiffraction is retained as a deprecation seam for test
fixtures and downstream consumers.
Drift bound: none — functions are bit-identical and produce identical numerical output for all inputs.
Closure: v0.11.0 may delete after surveying any downstream consumers.
The four approximations above derive from the following published literature — anyone implementing or verifying GeoNoise can consult these primary sources directly:
Acoustic standards (the audience for ISO 9613-2 compliance work):
• ISO 9613-2:1996 §7.4 — outdoor sound propagation, barrier diffraction including
the multiple-screen treatment for cascaded edges.
• ISO 9613-2:2024 §7.4 — revised Dz formulation with C₃(e/λ)
thick-barrier coupling and the Kmet meteorological correction.
• CNOSSOS-EU — Commission Directive (EU) 2015/996, Annex II Part VI (“Common Noise
Assessment Methods in Europe”) — equivalent-screen reduction for multiple barriers
along a propagation path.
• ISO/TR 17534-3:2015 — quality assurance test cases for ISO 9613-2 / CNOSSOS-EU
implementations including multi-barrier geometries.
Acoustic chart-fit lineage (the formulas in our code):
• Maekawa, Z. (1968). “Noise reduction by screens.”
Applied Acoustics 1(3), 157–173.
• Kurze, U. J. & Anderson, G. S. (1971). “Sound attenuation by barriers.”
Applied Acoustics 4(1), 35–53 — closed-form fit to the
Maekawa chart.
• Pierce, A. D. (1974). “Diffraction of sound around corners and over wide
barriers.” JASA 55(5), 941–955 — coherent-sum theory
used in the probe-engine phasor summation.
• Salomons, E. M. (2001). Computational Atmospheric Acoustics.
Springer — multi-edge geometric extensions for outdoor propagation.
Underlying wave-diffraction theory (originally developed for RF / microwave
propagation; cited for cross-validation, not as the audience-expected acoustic
standard):
• Deygout, J. (1966). “Multiple knife-edge diffraction of microwaves.”
IEEE Trans. Antennas Propag. AP-14(4), 480–489.
• Bullington, K. (1947). “Radio propagation at frequencies above 30 megacycles.”
Proc. IRE 35(10), 1122–1136.
• Epstein, J. & Peterson, D. W. (1953). “An experimental study of wave
propagation at 850 Mc.” Proc. IRE 41(5), 595–611.
• ITU-R P.526-15 (2019) §4.5 — Bullington / Epstein-Peterson / Deygout / Vogler
comparison + worked examples.
Measurement-uncertainty context:
• ISO 9613-2:1996 §9 — stated ±3 dB(A) prediction accuracy for d < 1000 m.
• IEC 61672-1:2013 §5 — class-1 sound-level-meter tolerance ±1.5 dB at 1 kHz.
• ISO 1996-2:2017 Annex A — outdoor measurement uncertainty ±2–3 dB(A).
Enter your Mapbox access token to enable map overlays