Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/keera-studios/keera-posture

Alleviate your back pain using Haskell and a webcam
https://github.com/keera-studios/keera-posture

back-pain camera haskell health healthcare multimedia opencv pain rsi

Last synced: about 12 hours ago
JSON representation

Alleviate your back pain using Haskell and a webcam

Awesome Lists containing this project

README

        

# Welcome to Keera Posture

This application tries to detect your posture while you sit and warns you when
it deviates too much from a reference posture given during configuration. It
may be used, among other things, to help you detect when you are sitting in a
straining position.

WARNING: No promises are made about this program. If you use it, you'll do so
under your own risk. This program might make your computer explode, kill your
cat, or make your back pain problems worse. Use it with care and under medical
supervision only. Report any issues with the program to Keera Studios by email,
facebook, linkedin or google plus. It is best used in combination with programs
that force you to take regular breaks, stretch, etc. By continuing to use
keera-posture, you are agreeing not to sue us or Keera Studios Ltd.

# INSTALLATION (default)

Keera Posture is available on hackage. Unless you need the latest development
version, the recommended way is to install the version there.

Install C/C++ development headers. That includes gtk, sdl, opengl, opencv.

Then:
```
$ cabal sandbox init
$ cabal update
$ cabal install gtk2hs-buildtools
$ export PATH=$PWD/.cabal-sandbox/bin:$PATH
$ cabal install keera-posture
```

# INSTALLATION ON DEBIAN (the not-so-easy way; but still quite easy)

You need to have git, cabal and ghc installed. Everything else will
be installed for you. You also need to run sudo (at least once) so that the script
can sudo without a password whenever it needs to.

All you need is:

$ mkdir -p keera-posture && cd keera-posture && (wget -O- https://raw.githubusercontent.com/keera-studios/keera-posture/master/debian/package-from-scratch.sh | bash)

This will create all the necessary directories, check out all sources, prompt
to install dependencies, compile the whole program, and create a DEB file for your
architecture and version of debian/ubuntu. If it works, install that.

# COMPILATION ON OTHER LINUX/UNIX SYSTEMS (not so easy, not so hard)

Again, you need to have ghc, cabal, cabal-dev and git. You also need some
libraries installed (GL, SDL, SDL-mixer, FTGL, OpenCV, Gtk2, Glade2). The list
for debian systems is:

- libopencv-dev libglade2-dev libgl-dev libglu1-mesa-dev libftgl-dev libsdl1.2-dev libsdl-mixer1.2-dev

I don't use Fedora, so you have to find which ones are yours. Then, run the following:

$ mkdir -p keera-posture && cd keera-posture && (wget -O- https://raw.githubusercontent.com/keera-studios/keera-posture/master/installation.sh | bash)

This will check out, compile and install everything you need.

# DOING EVERYTHING BY HAND (only for developers)

Dependencies (tools):
- alex (gtk2hs-buildtools), happy (gtk2hs-buildtools), gtk2hs-buildtools.

Dependencies (libraries):
- libopencv-dev libglade2-dev libgl-dev libglu1-mesa-dev libftgl-dev
libsdl1.2-dev libsdl-mixer1.2-dev

(If you use debian/ubuntu, you can install all of those with apt-get)

Installation instructions (for ubuntu, but the program is known to work on Windows):

```
$ apt-get install cabal-install ghc libopencv-dev libglade2-dev libgl-dev libglu1-mesa-dev libftgl-dev libsdl1.2-dev libsdl-mixer1.2-dev
$ cabal sandbox init
$ cabal update
$ export PATH=$PWD/.cabal-sandbox/bin:$PATH
$ cabal install alex happy gtk2hs-buildtools
$ cabal install keera-posture
```

Keera posture will be installed in keera-posture/cabal-dev/bin/keera-posture. If you want to create a desktop launcher, https://raw.github.com/keera-studios/keera-posture/master/data/icon-good-posture.png can make a good icon.

Please, go to your preferred social network and like Keera Studios, share our posts, follow us, tell all your friends about it. Record a video of you using the program, and upload it to youtube.

# Calibration

The first time you run the program, you have to calibrate it. Just sit how you
think you should sit (and consult a physician if you don't know how to sit
properly) and right-click on its icon, and click on "Calibrate". Follow the
assistant, and the program will detect you and record your position.

After that, the position will be saved in a config file and the program will
warn you (using sound, a window and/or changing the tray icon) when your
posture is too different from what it was when you calibrated the program.

Test the program. The placement of your webcam and the amount of light
in the room can influence the accuracy of this system, so feel free to
experiment and find out how to get better results. Also, if you can think of
new features that might be useful, go online and open a ticket on the program's
github page.

# References

Keera Hails - Reactive Values: https://github.com/keera-studios/hails-reactivevalues