Interactive Software Prototyping for VR Applications · as rapid prototyping, profiling and...

1
Buil d ing iVR appl ications O ne can dire ctl y construct h is appl ication by using and extending a set of s tandard w idge ts , graph ical obje cts and inte raction te ch niq ue s . Th e clos e integration of Pyth on and th e original C+ + code allow s us to, graduall y, transform existing code tow ard Pyth on oriented program m ing m eth ods. W e curre ntl y extend internal functional ity for rapid VR developm ent and inte grate s e ve ral e xte rnal s oftw are l ibraries, see Figure 3. Concl usions and Future w ork Th e current approach im proves catal yzes the l earning, re-use and re- de s ign of VR s oftw are m e ch anis m s and ch ange s de ve lopm e nt ph ilos oph y, see al so Figure 4. We envision an integrated developm ent and run-tim e environm ent providing interactive control using h igh er l e ve l , vis ual program m ing and debugging tool s . W e e xpe ct th e abs traction laye ring and inte gration of e xte rnal tool s to be k ey aspects in ach ieving th is goal . Developm entApproach We propose fl exibl e abstraction layers th rough a singl e abs traction language . In our approach , th e abs traction laye rs are code fragm e nts th at abs tract, com bine and w rap low e r l e ve l code . W e w antto facil itate : (1) continuous , ite rative s oftw are de ve lopm e nt, incl uding fe ature s such as rapid prototyping, profil ing and de bugging (2) fl exibl e integration and configuration ofh eterogeneous VR and e xte rnal s oftw are (3) s e am l e s s e vol ution from earl y s oftw are prototype s to fl exibl e end- user appl ications and (4) e as e -of-us e , low e ring th e l e arning curve and e m pow e ring e nd-use rs. Softw are Arch ite cture A s ch e m atic s oftw are ove rvie w of our Inte ractive V irtual R e al ity (iVR ) system is sh ow n in Figure 1. Th e set of com ponents and dom ain-specific appl ications, com bined w ith th e Pyth on scripting language layer, now form th e basis for creating a VR appl ication. Th e prototype is m ainl y intended for experienced VR developers, but som e h igh l e ve lfe ature s geared tow ards end-users are al s o de m ons trate d. Furth e rm ore , ne w appl ication-specific h igh l e ve l facil ities can quick l y be developed based on th e ne w abs traction laye rs . Developm entEnvironm ent Th e iVR functional ity is directl y availabl e in th e running Pyth on interpreter after im porting its w rapping m odul es. We use IPyth on, an e nh ance d inte ractive inte rpre te r to e nh ance th e us abil ity and interactivity of th is process. IPyth on provides m any extra developm ent features, including object and code inspection, com m and h istory, integrated debugging and saving of interactive prototyping sessions, see Figure 2 (l e ft). W e al so use an experim ental environm ent for th e construction of Pyth on-based VR code using th e Notebook m etaph or, see Figure 2 (righ t). I NTER ACTIVE S O FTW AR E P R O TO TYPING FO R VR A PPLICATIO NS Virtual R e al ity Appl ication De ve lopm e nt Th e developm ent of dom ain-specific V irtual R e al ity appl ications is often a slow and laborious process. Th e integration of dom ain-specific functional ity in an interactive V irtual Environm ent req uires close collaboration betw een dom ain expert and VR developer, as w ellas of dom ain-specific data and softw are integration in a VR appl ication. Th e s oftw are e nvironm e nt ne e ds to s upport th e e ntire s oftw are l ife cycl e , from th e e arl y s tage s of ite rative , rapid prototyping to a final end-user appl ication. In our paper, w e propose th e use of fl exibl e abstraction layers th at, com bined w ith an interactive developm ent environm ent, support th e VR appl ication developm entprocess. Partofth is re s e arch h as be e n funde d by th e D utch BSIK /BR ICK S proje ct. For m ore inform ation ofour w ork visith ttp://visual ization.tude lft.nl Com pute r Graph ics Group, D e lftUnive rs ity of Te ch nology { g.deh aan, m .k outek , f.h .post}@ tudelft.nl Gerw in de H aan M ich al K oute k Frits H . Pos t Figure 1: iVR s oftw are laye rs . Th e VR appl ication h as native acce ss to various C+ + com pone nts and e xte rnal s oftw are or th rough Pyth on. Stars indicate Pyth on bindings on th e unde rl ying l ibrarie s. Arch e s indicate custom Pyth on laye rs w h ich provide h igh e r l evel abstractions. Figure 2: Th e inte ractive Pyth on s h e ll (l e ft) and th e note book e ditor (righ t). Th e inte ractive s h e ll can be used w h il e th e VR appl ication is running. Th e note book or w ork sh e e t(righ t) sh ow s code e diting, loading and saving operations, integrated graph ics, and availabl e docum entation and com m and com pl e te d param e te rs . Figure 4: Inte ractive appl ication prototyping. During a VR w ork sh op for Ph D stude nts, our prototyping approach w as use d for inte ractive dem onstrations (l e ft) and h ands-on w ork on various VR syste m s (righ t). Figure 3: Dem onstration ofbi-directional inte gration ofVTK in th e VR e nvironm e nt(l e ft) and inte raction prototyping w ith graph ing support (righ t). Th e Pyth on gl ue facil itate s e xpre ssive com m ands th atcom bine VR and e xte rnal l ibrary s tate m e nts .

