src.acoustools
AcousTools
A Python based library for working with acoustic fields for levitation. Developed mostly using PyTorch, AcousTools uses PyTorch Tensors to represent points, acoustic fields and holograms to enable development of new algorithms, applications and acoustic systems.
See Here for examples of code using AcousTools.
Survey: In order to help us understand who is using AcousTools please fill in this form
Table of Contents
Installation
Clone the repo and then run
pip install -r <path-to-clone>/requirements.txt
pip install -e <path-to-clone>/acoustools/ --config-settings editable_mode=strict
Use python<version> -m
before the above commands to use a specific version of python.
where <path-to-clone>
is the local location of the repository
Documentation
Documentation can be seen Here
Or to view the documentation for AcousTools locally, firstly install pdoc:
pip install pdoc
Then run pdoc on AcousTools to create a locally hosted server containing the documentation
python -m pdoc <path-to-clone>/acoustools/ --math
See Here for examples of code using AcousTools.
AcousTools Basics
AcousTools represents data as torch.Tensors
. A point is represented as a tensor where each column represents a (x,y,z) point. Groups of points can also be grouped into batches of points for parallel computation and so have a shape (B,3,N) for B batches and N points.
Ultrasound waves can be focused by controlling many sources such that at a given point in space all waves arrive in phase and therefore constructivly interfere. This can be done in a number of ways (acoustools.Solvers
). This allows for applications from high speed persistance-of-vision displays to haptic feedback and non-contact fabrication.
License
acoustools
is distributed under the terms of the MIT license.