SlideShare una empresa de Scribd logo
1 de 117
The Tactus Project
Novel Multi-Touch Task Management


Ryan Pavlik
The Project Definition
The Project Definition

 Overall objective: Do something neat and new.
The Project Definition

 Overall objective: Do something neat and new.
 Build hardware to enable multi-touch (MT) input to a
 computer system.
The Project Definition

 Overall objective: Do something neat and new.
 Build hardware to enable multi-touch (MT) input to a
 computer system.
 Develop software to use this hardware in a novel way.
The Project Definition

 Overall objective: Do something neat and new.
 Build hardware to enable multi-touch (MT) input to a
 computer system.
 Develop software to use this hardware in a novel way.
   Refinement: Create task-management software to
   use multi-touch
Getting it done...
Getting it done...
Lots of sawdust, plenty of error messages
Hardware Deliverables
Hardware Deliverables

Multi-touch displays capable of also supporting a
“standard” workstation
Hardware Deliverables

Multi-touch displays capable of also supporting a
“standard” workstation
  “MT Mini” temporary test device
Hardware Deliverables

Multi-touch displays capable of also supporting a
“standard” workstation
  “MT Mini” temporary test device
  Desk #1 - Projected Rear DI - complete
Hardware Deliverables

Multi-touch displays capable of also supporting a
“standard” workstation
  “MT Mini” temporary test device
  Desk #1 - Projected Rear DI - complete
  Desk #2 - LCD Laser Light Plane - lasers arrived on
  Monday...
Software Deliverables
Software Deliverables
 rp-mt-scripts - Multi-touch software system
Software Deliverables
 rp-mt-scripts - Multi-touch software system
   Linux-based (Ubuntu 9.04) system for automatic
   setup and management of multi-touch software
Software Deliverables
 rp-mt-scripts - Multi-touch software system
   Linux-based (Ubuntu 9.04) system for automatic
   setup and management of multi-touch software
   Now installing required software a one-step process
Software Deliverables
 rp-mt-scripts - Multi-touch software system
   Linux-based (Ubuntu 9.04) system for automatic
   setup and management of multi-touch software
   Now installing required software a one-step process
 tactus-navigator - “Nav display” task manager
Software Deliverables
 rp-mt-scripts - Multi-touch software system
   Linux-based (Ubuntu 9.04) system for automatic
   setup and management of multi-touch software
   Now installing required software a one-step process
 tactus-navigator - “Nav display” task manager
   Replacement for task bar
Software Deliverables
 rp-mt-scripts - Multi-touch software system
   Linux-based (Ubuntu 9.04) system for automatic
   setup and management of multi-touch software
   Now installing required software a one-step process
 tactus-navigator - “Nav display” task manager
   Replacement for task bar
   Places icons for current applications on MT display
What’s up with multi-touch?
What’s up with multi-touch?

Keyboard
What’s up with multi-touch?

Keyboard
Mouse
What’s up with multi-touch?

Keyboard
Mouse
Touchscreen
What’s up with multi-touch?

Keyboard
Mouse
Touchscreen
Multi-touch tablets/screens
Optical multi-touch sensing
Optical multi-touch sensing
Blob tracking through computer vision
Infrared
sensing
Infrared
sensing
Permits multi-touch
displays, not just
tablets
Table design principles
Table design principles
1001 ways to make a multi-touch screen
Revision 0: “MT Mini”
Revision 0: “MT Mini”
Software test platform, works by “front DI”
Rear diffused illumination
Rear diffused illumination
“Projected rear DI” chosen for first hardware
revision
Laser light plane (LLP)
Laser light plane (LLP)
LCD LLP: Slow shipping is disappointing...
Software
Software
Doing work with multi-touch, without throwing
out your keyboard or mouse
Navigation display
Navigation display


 Multi-touch surface as secondary display
Navigation display


 Multi-touch surface as secondary display
 Enhance interaction with existing software
Navigation display


 Multi-touch surface as secondary display
 Enhance interaction with existing software
 Requires a custom desk for both multi-touch I/O and
 normal I/O
Normal
                                            Display



Physical        Multi-touch
                Nav. Display
                                              Keyb.


