310 likes | 437 Views
This technical presentation delves into DAFFIE (Distributed Interactive Art Framework), highlighting its capabilities in creating immersive virtual environments. Attendees will learn about the integration of visual and auditory elements, the use of avatars and interaction techniques, as well as animation methods utilizing model sequences and ARP scripts. The presentation also emphasizes user accessibility, extensibility for programmers, and the importance of communication and navigation in 3D spaces. This overview demonstrates DAFFIE's potential in blending art and computation.
E N D
DAFFIE Technical Presentation Erik Brisson ebrisson@bu.edu
Outline BPC: Art and Computation – Summer 2007
What's in a virtual world? BPC: Art and Computation – Summer 2007
What's in a virtual world? • An environment • Representations of physical objects • Visual models • Auditory elements • Interactions with objects • Representations of people - avatars • Communication • Gesturing • Telephony • Video BPC: Art and Computation – Summer 2007
Our goals with DAFFIE Distributed Interactive Visually and aurally rich Input (models, images and sounds) from variety of available tools Simple import method Script driven Accessible to non-expert users Extensible by programmers BPC: Art and Computation – Summer 2007
Traditional animation Sequenceof frames Hand drawn or “captured” BPC: Art and Computation – Summer 2007
Animation example - 3D models • Model sequence • What is changing? • Shape • Elements • movement • Rotation • Scale • Whole object • Movement • Rotations • Scale BPC: Art and Computation – Summer 2007
Design decision - animation by model sequences • Allows importation of work from many sources • Allows reasonable method of animation • Allows input from many tools • Allows artists to create using their favorite software • E.g., Maya, Lightwave3D • Gives simple import methodology • Uses Performer loader • Avoids import of behavior (avoids programming) BPC: Art and Computation – Summer 2007
Animation - arp scripts • Allows control without programming • Developed quickly, early on for class project • Simple, has been used many times • Control • Position • Rotation • Scale • Timing of playback BPC: Art and Computation – Summer 2007
arp script example: basic sequence arp 2.0 name clusterseq geom_path ./ playspeed 10 frame geom_show clustergeom0000.obj frame geom_show clustergeom0001.obj frame geom_show clustergeom0002.obj frame geom_show clustergeom0003.obj end BPC: Art and Computation – Summer 2007
The DAFFIE scene graph The world-room-group-sequence hierarchy BPC: Art and Computation – Summer 2007
3D Coordinate system BPC: Art and Computation – Summer 2007
arp scripts: arproom file arproom 2.0 name cart-models enter_xyz 3.0 4.0 4.0 enter_hpr 30.0 -98.0 0.0 group_xyz 0 0 0 group_hpr 0 0 0 group_path ../models/purple_cube/ group purple_cube.arpg group_xyz 2 -4 0 group_hpr 60 0 0 group_path ../models/blue_cube/ group blue_cube.arpg group_xyz -3 -5 2 group_hpr 0 0 0 group_path ../models/orange_sphere/ group orange_sphere.arpg end BPC: Art and Computation – Summer 2007
arp script: arpgroup file arpg 2.0 name gbdog geom_size 1.0 geom_path ./ geom_hpr 0 90 0 geom_xyz 0.0 0.1 0.0 geom_rep dog0.obj trigger_method cycle seq_path ./ seq_hpr 0 90 0 seq_xyz 0.0 0.1 0.0 seq_file gbdog.seq end BPC: Art and Computation – Summer 2007
arp script example: basic sequence arp 2.0 name clusterseq geom_path ./ playspeed 10 frame geom_show clustergeom0000.obj frame geom_show clustergeom0001.obj frame geom_show clustergeom0002.obj frame geom_show clustergeom0003.obj end BPC: Art and Computation – Summer 2007
darp script example: move object frame geom_show pot21.iv geom_xyz 5.0 2.1 9.3 geom_hpr 0.0 90.0 0.0 geom_show drop21.obj frame geom_show pot22.iv geom_xyz 5.5 1.9 3.2 geom_hpr 0.0 91.0 0.0 geom_show drop22.obj BPC: Art and Computation – Summer 2007
arp example: change object size arp 2.0 name benThorn_seq geom_path ./ playspeed 4 sound_path ../configs/ frame geom_scale 0.56 0.56 0.56 geom_show btw1.obj frame geom_scale 0.42 0.42 0.42 geom_show btw1.obj frame geom_scale 0.56 0.56 0.56 geom_show btw1.obj frame geom_scale 0.7 0.7 0.7 geom_show btw1.obj BPC: Art and Computation – Summer 2007
Design decision - sound clips • Simplicity • Gives simple import methodology • Allows input from many tools • Uses commonly available format (.aiff) BPC: Art and Computation – Summer 2007
Example - adding sound frame geom_show clustergeom0000.obj sound_xyz_stereo 180.932040 -157.771123 -103.679324 180.932040 -43.291371 -103.679324 sound_move h2o4.aif sound_trigger h2o4.aif frame geom_show clustergeom0001.obj sound_xyz_stereo 187.016266 -157.446847 -103.679324 174.847813 -43.615647 -103.679324 sound_move h2o4.aif frame geom_show clustergeom0002.obj sound_xyz_stereo 193.031556 -156.477695 -103.679324 168.832524 -44.584799 -103.679324 sound_move h2o4.aif BPC: Art and Computation – Summer 2007
The view frustum • What you actually see • Units matter (DAFFIE uses feet) BPC: Art and Computation – Summer 2007
Navigation - user experience • The 6 degrees of freedom • The 6 degrees of freedom • How map onto various input devices • Communication with viewer (old model) • direct sending of xyz,hpr wand motion to viewer BPC: Art and Computation – Summer 2007
The DAFFIE event system • Communication between agents BPC: Art and Computation – Summer 2007
Triggering objects • Light stick (by viewer) • Proximity (by viewer) • Proximity (by agent) • Other (by agent) • The trigger event BPC: Art and Computation – Summer 2007
World state and events • Object descriptions • Trigger • Transforms • Switches • Navigation • Sound • Video • Etc. BPC: Art and Computation – Summer 2007
Agents and events • Using events to control elements of the world • Triggering sequences • Moving objects • Changing rooms • Navigation BPC: Art and Computation – Summer 2007
Navigation by agent sending events • New model - sending of transform matrices to viewer • Keeping track of avatars BPC: Art and Computation – Summer 2007
Telephony • Telephony collector agent • Gets audio stream from microphone • Chops into sound samples • Sends sequence of sound samples • Sound server • Receives sequence of sound samples • Reassembles audio stream from sound samples • Sends reconstructed audio stream to speakers BPC: Art and Computation – Summer 2007
Video texture maps • Video as sequence of images • Video generator • Sends sequence of images • Viewer • Receives sequence of images • Uses texture mapping on an object in scene BPC: Art and Computation – Summer 2007
Stereo displays • Physical issues and camera issues • Using polarizing filters • Setting up the view • What looks closer vs further • Relative position to the screen and viewer BPC: Art and Computation – Summer 2007
Tiled walls • Issues and differences • Head node vs render nodes • Event management / avatars / triggering • Virtual cameras • Alignment BPC: Art and Computation – Summer 2007
The End BPC: Art and Computation – Summer 2007