Differentiable Geometric Acoustic Path Tracing

using Time-Resolved Path Replay Backpropagation

Ugo Finnendahl\(^{\dagger}\), Markus Worchel\(^{\dagger}\), Tobias Jüterbock, Daniel Wujecki,
Fabian Brinkmann, Stefan Weinzierl, Marc Alexa

Computer Graphics Group

Audio Communication Group

\(^{\dagger}\): Equal contribution

Differentiable (Geometric Acoustic) Rendering

Light

(acoustic) scene parameter: \(\pi\)

\[\text{Loss}\]

\[[\]

\[]\]

differentiable rendering

inverse rendering

image: \(I\)

gradient step

Input

Output

objective function

Sound

differentiable simulation

spectrogram: \(S\)

inverse simulation

gradient step

\[\text{Loss}\]

\[\frac{\partial}{\partial \pi}\text{Loss}(S)\]

\[[\]

\[]\]

Energy Path Tracing

wavelength

time

energy

wavelength

energy

time

energy

\(\text{Histogram}(t)\)

(R,G,B)

per ray

independent

independent

dimensions

spatial (2D)

time (1D)

wavelength (1D)

pixels

no pixels

Rendering Equations

<sodipodi id="namedview1" pagecolor="#ffffff" bordercolor="#000000" borderopacity="0.25" inkscape ="2" inkscape ="0.0" inkscape ="0" inkscape ="#d1d1d1" inkscape ="mm" inkscape ="5.1279001" inkscape ="375.78735" inkscape ="383.97784" inkscape ="1920" inkscape ="1148" inkscape ="0" inkscape ="0" inkscape ="1" inkscape ="layer1" />

\(E_{\out}\)

\(E_{\inp}\frag{40}{ = E_{\out}^{\text{next}}}\)

\(f\)

\(E_{\emit}\)

