Repository for the Sonifying Billiards application. The application serves as the Technical University of Delft software project course, done by students Arnas Misevicius, Lea Romanek, Lapo Masiero, Zeyd Belouaer and Daniel Voronkov
Rust and cargo are required for this project. Recommended way is to use rustup.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shDownload and run the rustup-init.exe built for the x86_64-pc-windows-msvc or aarch64-pc-windows-msvc target, depending on your OS architecture.
Node.js and npm are required to run the web application frontend in this project. Both tool can be installed as follows:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
\. "$HOME/.nvm/nvm.sh"
nvm install 24The Windows installation of Node requires installing Chocolatey, you can read more about it here
powershell -c "irm https://community.chocolatey.org/install.ps1|iex"
choco install nodejs --version="24.15.0"Building this project consists of 2 parts: building the rust crate(sim-lib) and building the Node web application(web-ui)
!!TODO: Make a build script for both
Run wasm-pack within the sim-lib as such:
wasm-pack build --target webVite supports hotswapping code, so the application can be directly run without needing to build it separately.
The application can be launched from the web-ui project root, by running
npm run devThe application can be accessed on localhost at the port shown by Vite in the console that is running the Node instance.
sonifying-billiards/
├── README.md
├── sim-lib/
│ ├── Cargo.lock
│ ├── Cargo.toml
│ ├── pkg/
│ └── src/
│ └── lib.rs
└── web-ui/
├── README.md
├── eslint.config.js
├── index.html
├── package-lock.json
├── package.json
├── public/
├── src/
│ ├── App.css
│ ├── App.tsx
│ ├── assets
│ ├── index.css
│ └── main.tsx
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts