Pittsburgh Digital Greenhouse Personal Universal Controller (PUC) Peter Lucas, MAYA Design Brad Myers, Carnegie Mellon University http://www.pebbles.hcii.cmu.edu/puc/ February 2002 Document no. PUC–02000 Personal Universal Controller The Issue The world is congested with complex and idiosyncratic interfaces Document no. PUC–02000 February 2002 2 Personal Universal Controller The Principle • Separate the interface from the device • Make the interface portable (the interface belongs to the user) • Create a superior interface Document no. PUC–02000 February 2002 3 Personal Universal Controller PUC and its Components It is a two-way communication Devices describe their functions PUC creates interface based on description and controls it Document no. PUC–02000 February 2002 4 Personal Universal Controller Method for Investigation • Validate hand-designed interfaces for devices • Define architecture and specification with which devices describe their functions • Create example adapters for remote control of devices • Design renderer architecture for multiple platforms an automatic generation of high-quality interfaces Document no. PUC–02000 February 2002 5 Personal Universal Controller Validate Interfaces: User Test • Visual Basic application running on an iPaq handheld computer • Remote control of a stereo and a telephone simulated using IEEE 802.11 and a laptop Aiwa CX-NMT70 stereo Document no. PUC–02000 AT&T 1825 telephone February 2002 6 Personal Universal Controller Validate Interfaces: Results • Using PUC, users took 50% less time & made 50% fewer errors. • All differences are significant (p < 0.05). Document no. PUC–02000 February 2002 7 Personal Universal Controller Application Specification & Communication Protocol Specification Language <?xml version="1.0" encoding="UTF8"?> <spec xmlns="puc.xsd" xmlns:xsi="http://www.w3.org/2001/XML Schema-instance" xmlns:xsd="http://www.w3.org/2001/XM LSchema" name="Audiophase 5 CD Stereo"> <groupings> <state name="PowerState"> <type name="OnOffType> <valueSpace> <boolean/> </valueSpace> <valueLabels> <map value="false"> <label>Off</label> </map> <map value="true"> <label>On</label> </map> </valueLabels> </type> <labels> <label>Stereo Power</label> <label>Power</label> <label>Powr</label> <label>Pwr</label> </labels> <priority>10</priority> </state> • Is abstract: makes no reference to interface particulars • Is concise: only required type information is transmitted • Uses XML Communication Protocol <message> <state-change-request> <state>(state)</state> <value>(value)</value> </state-change-request> </message> <message> <state-change-notification> <state>(state)</state> <value>(value)</value> </state-change-notification> </message> <message> <spec-request/> </message> <message> <device-spec> <spec>(spec)</spec> </device-spec> </message> <message> <full-state-request/> </message> http://www.cs.cmu.edu/~jeffreyn/controller/specification.html Document no. PUC–02000 February 2002 8 Personal Universal Controller Adaptors for Remote Control Today’s devices often have remote control, but almost never report their internal state. To make the PUC work, we have to build special-purpose adaptors that allow devices to be controlled and report their current state Document no. PUC–02000 February 2002 9 Personal Universal Controller Auto UI Generator + Renderer • Written in PersonalJava, assumes PocketPC form factor • Parses specification language • Chooses widgets to represent each state and command • Infers structure & creates simple layout • Communicates using our protocol Document no. PUC–02000 February 2002 10 Personal Universal Controller Choosing Widgets for the UI • A simple decision tree based on type, write access, more.. Integers --> Sliders Enumerated --> Selection Lists • Will use more attributes in future Document no. PUC–02000 February 2002 11 Personal Universal Controller Algorithm for Structuring the UI • Observe importance of structure (grouping) in UI design • Infer structure from dependency information • Decide layout based on structure and importance of items Document no. PUC–02000 February 2002 12 Personal Universal Controller Demonstration Document no. PUC–02000 February 2002 13 Personal Universal Controller Demonstration - X10 Document no. PUC–02000 February 2002 14 Personal Universal Controller Demonstration - Stereo Document no. PUC–02000 February 2002 15 Personal Universal Controller Demonstration - Stereo ON Document no. PUC–02000 February 2002 16 Personal Universal Controller Demonstration - Stereo ON/TUNER Document no. PUC–02000 February 2002 17 Personal Universal Controller Demonstration - Stereo ON/CD Document no. PUC–02000 February 2002 18 Personal Universal Controller Demonstration - Stereo ON/CD Document no. PUC–02000 February 2002 19 Personal Universal Controller Demonstration - Stereo ON/CD Document no. PUC–02000 February 2002 20 Personal Universal Controller Future Work: UI Generator • How do designers decide to fix problems in their interfaces? (For example, having too many widgets for the screen size) • Can the interface generator use the same techniques to intelligently find problems and alter its design? • What factors affect design decisions? • We will study designers to find out . . . • The resulting model will lead to improvements in the interface generator Document no. PUC–02000 February 2002 21 Personal Universal Controller Future Work: Universal Adaptor • How can appliance manufacturers cheaply integrate PUC technology into their devices? Our goal is to standardize without inhibiting a manufacturer’s ability to innovate as well as differentiate their products. Document no. PUC–02000 February 2002 22 Pittsburgh Digital Greenhouse Personal Universal Controller (PUC) Peter Lucas, MAYA Design Brad Myers, Carnegie Mellon University http://www.pebbles.hcii.cmu.edu/puc/ (Including at least 6 papers) February 2002 Document no. PUC–02000