Arau-Puchades adds 4 * airAttenuation([freq])[0] * V — raw dB/m times volume — and calls airAttenuation with default 20 °C / 40 % RH, ignoring this.temperature / this.humidity. Sabine/Eyring at least convert (wrongly, # companion). Arau mixes dB/m with m² in the denominator.
Found on varese-dev. arau-puchades-air-absorption.spec.ts checks that 4*m*V is the shape of the term with a hand-waved m = 0.01; it never reads index.ts.
Cause
const airabsterm = 4 * airAttenuation([freq])[0] * v; // dB/m · m³
const rt =
((K*v) / (-A * Math.log(1-αx[f]) + airabsterm)) ** (Ax/A) *
((K*v) / (-A * Math.log(1-αy[f]) + airabsterm)) ** (Ay/A) *
((K*v) / (-A * Math.log(1-αz[f]) + airabsterm)) ** (Az/A);
-A ln(1-α) is m² (sabins). 4 α_dB V is m²·dB. At 4 kHz, α_dB ≈ 0.02 m⁻¹·dB, so 4αV ≈ 0.08 V — about 4.3× the correct 4mV (m = α_dB / 4.343). High-frequency Arau RT is too short vs Sabine/Eyring on the same room (and those are already too long from the /20).
The three axial factors each include the full 4mV, then geometric-mean. For a cube that is equivalent to adding it once; for a long hall it is not the usual “add 4mV to the total equivalent absorption once.”
Projection uses local surface.triangles + orthographic P, not matrixWorld. Rotated rooms shear the axial areas.
Suggested fix
Share one mValues[i] (intensity Np/m, temp/RH) with Sabine/Eyring. Add 4mV once to each axial denominator, or document the geometric-mean choice. Test a 10×10×10 m box, α = 0.2, air off: Arau = Eyring = Sabine (uniform α, cube). Air on: all three drop, Arau not 2× more than Sabine.
Acceptance criteria
Arau-Puchades adds
4 * airAttenuation([freq])[0] * V— raw dB/m times volume — and callsairAttenuationwith default 20 °C / 40 % RH, ignoringthis.temperature/this.humidity. Sabine/Eyring at least convert (wrongly, # companion). Arau mixes dB/m with m² in the denominator.Found on
varese-dev.arau-puchades-air-absorption.spec.tschecks that4*m*Vis the shape of the term with a hand-wavedm = 0.01; it never readsindex.ts.Cause
-A ln(1-α)is m² (sabins).4 α_dB Vis m²·dB. At 4 kHz, α_dB ≈ 0.02 m⁻¹·dB, so4αV ≈ 0.08 V— about 4.3× the correct4mV(m = α_dB / 4.343). High-frequency Arau RT is too short vs Sabine/Eyring on the same room (and those are already too long from the /20).The three axial factors each include the full
4mV, then geometric-mean. For a cube that is equivalent to adding it once; for a long hall it is not the usual “add 4mV to the total equivalent absorption once.”Projection uses local
surface.triangles+ orthographicP, notmatrixWorld. Rotated rooms shear the axial areas.Suggested fix
Share one
mValues[i](intensity Np/m, temp/RH) with Sabine/Eyring. Add4mVonce to each axial denominator, or document the geometric-mean choice. Test a 10×10×10 m box, α = 0.2, air off: Arau = Eyring = Sabine (uniform α, cube). Air on: all three drop, Arau not 2× more than Sabine.Acceptance criteria
airAttenuationis called withthis.temperature, this.humidity-A ln(1-α))|T_Arau − T_Eyring| / T_Eyring < 1 %