Layout         LCD and
           Laser Light Plane
                                 LCD and light
                               plane sandwiched
                                    in there
                                                  Mouse
                 IR camera




               Wheels to be installed
                  for portability
Normal
                                                          Display



Physical                      Multi-touch
                              Nav. Display
                                                            Keyb.


Layout                       LCD and
                         Laser Light Plane
                                               LCD and light
                                             plane sandwiched
                                                  in there

“Normal” desk with                                              Mouse
                               IR camera
the multitouch
surface to the left of
                             Wheels to be installed
the keyboard                    for portability
Navigation display
Navigation display

 Replaces your taskbar,
 dock, etc.
Navigation display

 Replaces your taskbar,
 dock, etc.
 Horizontal multi-touch
 screen
Navigation display

 Replaces your taskbar,
 dock, etc.
 Horizontal multi-touch
 screen
 Supports a variety of
 gestures
Minimize all current windows
Minimize all current windows
Drag from “current display” bar into “pile canvas”
Minimize all current windows
Drag from “current display” bar into “pile canvas”
Restore a “window pile”
Restore a “window pile”
Drag from “pile canvas” into “current display” bar
Restore a “window pile”
Drag from “pile canvas” into “current display” bar
Move window to new “pile”
Move window to new “pile”
Drag a single window between piles, possibly
expanding first if you find it helpful
Move window to new “pile”
Drag a single window between piles, possibly
expanding first if you find it helpful
on ...
  t en si
Ex




Spread out a “pile”
on ...
  t en si
Ex




Spread out a “pile”
Drag a single window between piles, possibly
expanding first if you find it helpful
on ...
  t en si
Ex




Spread out a “pile”
Drag a single window between piles, possibly
expanding first if you find it helpful
Demo time
Demo time
Please feel free to ask questions, etc...
How it got done
How it got done
What I used, what I learned
Process
Process
Research/Comparison
Process
Research/Comparison
Interaction Design
Process
Research/Comparison
Interaction Design
Parallel Platform Development:
Process
Research/Comparison
Interaction Design
Parallel Platform Development:
  Hardware Construction
Process
Research/Comparison
Interaction Design
Parallel Platform Development:
  Hardware Construction
  Software platforms (task nav. with no interface, rp-
  mt-scripts)
Process
Research/Comparison
Interaction Design
Parallel Platform Development:
  Hardware Construction
  Software platforms (task nav. with no interface, rp-
  mt-scripts)
Integration
Strategies
Strategies
 Internet resources: nuigroup.com forums, etc
Strategies
 Internet resources: nuigroup.com forums, etc
   DIY MT is popular right now
Strategies
 Internet resources: nuigroup.com forums, etc
   DIY MT is popular right now
 Use existing components where possible
Strategies
 Internet resources: nuigroup.com forums, etc
   DIY MT is popular right now
 Use existing components where possible
   Avoid re-inventing the wheel when you can do just as
   well without doing so.
Strategies
 Internet resources: nuigroup.com forums, etc
   DIY MT is popular right now
 Use existing components where possible
   Avoid re-inventing the wheel when you can do just as
   well without doing so.
 Careful design consideration and comparison of
 alternatives
Knowledge
Knowledge
Object-oriented programming - CS core
Knowledge
Object-oriented programming - CS core
  Lots of polymorphism and multiple inheritance
Knowledge
Object-oriented programming - CS core
  Lots of polymorphism and multiple inheritance
Linux skills, shell scripting - CS370 (Operating Systems)
Knowledge
Object-oriented programming - CS core
  Lots of polymorphism and multiple inheritance
Linux skills, shell scripting - CS370 (Operating Systems)
Python programming language
Knowledge
Object-oriented programming - CS core
  Lots of polymorphism and multiple inheritance
Linux skills, shell scripting - CS370 (Operating Systems)
Python programming language
Event programming - PyMT/Pyglet and GTK+ (to build
test interface to window manager) event systems
Knowledge
Object-oriented programming - CS core
  Lots of polymorphism and multiple inheritance
