How danoo-c/3d-immersive works
Immersive is an early-stage desktop 3D sound-creation application. Its intended workflow is to import audio, arrange clips on timeline channels, position and animate sources, then produce binaural stereo; today, project editing, media browsing, audition, and themes work, while spatial playback and rendering are not yet integrated. The graph distinguishes the documented product stages from sampled implementation links; dashed, uncited links mark planned or unverified relationships rather than confirmed calls.
Main entry points: main_window.py Main window · document.py Open project · media_pool.py Media pool · engine.py Audio engine
Components 23
Application and UI
- App startup
src/immersive/app.py - Main window
src/immersive/ui/main_window.py - Timeline
src/immersive/ui/timeline/view.py - Parameter views
src/immersive/ui/parameters/views.py - Theme system
src/immersive/ui/theme.py - Spatial workspace
src/immersive/ui/spatial
Project editing
- Open project
src/immersive/core/document.py - Project model
src/immersive/core/model.py - Edits and undo
src/immersive/core/edits.py - Project files
src/immersive/core/io/project_io.py - Time and snapping
src/immersive/core/time.py
Media and assets
- Media pool
src/immersive/ui/explorer/media_pool.py - Audio import
src/immersive/core/io/media.py - Media store
src/immersive/core/media_store.py - Waveform peaks
src/immersive/core/io/peaks.py
Audio processing
- Audition player
src/immersive/audio/player.py - Audio engine
src/immersive/audio/engine.py - Playback scheduler
src/immersive/audio/scheduler.py - Spatial processing
src/immersive/audio/spatial.py - HRTF bank
src/immersive/audio/hrtf/bank.py - Binaural render
src/immersive/audio
Other components
- Producer
- Stereo WAV
Connections 34
- Producer → App startup: launches
src/immersive/app.py - App startup → Main window: shows
src/immersive/app.py - App startup → Theme system: applies
src/immersive/app.py - Producer → Main window: composes in
README.md - Main window → Open project: edits project
src/immersive/ui/main_window.py - Main window → Timeline: hosts
src/immersive/ui/main_window.py - Main window → Media pool: hosts
src/immersive/ui/main_window.py - Main window → Parameter views: hosts
src/immersive/ui/main_window.py - Main window → Audition player: uses
src/immersive/ui/main_window.py - Main window → HRTF bank: prepares
src/immersive/ui/main_window.py - Main window → Spatial workspace: provides
README.md - Open project → Project model: holds
src/immersive/core/document.py - Open project → Project files: loads and saves
src/immersive/core/document.py - Open project → Edits and undo: tracks commands
src/immersive/core/document.py - Timeline → Edits and undo: dispatches edits
src/immersive/ui/timeline/view.py - Timeline → Time and snapping: uses grid
- Parameter views → Open project: commits changes
src/immersive/ui/parameters/views.py - Media pool → Open project: reads project
src/immersive/ui/explorer/media_pool.py - Media pool → Media store: reads assets
src/immersive/ui/explorer/media_pool.py - Media pool → Waveform peaks: shows waveforms
src/immersive/ui/explorer/media_pool.py - Producer → Media pool: imports audio
README.md - Audio import → Project model: creates media entries
src/immersive/core/io/media.py - Main window → Audio import: imports files
src/immersive/ui/main_window.py - Main window → Media store: manages assets
src/immersive/ui/main_window.py - Audio engine → Playback scheduler: uses scheduling
src/immersive/audio/engine.py - Audio engine → Spatial processing: processes sources
src/immersive/audio/engine.py - Spatial processing → HRTF bank: uses filters
src/immersive/audio/spatial.py - HRTF bank → Audio import: loads dataset audio
src/immersive/audio/hrtf/bank.py - Audition player → Audio engine: feeds playback
- Producer → Spatial workspace: positions sources
README.md - Spatial workspace → Project model: edits positions
README.md - Producer → Binaural render: requests render
README.md - Binaural render → Audio engine: renders offline
src/immersive/audio/engine.py - Binaural render → Stereo WAV: writes stereo
README.md