Physics-based acoustic simulation from LIDAR data. Generate impulse responses of caves, lava tubes, and extraterrestrial environments.
Planetary IR Studio converts NASA LIDAR scans of caves and lava tubes into acoustic Impulse Responses (IRs) using physics-based wave simulation (FDTD) and per-triangle ray tracing. It is the only software that simulates how spaces sound on Mars, Titan, and the Moon. The output IRs can be loaded into any DAW with a convolution reverb plugin β record a vocal in your studio, and hear it inside a Martian lava tube.
Download the 5-second IR previews and load them into your favorite convolution reverb:
| Space | Planet | RT60 | C80 | STI | Bass Ratio | IR Preview |
|---|---|---|---|---|---|---|
| Indian Tunnel Lava Tube | π Earth | 1.86s | -1.5 dB | 0.595 | 0.94 | WAV |
| Indian Tunnel Lava Tube | π΄ Mars | 2.15s | 1.2 dB | 0.625 | 0.65 | WAV |
| Indian Tunnel Lava Tube | π Titan | 4.67s | 8.4 dB | 0.821 | 2.41 | WAV |
| Skull Cave | π Earth | 2.12s | 24.3 dB | 0.863 | 2.96 | WAV |
| Skull Cave | π΄ Mars | 3.35s | 21.6 dB | 0.841 | 2.96 | WAV |
Indian Tunnel is a real lava tube in Craters of the Moon National Monument, Idaho. Scanned by NASA with 11.6 million LIDAR points. Skull Cave is a limestone cave in Lava Beds National Monument, California.
An 8-step physics pipeline transforms raw LIDAR point clouds into publication-quality impulse responses:
- LIDAR Input β Reads
.f32point clouds from NASA CAVES, or your own iPhone LIDAR scan (Polycam, Scaniverse) - 3D Mesh β Poisson surface reconstruction with convex hull closure to prevent ray escape
- Material Classification β K-Means clustering on NIR reflectance maps points to 9 cave materials, each with frequency-dependent absorption coefficients
- FDTD Wave Simulation β FCC 4th-order lattice (Hamilton & Webb 2017) on Metal GPU. Captures diffraction, modal resonance, and wave phenomena that ray tracing cannot
- Per-Triangle Ray Tracing β Intel Embree-accelerated. Each bounce uses the exact material of the triangle hit, with frequency-dependent absorption and scattering
- FDN Synthesis β Feedback Delay Network with analytically calibrated gains. Implemented in Rust (391x faster than Python)
- Crossover Blend β Combines wave simulation (low frequencies, physical accuracy) with ray tracing (high frequencies, computational efficiency)
- Analysis & Export β ISO 3382 metrics, 5-page PDF report, WAV files, modal analysis, decay curves
No other software in the world simulates extraterrestrial acoustics. Planetary IR Studio models the real physics of sound propagation on other worlds:
| Planet | Speed of Sound | Atmosphere | Effect on Acoustics |
|---|---|---|---|
| π Earth | 343 m/s | Nβ/Oβ, 1 atm | Reference standard |
| π΄ Mars | 240 β 250 m/s | COβ, 600 Pa | High frequencies die after ~50m. Bi-modal dispersion above 2 kHz (verified against Perseverance data) |
| π Titan | 194 m/s | Nβ/CHβ, 1.5 atm | Reverb tails 1.77x longer than Earth for the same geometry. Dense atmosphere (5.3 kg/mΒ³) |
| π Moon | 0 m/s | Vacuum | No air propagation β structural vibration through rock only |
Mars's COβ atmosphere absorbs high frequencies aggressively. The same cave sounds muffled and dark on Mars β like listening through a thick blanket.
Every simulation produces a 5-page PDF report with full ISO 3382 acoustic metrics:
- RT60 (T20/T30) β Reverberation time via Schroeder backward integration
- EDT β Early Decay Time
- C50 / C80 β Clarity (speech / music)
- D50 β Definition
- Ts β Centre time
- STI β Speech Transmission Index
- Bass Ratio / Brilliance β Spectral balance
- Modal Analysis β Room modes and resonant frequencies
- Flutter Echo Detection β Periodic reflection patterns
- Early Reflections β Isolated first 50ms
π Example PDF Report
# Clone
git clone https://github.com/your-username/planetary-ir-studio.git
cd planetary-ir-studio
# Install dependencies
python3.11 -m pip install -r requirements.txt
# Optional: Rust FDN acceleration (391x faster synthesis)
cd rust_fdn && maturin develop --release && cd ..
# Generate your first IR (uses NASA CAVES Indian Tunnel data)
python3.11 lidar_to_ir_3layer.py IndianTunnel_cave/Full/IndianTunnel_full_10x.f32 \
--preset QUICK --voxel-size 0.3
# Try Mars!
python3.11 lidar_to_ir_3layer.py IndianTunnel_cave/Full/IndianTunnel_full_10x.f32 \
--preset QUICK --planet MARS --voxel-size 0.3
# Try Titan!
python3.11 lidar_to_ir_3layer.py IndianTunnel_cave/Full/IndianTunnel_full_10x.f32 \
--preset QUICK --planet TITAN --voxel-size 0.3Output goes to output/ β you'll find WAV files, a PDF report, metrics JSON, and decay curves.
Scan any room, cave, or tunnel with an iPhone Pro (LIDAR-equipped) using Polycam or Scaniverse:
# Convert your .ply scan to .f32 format
python3.11 convert_ply_to_f32.py your_scan.ply
# Generate the IR
python3.11 lidar_to_ir_3layer.py your_scan.f32 --preset QUICK
# What does your bathroom sound like on Titan?
python3.11 lidar_to_ir_3layer.py your_scan.f32 --preset QUICK --planet TITAN| Module | Description |
|---|---|
lidar_to_ir_3layer.py |
Main 8-step pipeline with CLI, presets, planet support |
chunked_reader.py |
Adaptive streaming reader with fast vectorized path |
lidar_to_ir.py |
Point cloud processing and Poisson mesh reconstruction |
material_classifier.py |
K-Means NIR/RGB β 9 cave materials with absorption DB |
fdtd_metal.py |
Metal GPU FDTD backend (Apple Silicon) |
fdtd_cpu.py |
CPU fallback FDTD with FCC4 lattice |
fdtd_multiband.py |
Multi-band FDTD orchestrator (auto-selects GPU/CPU) |
ray_tracer_multimaterial.py |
Per-triangle Embree ray tracer with Russian Roulette |
hybrid_ir_engine.py |
FDN synthesis + FDTD/ray crossover blend |
fdn_optimizer.py |
Analytical FDN calibration with per-band correction |
acoustic_metrics.py |
ISO 3382 metrics via Schroeder integration |
acoustic_phenomena.py |
Flutter echo, modal analysis, diffusion detection |
report_generator.py |
5-page PDF report with matplotlib charts |
| Module | Speedup | Description |
|---|---|---|
rust_fdn/ |
391x | FDN with Householder matrix, prime delays, 1-pole lowpass |
rust_raytracer/ |
Fallback | BVH + Moller-Trumbore (Open3D Embree preferred) |
| Module | Description |
|---|---|
api_server.py |
FastAPI REST API (9 endpoints, job queue) |
planetary_ir_sdk/ |
Python SDK for programmatic access |
vis_server.py |
WebSocket server for real-time 3D visualization |
vis_client.html |
Three.js viewer with material colors and FDTD heatmaps |
Benchmarked on MacBook Pro M1, 16GB unified memory:
| Dataset | Points | Pipeline Time | FDTD Backend | RT60 |
|---|---|---|---|---|
| Indian Tunnel 10x | 11.6M | 11.2s | Metal FCC4 | 1.86s |
| Indian Tunnel full | 116.2M | 40.9s | Metal FCC4 | 2.51s |
| Skull Cave | 500K | 6.6s | Metal FCC4 | 2.09s |
| Technique | Speedup | Reference |
|---|---|---|
| FCC4 lattice (vs Cartesian FDTD) | 18x | Hamilton & Webb 2017 |
| Russian Roulette ray termination | 7.8x | Energy-conserving, r=0.976 correlation |
| Rust FDN (vs Python) | 391x | PyO3 + ndarray |
| Metal GPU (vs CPU FDTD) | 1.24x | Apple Silicon compute shaders |
| Analytical FDN calibration | β | 0ms vs 30s iterative |
| Vectorized voxel reader | 1.33x | NumPy sort + reduceat |
| Feature | Planetary IR Studio | Treble Tech | ODEON v19 | Steam Audio | Altiverb v8 |
|---|---|---|---|---|---|
| LIDAR point cloud input | β | β | β | β | β |
| Wave simulation (FDTD) | β | β | β | Partial | β |
| Planetary acoustics | β | β | β | β | β |
| Auto material classification | β | β | β | β | β |
| iPhone LIDAR support | β | β | β | β | β |
| Consumer GPU (Metal) | β | β (cloud) | N/A | β | N/A |
| Open source | β | β | β | β | β |
| ISO 3382 metrics | β | β | β | β | β |
| IR export (.wav) | β | β | β | β | N/A |
Nobody else converts LIDAR scans directly to acoustic impulse responses. Nobody else simulates planetary acoustics.
Built on peer-reviewed acoustic simulation research:
- Hamilton & Webb (2017) β FCC 4th-order FDTD lattice for room acoustics
- Schroeder (1965) β Backward integration for reverberation time measurement
- Eyring (1930) β Absorption-weighted reverberation model for absorptive spaces
- ISO 3382-1:2009 β Measurement of room acoustic parameters
- Chide et al. (2021) β Mars atmospheric acoustics from Perseverance
- NASA CAVES β LIDAR datasets of volcanic caves
MIT License β use freely for commercial, academic, or creative projects.
PRs welcome! See docs/architecture.md for the module design and docs/adrs/ for architecture decision records.
# Run the smoke tests
python3.11 tests/test_pipeline_smoke.py
# Profile the pipeline
python3.11 -m cProfile -s cumtime lidar_to_ir_3layer.py data/skull_test.f32 --preset QUICK --no-visBuilt with Claude Code across 8 autonomous R&D sessions.




