Skip to content

JohnEdChristensen/lyra

Repository files navigation

Lyra

Lyra is a a simulation of a wave on a string. Waves on strings are what makes a guitar guitar (or a lyre ly?).

It runs anywere in a web browser: lyra

Optionally, it can be compiled to run as a native desktop application for Windows, MacOS and Linux.

It is written in Rust, and uses egui for the gui.

Testing locally

Make sure you are using the latest version of stable rust by running rustup update.

cargo run --release

On Linux you need to first run:

sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev

On Fedora Rawhide you need to run:

dnf install clang clang-devel clang-tools-extra libxkbcommon-devel pkg-config openssl-devel libxcb-devel gtk3-devel atk fontconfig-devel

Web Locally

You can compile to WASM and publish it as a web page.

We use Trunk to build for web target.

  1. Install Trunk with cargo install --locked trunk.
  2. Run trunk serve to build and serve on http://127.0.0.1:8080. Trunk will rebuild automatically if you edit the project.
  3. Open http://127.0.0.1:8080/index.html#dev in a browser. See the warning below.

assets/sw.js script will try to cache our app, and loads the cached version when it cannot connect to server allowing your app to work offline (like PWA). appending #dev to index.html will skip this caching, allowing us to load the latest builds during development.

About

Wave equation simulation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published