\[\htmlId{leq}{\fragclass{1}{custom gray}{\fragclass{65}{bluebox box custom}{E_{\out}} = } \fragclass{3}{custom gray}{\fragclass{60}{redbox box custom}{E_{\emit}} +} \fragclass{7}{custom gray}{\int_{S}}\fragclass{6}{custom gray}{\fragclass{61}{redbox box custom}{f}}\,\, \fragclass{5}{custom gray}{\fragclass{65}{bluebox box custom}{E_{\del{45}{\inp}\add{45}{\out}}^{\add{45}{\text{next}}}}} \, \fragclass{7}{custom gray}{d\solid'^\bot}}\]

light rendering equation

\(E_{\out}\)

\(E_{\out}^{\text{next}}\)

\(f\)

\(E_{\emit}\)

time

time

\(E_{\inp}\frag{40}{\neq E_{\out}^{\text{next}}}\)

\[\flip{15}{leq}{\fragclass{65}{bluebox box custom}{E_{\out}\add{20}{(t)}}\, = \fragclass{60}{redbox box custom}{E_{\emit}\add{20}{(t)}} +\int_{S}\fragclass{61}{redbox box custom}{f}\,\, \fragclass{65}{bluebox box custom}{E_{\del{45}{\inp}\add{45}{\out}}^{\add{45}{\text{next}}}\add{20}{(t\del{45}{)}\add{45}{\,-\tau)}}} \, d\solid'^\bot}\]

acoustic rendering equation

Light

Sound

local

recursive

recursive

time between

two points

(R,G,B)

\[\in\]

\[\R^n\]

\[\fragclass{35}{fade-out}{\mathcal{F}}\]

\[\in\]

Automatic Differentiation (AD)

\[\htmlId{histt}{\text{Histogram}(t)}=\int_S E_{\out}(t) \add{3}{\approx}\add{3}{\sum E_{\out}(t)}\]

AD(\(\text{Loss}(\text{Histogram}(t))\))\(\rightarrow\) \(\htmlData{fragment-index=4,class=custom added delayed}{\frac{\partial}{\partial\pi}\text{Loss}(}\flip{4}{histt}{\text{Histogram}(t)}\htmlData{fragment-index=4,class=custom added delayed}{)}\)

<sodipodi id="namedview1" pagecolor="#ffffff" bordercolor="#000000" borderopacity="0.25" inkscape ="2" inkscape ="0.0" inkscape ="0" inkscape ="#d1d1d1" inkscape ="mm" inkscape ="14.566385" inkscape ="342.80983" inkscape ="90.756904" inkscape ="1920" inkscape ="1148" inkscape ="0" inkscape ="0" inkscape ="1" inkscape ="g25" />

AD Graph

too much memory

Temporal Path Replay Backpropagation (TPRB) [Vicini et al. 2021]

Light

Sound

Primal Simulation

\[\htmlId{PRBEout}{\fragclass{60}{bluebox box custom}{E_{\out}}} \htmlId{PRBEouteqsign}{=} \htmlId{PRBEemit}{\fragclass{40}{redbox box custom}{E_{\emit}}} \htmlId{PRBplusint}{+ \int_S} \htmlId{PRBf}{\fragclass{50}{redbox box custom}{f}}\, \htmlId{PRBEoutnext}{\fragclass{60}{bluebox box custom}{E_{\out}^{\text{next}}}} \,\htmlId{PRBdsolid}{\text{d}\solid'}\]

\[\bluebox{110}{\add{230}{\deltaH}E_{\out}(t)} = \redbox{110}{\add{230}{\deltaH}E_{\emit}(t)} + \int_S \redbox{110}{f(t)}\, \bluebox{110}{\add{230}{\deltaH}E_{\out}^{\text{next}}(t-\tau)} \,\text{d}\solid'\]

\[\greenbox{140}{\add{230}{\deltaH}\frac{\partial}{\partial t}E_{\out}(t)} = \redbox{140}{\add{230}{\deltaH}\frac{\partial}{\partial t}E_{\emit}(t)} + \int_S \redbox{140}{f(t)}\, \greenbox{140}{\add{230}{\deltaH}\frac{\partial}{\partial t}E_{\out}^{\text{next}}(t-\tau)} \,\text{d}\solid'\]

Derivative

\[\begin{alignat*}{6}\fragclass{60}{orangebox box custom}{\add{30}{\frac{\partial}{\partial \pi}} \flip{20}{PRBEout}{E_{\out}}} \flip{20}{PRBEouteqsign}{=} \fragclass{40}{redbox box custom}{\add{30}{\frac{\partial}{\partial \pi}}\flip{20}{PRBEemit}{E_{\emit}}} \flip{20}{PRBplusint}{+ \int_S}&&\flip{20}{PRBf}{\fragclass{50}{redbox box custom}{\htmlId{PRBf2}{f}}}\, &&\fragclass{60}{orangebox box custom}{\add{30}{\frac{\partial}{\partial \pi}}\flip{20}{PRBEoutnext}{\htmlId{PRBEoutnext2}{E_{\out}^{\text{next}}}}}&\add{30}{+}\,\fragclass{30}{fade-out instant}{\flip{20}{PRBdsolid}{\htmlId{PRBdsolid2}{\text{d}\solid'}}}\\&&\fragclass{70}{redbox box custom}{\add{30}{\frac{\partial}{\partial \pi}\flip{30}{PRBf2}{f}}}\, &&\flip{30}{PRBEoutnext2}{\fragclass{80}{bluebox box custom}{E_{\out}^{\text{next}}}}&\,\flip{30}{PRBdsolid2}{\text{d}\solid'}\end{alignat*}\]

\[\begin{alignat*}{6}\orangebox{110}{\frac{\partial}{\partial \pi} E_{\out}(t)} = \redbox{110}{\frac{\partial}{\partial \pi}E_{\emit}(t)} + \int_S&&\redbox{110}{f(t)}\, &&\orangebox{110}{\frac{\partial}{\partial \pi}E_{\out}^{\text{next}}(t-\tau)}&+\\&&\redbox{110}{\frac{\partial}{\partial \pi}f(t)}\, &&\bluebox{110}{E_{\out}^{\text{next}}(t-\tau)}&-\\&&\redbox{135}{f(t)}\, &&\greenbox{137}{\frac{\partial}{\partial t}E_{\out}^{\text{next}}(t-\tau)}& \redbox{135}{\frac{\partial}{\partial \pi}\tau}\,\text{d}\solid'\end{alignat*}\]

local

\[\R^n\]

\[\in\]

\[\R^{\del{235}{n}}\]

\[\in\]

\[\R^{\del{235}{n}}\]

\[\in\]

\[\frac{\partial}{\partial \pi}\text{Loss}(\text{H}(t))\add{225}{= [\deltaH\text{Loss}]\frac{\partial}{\partial \pi}\text{H}(t)}\]

scalar

linear time &
constant memory

Implementation

AD Temporal PRB
depth time memory time memory
4 0.730s 13.5MiB 0.213s 6.75MiB
8 1.873s 27MiB 0.343s 6.75MiB
16 7.111s 54MiB 0.616s 6.75MiB
32 17.178s 108MiB 1.246s 6.75MiB
64 DNF DNF 2.699s 6.75MiB

TPRB (our)

AD

spectrogram

scene

gradients

Mitsuba 3 [Jakob et al. 2022]

faster & constant memory

Results

Material Properties

absorption factors (visualized)

optimization

target

Emitter Position

Geometry

lecture hall

side view

Limitations

No Wave effects

  • Diffraction
  • Interference

Biased Gradients

(if geometry moves)

Radiative Backpropagation with Non-Static Geometry [Worchel et al. 2025]

Summary

1. First Differentiable Geometric Acoustics Path Tracer

at GitHub

2. Temporal extension to Path Replay Backpropagation

Differentiable Time-Gated Rendering [Wu et al. 2021]

Differentiable Transient Rendering [Yi et al. 2021]

Thank You!

References

Jakob, W., Speierer, S., Roussel, N., et al. 2022. Mitsuba 3 renderer. Software.
Worchel, M., Finnendahl, U., and Alexa, M. 2025. Radiative Backpropagation with Non-Static Geometry. Eurographics Symposium on Rendering, The Eurographics Association.
Wu, L., Cai, G., Ramamoorthi, R., and Zhao, S. 2021. Differentiable time-gated rendering. ACM Trans. Graph. 40, 6.
Yi, S., Kim, D., Choi, K., Jarabo, A., Gutierrez, D., and Kim, M.H. 2021. Differentiable transient rendering. ACM Trans. Graph. 40, 6.

Test

Test