Linux skills, shell scripting - CS370 (Operating Systems)
Python programming language
Event programming - PyMT/Pyglet and GTK+ (to build
test interface to window manager) event systems
Open-source dev techniques - version control, etc.
Advice
Advice

Hardware always takes time
Advice

Hardware always takes time
Make bold decisions - be wary of the paradox of
choice
Advice

Hardware always takes time
Make bold decisions - be wary of the paradox of
choice
Use version control software - git and github.com
Advice

Hardware always takes time
Make bold decisions - be wary of the paradox of
choice
Use version control software - git and github.com
Build on open platforms when possible
Advice

Hardware always takes time
Make bold decisions - be wary of the paradox of
choice
Use version control software - git and github.com
Build on open platforms when possible
  the “shoulders of giants” principle
Difficulties and scope
control...
Difficulties and scope
control...

 Pile interaction there but disabled for demo
Difficulties and scope
control...

 Pile interaction there but disabled for demo
 Auto-clustering algorithms designed but not coded
Difficulties and scope
control...

 Pile interaction there but disabled for demo
 Auto-clustering algorithms designed but not coded
 Ordering and shipping delays slowed construction
Difficulties and scope
control...

 Pile interaction there but disabled for demo
 Auto-clustering algorithms designed but not coded
 Ordering and shipping delays slowed construction
 Transportation to demos led to hardware damage
Extensions
Extensions


Implement other gestures planned and more
Extensions


Implement other gestures planned and more
User interaction/efficiency studies
Extensions


Implement other gestures planned and more
User interaction/efficiency studies
Add launcher functionality
Acknowledgements
Acknowledgements
It takes a college, a city, and an Internet to
create this technology...
Acknowledgements:
Presentation
Acknowledgements:
Presentation
3d images of multi-touch techniques: Nolan, from PeauProductions.org
and NUI Group Forums

Schematics and samples for techniques: Seth (cerupcat) from NUI
Group Forums

Touch gesture images, from the Designing Gestural Interfaces book by
Dan Saffer, drawings by Rachel Glaves:
DesigningGesturalInterfaces.com
Acknowledgements:
Project Support
Acknowledgements:
Project Support
SNC IT and Tech Support

Mr. John Friedrich, Division Manager at Midland Plastics Inc. -
Contributed acrylic sheets and materials expertise

Dr. Michael Olson (Physics) - Laser information, lasers and safety
equipment, laser assembly space

SNC Computer Science Department - hard drive for Linux on test
machine, camera for IR sensing conversion, construction and
management advice, assembly space

My family - construction assistance
Acknowledgements -
Software
Acknowledgements -
Software
Ubuntu Linux and GNOME
Acknowledgements -
Software
Ubuntu Linux and GNOME
Python
Acknowledgements -
Software
Ubuntu Linux and GNOME
Python
libwnck and python-gnome for window management
Acknowledgements -
Software
Ubuntu Linux and GNOME
Python
libwnck and python-gnome for window management
setpwc for webcam adjustments
Acknowledgements -
Software
Ubuntu Linux and GNOME
Python
libwnck and python-gnome for window management
setpwc for webcam adjustments
NUI Group’s tBeta (using OpenCV) for blob tracking
Acknowledgements -
Software
Ubuntu Linux and GNOME
Python
libwnck and python-gnome for window management
setpwc for webcam adjustments
NUI Group’s tBeta (using OpenCV) for blob tracking
PyMT for interface development
The Tactus Project
Hope you enjoyed this walkthrough!
The Tactus Project
Hope you enjoyed this walkthrough!

Más contenido relacionado

Similar a Multi-touch Interaction and Task Management - CS460 Spring 09 Capstone Project

BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
Linaro
 
Polyglot programming and agile development
Polyglot programming and agile developmentPolyglot programming and agile development
Polyglot programming and agile development
Shashank Teotia
 
Consistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and ChefConsistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and Chef
Gerald Villorente
 
Os Paesdosreistutorial
Os PaesdosreistutorialOs Paesdosreistutorial
Os Paesdosreistutorial
oscon2007
 
4 D Computing: Life comes at us polydimensionally
4 D Computing: Life comes at us polydimensionally4 D Computing: Life comes at us polydimensionally
4 D Computing: Life comes at us polydimensionally
Joe Raimondo
 

