HomePlugins & Apps

vanBuffelen RaytraceVerbGPU

Complete User Manual, 3D Architectural Acoustic Simulation, WGSL GPU Shaders, Physical Waveguide Tube & Zero-Latency Convolution Reverb Guide

1. Introduction & Overview

RaytraceVerbGPU is a state-of-the-art 3D acoustic simulation and zero-latency convolution reverb plugin built from the ground up in Rust. It merges modern GPU compute power (wgpu / WGSL compute shaders) with real-time audio DSP to calculate the true physical acoustics of arbitrary 3D architectural spaces.

RaytraceVerbGPU Main Holographic 3D Interface

RaytraceVerbGPU: Interactive holographic 3D viewport with real-time virtual listener, directional speakers, and GPU raytracing engine.

🏛️ Arbitrary 3D Geometries

Import any .obj mesh (concert hall, cathedral, bedroom, parking garage, or abstract geometry). Up to 150,000 triangles accelerated via GPU BVH trees.

⚡ GPU Monte Carlo Raytracing

Fires between 1,000 and 500,000 rays, tracking up to 500 reflection bounces per ray on your graphics card via WGSL compute shaders.

🎯 Zero-Latency Convolution

Rendered impulse responses are compiled in a background worker thread and hot-swapped into a 512-sample partitioned FFT matrix with zero audio thread blocking.

🌀 Physical Waveguide Tube

Integrated physical PVC pipe resonator adding cylindrical harmonic standing waves, variable feedback, and acoustic resonance.

2. Key Architectural Highlights & Tri-Band DSP

Traditional reverbs either use crude algorithmic delay networks (physically inaccurate) or static impulse responses (rigid and unchangeable). RaytraceVerbGPU combines physical simulation with zero-latency partitioned convolution:

1
3D Mesh & Linear BVH: Triangle polygons and material tags are parsed into a GPU-optimized Bounding Volume Hierarchy with stackless miss-links.
2
pass_init.wgsl: Generates initial acoustic rays from directional speaker cones using a high-entropy PCG Hash pseudo-random generator.
3
pass1_geometry.wgsl: Stackless BVH ray-triangle traversal computing reflection angles, surface material absorption, and scattering across bounces.
4
pass2_audio.wgsl: Accumulates rays hitting the listener capsule, rasterizing multi-channel impulse response buffers with distance delay and atmospheric loss.
5
Lock-Free Audio Convolution: Background worker thread transfers the rendered IR into partitioned FFT convolution blocks, summing with the direct path and physical tube resonator.

Tri-Band Frequency Decomposition

Acoustic surfaces absorb sound differently across the spectrum. RaytraceVerbGPU evaluates ray energy in three distinct bands:

  • Low Band (< 500 Hz): Captures room boominess, boundary reinforcement, and bass buildup.
  • Mid Band (500 Hz – 4 kHz): Governs vocal intelligibility, warmth, and core spatial presence.
  • High Band (> 4 kHz): Simulates molecular air absorption, cymbal flutter, and crisp spatial sheen.

3. Installation & Host Setup

RaytraceVerbGPU is available in CLAP and VST3 formats for 64-bit Linux systems:

PlatformCLAP PathVST3 Path
Linux (Debian / Ubuntu / Arch)~/.clap/RaytraceVerbGPU.clap~/.vst3/RaytraceVerbGPU.vst3

Audio I/O Configuration

Stereo Input + Auxiliary Sidechain inputs (for routing individual DAW instruments directly to virtual speakers in the 3D room).

GPU Acceleration Requirements

Requires Vulkan 1.2+ drivers. Tested on AMD Radeon, NVIDIA GeForce, and Intel Iris Xe GPUs with full WebGPU / WGSL compute compatibility.

4. User Interface Anatomy

The interface is organized into three synchronized control zones:

RaytraceVerbGPU UI Overview

UI Overview: Top telemetry HUD bar, left tabbed sidebar (395px width), and central interactive 3D viewport.

1. Top HUD Bar

Displays active triangle count (▲ tris), DAW audio sample rate (⚡ kHz), active speaker count (🔊 spk), and real-time GPU simulation status (● READY or ⏳ COMPUTING xx%).

2. Left Control Sidebar

Four specialized navigation tabs (Scene, Acoustics, Tube, Raytrace) plus the docked Master Output & Render bar.

3. 3D Holographic Viewport

Real-time orbital camera, wireframe / shaded rendering, 3D interactive handles for listener (blue) and sound sources (red), plus projection modes.

5. Tab 1: Scene & Object Setup

The Scene tab handles 3D model loading, spatial coordinate transforms, listener configuration, and virtual speaker placement.

Scene Tab Controls

Scene Tab: 3D file operations (Mesh, Save, Load, Reset), Room Transforms, Listener Spatial Mode, and Speaker Sources.

