DIVERSE Lance Arsenault John Kelso Center for Visualization and Virtual Environments Virginia Tech, Blacksburg, VA www.diverse.vt.edu.

Slides:



Advertisements
Similar presentations
1 SEDIT & S/REXX SEDIT and S/REXX Mainframe-caliber tools for UNIX Offered by Treehouse Software, Inc.
Advertisements

Master Pages, User Controls, Site Maps, Localization Svetlin Nakov Telerik Corporation
Mainframe-caliber tools for UNIX Treehouse Software, Inc.
SHIP and CRANE SIMULATOR Lance Arsenault Ali H. Nayfeh, Dean T. Mook and Ronald Kriz Dennis Cafiero, Fernando Das Neves, John Kelso, Ziyad Masoud, Nabel.
Linux+ Guide to Linux Certification, Second Edition
Using Tweek to Create Graphical User Interfaces in Virtual Reality Patrick Hartling IEEE VR 2003.
A Guide to Oracle9i1 Creating an Integrated Database Application Chapter 8.
Getting Started with Linux: Novell’s Guide to CompTIA’s Linux+ (Course 3060) Section 2 Use the Linux Desktop.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Enterprise Reporting with Reporting Services SQL Server 2005 Donald Farmer Group Program Manager Microsoft Corporation.
INTERNATIONAL SUMMER ACADEMIC COURSE UNIVESITY OF NIS ISAC – Android programming.
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
Guide to MCSE , Second Edition, Enhanced 1 Objectives Understand and use the Control Panel applets Describe the versatility of the Microsoft Management.
Chapter 3.1:Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
8 Copyright © 2004, Oracle. All rights reserved. Creating LOVs and Editors.
Sikuli Ivailo Dinkov QA Engineer PhoneX Team Telerik QA Academy.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
Obsydian OLE Automation Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development.
Command and Control Visualization NAVCIITI Tasks 2.1a & 2.1b.
VTK: The Visualization Toolkit Part I: Overview and object models March 28, 2001.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia
Mastering the AS/400, Third Edition, author Jerry Fottral 1 Week 2 The System The AS/400 is a multi-user, multi-tasking system -- a system on which many.
An Introduction to Silverlight Matt Harrington Developer Evangelist, Microsoft October 20, 2011.
CENT 305 Information Systems Security Linux Introduction.
Cthru Technical Brief Gary Morris Center of Higher Learning Stennis Space Center.
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
Putting Applets into Web Pages.  Two things are involved in the process of putting applets onto web pages ◦ The.class files of the applet ◦ The html.
Fostering Networked Collaboration in Virtual Environments using Open Source John Kelso*, Lance Arsenault*, and Ronald Kriz** University Visualization and.
Creating Virtual Reality Applications Using FreeVR David J. Zielinski Friday Visualization Forum October 1 st,2004.
Computer Networking From LANs to WANs: Hardware, Software, and Security Chapter 13 FTP and Telnet.
Virtual Environments and the CAVE in Engineering Science and Mechanics: Collaborative Research and Distance Learning University Visualization and Animation.
May 7, 2003 Command and Control Visualization NAVCIITI Tasks 2.1b.
About These Slides This slide set is designed to be used with the OMA sample application It is recommended you follow the steps outlined in the “Preparing.
PIKA Technologies Inc. RPC Client/Server Application Sample October 2009.
Visual Basic CDA College Limassol Campus Lecture:Pelekanou Olga Semester C Week - 1.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Interface Opportunities for 3D Data and Media User Interface Software TechNote Panel Virginia Tech CS Fall 2002 Nicholas F. Polys Umur Yilmaz Will Lee.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
June 14, Lance Arsenault John Kelso Ron Kriz.
] COREY PEARSON [ ASUG INSTALLATION MEMBER MEMBER SINCE: 2008 CHAVONE JACOBS [ ASUG INSTALLATION MEMBER MEMBER SINCE: 2003 ALLAN FISHER [ ASUG INSTALLATION.
1 Lance Arsenault vt.edu Research Assistant Professor Engineering Science and Mechanics.
Lance Arsenault John Kelso Ron Kriz
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
ONR Gathering April 24, 2002 NAVCIITI Visualization Thrust Tasks 2.1a & 2.1b Command and Control Visualization Year 3 & 4 (4/1/01 - 3/31/03)
Command and Control Visualization: NAVCIITI Task 2.1a&b R. Kriz*, L. Arsenault**, J. Kelso**, F. Das Neves**, and C. Logie** University Visualization and.
Summary PlatformModel Model Components Conformance Files and Variables Model Modification CMIP5 Questionnaire Roadmap – beta1 Inputs Needed Resolve Inputs.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
CSC190 Introduction to Computing Operating Systems and Utility Programs.
Haris Ali (15) Abdul Ghafoor (01) Kashif Zafar (27)
Creating a Java Application and Applet
Linux Operations and Administration
Made By: Pallavi Chhikara
INFORMATION SYSTEM – SOFTWARE TOPIC: GRAPHICAL USER INTERFACE.
Building Virtual Environments that are Reconfigurable, Scalable, Extensible Lance Arsenault John Kelso University Visualization and Animation Group
Web Programming Overview. Introduction HTML is limited - it cannot manipulate data How Web pages are extended (include): –Java: an object-oriented programming.
TODAY Android Studio Installation Getting started Creating your 1 st App Beginning to understanding Intents.
Linux+ Guide to Linux Certification, Second Edition Chapter 4 Exploring Linux Filesystems.
August 21, 2002 Command and Control Visualization NAVCIITI Tasks 2.1a & 2.1b.
Systems and User Interface Software. Types of Operating System  Single User  Multi User  Multi-tasking  Batch Processing  Interactive  Real Time.
EDD/DM Changes for release 2.4 Deb Kerstiens September 4, 1997.
Lesson 1 – Getting Started with App Inventor
Electronic Visualization Laboratory University of Illinois at Chicago Programming the Personal Augmented Reality Immersive System (PARIS) Chris Scharver.
Iphone Online Training AcuteSoft: India: , Land Line: +91 (0) USA: , UK : +44.
Development Environment
Working in the Forms Developer Environment
CMIP5 Questionnaire Roadmap – beta
Analysis models and design models
Presentation transcript:

DIVERSE Lance Arsenault John Kelso Center for Visualization and Virtual Environments Virginia Tech, Blacksburg, VA

Outline flashy demos15 overview: goals, description, design45 participatory demos, code revealed!60 do some programming60

flashy demos

overview DIVERSE: Device Independent Virtual Environments Reconfigurable Scalable Extensible

overview: goals free/open source modular flexible extensible

overview: goals works by default stay out of the user’s way augments instead of replaces easy to use, reconfigure, extend

overview: description C++ API SGI IRIX and GNU/Linux –supports all 3 IRIX binary types

overview: design DTK- DIVERSE ToolKit dgiPf- DIVERSE interface to Performer

overview: design: DTK server library client

overview: design: DTK remote shared memory hardware services DSOs

overview: design: dgiPf uses Performer, DTK generic input interface reconfigure without recompiling using –environment variables –DSOs –tweak files

overview: design: dgiPf structures Performer classes provides scenegraph symmetric/asymmetric frusta stereo new pfNode types

overview: design: dgiPf:classes dgiPf dgiPfAugment dgiPfDisplay dgiPfInput

overview: design: dgiPf:classes dgiPf –single instance –entry point into system –factory of other objects –loads DSO dgiPfAugment objects

overview: design: dgiPf:classes dgiPfAugment –adds functionality without program modification –four entry points- return value tells dgiPf how to proceed: prePfConfig postPfConfig prePfApp postPfApp

overview: design: dgiPf:classes dgiPfDisplay –single instance –sets up scenegraph –DIVERSE to world coordinates, meters –creates and updates frusta, stereo parallax and viewpoint –creates and manages dgiPfPipe objects

overview: design: dgiPf:scenegraph

overview: design: dgiPf:coordinates

dgiPfDisplay nested structure dgiPfDisplay –dgiPfPipe dgiPfWin –dgiPfScreen »pfChannal

overview: design: dgiPf:classes dgiPfPipe –one instance per pfPipe –each object creates and manages dgiPfPwin objects

overview: design: dgiPf:classes dgiPfPwin –one instance per pfPipeWindow –each object creates and manages dgiPfScreen objects –stereo or mono

overview: design: dgiPf:classes dgiPfScreen –each object creates and manages pfChannels one per screen if mono window two if stereo window –symmetric or asymmetric viewing frustum

overview: design: dgiPf:classes dgiPfScreen –symmetric frustum fixed size base moves with user’s view and position typically desktop or non-immersive specified by Performer fov and aspect

overview: design: dgiPf:classes dgiPfScreen –asymmetric frustum base is at a fixed position shape changes with view typically head-tracked or immersive specified by a center, height, width and hpr

overview: design: dgiPf:classes VT CAVE configuration: 3 pipes 3 windows 5 screens 9 channels

overview: design: dgiPf:classes dgiPfRecord –used by input –single instance –circular queue –each item an event record –all input devices in each event record

overview: design: dgiPf:classes dgiPfInput –client of dgiPfRecord –generic devices –polled or queued –local or remote –actual or virtual –devices identified by segment name

overview: design: dgiPf:classes dgiPfInput –generic devices locator valuator button keyboard

overview: design: dgiPf:classes dgiPfInput –polled or queued- application can specify polled –reads data asynchronously –typical example: tracker, valuator queued –circular –typical example: keyboard, button

overview: design: dgiPf:classes dgiPfInput –local or remote application unaware of source –actual or virtual data from hardware or calculations

overview: design: dgiPf:classes dgiPfInput –identified by segment name ex: head –any segment name can map to any device –new segments can be created as needed

overview: design: dgiPf: dgiPf-config installation information current defaults portable code better Makefiles

overview: design: dgiPf: DSOs separately compiled dgiPfAugment objects specify which to use at runtime cumulative effect general- can insert any code uses DSOs for display, input, dynamics

overview: design: dgiPf: DSOs display DSOs unloaded after dgiPfPostConfig “base” or “modifier”

overview: design: dgiPf: DSOs base display DSOs number and attributes of dgiPfDisplay, dgiPfPipe, dgiPfPwin, dgiPfScreen objects examples –simpleDisplay –vtCaveDisplay –wallDisplay –hyperDisplay

overview: design: dgiPf: DSOs modifier display DSOs modifies attributes of objects described by base display DSO examples –stereoDisplayMod –monoDisplayMod –queryDisplayMod

overview: design: dgiPf: DSOs input DSOs not unloaded called each frame provide queued and polled input data

overview: design: dgiPf: DSOs input DSOs real or virtual devices navigators examples –keyboardInput –caveSimInput –pfTrackballNav –wandJoystickNav

overview: design: dgiPf: tweakfiles global configuration changes text-editable default path and files like “.ini” files: [section name] key = value

real soon now... dgiGl –augments OpenGL –support for more platforms hooks to other tools, packages –VRPN, VTK, VRCO trackd

real soon now... device support –Intersense tracker –Phantom haptic –MOOG motion base

real soon now... immersive emulators –persona apps –diversifly interaction tools –menus, buttons, sliders, etc. –based on flkt

real soon now... Xwand –Mouse emulation by wand or other immersive input device head’s up displays “collaborative” methods –awareness tools

participatory demos, code revealed!

do some programming dgipf-config is your friend try: dgiPf-config dgiPf-config --about dgiPf-config --env dgiPf-config --dso-files dgiPf-config --dso-dir

do some programming application development cycle: edit (vi, emacs, nedit) ……. hello.C compile…………………... make run ………………………... hello

do some programming example programs in directories below: share/dgiPf/examples under directory given by: dgiPf-config --root

do some programming Programmer’s Guide in: html/dgiPf/dgiPf_Prog_Guide.html under directory given by: dgiPf-config --root or online at: “man” pages are also installed

do some programming repeat with a different DSO: setenv DSO_FILES hyperDisplay:caveSimInput hello -or- set d = `dgiPf-config --default-dso-files` # note- back-quote! setenv DSO_FILES $d:caveSimInput hello

do some programming DSO: edit and “make” generic.C to run from the generic directory: setenv DSO_FILES simpleDisplay:generic../hello/hello

do some programming DSO: to run from the helloWorld directory: set p = `dgiPf-config --default-dso-path` setenv DSO_PATH $PWD:$p cd../helloWorld hello

do some programming tweak file: edit ~/.dgiPfrc [dgiPfPwin] fov=30 then rerun any program