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

Último (20)

The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, Ocado
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 

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

Notas del editor