The Process of Multiplatform Development: An Example Robyn Taylor University of Alberta
Contents The Role of a Designer Matching Application Goals Matching Application Requirements Description of Target Platforms Example: Specifying the Rotation Functionality Across 2 Platforms (PC and VizRoom) Conclusions
The Role of a Designer Application Goal Describe application requirements in InTml documents Check correctness of InTml documents Develop media Yes No Yes Designer Are the user requirements met? Can the InTml implementation support the application? Developer
Matching Application Goals The user must manipulate three solid 3D objects so that they match in position and orientation with three corresponding translucent 3D objects. When the user matches a solid object with its translucent counterpart both the object and its copy disappear. The application logs the user’s performance to a database and terminates when all three pairs of objects are matched.
Matching Application Requirements Application Initialization Tasks Load three solid 3D objects Generate a translucent copy of each object Position solid objects at random Position translucent copies at random User Behaviour at Run Time Select an object Rotate selected object Translate selected object Application Behaviour at Run Time Highlight selected object so as to give feedback to the user Compare each object with its translucent copy, and delete both the object and the copy if their positions and orientations match Log the user’s behaviour to a database for future analysis
Matching App in Multiple Environments Standard PC with Mouse and Keyboard 2-button mouse used for selection, rotation, translation determination of which behaviour is enabled depends on which mouse and/or keyboard buttons are pressed fixed viewpoint SmartBoard Selection, rotation and translation achieved by drawing with different pens fixed viewpoint
Matching App in Multiple Environments PC with Head Mounted Display and Joystick 4 button joystick used for selection, rotation, translation determination of which behaviour is enabled depends on which joystick buttons are pressed 3 degrees of freedom head mounted display used to control the orientation of the viewpoint VizRoom head tracker/hand tracker used for go-go selection hand tracker used for rotation, translation position of the user wearing the head tracker used to control viewpoint position, orientation immersive display (3 Screens)
Example: How would we describe a small task in InTml? To change the orientation of an object, it must be selected then rotated. Let us examine the filters and ports needed to implement selection & rotation in InTml.
What do we want to do? We would like to use our input device(s) to select an object, receive feedback to show us which object is selected, and rotate the object. This means we need to represent the connections between: Input Device(s) A selection technique A means of displaying feedback to the user A means of rotating the object
Selection & Rotation -- PC with Mouse Mouse Select By Ray Rotation Highlighted Feedback Left button press 2D Position Scene (Selectable Objects) Object Left button release
Selection & Rotation -- VizRoom Wand Head Go-Go Selection Highlighted Feedback Rotation & Translation 3D Position Orientation 3D Position Orientation Object Hand Representation Scene (Selectable Objects) Go-Go 3D Position Go-Go Orientation
How do the 2 Implementations Compare? Input Device(s) –PC: mouse –VizRoom: head tracker and wand A selection technique –PC: ray selection – VizRoom: Go-Go selection A means of displaying feedback to the user –PC & VizRoom: highlight A means of rotating the object –PC: 2D to 3D conversion –VizRoom: rotation based on 3D orientation
Conclusions InTml allows the designer to describe a program’s functionality in terms of the program’s tasks and how these tasks relate to one another. Different platforms likely require different interaction techniques, but largely similar functionality. The use of filters and connections allows designers to plug in newly developed platform- specific interaction techniques without interfering with the underlying functionality of the application.