The core idea
A specular reflection off a wall is equivalent to a direct ray from an “image source” behind the wall. To find a first-order reflection point, mirror the source across the wall, draw a line to the listener — the intersection is the reflection point. Physics becomes analytic geometry: in a rectangular room, mirroring across all six surfaces gives closed-form first reflections.
Higher orders: mirroring recursively
A second-order reflection (wall → wall) is the image of an image: enumerate wall sequences, mirror the source successively, then back-trace from the listener to recover each bounce. The image count explodes with order (roughly 6·5ⁿ⁻¹ for a rectangular room), so real systems compute orders 1–3 and hand the tail to statistical models.
The energy of each path
The method gives each path’s geometry — length and wall sequence — and its energy decays by two rules: multiply by (1−α) per reflection (α is the wall’s absorption coefficient, per frequency band), and by 1/r² for spherical spreading. Stack every path’s impulse at its arrival time and energy, and you have a synthetic room impulse response.
Its limits
ISM is geometric acoustics: sound as light. At low frequencies, wavelengths rival room dimensions, diffraction and modes dominate, and the ray assumption fails — so ISM handles early reflections while modes are computed separately (see room modes). Non-rectangular rooms require per-segment mirroring with validation, and concave corners spawn physically impossible “ghost reflections” that must be filtered out.
What Acouvero does with it
Everything that needs to know where reflections land: first-reflection-point mapping (where panels should go), flutter-echo detection between parallel walls, and multi-order path analysis (orders 1–3, following pyroomacoustics’ recursion). It doesn’t replace measurement — the sweep tells you what the room is; ISM explains why.