Similar a Multi-touch Interaction and Task Management - CS460 Spring 09 Capstone Project (20)

Sergio Seabra - Red Hat - OSL19
Sergio Seabra - Red Hat - OSL19Sergio Seabra - Red Hat - OSL19
Sergio Seabra - Red Hat - OSL19
 
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
 
Polyglot programming and agile development
Polyglot programming and agile developmentPolyglot programming and agile development
Polyglot programming and agile development
 
Consistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and ChefConsistent Development Environment with Vagrant and Chef
Consistent Development Environment with Vagrant and Chef
 
Os Paesdosreistutorial
Os PaesdosreistutorialOs Paesdosreistutorial
Os Paesdosreistutorial
 
Getting Started with iBeacons (Designers of Things 2014)
Getting Started with iBeacons (Designers of Things 2014)Getting Started with iBeacons (Designers of Things 2014)
Getting Started with iBeacons (Designers of Things 2014)
 
U13
U13U13
U13
 
Web Hooks
Web HooksWeb Hooks
Web Hooks
 
Simplicity - develop modern web apps with tiny frameworks and tools
Simplicity - develop modern web apps with tiny frameworks and toolsSimplicity - develop modern web apps with tiny frameworks and tools
Simplicity - develop modern web apps with tiny frameworks and tools
 
MVisio: A Computer Graphics Platform for Virtual Reality, Science and Education
MVisio: A Computer Graphics Platform for Virtual Reality, Science and EducationMVisio: A Computer Graphics Platform for Virtual Reality, Science and Education
MVisio: A Computer Graphics Platform for Virtual Reality, Science and Education
 
Engineering muscle training interface
Engineering muscle training interfaceEngineering muscle training interface
Engineering muscle training interface
 
What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.
 
Online gas booking project in java
Online gas booking project in javaOnline gas booking project in java
Online gas booking project in java
 
Concerto motionsummer2011week1
Concerto motionsummer2011week1Concerto motionsummer2011week1
Concerto motionsummer2011week1
 
Win7 Novinky
Win7 NovinkyWin7 Novinky
Win7 Novinky
 
Success Factors for a Mature Microservices Implementation
Success Factors for a Mature Microservices ImplementationSuccess Factors for a Mature Microservices Implementation
Success Factors for a Mature Microservices Implementation
 
4 D Computing: Life comes at us polydimensionally
4 D Computing: Life comes at us polydimensionally4 D Computing: Life comes at us polydimensionally
4 D Computing: Life comes at us polydimensionally
 
Surface computing,towards business technology
Surface computing,towards business technologySurface computing,towards business technology
Surface computing,towards business technology
 
Final project CEIS 106
Final project CEIS 106Final project CEIS 106
Final project CEIS 106
 
AIR Mobile Development Overview
AIR Mobile Development OverviewAIR Mobile Development Overview
AIR Mobile Development Overview
 

Más de Ryan A. Pavlik

Más de Ryan A. Pavlik (6)

VR API Evolution, Generic Interfaces, and Factoring
VR API Evolution, Generic Interfaces, and FactoringVR API Evolution, Generic Interfaces, and Factoring
VR API Evolution, Generic Interfaces, and Factoring
 
OSVR Operating System Platforms and Portability
OSVR Operating System Platforms and PortabilityOSVR Operating System Platforms and Portability
OSVR Operating System Platforms and Portability
 
OSVR Plugin Design
OSVR Plugin DesignOSVR Plugin Design
OSVR Plugin Design
 
OSVR Client Application Design
OSVR Client Application DesignOSVR Client Application Design
OSVR Client Application Design
 
Intro to ETW Tracing and OSVR
Intro to ETW Tracing and OSVRIntro to ETW Tracing and OSVR
Intro to ETW Tracing and OSVR
 
OSVR Software Framework - Core - April 2015
OSVR Software Framework - Core - April 2015OSVR Software Framework - Core - April 2015
OSVR Software Framework - Core - April 2015
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 

Multi-touch Interaction and Task Management - CS460 Spring 09 Capstone Project

Notas del editor