Virtual Listener (Microphones / Ears)

Configure how sound is collected inside the 3D acoustic environment:

  • Mono ITD: Calculates Interaural Time Difference using the Woodworth spherical head model: Δt = (a / c) · (θ + sin θ).
  • Stereo Mics: Simulates a spaced pair of directional capsules. Controls:
    • MIC DISTANCE: Capsule separation (0.0 to 1.0 m, default 0.17 m for ORTF/DIN).
    • MIC ANGLE: Outward capsule angle (0° to 180°, default 90°).
  • Binaural HRTF: Full 3D headphone spatialization combining interaural delay with frequency-dependent head shadow and pinna filtering.
  • Head Radius: Adjusts head width in meters (default 0.0875 m = 8.75 cm).
  • Auto-Focus Speaker: Automatically turns the listener's head to face the active sound source.

Virtual Speakers (Sound Sources)

RaytraceVerbGPU supports up to 3 discrete virtual speakers:

  • Position (X, Y, Z): 3D coordinates in meters.
  • Volume (0% to 200%): Individual source level scaling.
  • Auto Dist vs Manual Dist: Inverse-square law attenuation (1/r) or fixed level.
  • Radiation Spread (1° to 360°): From focused acoustic laser cone to omnidirectional point emission.
  • Aim at Listener: Automatically directs radiation cone axis towards the listener.

6. Tab 2: Acoustics & Surface Materials

The Acoustics tab governs how sound waves reflect off surfaces and dissipate through air.

Acoustics & Materials Tab

Acoustics Tab: Atmospheric air absorption controls and material groups absorption/scattering matrix.

Surface Materials Matrix

RaytraceVerbGPU automatically detects material groups defined in the .obj file, allowing you to configure tri-band absorption and scattering per surface:

Material PresetLow (< 500 Hz)Mid (500 Hz – 4 kHz)High (> 4 kHz)Scattering (Diffuse)Sonic Character
Concrete / Stone0.02 (2%)0.03 (3%)0.05 (5%)Hard, highly reflective surface with long reverberant decay and crisp flutter.
Wood Panel0.15 (15%)0.11 (11%)0.10 (10%)Warm natural reflection with balanced low-end resonance and smooth top-end.
Carpet / Drapes0.08 (8%)0.25 (25%)0.65 (65%)Heavy high-frequency acoustic dampening, eliminating flutter and harsh splash.
Glass Window0.04 (4%)0.03 (3%)0.02 (2%)Near-perfect specular acoustic mirror; preserves ultra-crisp early reflections.
Brick / Masonry0.05 (5%)0.08 (8%)0.12 (12%)Rough porous texture creating natural acoustic diffusion without harsh echoes.
Plasterboard0.29 (29%)0.10 (10%)0.04 (4%)Typical residential interior wall with moderate bass trap absorption.

Atmospheric Air Absorption

Air absorbs high-frequency sound through molecular relaxation of nitrogen and oxygen molecules. Increasing High Air Absorption (> 4 kHz) creates an authentic sense of physical distance, naturally rolling off cymbal and transient glare in large spaces.

7. Tab 3: Waveguide / Physical PVC Tube Resonator

The Tube tab provides a physical acoustic waveguide modeling wave propagation inside cylindrical pipes:

Physical Waveguide Tube Controls

Tube Tab: Physical resonator length slider with real-time f0 fundamental pitch calculation and standing wave animation.

📏 Tube Length (0.1 m – 5.0 m)

Sets pipe length with automatic fundamental resonance readout: f0 = c / (2L) = 343 / (2L) (e.g. 0.50 m → 343.0 Hz).

🔄 Feedback / Resonance (0% to 98%)

Controls wave recirculation. At higher settings, produces ringing organ pipe harmonics, metallic drone, or sitar-like resonance.

🌫️ Damping (0% to 100%)

One-pole lowpass filter emulating viscous and thermal friction along the inner boundary walls of the pipe.

🎚️ Tube Mix (0% to 100%)

Blends the physical waveguide resonator into the master dry/reverb signal chain.

8. Tab 4: Raytrace Simulation & Impulse Response

Configures the Monte Carlo simulation engine and visualizes the generated impulse response:

Raytrace Simulation & IR Scope

Raytrace Tab: Ray count, bounce limits, Sabine RT60 auto-estimation, and dual-channel IR waveform oscilloscope.

Sabine RT60 Auto-Estimation

When enabled, RaytraceVerbGPU calculates room volume (V) and surface area (S) from the 3D bounding geometry, computing theoretical decay time:

RT60 ≈ (0.161 · V) / (S · α_avg)

You can override this anytime with manual Tail Duration slider (0.1 s – 10.0 s). Click Export WAV to save the active 32-bit float stereo IR for external use.

9. Master Output & Render Panel

