DEISM playground
● source● receiver● image sources (preview)
?
Drag the background to orbit. Drag source, receiver, or vertex handles to move them. Image sources show the reduced preview only.
Room transfer function
?
Scroll to zoom horizontally; drag to pan. Reset view restores the full domain.
About Preview uses JavaScript with reduced settings. Launch with deism-playground for accurate simulations through the installed Python DEISM workflow. The standalone offline file uses JavaScript for all runs; it does not provide native performance or validated high-order numerical parity. Nothing shown here is precomputed.

Copyright © 2022-2026 Fraunhofer-Gesellschaft. Subject to the Fraunhofer Software Copyright License (see the package LICENSE). Requires a separate license from Fraunhofer beyond internal, non-commercial use for evaluation, testing, and academic research.

PIPELINE

00 · Examples

?
Pick an example to load the parameters of one of the repository's example scripts. The preview updates at once; press Run for the full simulation.

Simulation mode

?
RTF computes the room transfer function on an explicit frequency grid. RIR adds the impulse response (inverse FFT of the transfer function on a grid that resolves the shorter of T60 and the RIR length) and its energy decay curve. The RIR window shapes the band before the inverse FFT: minimum phase keeps the response causal (nothing before an arrival, nothing folded across the end); zero phase gives symmetric pulses with a few milliseconds of pre-ringing on a grid extended by a guard interval; none is the raw inverse FFT for diagnostics.

01 · Room

?
Shoebox: a rectangular room given by length (x), width (y) and height (z). Convex: drag the white vertex handles in the 3D view or edit the coordinates; the room is the convex hull of the vertices, so every vertex must lie on that hull.

02 · Wall materials

?
Click a wall name to highlight its face in the 3D view. Absorption α is per wall in [0, 1]; impedance is the normalised specific impedance ζ (complex). T60 is estimated from the wall materials when it is not given directly; for convex rooms T60 input is not available.

03 · Source & receiver

?
Drag the blue (source) and orange (receiver) dots in the 3D view or type positions. Reflection order is the maximum number of wall reflections per image source; the 3D view shows the preview's image sources up to order 3 only.
Source [m]
Receiver [m]

04 · Directivity

?
Orientation: Z-X-Z Euler angles α, β, γ in degrees; 0/0/0 faces +x. SH order is the spherical-harmonic truncation of the directivity fit. The sphere radius follows the dataset.
?
Rotates around z while idle. Drag to orbit; rotation pauses while dragging and resumes on release. Arrow keys also rotate the view. Acoustic orientation stays unchanged.

05 · Method & frequencies

?
RTF mode solves on the start–end grid in the given step. RIR mode derives its frequency grid from T60 and the sample rate (resolution 1/T60 up to the Nyquist frequency), then applies a band-pass window and an inverse FFT; RIR length only pads or truncates the output.

06 · Path fluctuations

?
Every image path of length r gets c · N(t · drift, √t · volatility) added, t = r / c, as in DEISM.update_fluctuations(). Volatility is in s½; paths are unchanged when both volatility and drift are zero.
Example values: the four runs of examples/deism_volatility_example.py use volatility 0, 0.5e-5, 1e-5 and 1.5e-5 s½ with drift 0; the "Path fluctuations" presets use 1.5e-5 s½. Drift is relative: 1e-4 lengthens every path by 0.01 % on average (a 100 m path by 1 cm); negative values shorten them.

07 · Run

?
The preview updates live with reduced settings (LC method, reflection order ≤ 3, SH order ≤ 2, at most 256 frequency bins). Run uses the full settings through the installed Python DEISM package when launched with deism-playground, or through the JavaScript port in the standalone file (native performance and high-order parity are not validated there).
With the local launcher, each completed run is written as JSON to the folder shown below the button; the exact file path appears with the result. The standalone file cannot save results.
deism_setup.py exports the current controls before or after running. deism_lastrun.py exports the last successful run’s captured settings, even after controls change. With the local launcher, both save editable Python scripts into playground/scripts; the page and console show the saved path. Running these scripts computes results and displays plots without saving result files. They require DEISM and any selected original MAT datasets.