Room acoustics is ceasing to be a “nice to have” and is becoming a procurement requirement. The Italian Minimum Environmental Criteria for construction set thresholds on reverberation and speech intelligibility that you can no longer merely promise: they must be demonstrated. And here clients discover something awkward: commercial acoustic simulators — Odeon, CATT-Acoustic, the more recent Treble — answer one question well, but it is the wrong question for whoever is designing.
The forward problem, and the two steps it leaves open
All these tools solve the forward problem: given the room and given the materials, they predict how it will sound. That is very useful for checking a design that already exists. But a designer starts from the other end: they have a target (a reverberation time, a clarity threshold) and must find the surface treatment that reaches it. The forward, on its own, leaves you guessing: change a material, re-run, look, repeat.
Two steps stay uncovered. The first is to design in reverse: from the specification to the treatment, ideally knowing which surface is worth touching and not just how many square metres of absorber to throw into the room. The second is subtler still: knowing whether the data I have is enough to estimate what I want to estimate. I measure a room, I try to recover the materials’ absorption coefficients — but does that data really contain the information, or am I returning a number that won’t survive serious scrutiny?
RaySound: a hybrid, because no single method covers everything
RaySound is the simulation engine ST-LINE develops in-house to tackle both steps. The first structural choice is that it is hybrid, and not for taste: no single method covers a room’s whole spectrum efficiently.
At low frequencies the field is modal — a few well-separated resonances — and must be handled with a true wave solver: RaySound uses a Discontinuous Galerkin method. At high frequencies the field becomes diffuse, the density of resonances explodes and a geometric approach is preferable, i.e. a GPU ray-tracer. Between the two regimes there is a transition — the Schroeder frequency — and RaySound crosses it with a crossover, confined between 250 and 500 Hz, built to conserve energy: no holes and no double-counting at the junction. A detail that makes the difference in inverse design: the same material model feeds both branches, so the problem of “recovering the materials from the data” is well-posed and does not split into two disconnected descriptions.
What arbitrates the numbers: the equations, not a second program
When an engine states numbers, what remains to be established is what controls them. The answer heard most often is “another piece of software”, and it does not hold up well. Another implementation has its own errors, its own discretisation choices and its own author: at best it is a second opinion, and when the two disagree it does not even say which of them is wrong. Arbitration needs something that does not depend on any implementation. In RaySound’s forward that something is three things, in this order.
The closed-form limits. The diffuse reverberation time does not come out of the ray-tracer but from Eyring, re-weighted by the fraction of bounces the field makes on each surface rather than by area. What makes the choice defensible is the anchoring: when the hit weights degenerate into the area fractions, the formula degenerates exactly into classic Eyring, at machine precision. It is not a new model with an error of its own to justify — it is Eyring re-weighted, and where it departs from Eyring it is because geometry matters.
The identities that have to close. The crossover between the two branches uses cos² weights summing to unity, confined to the 250–500 Hz band: energy conservation at the seam is a constructive property, verified as an identity rather than measured as an agreement. The same holds for the inverse-design gradients, computed by complex-step and by the adjoint state — two independent routes to the same derivative, agreeing to within 8·10⁻¹⁰. And the boundary between the branches is not a knob to turn: it is set by the complete Weyl law through modal overlap, with the classic M ≳ 3 criterion.
The measurement. At the bottom sits the experimental datum, and there is no negotiating with it: four real rooms, surveyed geometry, declared materials, no parameter adjusted to move the curve closer.
The FDTD fork did have a role, and it is a more modest role than the one we attributed to it here: during development it served as an independent implementation of a different numerical scheme — finite differences on a grid, rather than discontinuous Galerkin on a mesh — against which to cross-check the wave branch’s results. A cross-check, not an arbitration. And it is over: the fork was removed from the pipeline in June 2026, and today the only wave-based forward is dg-acoustics.
It stays public, under the MIT licence and with attribution to Brian Hamilton (University of Edinburgh, 2021), because the work we did under its hood is worth having out there: builds for the card’s actual architecture, real multi-GPU, batched source injection, numerical scheme untouched — given the same input it returns the reference output at machine precision. The physics is Hamilton’s; we made the computation practical on modern hardware. Code, licence and attribution are on the Open Lab card, as they should be.
The numbers, with the right quotation marks
The forward was validated on four real rooms from the public BRAS benchmark of TU Berlin — a dataset of measured rooms, not a laboratory case built to order. The measured reverberation time is reproduced to within 1.1 % and 1.3 %, in the core band, and the C50 clarity spatial pattern correlates with the measurement at +0.89 / +0.68. That first figure is the analytical T60; the independent prediction, the ray-tracer’s, sits at 17.1 % and 11.5 % over the same bands.
These numbers need precision, because it is easy to claim something bigger than the truth. The 1.1 % is not a blind estimate of the materials and is not a calibration: the BRAS coefficients are already known, and that comparison verifies that the pipeline — geometry, coefficients, descriptors — is coherent at known materials, without recalibration. It is a deliberately modest claim: “given the material, the engine produces the right descriptor”, not “we guessed the materials to within 1 %”. Anyone working in due diligence recognises the difference at once, and it is the difference that holds.
The real differentiator, in any case, is not the forward: prediction is the settled part of the domain. It is what comes after. Position-aware inverse design moves the result by up to 12 % by choosing which surface to treat. And the identifiability diagnosis: on one of the BRAS rooms the engine detected that the data did not allow recovering all the materials — two “blind directions” — and said so, instead of returning a number that cannot be defended. For a consultant, knowing beforehand that a quantity is not estimable is worth as much as the estimate itself.
What it means, in practice
This is not an off-the-shelf product: RaySound is a proprietary engine, a research project, not something you download. It is the kind of competence ST-LINE brings into a room-acoustics consultancy. The difference, for a client, is between a report that says “the reverberation will be 0.7 seconds” and one that says “it will be 0.7 seconds, here is which wall to treat to get there, and here is where your data isn’t enough — and I’m telling you to your face”. In procurement, the second is a defensible number.
For those who want the technical detail — the two engines, the band seam, the validity boundaries and the room-by-room BRAS validation — there is the RaySound wiki. The fork’s numerical scheme, with equations and stencils, is in its own technical note.