/band

another room acoustics application

Primary LanguageTypeScriptMIT LicenseMIT


Band

a modern acoustic simulator

⚠️ This is a work in progress, many things are not working / not implemented yet

About

Band is an application that allows users to simulate and explore various acoustic properties of a modeled space. This is essentially a rewrite of cram

Features

  • Interactive 3D model editor
  • Diverse set of solvers
  • Comprehensive material library
  • Upload your own custom materials
  • Automatic project saving
  • Cloud storage
  • Result visualization and data export
  • Spatial auralization

Solvers

  • Statistical Reverberation time using Sabine, Eyring, and Arau-Puchades methods
  • Stochastic Ray Tracing to produce an impulse response
  • Image Source Method for early reflection analysis
  • Finite Difference Time Domain for modal analysis

Design Goals

Intuitive

should have an intuitive user interface, and should follow the design patterns of modern 3D CAD software (SketchUp, Blender, Fusion 360, etc.)

Interactive

should have an interactive model editor with easy to use navigation, selection, and transformation controls.

Responsive

should always be responsive to parameter changes which are reflected in the model editor. For example, user should be allowed to change a source's position while recording a FDTD simulation.

Free

should be free and open source using MIT license

Cross Platform

should run in a modern browser (Chrome, Firefox, Brave, Safari, Edge), and on most platforms (macOS, Windows, Linux, iOS, Android, Raspbian)

Solution Diversity

should provide a diverse set of solution/simulation types, namely:

  • Reverberation time using various equations (Sabine, Eyring, Arau-Puchades, etc.)
  • Geometric Acoustics
  • Wave Based Solutions
    • FDTD in 2 dimensions with various boundary conditions (Neumann, Open/PML)

Material Diversity

should provide access to a large material database with modern search tools

Simple IO

should have saving/loading functionality using human readable/editable JSON, as well as state persistence using local storage.

Result Export

should be able to export solution results to various formats:

  • Tabularized (.csv, .txt)
  • Spreadsheet (.xlsx)
  • Image (.svg, .png, .gif)
  • Audio (.wav)

Import Diversity

should be able to read various 3d mesh file types, namely:

  • Wavefront (OBJ)
  • GLTF
  • STL
  • Collada (DAE)
  • PLY

Result Visualization

should be able to view results using various chart types or visually in the model editor