Git Product home page Git Product logo

pymt's Introduction

PyMT - A Multitouch Framework for Python
========================================

Website: http://pymt.eu/
Planet: http://pymt.eu/planet/


About 0.5
---------

This is beta, so keep in mind that it might not work as intended at all times.
You can post bug reports and feature requests on our Google Project page :

  http://code.google.com/p/pymt/issues/list

If you need more help, you can discuss on mailing list :

  * Google Group : http://groups.google.com/group/pymt-dev
  * Email        : [email protected]

We also have an IRC channel :

  * Server  : irc.freenode.net
  * Channel : #pymt


Introduction
------------

PyMT is a python module for developing multi-touch enabled media rich
applications. Currently the aim is to allow for quick and easy interaction
design and rapid prototype development.

PyMT is written in python, based on OpenGL and supports different input methods
like Mouse, Dual Mouse, TUIO, WiiMote, WM_TOUCH, HIDtouch etc.

PyMT is actively being developed by a community and free to use. It operates on
all major platforms (Linux, OSX, Windows).


Installation
------------

Depending on your operating system you can follow one of the following guides
to install PyMT and the dependencies:

 * http://pymt.eu/wiki/DevGuide/InstallPymtUbuntu
 * http://pymt.eu/wiki/DevGuide/InstallPymtMacOSX
 * http://pymt.eu/wiki/DevGuide/InstallPymtWindows

If you chose to install all the dependencies (see below) yourself, you can invoke
the setup script as follows to install pymt systemwide for python:

  python setup.py install


Dependencies
------------

Since we abstract from the libraries that we use, some dependencies are
optional and may be used instead of others. A list of dependencies and what
we use them for is http://pymt.eu/wiki/Devel/FeaturesByLibraries

Here is what works best:

  * python (>= 2.6, < 3.0) - http://python.org
  * PyOpenGL >= 3.0.1
  * Pygame
  * PIL
  * GST + PyGST
  * Cython


Dcoumentation, Examples & Tutorials
-----------------------------------

There is an API reference included in doc. Check the doc/README about how
to build the documentation. It's also available online at :

	http://pymt.eu/docs/api/

There is some simple example apps in the examples folder that should get
you started for now. Additionally you may want to take a look at our wiki
at :

	http://pymt.eu/wiki/


Configuration
-------------

  [pymt]

  # show/hide fps
  show_fps = (0|1)

  # set log level
  log_level = (debug|info|warning|error|critical)

  # detection time of double tap (in milliseconds)
  double_tap_time = <integer>

  # max distance allowed for double tap (normalized in range 0 - 1000)
  double_tap_distance = <integer>

  # detection time of retain touch (in milliseconds)
  retain_time = <integer>

  # max distance allowed for retain touch (normalized in range 0 - 1000)
  retain_distance = <integer>

  # max distance to detect jittering (normalized in range 0 - 1000)
  jitter_distance = <integer>

  # list of device to ignore jittering
  jitter_ignore_devices = <devicename>,...

  # log directory
  log_dir = <string>

  # log name (can use format string from strftime)
  log_name = <string>

  # activate logging on file
  log_enable = (0|1)

  # GL error check (disable to have more speed)
  gl_error_check = (0|1)

  # ignore list
  ignore = [(xmin, ymin, xmax, ymax), ...]

  # INTERNAL, NEVER TOUCH TO config_version !!
  config_version = <integer>


  [keyboard]

  # default layout of keyboard
  layout = (azerty|qwerty)

  # repeat delay of the on-screen keyboard
  repeat_delay = <integer>

  # repeat rate of the on-screen keyboard
  repeat_rate = <integer>


  [graphics]

  # maximum fps allowed
  # if fps is <= 0, and vsync activated, the default maximum
  # fps will be set to 60.
  fps = <integer>

  # activate fullscreen
  fullscreen = (0|1)

  # width of window
  width = <integer>

  # height of window
  height = <integer>

  # force vsync
  vsync = (0|1)

  # force fbo type
  fbo = (hardware|software|force-hardware)

  # opengl line smooth
  line_smooth = (0|1)

  # show cursor on fullscreen
  show_cursor = (0|1)

  # position of the window on the screen
  # "auto" mean you have no control about the initial position
  # "custom" mean the position is controled with "top" and "left" attribute
  position = (auto|custom)

  # top position of the window (if position is custom)
  top = <integer>

  # left position of the window (if position is custom)
  left = <integer>

  # path to the window icon (for replacing the default pygame icon.)
  window_icon = <path>

  # rotation of the window
  rotation = (0|90|180|270)


  [input]

  # example of input provider instance
  yourid = providerid,parameters

  # example for tuio provider
  default = tuio,127.0.0.1:3333
  mytable = tuio,192.168.0.1:3334


  [dump]

  # activate record of frames
  enabled = (0|1)

  # prefix to use for dump
  prefix = <string>

  # format of dump image
  format = <jpeg|png>


  [widgets]

  # mtlist control

  # maximum distance to trigger down/up on child (pixels)
  list_trigger_distance = <int>

  # friction (factor, 1 = no friction)
  list_friction = <int>

  # friction when a bound have been hit
  list_friction_bound = <int>

  # keyboard type
  keyboard_type = <real|virtual>


  [modules]

  # modulename= to activate a module
  # you can have a list of module with :
  # python example.py -m list
  # example:
  keybinding=
  closeapp=
  feedback=
  touchring=



Other python/MT resources
-------------------------

movid.org
^^^^^^^^^

Another image tracker we are working on.

nuigroup.com
^^^^^^^^^^^^

THE resource and research community for open source multi touch and other
natural user interfaces.

pymt's People

Contributors

dennda avatar estemenson avatar hansent avatar patali avatar rcoyner avatar richardeakin avatar tito avatar tlockley avatar tmspzz avatar tshirtman avatar xelapond avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.