Survey and Review of Input Libraries, Frameworks, and Toolkits for Interactive Surfaces and Recommendations for the Squidy Interaction Library

Total Page:16

File Type:pdf, Size:1020Kb

Survey and Review of Input Libraries, Frameworks, and Toolkits for Interactive Surfaces and Recommendations for the Squidy Interaction Library LUDWIG-MAXIMILIANS -U NIVERSITÄT MÜNCHEN Department “Institut für Informatik” Lehr- und Forschungseinheit Medieninformatik Prof. Dr. Heinrich Hußmann Diplomarbeit Survey and Review of Input Libraries, Frameworks, and Toolkits for Interactive Surfaces and Recommendations for the Squidy Interaction Library Anton Zeitler [email protected] Bearbeitungszeitraum: 15.04.2006 bis 14.10.2009 Betreuer: Dipl.-Medieninf. Raphael Wimmer Verantwortlicher Hochschullehrer: Prof. Dr. Heinrich Hußmann Survey and Review of Input Platforms and Recommendations for Squidy Acknowledgments I would like to thank Roman Rädle and Werner König from the Human-Computer Interaction Group of the University of Konstanz. They supported me a lot and always found some time to answer many questions. Furthermore, Jan Wehrheim and Alexander Lang gave me valuable feedback. III Survey and Review of Input Platforms and Recommendations for Squidy Abstract This diploma thesis presents a survey and review of 28 input libraries, frameworks, and toolkits. They originate from the domains multi-touch interaction, multi-modal interaction, tangible interaction and augmented and virtual reality. The main perspective is software engineering. Out of the set of software platforms the Squidy Interaction Library is chosen as basis for the Curve project, an interactive desk featuring a curved multi-touch surface. The software architecture of Squidy is discussed and compared with the architecture of DirectShow, a multimedia subsystem of Microsoft Windows. A number of improvements for further developments of Squidy are recommended and described in detail. One improvement has been exemplarily implemented. Kurzzusammenfassung Diese Diplomarbeit bietet eine Übersicht und eine Besprechung von 28 Bibliotheken, Frameworks und Toolkits zur Verarbeitung von Eingabedaten. Diese entstammen den Domänen Multi-Touch Interaction, Multi-Modal Interaction, Tangible Interaction und Augmented und Virtual Reality. Hauptperspektive ist die Softwaretechnik. Aus dem Bestand der Softwareplattformen wird die Squidy Interaction Library als Basis für das Projekt Curve ausgewählt, einen interaktiven Arbeitstisch mit einer gekrümmten Multi- Touch-Oberfläche. Die Softwarearchitektur von Squidy wird diskutiert und mit der Architektur von DirectShow verglichen, einem Multimedia-Teilsystem von Microsoft Windows. Für weiterführende Entwicklungen von Squidy wird eine Anzahl von Verbesserungen empfohlen und im Detail beschrieben. Eine Verbesserung wurde exemplarisch implementiert. V Survey and Review of Input Platforms and Recommendations for Squidy Aufgabenstellung Im Rahmen der Diplomarbeit soll eine Recherche nach bestehenden Softwareplattformen durchgeführt werden, die sich zur Verarbeitung von Eingabedaten für das Projekt Curve eignen. Aus dem Bestand dieser Softwareplattformen soll eine fundierte und begründete Auswahl getroffen werden, die sowohl den qualitativen als auch funktionalen Ansprüchen von Curve gerecht wird. Aufbauend auf der gewählten Plattform sollen Vorschläge und Empfehlungen für notwendige Ergänzungen sowie sinnvolle Verbesserungen der Plattform diskutiert und ausgearbeitet werden. Weiterhin soll fehlende Kernfunktionalität der Plattform soweit wie möglich implementiert werden. VII Survey and Review of Input Platforms and Recommendations for Squidy "Ich erkläre hiermit, dass ich die vorliegende Arbeit selbstständig angefertigt, alle Zitate als solche kenntlich gemacht sowie alle benutzten Quellen und Hilfsmittel angegeben habe.” München, den 14.10.2009 ____________________ Anton Zeitler IX Survey and Review of Input Platforms and Recommendations for Squidy Table of Contents 1 Introduction ...................................................................................................................1 1.1 Motivation of the Curve Project ............................................................................1 1.2 Status of the Curve Project ...................................................................................2 1.3 Objective of this Work ...........................................................................................2 1.4 Outline of this Work ..............................................................................................3 1.5 Related Work .........................................................................................................3 2 Software Engineering Basics ..........................................................................................5 2.1 Software Design Principles .....................................................................................5 2.2 Programming Paradigms ........................................................................................6 2.2.1 Object-Oriented Programming .......................................................................6 2.2.2 Aspect-Oriented Programming .......................................................................7 2.3 Patterns ..................................................................................................................7 2.3.1 Design Patterns ..............................................................................................7 2.3.2 Architectural Patterns ....................................................................................8 2.3.3 Anti-Patterns ..................................................................................................9 2.4 Concurrency, Multi-Threading, and Parallel Processing .......................................9 2.5 Libraries, Frameworks, and Toolkits ...................................................................10 3 Requirements for an Input Framework .......................................................................11 3.1 Software Developer's Perspective .........................................................................11 3.2 Application Developer's Perspective ....................................................................12 3.3 End-User's Perspective .........................................................................................12 3.4 Scientist's Perspective ..........................................................................................12 3.5 Curve's Perspective ..............................................................................................13 3.6 Technical Specifications .......................................................................................13 3.6.1 Supported Communication Protocols ...........................................................13 3.6.2 Supported Interaction Devices and Interfaces ..............................................14 3.6.3 Supported Types of Data ..............................................................................14 4 Survey of Input Frameworks, Libraries, and Toolkits ................................................15 4.1 Augmented and Virtual Reality ...........................................................................15 4.1.1 Unit ...............................................................................................................15 4.1.2 ViSTA (DataLaViSTA) ................................................................................16 4.2 Multi-Modal Interaction .......................................................................................16 4.2.1 OpenInterface ................................................................................................17 4.2.2 Squidy Interaction Library ...........................................................................18 4.2.3 vvvv ...............................................................................................................18 4.3 Multi-Touch Interaction .......................................................................................19 4.3.1 Bespoke Multi-Touch ....................................................................................19 4.3.2 Community Core Vision ...............................................................................20 4.3.3 EquisFTIR ....................................................................................................20 4.3.4 libavg .............................................................................................................20 4.3.5 libtisch ...........................................................................................................21 XI Survey and Review of Input Platforms and Recommendations for Squidy 4.3.6 mu3 ...............................................................................................................21 4.3.7 Multi-Touch Vista ........................................................................................21 4.3.8 multitouch .....................................................................................................22 4.3.9 MultiTouch.framework SDK ........................................................................22 4.3.10 multitouchframework ..................................................................................22 4.3.11 OpenTouch ..................................................................................................23 4.3.12 pyMT ..........................................................................................................23 4.3.13 Sparsh UI ....................................................................................................23 4.3.14 TouchKit .....................................................................................................24 4.3.15 Touchlib ......................................................................................................24
Recommended publications
  • The Usability of a Visual, Flow-Based Programming Environment for Non-Programmers
    THE USABILITY OF A VISUAL, FLOW-BASED PROGRAMMING ENVIRONMENT FOR NON-PROGRAMMERS by Alia H. Shubair A thesis presented to Ryerson University in partial fulfillment of the requirements for the degree of Master of Science in the Program of Computer Science Toronto, Ontario, Canada, 2014 © Alia H. Shubair 2014 ii Author’s Declaration I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. I authorize Ryerson University to lend this thesis to other institutions or individuals for the purpose of scholarly research. I further authorize Ryerson University to reproduce this thesis by photocopying or by other means, in total or in part, at the request of other institutions or individuals for the purpose of scholarly research. I understand that my thesis may be made electronically available to the public for the purpose of scholarly research only. iii iv Abstract The Usability of A Visual, Flow-Based Programming Environment for Non-Programmers Alia H. Shubair Master of Science, Computer Science Ryerson University, 2014 Living with “Big Data” gives us the advantage of being able to exploit this wealth of data sources and derive useful insights to make better decisions, enhance productivity, and optimize resources. However, this advantage is limited to a small group of profes- sionals, with the rest of the population unable to access this data. Lack of support for non-professionals creates the need for data manipulation tools to support all sectors of society without acquiring complex technical skills.
    [Show full text]
  • Comparative Programming Languages CM20253
    We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily
    [Show full text]
  • Generative Imaging
    Generative Imaging Zsolt Korai Created by XMLmind XSL-FO Converter. Generative Imaging Zsolt Korai Copyright © 2014 Typotex Kiadó Abstract The Generative Imaging curriculum's main subject is the graphic programming language called VVVV. This is a visual programming language mostly used for art installations and various types of projections. Through these lessons, you will get to know the VVVV program's interface, simple mathematics and the processing of different message types, 2D and 3D imaging and transformations, picture and video detection, the controlling of external peripheries (like cameras, Kinect, MIDI controllers, Wacom tablets, Arduino and DMX) and the OSC communication with Android and IOS. Advanced programming knowledge is not required for the use of VVVV, only the basics of computer usage and graphic-video editing. Budapesti Kommunikációs és Üzleti Főiskola Copyright: 2014-2019, Zsolt Korai, University of Applied Sciencies, Budapest Creative Commons NonCommercial-NoDerivs 3.0 (CC BY-NC-ND 3.0) This work can be reproduced, circulated, published and performed for non-commercial purposes without restriction by indicating the author's name, but it cannot be modified. Reader: Péter Dunajcsik ISBN 978 963 279 220 0 Prepared under the editorship of Typotex Kiadó Responsible manager: Zsuzsa Votisky Made within the framework of the project Nr. TÁMOP-4.1.2/A/1-11/1-2011-0010 entitled „Digitális és kollaboratív művészet”. Created by XMLmind XSL-FO Converter. Table of Contents 1. This material is about learning how to use VVVV ......................................................................... 1 2. User interface, language, menu system, the Inspektor and the use of help files ........................... 20 2.1. First steps, installation and useful tips .............................................................................
    [Show full text]
  • List of Programming Languages
    List of programming languages The aim of this list of programming languages is to 1 A include all notable programming languages in existence, both those in current use and historical ones, in alpha- • A# .NET betical order, except for dialects of BASIC, esoteric pro- gramming languages, and markup languages. • A# (Axiom) Contents : • A-0 System • A+ • A • A++ • B • ABAP • C • ABC • D • ABC ALGOL • E • • F ABSET • • G ABSYS • H • ACC • I • Accent • J • Ace DASL • K • ACL2 • L • Avicsoft • M • ACT-III • N • Action! • O • ActionScript • P • Ada • Q • Adenine • R • Agda • S • • T Agilent VEE • • U Agora • V • apple • W • AIMMS • X • Alef • Y • ALF • Z • ALGOL 58 • See also • ALGOL 60 1 2 3 C • ALGOL 68 2 B • ALGOL W • B • • Alice Babbage • Bash • Alma-0 • BASIC • AmbientTalk • bc • Amiga E • BCPL • AMOS • BeanShell • Batch (Windows/Dos) • AMPL • Bertrand • AngularJS • BETA • Apex (Salesforce.com) • Bistro • APL • BitC • BLISS • App Inventor for Android’s visual block language • Blockly • AppleScript • BlooP • Arc • Boo • ARexx • Boomerang • • Argus Bourne shell (including bash and ksh) • BREW • AspectJ • BPEL • Assembly language • Business Basic • ATS • Ateji PX 3 C • AutoHotkey • C • C-- • Autocoder • C++ – ISO/IEC 14882 • AutoIt • C# – ISO/IEC 23270 • AutoLISP / Visual LISP • C/AL • Averest • Caché ObjectScript • C Shell • AWK • Caml • Axum • Cayenne • Active Server Pages • CDuce • ASP.NET • Cecil 3 • Cesil • COMIT • Céu • Common Intermediate Language (CIL) • Ceylon • Common Lisp (also known as CL) • CFEngine • COMPASS • CFML • Component
    [Show full text]
  • Art Unlimited: an Investigation Into Contemporary Digital Arts and the Free Software Movement
    Art Unlimited: An investigation into contemporary digital arts and the free software movement A thesis submitted to Middlesex University in partial fulfillment of the requirements for the degree of Doctor of Philosophy/Master of Philosophy Chun Lee School of Art Middlesex University May, 2008 Abstract Computing technology has not only significantly shaped many of the contem- porary artistic disciplines, it has also given birth to many new and exciting practices. Modest, low cost hardware enabled artists to manipulate real-time multimedia data and coordinate vast amounts of hardware devices, whilst high bandwidth Internet connections has allowed them to communicate and dis- tribute their work rapidly. For this reason, art practices in the digital domain have become highly decentralized. It is therefore not surprising that the rise of free and open source software (FLOSS) has been warmly welcomed and adopted by an increasing number of practitioners. The technical advantages in free software allows them to create works of art with greater freedom and flexibility. Its open and collaborative ideology, on the other hand, further embraces the increasingly autonomous and distributed characteristics in the artistic community. This thesis aims to examine the impact of free and open source software in the context of contemporary digital arts. It will look at the current climate of both digital arts and the FLOSS movement, attempting to rationalize the implications of such a phenomena. It will also provide concrete examples of ongoing activities in FLOSS digital arts, as an evidence and documentation of its development to date. Lastly, the practical work in this research will offer a first hand insight into developing a FLOSS project within the given context.
    [Show full text]
  • Chapter 2 Tools for the Visual Media Artist: a Survey
    Chapter 2 Tools for the Visual Media Artist: A Survey 2.1 Changing Practice in Media Arts The practices of first generation media artists are significantly different from current ones as artists engaging with the computer for the first time had to deal with a different set of problems than those working today. For example, first generation artists - those working in the late 60s and early 70s (Michael Noll, Freider Nake, Charles Csuri) - did not have generic graphics languages that could describe basic shapes, and found it necessary to implement these directly [Dietrich, 1986]. Artist-scientists at the time began developing the first computer languages for visual elements, such as Kenneth Knowlton's COMPART ER 56 and Leslie Mezei's SPARTA. These tools, while mostly experimental, set the context for graphics systems that would follow. Today, graphics tools for visual artists are abundant. Many languages, such as Java, Flash, and Processing, are based on the metaphors of earlier text-based languages, and 1 Chapter 2. Tools for the Visual Media Artist: A Survey invite the artist to be programmers themselves. Such systems allow a great deal of flexibility in describing behaviors. Other tools, such as Maya, Houdini, Xfrog and Massive, present the artist with an application environment in which to express visual objects. These systems generally make it easier to represent complex geometries, with some focusing on hand-manipulated and articulated digital modelling while others focus on procedural, or computationally, generated models. Still other tools present the artist with visual data flow languages for interactively connecting objects to express ideas.
    [Show full text]