Permanently docked at the bottom of the left sidebar for instant access across all tabs:

🎚
DRY / WET (0% to 100%): Master balance between direct sound and reverberation with 50 ms click-free crossfade smoothing.
⚡
Progress Bar: Real-time animated GPU execution bar displaying compute shader progress percentage.
▶
▶ GENERATE IR: Triggers an immediate asynchronous raytracing run on the GPU.
🔄
Auto-Gen Checkbox: Automatically re-renders the acoustic impulse response whenever you drag a speaker, listener, or tweak a material slider.

10. Interactive 3D Viewport & Navigation

The central 3D viewport provides an intuitive holographic window into your room:

Top-Down 2D Architectural View

Top-down 2D floor-plan view for precise speaker and microphone placement.

Pure Wireframe Mode

Wireframe mode inspecting complex interior polygon geometries and BVH bounds.

Mouse Camera Controls

LMB Drag: Orbit camera around center point.
MMB Drag: Pan camera across space.
Scroll: Zoom in and out.
RMB Click: Open floating context popups on objects.

Projection Modes

TOP / FRONT / BACK / LEFT / RIGHT: Orthographic elevation angles.
2D / 3D: Toggles CAD orthographic vs realistic perspective camera.

Display Modes

⬛ SHADED: Holographic semi-transparent faces.
🔲 WIRE: Clean wireframe polygon outlines.
🎯 Focus: Centers camera on active mesh.
🔒 LOCKED: Locks 3D grid.

11. Sound Design Recipes & Workflows

Explore these tested architectural acoustic configurations:

Studio / Vocal

Recipe 1: Intimate Wooden Studio Room

Geometry: Small studio room (test_room.obj) • Scale: 0.8×

Tight, warm, authentic room reflections that seat acoustic guitars, percussion, and lead vocals inside a genuine physical booth.

Acoustics: Walls: Wood (Scattering 40%) • Air Damping: Standard
Spatial: Listener: (0.0, 1.5, 1.0) • Speaker 1: (0.0, 1.5, 3.0) • Mode: Binaural HRTF
Simulation: 50,000 Rays • 120 Bounces • Tail: 1.2s
Ambient / Orchestral

Recipe 2: Grand Cathedral Reverberation

Geometry: Cathedral / Hall mesh • Scale: 2.5× (Length ~40m)

Enormous, majestic acoustic tail with lush diffuse decay, natural air roll-off, and zero artificial metallic ringing.

Acoustics: Walls: Stone / Marble (5% Abs, 80% Scattering) • High Air Loss: 0.0120 m⁻¹
Spatial: Listener: (0.0, 1.8, 15.0) • Speaker 1: (0.0, 3.0, 35.0) • Mode: Stereo Mics (17cm)
Simulation: 200,000 Rays • 350 Bounces • Sabine Auto-estimate: ~4.5s
Resonator / Synth

Recipe 3: Physical Pipe / Sitar Waveguide Resonator

Geometry: Any room (Dry/Wet 40%)

The dry sound excites physical standing waves inside the virtual PVC pipe, creating acoustic sympathetic resonance akin to a sitar or didgeridoo.

Acoustics: Tube Mix: 45% • Tube Length: 0.44m (f0 ≈ 389.7 Hz / G4)
Spatial: Tube Feedback / Resonance: 85% • Tube Damping: 35%
Simulation: Input: Rimshot, snare, or synth pluck excites harmonic standing waves

12. 3D Model Preparation Guidelines (Blender to OBJ)

You can create and import any architectural space modeled in Blender, Rhino, SketchUp, or CAD:

  1. Format: Export as standard Wavefront OBJ (.obj).
  2. Normals: Ensure face normals point inward towards the interior (where acoustic rays travel). In Blender: Mesh > Normals > Flip.
  3. Polygon Budget: Optimal range is 500 to 50,000 triangles. Up to 150,000 triangles are supported thanks to GPU BVH trees.
  4. Material Groups: Assign distinct material names to different surfaces (e.g., Floor_Wood, Walls_Brick, Glass_Window). RaytraceVerbGPU automatically imports them into the Acoustics matrix.
  5. Scale Units: Model your room in meters (1 unit = 1 meter).

13. Troubleshooting & Performance FAQ

Q: Does GPU raytracing cause audio dropouts or buffer clicks?

No. Raytracing executes 100% on the GPU in background compute queues. Rendered impulse responses are compiled in a background worker thread and hot-swapped into partitioned FFT convolvers lock-free. The DAW audio thread never blocks.

Q: Why does GPU calculation take 1-2 seconds on complex scenes?

Simulating 500,000 rays with 500 bounces across a 100k polygon mesh requires millions of intersection tests. For real-time movement, set Ray Count to 30,000 - 80,000; then increase to 200,000+ for final offline export.

Q: Why does the room sound completely dry or silent?

