A JAX-based research framework for differentiable and parallelizable acoustic simulations, running on CPU, GPU, and TPU.
j-Wave is a library of simulators for acoustic applications, designed as a collection of modular blocks that can be easily integrated into machine learning pipelines. It is heavily inspired by and partially ports the established k-Wave simulator to JAX, enabling high-performance, hardware-accelerated acoustic simulations for research and development. The library prioritizes differentiability, just-in-time compilation, and execution on GPUs/TPUs.
Researchers and developers in acoustics, medical imaging (e.g., photoacoustics), and computational physics who need differentiable, GPU-accelerated simulation tools for integration with machine learning workflows. It is also suitable for those familiar with k-Wave seeking JAX-based performance and automatic differentiation capabilities.
Developers choose j-Wave for its seamless integration with JAX's ecosystem, offering automatic differentiation for gradient-based optimization and hardware acceleration across CPUs, GPUs, and TPUs without code changes. Its modular design and port of k-Wave functionality provide a familiar yet modernized tool for differentiable acoustic simulations.
A JAX-based research framework for differentiable and parallelizable acoustic simulations, on CPU, GPUs and TPUs
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports automatic differentiation for seamless integration with gradient-based optimization and machine learning pipelines, as emphasized in the README's principles.
Runs on CPUs, GPUs, and TPUs without code changes, leveraging JAX's backend for high-performance computing across diverse hardware.
Provides customizable building blocks for acoustic simulation pipelines, making it easy to incorporate into various applications, as noted in the description.
Uses JAX's just-in-time compilation for efficient execution and performance optimization, highlighted as a core principle in the README.
Can only be run on Windows machines using Windows Subsystem for Linux due to JAX's limited native support, as explicitly stated in the installation guide.
Requires familiarity with the JAX ecosystem, which may introduce a learning curve and compatibility issues for teams not already using JAX-based tools.
As a partial port of k-Wave, it might lack some advanced features or optimizations present in the original simulator, potentially limiting its scope for certain research applications.
jwave is an open-source alternative to the following products: