16
Marcelo de Paiva Guimarães Marcelo de Paiva Guimarães paiva paiva @ @ lsi lsi . . usp usp . . br br Bruno Barberi Gnecco Bruno Barberi Gnecco brunobg brunobg @ @ lsi lsi . . usp usp . . br br Marcelo Marcelo Knorich Zuffo Knorich Zuffo [email protected] [email protected] Integrated Systems Laboratory Integrated Systems Laboratory Polytechnic School - University of São Paulo - Brazil Polytechnic School - University of São Paulo - Brazil 200 2004 Graphical Interaction Devices for Distributed Virtual Reality Systems

Marcelo de Paiva Guimarães [email protected] [email protected] Bruno Barberi Gnecco [email protected] [email protected] Marcelo Knorich Zuffo [email protected]

Embed Size (px)

Citation preview

Page 1: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

Marcelo de Paiva Guimarães Marcelo de Paiva Guimarães paivapaiva@@lsilsi..uspusp..brbrBruno Barberi Gnecco Bruno Barberi Gnecco brunobgbrunobg@@lsilsi..uspusp..brbrMarcelo Marcelo Knorich Zuffo Knorich Zuffo [email protected]@lsi.usp.br

Integrated Systems LaboratoryIntegrated Systems LaboratoryPolytechnic School - University of São Paulo - BrazilPolytechnic School - University of São Paulo - Brazil

20020044

Graphical Interaction Devices for Distributed

Virtual Reality Systems

Page 2: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

IntroductionIntroduction

• The contribution of the present The contribution of the present research project is to simplify the research project is to simplify the design of graphical interfaces and their design of graphical interfaces and their interaction with the VR applicationinteraction with the VR application – freeing the designer from having to know freeing the designer from having to know

all the details of the individual all the details of the individual technologies, and to use PDAs as technologies, and to use PDAs as interaction device interaction device

• NNo programming knowledge from the o programming knowledge from the GUI designer GUI designer

Page 3: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

IntroductionIntroduction

• The PDA application communicates The PDA application communicates transparently with a cluster, via any transparently with a cluster, via any underlying network system, which underlying network system, which processes the events and maintains the processes the events and maintains the synchrony of the rendered images in real-synchrony of the rendered images in real-timetime

• the interface and its configuration can be the interface and its configuration can be changed at run-timechanged at run-time

• This solution is part of Glass This solution is part of Glass

Page 4: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

What is Glass?What is Glass?

• A library for distributed computingA library for distributed computing– Extensible and flexibleExtensible and flexible– Portable and interoperablePortable and interoperable– Easy to use and learn: transparentEasy to use and learn: transparent– High performanceHigh performance– Network protocol independentNetwork protocol independent– Reliable and fault tolerantReliable and fault tolerant– Completely thread safeCompletely thread safe

Page 5: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

OverviewOverview

• Written in C++Written in C++– Easy to interface with C, C++, Java, etcEasy to interface with C, C++, Java, etc

• All functionality is provided by pluginsAll functionality is provided by plugins• Glass core provides internal functionalityGlass core provides internal functionality

– Network systemNetwork system– Plug-in managementPlug-in management (Barriers, Events,A (Barriers, Events,Aliaslias...)...)– Node managementNode management

• Fault tolerantFault tolerant– If a node dies, Glass detects and deals with it.If a node dies, Glass detects and deals with it.– Computation does not stopComputation does not stop– Deadlocks are preventedDeadlocks are prevented

Page 6: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

PDA EditorPDA Editor

• Born from desire to control our CAVE Born from desire to control our CAVE with a PDAwith a PDA

• Glass Glass runs in PDAruns in PDA

• Editor generates GUI in a Editor generates GUI in a straightforward, graphical waystraightforward, graphical way– No programming knowledge requiredNo programming knowledge required

Page 7: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

PDA EditorPDA Editor

• Code is generated automaticallyCode is generated automatically– Programmer has only to write an event Programmer has only to write an event

handlerhandler

• Interface is in JavaInterface is in Java– Run it anywhere: PDA or desktopRun it anywhere: PDA or desktop

Page 8: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

PDA Editor:PDA Editor:

Page 9: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

PDA Applicaton: PDA Applicaton: screenshotscreenshot

• All input are propagated as asynchronous events, which can be either polled or handled by callbacks on the application.

• There’s no limit to the number of PDAs that can be used simultaneously in an application

• Each PDA may be controlling a different vehicle, or the participants may share a GUI and work collectively on a project.

Page 10: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

The PDA is a cluster nodeThe PDA is a cluster node

•Glass is used underneathGlass is used underneath

–To Glass, the PDA is just another To Glass, the PDA is just another nodenode

Page 11: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

PDA software layersPDA software layers

Application

Java

Java Virtual Machine JNI

Glass

Operational System(Linux, Windows CE, Windows)

Page 12: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

Celestia ApplicationCelestia Application

Page 13: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

Cathedral ApplicationCathedral Application

Page 14: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

ConclusionsConclusions

• PDAsPDAs– improve the user interaction in immersive improve the user interaction in immersive

environmentsenvironments– can be used to control the VR system itselfcan be used to control the VR system itself

• running applicationsrunning applications

• controlling lights and projectors, etccontrolling lights and projectors, etc

– It’s an efficient way to manipulate large It’s an efficient way to manipulate large volumes of datavolumes of data

– the user is already familiar with the GUI the user is already familiar with the GUI approach usedapproach used

Page 15: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

ConclusionsConclusions

• The The tool for designing GUIstool for designing GUIs presented presented– which generates code automatically, which generates code automatically,

requiring no knowledge of computer requiring no knowledge of computer programming from the userprogramming from the user

• The interface runs on Java, which has the The interface runs on Java, which has the advantage of easy portability to any platformadvantage of easy portability to any platform

• The routine for treatment of events on the The routine for treatment of events on the main application is also generated main application is also generated automaticallyautomatically

Page 16: Marcelo de Paiva Guimarães paiva@lsi.usp.br paiva@lsi.usp.br Bruno Barberi Gnecco brunobg@lsi.usp.br brunobg@lsi.usp.br Marcelo Knorich Zuffo mkzuffo@lsi.usp.br

ConclusionsConclusions

• TThe interface integrates directly with he interface integrates directly with the main application, which is the main application, which is running on a cluster. running on a cluster.

• As future work, we plan to enhance As future work, we plan to enhance GUIs to be multimedia, including GUIs to be multimedia, including animations and sounds animations and sounds