Check that your sound sources (speakers) and listener are positioned inside the room mesh, and that face normals point inwards. If walls are completely black or rays miss, flip normals in Blender.

Q: How do I tame runaway feedback in the Tube model?

The waveguide tube is clamped to prevent digital clipping, but feedback settings above 90% with loud percussive input can sustain indefinitely. Lower Tube Feedback to 30% - 60% for natural acoustic decay.

14. Complete Parameter Reference Table

Search and filter all 32 RaytraceVerbGPU automation parameters below:

IDNameModuleTypeDefaultRange / ValuesUnitDescription
wet_dryDry/Wet MixKnob50.00.0% to 100.0%%Master audio balance between dry input and processed reverb with 50 ms click-free smoothing.
tube_lenTube LengthSlider0.50.1 to 5.0mPhysical acoustic length of the cylindrical pipe (controls f0 fundamental pitch).
tube_fbTube FeedbackKnob0.00.0% to 98.0%%Waveguide resonance and recirculation gain. Higher values create sustained organ pipe tones.
tube_mixTube MixKnob0.00.0% to 100.0%%Waveguide resonator output dry/wet blend.
tube_dampTube DampingKnob40.00.0% to 100.0%%High-frequency thermal and viscous friction loss against the inner pipe walls.
list_modeListener Acoustic ModeDropdownBinaural HRTFMono ITD, Stereo Mics, Binaural HRTF—Spatial capture model: Woodworth spherical ITD, spaced pair stereo mics, or full binaural HRTF.
mic_distMic DistanceSlider0.170.0 to 1.0 (ORTF/DIN)mDistance between virtual microphone capsules in Stereo Mics mode.
mic_angleMic AngleSlider90.00.0° to 180.0°°Outward capsule angle for stereo microphone pattern.
head_radiusHead RadiusSlider0.08750.05 to 0.15mAcoustic head width in meters (default 8.75 cm).
list_xListener XSlider0.0-1000.0 to +1000.0mVirtual listener / microphone 3D position along X axis.
list_yListener Y (Elevation)Slider1.80.0 to 1000.0mVirtual listener height above the floor (ears height).
list_zListener ZSlider20.0-1000.0 to +1000.0mVirtual listener 3D position along Z axis.
list_yawListener Yaw (Azimuth)Slider0.0-180.0° to +180.0°°Horizontal head orientation angle.
list_pitchListener PitchSlider0.0-90.0° to +90.0°°Vertical head elevation angle.
list_radCapture RadiusSlider0.250.05 to 2.0mAcoustic ray collection radius around the listener.
list_autofocusAuto-Focus SpeakerToggleOffOff / On—Automatically rotates the listener's head to track the active speaker.
spk1_xSpeaker 1 XSlider0.0-1000.0 to +1000.0mSpeaker 1 3D coordinate along X axis.
spk1_ySpeaker 1 YSlider3.00.0 to 1000.0mSpeaker 1 height above the floor.
spk1_zSpeaker 1 ZSlider65.0-1000.0 to +1000.0mSpeaker 1 3D coordinate along Z axis.
spk1_volSpeaker 1 VolumeSlider100.00.0% to 200.0%%Speaker 1 channel acoustic emission volume.
spk1_spreadRadiation Spread ConeSlider180.01.0° to 360.0°°Dispersion cone from acoustic laser (1°) to omnidirectional point source (360°).
spk1_muteSpeaker 1 MuteToggleOffOff / On—Silences speaker 1 channel.
spk1_aimAim at ListenerToggleOnOff / On—Automatically directs radiation cone axis towards the listener.
air_lowAir Absorption (Low)Slider0.00050.0000 to 0.0500m⁻¹Atmospheric dissipation loss below 500 Hz.
air_midAir Absorption (Mid)Slider0.00200.0000 to 0.0500m⁻¹Atmospheric dissipation loss between 500 Hz and 4 kHz.
air_highAir Absorption (High)Slider0.00800.0000 to 0.0500m⁻¹Atmospheric molecular relaxation damping above 4 kHz (softens distant echoes).
ray_countRay CountSlider1000001000 to 500000raysTotal Monte Carlo acoustic rays fired into 3D scene per simulation pass.
max_bouncesMax BouncesSlider20010 to 500bouncesMaximum reflection generations computed per ray before termination.
tail_timeTail Duration (RT60)Slider2.50.1 to 10.0sTarget impulse response duration (or auto-estimated via Sabine formula).
auto_sabineAuto-estimate Tail (Sabine)ToggleOnOff / On—Calculates room volume and surface area to automatically compute physical RT60.
eco_modeEco ModeToggleOnOff / On—Suspends GPU raytracing compute passes when input audio is silent.
auto_genAuto-Generate IRToggleOnOff / On—Automatically re-renders acoustic IR on GPU whenever objects, listener, or materials change.