Lecture 4 from the 2016 COMP 4026 course on Advanced Human Computer Interaction taught at the University of South Australia. Taught by Mark Billinghurst, and containing material about Processing and various advanced Human Computer Interfaces.
Axa Assurance Maroc - Insurer Innovation Award 2024
Â
COMP 4026 Lecture4: Processing and Advanced Interface Technology
1. LECTURE 4: PROCESSING AND
ADVANCED INTERFACES
COMP 4026 â Advanced HCI
Semester 5 - 2016
Mark Billinghurst
University of South Australia
August 18th 2016
6. Interactive Coding - Processing
âŞâŻProgramming tool for Artists/Designers
âŞâŻhttp://processing.org
âŞâŻEasy to code, Free, Open source, Java based
âŞâŻ2D, 3D, audio/video support
âŞâŻProcessing For Android
âŞâŻhttp://wiki.processing.org/w/Android
âŞâŻStrong Android support, builds .apk file
7.
8. Buchenau, M., & Suri, J. F. (2000, August). Experience prototyping. In Proceedings of the
3rd conference on Designing interactive systems: processes, practices, methods, and
techniques (pp. 424-433). ACM.
9. Experience Prototyping
The experience of even simple artifacts does not exist in a
vacuum but, rather, in dynamic relationship with other
people, places and objects.
Additionally, the quality of peopleâs experience changes over
time as it is influenced by variations in these multiple
contextual factors.
14. When to evaluate?
â˘âŻOnce the product has been developed
â˘âŻ pros : rapid development, small evaluation cost
â˘âŻ cons : rectifying problems
â˘âŻDuring design and development
â˘âŻ pros : find and rectify problems early
â˘âŻ cons : higher evaluation cost, longer development
design implementationevaluation
redesign &
reimplementation
design implementation
17. Evaluation approaches and methods
Method Usability
testing
Field
studies
Predictive
Observing x x
Asking
users
x x
Asking
experts
x x
Testing x
Modeling x
25. WIKITUDE
â˘âŻ Popular augmented reality browser for
mobile devices
â˘âŻ Mapping
â˘âŻ Point of Interest abilities
â˘âŻ Multiplatform
â˘âŻ Shows the points of interest of
Bunratty Folk Park
â˘âŻ Markers can be selected in and an
information pop-up appears
30. Processing - Notes
â˘âŻ Language of Interaction
â˘âŻ Physical Manipulation
â˘âŻ Input using code
â˘âŻ Mouse Manipulation
â˘âŻ Presence, location, image
â˘âŻ Haptic interfaces and multi-touch
â˘âŻ Gesture
â˘âŻ Voice and Speech
31.
32. Basic Parts of a Sketch
/* Notes comment */!
//set up global variables!
float moveX = 50;!
!
//Initialize the Sketch!
void setup (){!
}!
!
//draw every frame!
void draw(){!
}!
33. Sample Drawing
int m = 0;!
float s = 0;!
!
void setup(){!
size(512,512);!
background(255);!
}!
!
void draw (){!
fill(255,0,0);!
ellipse(mouseX,mouseY,s,s);!
}!
!
void mouseMoved(){!
s = 40 + 20*sin(++m/10.0f);!
}!
34.
35. Drawing
â˘âŻ draw() gets called as fast as possible, unless a frameRate is specified
â˘âŻ stroke() sets color of drawing outline
â˘âŻ fill() sets inside color of drawing
â˘âŻ mousePressed is true if mouse is down
â˘âŻ mouseX, mouseY - mouse position
!void draw() { !
!stroke(255); !
!if(mousePressed) {!
! !line(mouseX, mouseY, pmouseX, pmouseY);!
! !}!
!}!
39. Class and Objects
â˘âŻsee http://processing.org/learning/objects/
â˘âŻObject
â˘âŻ grouping of multiple related properties and functions
â˘âŻObjects are defined by Object classes
â˘âŻEg Car object
â˘âŻ Data
â˘âŻ colour, location, speed
â˘âŻ Functions
â˘âŻ drive(), draw()
40. Classes
â˘âŻfour elements: name, data, constructor, and methods.
â˘âŻName
class myName { }!
â˘âŻData
â˘âŻ collection of class variables
â˘âŻConstructor
â˘âŻ run when object created
â˘âŻMethods
â˘âŻ class functions
43. Class Usage
// Step 1. Declare an object.!
Car myCar;!
!
void setup() { !
// Step 2. Initialize object.!
myCar = new Car(); !
} !
!
void draw() { !
background(255); !
// Step 3. Call methods on the object. !
myCar.drive(); !
myCar.display(); !
}!
44.
45. Constructing Objects
â˘âŻ One Car
Car myCar= new Car(); !
â˘âŻ Two Cars
!// Creating two car objects !
!Car myCar1 = new Car(); !
!Car myCar2 = new Car(); !
â˘âŻ One car with initial values
Car myCar = new Car(color(255,0,0),0,100,2); !
61. Vertices Demo
â˘âŻRGB Cube
â˘âŻ Vetices and vertex fills
â˘âŻVertexDemo
â˘âŻ Different types of quad strips
â˘âŻ User defined drawing function
62. Transformations
â˘âŻ Rotation
! !rotateX(a), rotateY(a * 2.0), rotateZ(a)!
â˘âŻ Translation
! !translate(X,Y); translate(X,Y,Z);!
â˘âŻ Scale
â˘âŻ Push and Pop functions
â˘âŻ Push - Saving current coordinate system
â˘âŻ Pop â Restores previous coordinate system
â˘âŻ Eg: PushPopCubes
64. 3D Model Loading
â˘âŻ Using saito model loader
â˘âŻ Loads obj files
â˘âŻ http://code.google.com/p/saitoobjloader/downloads
â˘âŻ Code fragment
import saito.objloader.*;!
OBJModel model ;!
model = new OBJModel(this, "sa.obj", "absolute",
TRIANGLES);!
76. Wearable Computing
âŞâŻ Computer on the body that is:
âŞâŻ Always on
âŞâŻ Always accessible
âŞâŻ Always connected
âŞâŻ Other attributes
âŞâŻ Augmenting user actions
âŞâŻ Aware of user and surroundings
84. Augmented Reality Definition
â˘âŻDefining Characteristics [Azuma 97]
â˘âŻCombines Real andVirtual Images
â˘âŻBoth can be seen at the same time
â˘âŻInteractive in real-time
â˘âŻThe virtual content can be interacted with
â˘âŻRegistered in 3D
â˘âŻVirtual objects appear fixed in space
Azuma, R. T. (1997). A survey of augmented reality. Presence, 6(4), 355-385.
88. Research Problems
â˘âŻLow level hardware/software
â˘âŻ Head mounted displays
â˘âŻ Tracking systems
â˘âŻUser Interaction
â˘âŻ Gesture based interaction
â˘âŻ Multimodal input (speech, gesture)
â˘âŻNovel Applications
â˘âŻ Face to face collaboration
â˘âŻ Authoring tools
98. Early Examples
â˘âŻ Interaction without devices:
â˘âŻ BodySpace [Strachan 2007]: Functions to body position
â˘âŻ Abracadabra [Harrison 2007]: Magnets on finger tips
â˘âŻ GesturePad [Rekimoto 2001]: Capacitive sensing in clothing
â˘âŻ Palm-based Interaction
â˘âŻ Haptic Hand [Kohli 2005]: Using non-dominant hand in VR
â˘âŻ Sixth Sense [Mistry 2009]: Projection on hand
â˘âŻ Brainy Hand [Tamaki 2009]: Head worn projector/camera
103. Invisible Interfaces â Gestures in Space
â˘âŻ Gustafson, S., Bierwirth, D., & Baudisch, P. [2010]
â˘âŻ Using a non-dominant hand stabilized interface.
110. Environmental Sensor
â˘âŻNew sensors track and capture real environment
â˘âŻ Navigation, 3D modeling, user tracking
â˘âŻDepth Sensors
â˘âŻ Microsoft Kinect, Intel RealSense
â˘âŻIntegrated Devices
â˘âŻ Google Tango
111. Google Tango
â˘âŻTablet based system
â˘âŻAndroid OS
â˘âŻMultiple sensors
â˘âŻRGBD Sensor
â˘âŻIR Structured light
â˘âŻInertial sensors
â˘âŻHigh end graphics
â˘âŻNvidia tegra chip
113. Research Problems
â˘âŻContent creation
â˘âŻ Creating better 3D models
â˘âŻ Segmenting objects
â˘âŻUser Interaction
â˘âŻ Interaction with real world
â˘âŻ Interacting with multiple devices
â˘âŻNovel Applications
â˘âŻ AR notes/real world tagging
â˘âŻ Social networking