Skip to content
Patrick Moawad edited this page Aug 31, 2019 · 28 revisions

The MultitouchFramework is a simple and flexible Java framework facilitating the handling of multitouch input and the gesture recognition.

This page gives some general information about the project.

Goal

Many Java frameworks and engines for handling touch input available on the internet have at least one of the following caveats:

  • They are bound to specific touch handling protocols and technologies (for instance, TUIO, Windows Touch, etc.): this makes it hard to develop for multiple platforms;
  • They are bound to special GUI components: this puts too many restrictions on the user interface and makes it hard, if not impossible, to integrate with existing projects;
  • They miss ready-to-use gesture recognition algorithms or their gestures are not configurable enough: additional effort is needed to build meaningful touch-enabled applications;
  • They are not free and/or open-source, or their license is not permissive enough to integrate with other projects and to be used in commercial products.

The MultitouchFramework is meant to overcome all these issues, by filling the gap between low-level multitouch technologies (such as TUIO) and high-level application frameworks and/or toolkits that have no multitouch support (such as Swing). Therefore, it remains at a relatively low level compared to your application code.

The ultimate end-result is to be very flexible, and yet easy and ready to use, to cover the handling of touch inputs from A to Z (including pre-filtering, gesture recognition, post-filtering, etc.), and to be available under a permissive license.

Description

The MultitouchFramework allows to process touch input by connecting blocks together. Blocks can be, for example:

  • Sources: they provide cursors resulting from touches on the touchable surface, via TUIO, Windows Touch events, etc.
  • Filters: they smoothen the cursors, remove the noise, reduce the number of events, add inertia, re-schedule further processing on a different thread, etc.
  • Dispatchers: they associate the cursors to specific regions on the screen (GUI components, visual objects, etc.), possibly translating their coordinates.
  • Gesture recognizers: they recognize gestures (drag, swipe, tap, etc.) from the cursors on specific regions.
  • Gesture filters: they further transform the output from the gesture recognizers, by adding inertia, re-scheduling further processing on a different thread, etc.
  • Gesture listeners: they simply perform actions on the end-application when gestures are recognized.

Documentation

Project access

License

The MultitouchFramework is provided under the Simplified BSD License (2-clause).

Clone this wiki locally