Programming for Interactivity Professor Bill Tomlinson Tuesday & Wednesday 6:00-7:50pm Fall 2005
Standard Inputs What makes an input “standard”?
Keyboard Connect keys to different behavior (Correction: KeyAdapter, etc., is in java.awt.event)
Mouse Clicks, drags, etc.
gridCanvas.addMouseListener( new TesterMouseMotionListener()); class TesterMouseMotionListener implements MouseListener, MouseMotionListener { public void mousePressed(MouseEvent e) { int xPos = e.getX(); int yPos = e.getY(); System.out.println("Clicked at "+xPos+", "+yPos); if ((xPos = 0 && yPos >= 0){ ((Device)(Tester.getAllDevices().elementAt(0))).setPosition(new Vec2(xPos, yPos)); } Tester.getGridCanvas().repaint(); } public void mouseDragged(MouseEvent e) {} public void mouseMoved(MouseEvent e) {} public void mouseReleased(MouseEvent e){} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mouseClicked(MouseEvent e) {} }
Equivalent to: gridCanvas.addMouseListener(new TesterMouseAdapter()); class TesterMouseAdapter extends MouseAdapter { public void mousePressed(MouseEvent e) { int xPos = e.getX(); int yPos = e.getY(); System.out.println("Clicked at "+xPos+", "+yPos); if ((xPos = 0 &&yPos >= 0) { ((Device)(Tester.getAllDevices().elementAt(0))).setPosition( new Vec2(xPos, yPos)); } Tester.getGridCanvas().repaint(); }
Graphical User Interfaces (GUIs) “Standard” screen widgets
Buttons Clickable area of screen, graphically represented as a raised button, often with a text label.
Sliders Variable input (and output) Text label Returns an int, so need to give it a large scale if an approximately continuous response is wanted.
Check boxes Set parameters Often paired with one or more buttons
Radio Buttons Only one can be selected at a time
Text Boxes Enter one or more lines of text. Often coupled with a button.
Others?
Example: New York Times What GUI elements does the site include?
Other GUI Elements? Can we think of any other GUI widgets that would be useful?
Less Standard Does not ship with typical PCs
Adapting the Mouse and Keyboard Physical coupling
3D GUI Croquet Alan Kay
Game Pad
Stylus
Accelerometer EcoRaft Repurposing mouse
USB Button
Telephone tones
Voice: Non-verbal AlphaWolf Volume Harmonicity Length
Voice: Language-based Sphinx
Sphinx + FreeTTS
IrDA EcoRaft
Vision: Background subtraction Look for differences in the pixels from frame to frame.
Vision: Multi-camera
Tangible User Interfaces (TUIs) Ishii et al.
Location: GPS Geocaching
Location: Other PlaceLab access points, etc.
Synthetic Nose Natalie Jeremijenko
Integrating Input with Graphics and Sound
Evaluating Input Technologies Quantitative study - e.g., how fast can users accomplish some task using the input? Qualitative study - which inputs do they like and why? Artistic license - what feels good to you?
Readings
Dourish Context How much input needs to be consciously delivered by a person? How much can provide implicit contextual cues? How much context can be extrapolated/interpolated from other information?
Reeves & Nass Social interactions with computers Politeness
Schechner Indian Theater vs. Western Theater Engaging the body viscerally. How can interactive computational systems engage the body and the senses?
Vectorpark
Ze Frank’s Frog
Other sites to analyze?