r̂ points source → receiver. Exact for a moving source; first-order in receiver motion (error ≤1% at M ≤ 0.1).
GeoNoise graduates — four new tools for facades
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 (optional propagation setting): applies the line-source divergence law to all sources — 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. All GeoNoise sources are point emitters; this setting changes only the divergence law.
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 (20°C, 50% RH baseline) with temperature/humidity correction factors applied.
| 63 Hz | 125 Hz | 250 Hz | 500 Hz | 1 kHz | 2 kHz | 4 kHz | 8 kHz | 16 kHz |
|---|---|---|---|---|---|---|---|---|
| 0.1 | 0.3 | 1.0 | 2.0 | 4.0 | 8.0 | 20 | 60 | 200 |
Values in dB/km — the engine's approximation table; the full ISO 9613-1 calculation is the "ISO 9613-1" mode above
Ground effect accounts for sound interaction with the ground surface. GeoNoise offers two models:
ISO 9613-2 §7.3.1 Table 3 (ground effect):
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 = projected source–receiver distance):
| 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 (Miki extension for f/σ ≥ 1; the grid engine treats f/σ < 0.01 as near-rigid, Zn = 100 — the operative branch for low bands over soft/mixed ground). Captures constructive/destructive interference (ground dip).
Model Comparison:
| Aspect | ISO 9613-2 | Two-Ray Phasor |
|---|---|---|
| Standards | ISO 9613-2 methods | 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₁₀(3 + 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 — followed by feature-scope caveats that sit outside the diffraction path.
Sound diffracting over two or more obstacles in series (e.g. a noise wall behind a hedge) is summed as independent single-edge paths, coherently (Epstein-Peterson-style, not the sequential screen-to-screen construction, 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, and comparable to the class-1 SLM tolerance per IEC 61672-1:2013 §5 (±1.5 dB at 1 kHz). Note that such approximation errors add to the overall prediction uncertainty rather than being absorbed by the ±3 dB envelope.
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.
A facade probe samples the incident sound field by default — the
reference condition of
ISO 1996-2:2017 §9.2.1.2 b), location 1. The “+3 dB facade
reflection (approx.)” toggle switches the reading to location 3 of the same
clause: a microphone 0,5 m to 2 m in front of the reflecting surface,
whose correction to free field is 3 dB when the Annex B.5 criteria are met. The
offset is applied at display time only (10·log₁₀(2) ≈ 3,01 dB,
energetic — not the coherent +6 dB); the stored curve is always raw incident level.
The probe's default standoff is 2 m, inside the standard's band — other offsets
remain an exact energetic doubling but no longer map to the standard's measurement
position.
Drift bound: within the model the +3 dB is exact. Against real
facade measurements it is an approximation, and the deviations are signed and
named in the standard: in dense building density / canyon streets the true facade
gain can be much higher than 3 dB (§9.2.1.2 NOTE 3); at
near-grazing incidence the standoff position is not recommended;
the Annex B validity data (Table B.1, u_loc = 0,4 dB all-angle /
1,0 dB grazing) cover A-weighted noise from moving traffic only;
for stationary sources and low frequencies Annex B.2 recommends the
flush-mounted 5,7 dB convention instead of the 3 dB standoff — and
GeoNoise's industrial sources are stationary; and per §9.3.2.8 NOTE 1 the 0,5–2 m
standoff position is undefined for low-frequency measurement, so
per-band facade values at 63 Hz carry the weakest support.
Closure: none needed for the default — the incident field is the
standard's own reference condition and carries no correction. If comparison
against measured facade levels becomes a workflow, the natural extension is a
selectable flush-mounted 5,7 dB mode (Annex B.4) alongside the
3 dB standoff. Distilled clause notes:
docs/references/ISO_1996_2_2017_notes.md.
A facade probe follows its host building live: it stores the host's id plus the polygon edge indices it spans, and re-derives its sample line from the host's current geometry on every move, rotate and resize. Indices that fall out of range are caught — the probe detaches, renders distinctly, and its cached result is invalidated. An index that stays in range but comes to point at a different edge (a vertex inserted or deleted mid-polygon) would instead re-attach the probe to the wrong facade silently.
Drift bound: unreachable through the UI as of 2026-07-29 — no in-app operation inserts or deletes a building vertex, so indices can only shift by hand-editing a saved scene file. Impact if reached: the curve and stats describe a different facade than the one drawn.
Closure: store an edge fingerprint (the endpoint coordinates) beside the indices and validate it on re-derive, detaching on mismatch. Deferred until a vertex-editing operation actually ships — it is the introduction of that operation, not the probe, that opens the hole.
The four diffraction 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