Skip to content


Repository files navigation



This is a master thesis project by me, Mario Ranftl (@majodev). The goal was to create an application that's suited for conducting therapeutic exercises (and according to experts, it is!). It's a JS/HTML5 game and playable in browsers, but also runnable as standalone desktop application.

Physiogame uses the Leap Motion controller as its primary input device (playing via mouse/touchscreens is also possible). It tracks the progress of its users and provides statistics that can be later exported to CSV (e.g. to import the stats in Microsoft Excel) and JSON. The behaviour, visuals, input of the game and its objects (normal and special) can be highly customized, hence there are maaaaaany parameters to modify the look and feel!


~~Attention: No i18n! Only german texts for now.~~ Added i18n v1.1.0 Feb 23, 2014, Physiogame ships with German and English texts! :)


(version 1.1.0, Feb 23, 2014)

All releases of Physiogame are here: GitHub releases

How does it look?

Image Image Image Image Image Image


`npm install -d`

bower update

Building 3rd party libs

Some libraries in src/vendor might need to be build manually (e.g. webfontloader via rake). Trace the error through the r.js optimization script if you encounter any errors or try to run setup before and consult your preferred js-dev-console.

cd src/vendor/webfontloader/ rake

Grunt build task

grunt build

The grunt task grunt build takes care of all js/css minifying and assets/templates copying to the folder build.

Running a build

Fire up your http-server in project root, e.g. simple http-server for node

http-server -c-1

Go to localhost:8080/build and enjoy

Why almond?

Even though there is no require (from node-webkit) in the global namespace during startup, a normal r.js optimized build will crash in node-webkit! I'm using almond to tackle these build problems for node-webkit (furthermore the result is 2kb smaller).


It's possible to do release builds for node-webkit via grunt-node-webkit-builder for Windows, Mac and Linux in one step. Here's how it works:

grunt release

That's it! Easy huh?!


needs phantomjs bin in path!

grunt or

grunt watch


resolving r.js and leapjs error


Balloons Vectors by Stuart Bainbridge * Creative Commons Attribution-Share Alike 3.0 License.

Alien sprites and explosion animation by PIXI.js team

  • MIT License

Music by The Open Game Art Bundle (from Stratkat and Epic Battle Fantasy III)

  • Creative Commons Zero License

Webfont Arvo by Anton Koovit

  • SIL Open Font License, 1.1

Icons Hand and Arrow by Dave Gandy (Font Awesome)

  • SIL Open Font License, 1.1


requirejs, almond, backbone, lodash

Modernizr, pixi, leapjs, keymaster, jquery, howler, webfontloader, loglevel, spinjs, polljs, bootstrap, text, handlebars, requirejs-handlebars, bootstrap-slider, Backbone.localStorage, csv, FileSaver, momentjs

http-server, chai, mocha, phantomjs, mocha-phantomjs, grunt-cli, grunt-contrib-watch, grunt-shell, grunt-contrib-copy, grunt-contrib-cssmin, grunt-modernizr, grunt-contrib-uglify, grunt-node-webkit-builder


Sublime Text 2, node-webkit, Adobe CS6 Suite, Texture Packer, Audacity, cfxr, XLD, Otomata, ImageOptim, ImageAlpha

Thank you!

* @nischi * @jrburke * C.A.F. * Ranftl family * NICI <3



In cooperation with FH JOANNEUM Graz, Austria.

  • advanced information management
  • physiotherapy and
  • occupational therapy

Copyright and Licenses


Sourcecode: GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007

Assets: Attribution-ShareAlike 3.0 Unported

Please see for further information of 3rd party licenses (used assets and libs)

(c) 2013-2014 Mario Ranftl (majodev).


funny and simple game, that's suited for therapeutic exercises with Leap Motion







No packages published