Skip to content

tabreturn/papertracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PaperTracker

Gamified music & tech teaching tool

An educational platform for engaging 14–140 year-olds with music, technology, and game design. The focus is on providing entertaining challenges inexpensively, that promote creative problem solving, collaborative work, and programming using visual apparatus.

live demo

printable board & tiles download

how it works

step 1: place tiles

step 2: take photo

step 3: simulation


screenshots


run

  1. cd to webserver directory
  2. copy/rename the config_sample.py file to config.py
  3. create virtual environment: python -m venv env
  4. activate virtual environment: source env/bin/activate
  5. install packages: pip install -r requirements.txt
  6. set environment variables: export FLASK_APP=run.py
  7. for flask debug mode: export FLASK_DEBUG=1
  8. run the server: flask run
  9. open website in browser: http://localhost:5000

On subsequent runs, leave out steps 2, 3, 5.

features

alpha

  • opencv detect tile grid coordinates
  • flask to return tile coordinates
  • place tiles (after above step)
  • re-snap option if invalid json data
  • run mp3 samples on tone.js player
  • preload tone.js samples
  • universal config (for js, python, etc. from a single file)
  • generate session id using python?
  • monitor interface (to observe what the user sees on their phone on another screen)
  • add matomo config to config.py
  • add pulse collision rule(s)
  • run button to become reset/rerun button once clicked
  • test <input ...capture=camera" />
  • collision symbol/indication?
  • different sound per colour (i.e. red pulse plays a different hihat than a green pulse)
  • random tile that gives an event a 50% chance of occurring (must be used with another half-tile)

beta

  • cache audio (service worker?)
  • markerless grid (and tile) detection?
  • orientable (horizontal/vertical) tiles?
  • panel for uploading/configuring own instruments

bugs

  • aruco code detection too senstive to light conditions and poor photos
  • pulses moving north survive collisions
  • match the board colour with the print?
  • disregard tiles outside of the grid
  • (TEST) simultaneous sessions (server prefixes images names?)
  • use rear camera on tablets

ideas

  • what happens if we put two kick drums next to each other? ('accent' and have it louder?)
  • what happens if we put two different arrows next to each other?

Created by (alphabetically by firstname) Andre Mūrnieks, Jon He, Radek Rudnicki, Tristan Bunn.