Transcript of Interactive Software Prototyping for VR Applications · as rapid prototyping, profiling and...

Page 1: Interactive Software Prototyping for VR Applications · as rapid prototyping, profiling and debugging (2) flexible integration and configuration of heterogeneous VR and external software

Building iVR applicationsO ne can directly construct h is application by us ing and extending a s et of standard w idgets , graph ical objects and interaction tech niq ue s . Th e clos e integration of Pyth on and th e original C+ + code allow s us to, gradually, transform existing code tow ard Pyth on oriented program m ing m eth ods . W e currently extend internal functionality for rapid VR developm ent and integrate s everal external softw are librarie s , s e e Figure 3.

Conclusions and Future w ork Th e current approach im proves catalyze s th e learning, re -us e and re -de s ign of VR softw are m ech anism s and ch ange s developm ent ph ilosoph y, s e e also Figure 4. W e envis ion an integrated developm ent and run-tim e environm ent providing interactive control us ing h igh e r level, visual program m ing and debugging tools . W e expect th e abstraction layering and integration of external tools to be k ey aspects in ach ieving th is goal.

Developm ent ApproachWe propos e flexible abstraction layers th rough a s ingle abstraction language . In our approach , th e abstraction layers are code fragm ents th at abstract, com bine and w rap low er level code . W e w ant to facilitate :

(1) continuous , ite rative softw are de ve lopm e nt, including fe ature s s uch as rapid prototyping, profiling and de bugging

(2) fle xible inte gration and configuration of h e te roge ne ous VR and e xte rnal softw are

(3) s e am le s s e volution from e arly softw are prototype s to fle xible e nd-us e r applications and

(4) e as e -of-us e , low e ring th e le arning curve and e m pow e ring e nd-us e rs .

Softw are Arch itectureA sch em atic softw are overview of our Interactive Virtual Reality (iVR) system is s h ow n in Figure 1. Th e s et of com ponents and dom ain-specific applications , com bined w ith th e Pyth on scripting language layer, now form th e bas is for creating a VR application. Th e prototype is m ainly intended for experienced VR developers , but som e h igh level feature s geared tow ards end-us e rs are also dem onstrated. Furth erm ore , new application-specific h igh level facilitie s can q uick ly be developed bas ed on th e new abstraction layers .

Developm ent Environm entTh e iVR functionality is directly available in th e running Pyth on interpreter after im porting its w rapping m odules . W e us e IPyth on, an enh anced interactive interpreter to enh ance th e usability and interactivity of th is proce s s . IPyth on provide s m any extra developm ent feature s , including object and code inspection, com m and h istory, integrated debugging and saving of interactive prototyping s e s s ions , s e e Figure 2 (left). W e also us e an experim ental environm ent for th e construction of Pyth on-bas ed VR code us ing th e Notebook m etaph or, s e e Figure 2 (righ t).

INTERACTIVE SOFTWARE PROTOTYPING FOR VR APPLICATIONS

Virtual R eality Application Developm entTh e developm ent of dom ain-specific Virtual Reality applications is often a slow and laborious proce s s . Th e integration of dom ain-specific functionality in an interactive Virtual Environm ent re q uire s clos e collaboration betw e en dom ain expert and VR developer, as w ell as of dom ain-specific data and softw are integration in a VR application. Th e softw are environm ent ne eds to support th e entire softw are life cycle, from th e early stage s of iterative, rapid prototyping to a final end-us e r application. In our paper, w e propos e th e us e of flexible abstraction layers th at, com bined w ith an interactive developm ent environm ent, support th e VR application developm ent proce s s .

Part of th is re s e arch h as be e n funde d by th e Dutch BSIK/BRICKS proje ct. For m ore inform ation of our w ork vis it h ttp://visualization.tude lft.nl

Com puter Graph ics Group, Delft Univers ity of Tech nology{ g.de h aan, m .k oute k , f.h .post}@ tudelft.nl

Gerw in de H aan M ich al Koute k Frits H . Post

Figure 1: iVR softw are laye rs . Th e VR application h as native acce s s to various C+ + com pone nts and e xte rnal softw are or th rough Pyth on. Stars indicate Pyth on bindings on th e unde rlying librarie s . Arch e s indicate custom Pyth on laye rs w h ich provide h igh e r le ve l abstractions .

Figure 2: Th e inte ractive Pyth on s h e ll (le ft) and th e note book e ditor (righ t). Th e inte ractive s h e ll can be us e d w h ile th e VR application is running. Th e note book or w ork s h e e t (righ t) s h ow s code e diting, loading and saving ope rations , inte grate d graph ics , and available docum e ntation and com m and com ple te d param e te rs .

Figure 4: Inte ractive application prototyping. During a VR w ork s h op for Ph D stude nts , our prototyping approach w as us e d for inte ractive de m onstrations (le ft) and h ands -on w ork on various VR s yste m s (righ t).

Figure 3: De m onstration of bi-dire ctional inte gration of VTK in th e VR e nvironm e nt (le ft) and inte raction prototyping w ith graph ing support (righ t). Th e Pyth on glue facilitate s e xpre s s ive com m ands th at com bine VR and e xte rnal library state m e nts .