Skip to content

kneasle/jigsaw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jigsaw

A visual, incremental composing tool for change ringing. Since this program is currently my 3rd year project, there is an orphan branch report which contains the LaTeX files of the project report.

Overview

The goal of this project is to design and build a visual application which will aid composers of pieces of Change Ringing in their work, whilst requiring as little change to their existing workflow as possible. The main advantages provided over pen/paper is that this program gives instant and correct feedback on loads of useful information such as music, length and falseness (and other less important statistics like 'all-the-work-ness' which are still tedious to calculate manually). This is very much still a W.I.P. prototype and many features are missing, but the latest commit to the master branch is always made public here. Also here's a screenshot:

Project screenshot

Build Instruction

This project is mostly written in Rust, but runs a web GUI using JS (with the Rust code compiled to WebAssembly). To build it from source, you will need to install Rust and then install the necessary tools with the following commands:

rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli

This will possibly take a few minutes to compile wasm-bindgen-cli.

Once the utilities are installed, you can build Jigsaw by running build.py (in the project root) from anywhere on your filesystem. By default, it will place the build files in <repo root>/out/ but that can be overridden if necessary (run build.py --help for more info). This generates a folder which can be served by a webserver, for example:

cd <out directory>
python3 -m http.server

This will print the port of the HTTP server, but Jigsaw will usually be found at https://127.0.0.1:8000.