Super Predictive Text Space Adventure 3000
==========================================

SPTSA-3000 is a playful visualization of predictive text models. A kind of a
look into "text space" when computers take on Markov chains.

This interface experiment was done by Ana Isabel Carvalho & Ricardo Lafuente
(Manufactura Independente).

Most of the stuff here is the code and source text files for the application.
See the photos/ dir for some visual documentation.


Dasher
------

We had a lot of fun hacking Dasher to become something else, and put together
some probably helpful notes for anyone wanting to look deeper into Dasher and
its exquisite text prediction capabilities.


### How to feed Dasher with any corpus

Using the "Import Training Text" option did not work for us, it hangs at 100%
progress. We found another method, though.

  1. Ensure that you have a ~/.dasher directory.

  2. Copy over an alphabet file from /usr/share/dasher to ~/.dasher . There are
     alphabet files available for many languages, just copy the one you will be
     working with (e.g. alphabet.french.xml).

  3. Also copy your corpus to ~/.dasher . Your corpus file is just a text or
     collection of texts that Dasher will learn from. The file name is your choice.

  4. Edit your alphabet file (and maybe rename it since you'll be using one for
     each corpus), and change the following things:

    * alphabet name: The name that will appear on Dasher's language selection
      interface
    * train: The filename for your corpus file
    * groups and characters: these are the characters which will appear on
      Dasher. Feel free to remove numbers, punctuation and other that you won't
      need.  Remove the uppercase group to get only lowercase output. Accented
      characters show up as numeric HTML entities -- see here for entity codes
      http://www.w3schools.com/html/html_charset.asp

  5. Now run Dasher, you should find your new alphabet in the language
     selection dialog.

It is not necessary to pre-process your corpus file for usage, but there are
some details on the inner workings of Dasher [on the official
site](http://www.inference.phy.cam.ac.uk/dasher/Training.html).


Hacking the OS
--------------

Since we were already using a graphical program, we decided to hack around the
UI of our operating system instead of trying to write a more complex way to
work with it. These were our steps:

  * Install antimicro to set up mouse control with a USB gamepad

  * Replace the default arrow cursor with a spaceship sprite (we spent hours
    trying to install a separate cursor theme from Gnome, but it's a real pain; a
    lot easier to just edit the current one)

  * To turn the PNG image into a cursor file, see
    [this](http://www.ehow.com/how_5026012_make-cursors-file-ubuntu.html)

  * Use the simple restrainmouse script found
    [here](https://www.linuxquestions.org/questions/linux-general-1/confine-mouse-movement-mouse-jail-729654/]
    to restrain the mouse to the desired area


Acknowledgements
----------------

* Constant for making Relearn, the space that allowed us to develop a silly idea into a working proposition
* Femke Snelting for finding the coolest gamepad we've seen
