PDF 2.3MB - SmartSketches - INESC-ID
Transcription
PDF 2.3MB - SmartSketches - INESC-ID
INFORMATION SOCIETY TECHNOLOGIES (IST) PROGRAMME Recommendations for Base Hardware and System Software Acronym: SmartSketches Full title: SmartSketches: A Multimodal Approach to Improve Usability in the Early States of Product Design Contract no.: IST-2000-28169 DELIVERABLE: D5 AUTHORS: DATE: A. Stork, P. Santos, T. Fleisch (IGD), B. Araújo (INESC-ID) 2002/11/20 PAGES: 62 KEYWORDS: Software/Hardware/Recommendations Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 Executive Summary This document describes design and system recommendations within the SmartSketches project, ranging from the choice of the appropriate operating system, to the appropriate software, covering VR systems, modelling libraries and multi-modal input support. We look first at Operating Systems and Base Software and then at Hardware solution. The recommendations are grouped in 12 different categories: 1. Operating system To be able to address a high number of scenarios within this project and the associated hardware, we choose Microsoft Windows 2000 and Linux operating systems as the target platforms to run SmartSketches applications. While the Windows and Linux operating systems support most of the hardware used, operating systems such as Irix for Onyx SGI high-end expensive graphical servers or similar setups only run on those and are not available on, or were not designed for, smaller and cheaper hardware settings. 2. Two dimensional applications support at toolkit level We reviewed several toolkits for use with two Dimensional modelling applications. One of the principal differences between both toolkits presented is related to an option that has to be made in the UI design. While Qt toolkit is using its own native IU, wxWindows is wrapped to the platform, so all the widgets will present a look-and-feel similar to those of the native platform. While this is usually an advantage it may become difficult to keep up with new widgets that a particular platform develops. The event handling system used by wxWindows is also more flexible than Qt’s. The other difference is cost. While wxWindows is LGPL licensed and open source certified, Qt is a commercial product. Since the two solutions are similar in terms of portability and features, we chose wxWindows as the base Toolkit for 2D SmartSketches applications. 3. Base software support for Pen input The aim of SmartSketches Input Interface is to provide input pen based features such as pressure, tilt for SmartSketches applications under MS Windows and Linux. Since there doesn’t exist an independent API to support both operating systems, SmartSketches will provide an interface layer to handle pen-based features. The architecture will be based on the Wintab API for MS Windows since is the most independent API support by almost all driver manufacturer. For support under Linux, the feature will be only support for Wacom hardware. The input pen-based features under Linux will be provided using XInput Extension features. This solution was successfully implemented for Gimp, which is the only application under Linux to take advantage of pressure and tilt information. The SmartSketches environment will provide an independent interface implemented for both platforms providing all pen-based features need for SmartSketches application. 4 . Low Level 3D Graphics Libraries We have surveyed two main graphics APIs, OpenGL and Direct 3D. Using Direct3D in Immediate Mode applications can achieve maximum rendering performance and quality from hardware. The drawback is the programming effort and complexity in this mode, making it a time consuming task and the need of a highly trained programmer. Using Retained Mode, Direct 3D becomes easier and faster to program but loses its speed advantage over OpenGL. OpenGL on the other hand was born more than 10 years ago and has reached a very stable state. Compared to Direct 3D Retained Mode it still is a bit slower but easier to program. It is the standard for professional applications and most important, it is available on every major computer platform, ensuring high portability for applications. Page 2 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 Also most high-level 3d-graphic libraries are built on top of OpenGL. Therefore we recommend using OpenGL for the SmartSketches applications. 5. High Level 3D-Graphic Libraries We have surveyed many different Libraries for Scene Graph management such as Open Inventor, OpenSG, Java3D and Open Scene Graph. OpenInventor is one of the first scene graph based graphic libraries and appears to be outdated in some aspects, especially in the lack of multithreading. On the other hand this platform is very stable and a lot of knowledge about it is available. OpenSG has a modern architecture and seems to offer most necessary functions. The main drawback with OpenSG is that the current version lacks the stability required for extensive use. Open Scene Graph has the cleanest design from the software engineering side of view, but is still in too early a stage to be useful, because a lot of key functions are missing and even documentation is rarely available. In spite of high performance considerations in its design Java3D is still much slower than the C++ based approaches. Therefore it is not a good choice for our SmartSketches applications. For the moment we consider Open Inventor to be the best compromise, because of its stability and widespread use. But we also keep an eye on OpenSG, which looks promising for the future especially because of its comprehensive multithreading support. 6. Virtual Reality Libraries Though all presented libraries provide rather rich and complete in functionality, we consider studierstube to be most suitable for our purpose. This library is rather easy to learn and understand, especially because it is like an extension to Open Inventor. It provides a complete environment that is easy to adapt for own applications without much overhead. It also provides its own user interface paradigm using the PIP -sheet and pen, which we experienced to be very intuitive to use. It natively supports a lot of tracking systems and output devices, so that no further adaptation to the hardware recommended later in this document is necessary. 7 . CAD Kernel It is difficult to say which CAD Modeling Kernel best satisfies the needs of SmartSketches. In fact ACIS and OpenCascade are very similar in the features they support. We recommend both kernels for use in SmartSketches, since their features are very similar. However we chose to base initial development on ACIS since it is freely available for research purposes and is at present more stable than OpenCascade. 8. Constraint Solvers While some academic environments such as CE3D offer a fair set of functionality, they have yet to become fully-fledged constraint solvers, because they are still under development. Some very important aspects, that lead to the choice of D-Cube as a constraint solver for SmartSketches are the fact that it can transparently be built in to our existing environment, accepting all kinds of geometric/solids data structures and has a linear performance at an increase of scene complexity. 9. Tracking Software Current tracking software typically provides device abstraction and linear extensibility. However what is generally not covered by such systems is support for complex or experimental configurations, requiring a combination of different tracking sources or geometric modifications of data from one source relative to another. Finally a simple configuration of the tracking system by the end user is very important to allow simple reconfigurations of the tracking devices. All mentioned tracking systems cover part of those Page 3 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 requirements. The tracking system that does cover all those issues is OpenTracker and therefore we chose it for SmartSketches. 10. Tracking Hardware Within the SmartSketches project, immersive applications will be developed for design and modeling. Those applications will run on virtual tables or powerwalls, requiring a tracking system that is capable of operating over large areas. One of the best-suited alternatives for tracking seems to be the ART optical tracking system, because it provides both th e needed accuracy and broadcasting of tracking data for collaborative scenarios. Also because of optical tracking, tracked objects need not be tethered and users may move and interact freely within the tracked volume. Moreover, this tracking system comes at a comparably moderate price in practical configurations. 11. Hardware for 2D applications Different scenarios will be considered for SmartSketches applications, since each scenario offers advantages depending on the task and the local of work. For office work both tabletPC pen based and interactive pen display scenarios are the more suitable solutions. 12. Projection and Immersion Output Devices In case a workbench scenario is preferred for collaborative modeling, Barco will be the manufacturer of choice since there are no other alternatives on the market. A possibility to overcome this dependency is to build a table of one’s own, using common passive or active stereo projectors. For backprojection systems it is recommended to use two or multiples of two projectors connected to the appropriate graphics boards with polarization filters to get a stereo display. Whenever one would like to collaboratively work on physical mock-ups, then the use of video see-through HMDs is recommended such as stated above. Optical seethrough displays will provide a larger field of view than video see-through displays. However the costs are about ten times higher. Page 4 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 Contents 1 2 3 4 5 6 7 8 9 Introduction...........................................................................................................................7 Operating System ..................................................................................................................8 2.1 Operating System Overview ........................................................................................8 2.2 Identification of application scenarios.......................................................................9 2.3 Conclusion......................................................................................................................9 Software................................................................................................................................10 3.1 Applications for 2D Sketching –Toolkit Comparison............................................10 3.2 Software for support Input pen-based features......................................................18 3.3 Low Level 3D-Graphic Libraries.............................................................................. 20 3.4 High Level 3D-Graphic Libraries .............................................................................22 3.5 CAD Kernel ................................................................................................................. 30 3.6 Tracking........................................................................................................................35 3.7 Constraint Solvers.......................................................................................................37 Hardware for 2D Sketching..............................................................................................4 0 4.1 Hardware scenarios...................................................................................................4 0 4.2 System Requirements................................................................................................ 4 2 4.3 Pen -based Input Hardware ...................................................................................... 4 2 Hardware for immersive 3D Modelling.......................................................................... 48 5.1 Hardware scenarios................................................................................................... 48 5.2 Tracking....................................................................................................................... 4 9 5.3 Output Devices............................................................................................................53 Conclusions..........................................................................................................................57 References........................................................................................................................... 60 Appendix One: List of Software Tools..............................................................................61 Appendix Two: List of Hardware Tools ...........................................................................62 Page 5 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 List of Figures Figure 1. Figure 2. Figure 3. Figure 4. Figure 5. Figure 6. Figure 7. Figure 8. Figure 9. Figure 10. Figure 11. Figure 12. Figure 13. Figure 14. Figure 15. Figure 16. Figure 17. Figure 18. Figure 19. Figure 20. Figure 21. Figure 22. Figure 23. Figure 24. Figure 25. Figure 26. Figure 27. Figure 28. Figure 29. Figure 30. Figure 31. Qt's Architecture in Different Operating Systems..............................................10 The Brain Innovation (www.brainvoyager.com)................................................12 VGStudioMax(http://www.volumegraphics.com).............................................12 Trustix (http://www.trustix.com)........................................................................13 Studio 2.0.1 (http://www.geomagic.com)...........................................................13 wxWindows’s Architecture in different Operating Systems .............................14 Display Doctor (http://www.scitechsoft.com) ...................................................16 Intuitive MX (http://www.intuitiveworks.com)................................................16 Mahogany (http://mahogany.sourceforge.net) ..................................................17 Vulcan 4 (http://www.vulcan3d.com).............................................................17 SmartSketches Pen -based support Architecture........................................... 20 Graphics Pipeline ................................................................................................22 Studierstube Architecture ..................................................................................27 Studierstube Personal Interaction Panel Example ........................................28 2D Variational Design & 3D Mechanism Simulation under constraints ....38 DCUBED Example ..............................................................................................39 A Tablet pen based configuration ....................................................................4 0 An interactive pen display configuration (Wacom Cintiq) ...........................4 1 Another interactive pen display configuration (Sony Vaio) .........................4 1 Tablet PC scenario ..............................................................................................4 1 Intuos2 A4 Wacom & A2 tablet (UltraPad A2)............................................. 4 2 examples of pen and mouse devices................................................................ 4 3 Interactive Pen Display, Cintiq 18” Wacom ................................................... 4 3 Camera -based Tracking-System ...................................................................... 48 Input Devic es...................................................................................................... 48 The Pen ................................................................................................................ 4 9 User with HMD .................................................................................................. 4 9 Asc ension Flock of Birds Tracking System......................................................52 ART Tracking System .........................................................................................53 Barco Baron .........................................................................................................55 Trivisio Stereo Video See-Through...................................................................56 List of Tables Table 1. Table 2. Table 3. Table 4. Table 5. Table 6. Table 7. Table 8. Table 9. Qt Feature Overview ...............................................................................................12 wxWindows Feature Overview..............................................................................15 Qt vs wxWindows Comparison .............................................................................18 CAD Kernel comparison.........................................................................................35 Tablet pen based vs Interactive Pen Display Comparison ...............................4 4 Tablet PC vs Pocket PC comparison .................................................................... 45 Tablet PC vs Cintiq Comparison.......................................................................... 45 Input Devices comparison .................................................................................... 4 6 Tablet PC market comparison.............................................................................. 47 Page 6 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 1 Introduction The SmartSketches project will produce one or more application prototypes to address rapid prototyping in early stages of product design. Those prototypes are to be tested and used within a company’s engineering process chain and therefore need to preserve compatibility to currently used CAD modelling software and hardware, as well as eventually setting new standards in interaction and modelling techniques. This document describes design and system recommendations within the SmartSketches project. It will discuss issues, such as the choice of the appropriate operating system, as well as the appropriate software, covering VR systems, modelling libraries and multi-modal input support. Page 7 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 2 Operating System In this chapter we present an overview of computing scenarios, which require different operating systems characteristics. We then proceed to identify our target scenarios for SmartSketches applications and conclude with our choice of target operating system platforms. 2.1 Operating System Overview Operating systems can be grouped according to functionality: operating systems for supercomputing, render farms, mainframes, servers, workstations, desktops, handheld devices, real time systems, o r embedded systems. Supercomputing is primarily scientific computing, usually modelling real systems in nature. Render farms are collections of computers that work together to render animations and special effects. Work that previously required supercomputers can be done with the equivalent of a render farm. For this purpose operating systems are needed, that support multiple processors and address-spaces of up to some Terabyte. Alternatively, operating systems for such scenarios need to support processor clustering. Supercomputers generally are only supported by a single operating system, which is delivered with it (e.g.: Cray developed UNICOS, a Posix compliant Unix flavour). Clustered systems need operating systems such as BeoWolf, a Linux Derivate to take advantage of joint processing power. Mainframes used to be the primary form of computer. Mainframes are large centralized computers. Mainframes and mainframe replacements (powerful computers or clusters of computers) are still useful for some large scale tasks, such as centralized billing systems, inventory systems, database operations, etc. Preferred operating systems in such environments are Unix Systems, like VMS, DG-UX, HP-UX, AIX, Irix or Win NT. Servers are computers or groups of computers used for internet serving, intranet serving, print serving, file serving, and/or application serving. Servers are also sometimes used as mainframe replacements. Operating systems used here are similar to the above-mentioned mainframe scenarios, without the need to support multiple terminals connected to them. Desktop operating systems are used for personal computers. A major part of them use Windows Operating Systems, also because of integrated support for entertainment purposes. Workstations are more powerful versions of personal computers. Often only one person uses a particular workstation (like desktops) and workstations often run a more powerful version of a desktop operating system, but workstations run on more powerful hardware and often have software associated with larger computer systems. Operating Systems used are either Unix or Windows NT systems. Handheld operating systems are much smaller and less capable than desktop operating systems, so that they can fit into the limited memory of handheld devices. Such operating systems may be Linux derivates, Windows PocketPC or Palm systems. Page 8 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 Real time operating systems (RTOS) are specifically designed to respond to events that happen in real time. This can include computer systems that run factory floors, computer systems for emergency room or intensive care unit equipment (or even the entire ICU), computer systems for air traffic control, or embedded systems. RTOSs are grouped according to the response time that is acceptable (seconds, milliseconds, microseconds) an d according to whether or not they involve systems where failure can result in loss of life. There are a couple of special RTOS operating systems available like Inferno, OS -9, QNX, but also RTOS extensions to SGI Irix or Linux derivates (REDICE, RTLinux, etc.) Embedded systems are combinations of processors and special software that are inside of another device, such as the electronic ignition system on cars. Special implementations of embedded Linux and Windows systems are available. 2.2 Identification of application scenarios The goal of this project is to bridge the gap between designers and product engineers, which are the potential users of SmartSketches applications. Both currently use graphical workstations to sketch and convert sketches to 3D CAD models. Those graphical workstations are based on Intel PC architecture with one or two processors, more than 1GB RAM and high -end graphic boards. Powerwalls are used to visualize models in Design Review Sessions on a 1:1 scale and to discuss changes on models. The backend of those systems consists of graphical servers, which may still be Intel PC based or have mainframe computer architectures like RISC, MIPS, etc, which ultimately lead to Unix operating systems. SmartSketches intends to provide support for tho se scenarios and enhance them by adding new techniques for non-immersive and immersive modelling, as well as collaborative workplaces, which may use the same or additional hardware, like tablet PCs, virtual tables, HMDs and tracking systems. 2.3 Conclusion T o be able to address a high number of scenarios within this project and the associated hardware, we choose Microsoft Windows 2000 and Linux operating systems, as the target platforms of the SmartSketches applications. SmartSketches prototypes are intended to demonstrate new suitable ways to refine and accelerate design and modelling processes. Most of the hardware used is supported by windows operating systems and Linux. Operating systems like Irix for Onyx SGI graphical servers or similar setups only run on those and are not available, or even designed for smaller hardware. Page 9 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 3 Software In this section decisions on which software to use within the SmartSketches project will be discussed, such as the choice of graphics libraries, virtual reality base systems, modellers and tracking systems. Applications for 2D Sketching –Toolkit Comparison 3.1 The User interface is one of the most important parts of software for application development. In this section we present a comparison between two popular GUI Toolkits: Qt from Trolltech and WxWindows. We only consider these two packages, because they are the more suitable C++ toolkits for the SmartSketches Framework. Several other packages were investigated such as FOX toolkit, Fltk toolkit, V toolkit, but they aren’t so co mplete, updated and supported as WxWindows and Qt. The following sub-sections present the overview of both packages and a comparison presenting the advantages and disadvantages of each one. 3.1.1 QT Qt is the multi-platform C++ Graphical User Interfaces toolkit from Trolltech. Its implementation started in 1992 and is commercialized since 1995. Qt is currently used in thousands of successful software development projects worldwide like the French special effects company Duboi, BrainVoyager, Volume Graphics, etc… QT Architecture and Supported Platforms Qt is supported on the following platforms: • • • • MS/Windows -- 95, 98, NT 4.0, ME, 2000, and XP Unix/X11 -- Linux, Sun Solaris, HP-UX, Compaq Tru64 UNIX, IBM AIX, SGI IRIX and a wide range of others Macintosh -- Mac OS X Embedded -- Linux platforms with framebuffer support. Figure 1. Qt's Architecture in Different Operating Systems QT Feature Overview Qt has a modular design and a strong focus on reusable software components. All Qt widgets can be specialized through inheritance. It provides a signals/slots concept that is a type-safe alternative to callbac ks and at the same time allows objects to cooperate without any knowledge of each other. There are around 250 C++ classes in the Qt API. Page 1 0 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 Most of these classes are GUI specific; however, Qt also provides template-based collections, serialization, file and a general I/O device, directory management, date/time classes, regular expression parsing. Qt is a multi-platform GUI toolkit and provides integrated support for making localized applications with full support for Unicode 16-bit international character set. The basic building block in Qt programming is the widget with everything needed to create professional-looking user interfaces. The Qt library is optimized for fast execution and conservative use of memory. Qt emulates native window system widgets and supports "themes", so Qt-based applications can change (even at runtime) between Motif look and feel, Windows look and feel, and any number of customized look and feel themes. This works independently of whether the applicatio n is running under X Windows or under Microsoft Windows. Qt's drawing engine, the QPainter class, renders graphics on any paint device. Paint devices include widget, pixmap (off-screen image), picture (meta-file) and printer (Postscript under Unix/X11). The exact same code is used to draw on all four types of devices. For more advanced 2D/3D graphics, use of OpenGL together with Qt is supported. With the Qt OpenGL Extension, an OpenGL window can be created and used just as any Qt widget. For more detailed information about the Qt toolkit, we present a table with a description of QT by class groups. Group Description Abstract Widgets Abstract widget classes usable through subclassing. Advanced Widgets Advanced GUI widgets such as listviews and progress bars. Basic Widgets Basic GUI widgets such as buttons, comboboxes and scrollbars. Database Database related c lasses, e.g. for SQL databases. Date and Time Classes for handling date and time. Drag and Drop Classes dealing with drag and drop and mime type encoding and decoding. Environment Classes providing various global services such as event handling, a ccess to system settings and internationalization. Events Classes used to create and handle events. Non -GUI Classes Collection classes such as list, queue, stack and string, along with other classes that can be used without needing QApplication. Graphics and Printing Classes providing drawing (and printing) primitives, including OpenGL. (See also Image Processing and Multimedia) Help System Classes used to provide online-help for applications. Image Processing Digital image encoding, decoding and manipulation. (See also Graphics and Printing and Multimedia) Layout Management Classes handling automatic resizing and moving of widgets, for composing complex dialogs. Implicitly and Explicitly Shared Classes Classes that use reference counting for fast copying. Input/Output and Networking Classes providing file input and output along with directory and network handling. MainWindow and Related Classes Everything you need for a typical modern main application window, including menus, toolbars, workspace, etc. Miscellaneous Various other useful classes Multimedia Classes that provide support for graphics, sound, animation, etc. (See also Graphics and Printing and Page 11 Technical Report D5 IST-2000-28169 Pedro Santos Image Processing) Object Model The Qt application framework's underlyi ng object model. Organizers User interface organizers such as splitters, tab bars, button groups, etc. Plugin Classes Plugin related classes. Standard Dialogs Ready-made dialogs for file, font, color selection and more. Template Library Qt's template library container classes. Text Related Classes Classes for text processing. (See also XML Classes.) Threading Classes Classes that provide threading support. Widget Appearance Appearance customization with styles, fonts, colors etc. XML Classes Classes that support XML, via, for example DOM and SAX. Table 1. Qt Feature Overview ScreenShots This section present some screenshots of interface made using Qt toolkit. Figure 2. Figure 3. The Brain Innovation (www.brainvoyager.com) VGStudioMax(http://www.volumegraphics.com) Page 1 2 12/18/2002 Technical Report D5 IST-2000-28169 Figure 4. Figure 5. Pedro Santos 12/18/2002 Trustix (http://www.trustix.com ) Studio 2.0.1 (http://www.geomagic.com) 3.1.2 wxWindows wxWindows is a class library that allows to compile graphical C++ programs on a range of different platforms. wxWindows was started in 1992 at the Artificial Intelligence Applications Institute, University of Edimburgh and starts for distributing in 1997. The framework was ported for various platforms. It was recently ported to the Familiar Linux distribution running on the iPAQ and is currently being ported to the Windows CE that will emerge in 2003. wxWindows 2 is free and open source according to the L-GPL (Library General Public Licence) and is currently used by various organisations like Xerox, NASA, Red Hat U.K. Ltd., etc… wxWindows Architecture and Supported Platforms wxWindows is supported on the following platforms: • • MS/Windows -- Windows 95/98/M E, Windows NT/2K/XP Linux/Unix -- with the GTK+ toolkit or plain X11 or Motif Page 1 3 Technical Report D5 • • IST-2000-28169 Pedro Santos 12/18/2002 Macintosh -- Mac OS X Embedded -- X11,GTK+,Nano -X, Microwindows, SciTech MGL, MS Windows CE. wxMSW GDI Windows wxX11 Same program source for all platforms wxWindows API wxGTK wxMotif wxMac wxBase Xlib/X11 GTK+ Unix (1) Motif Mac MacOS without GUI Windows Unix (1) MacOS OS/2 Or wxMSW GDI Windows Same program source for all platforms wxWindows API wxUniversal wxX11 WxGTK wxOS2 Xlib/X11 GTK+ GDI Unix (1) OS/2 Figure 6. wxMGL Various OS wxWindows’s Architecture in different Operating Systems WxWindows Feature Overview WxWindows has Cross-platform ability, is free and open source. It includes the usual basic controls such as text and bitmap buttons, text entry, scrolling list, combobox and checkbox plus several more advanced classes including TreeCtrl, ListCtrl, tabbed pages, scrolledwindow, toolbars and table grids. wxWindows comes with a Dialog Editor that allows you to construct cross-platform dialog resources (.wxr files), that are resolution-independent.A document/view model is supported and helps to implement Undo/Redo facilities, Drag & Drop functionalities are already supported in the Windows implementation and are being added to the Motif implementation wxWindows has a easy UI update of events, that allows an application to enable or disable menu items or controls. A family of configuration files is supplied, so it is possible to use Windows INI files, the Windows registry, or a portable file format, using the same API. wxWindows has a range of thread and mutex classes and comes with a set of TCP/IP classes, including support for popular protocols such as FTP and HTTP. wxWindows has HTML viewing and printing classes built. A wxGLCanvas package is available to allow wxWindows applications to support OpenGL and provides extensive Object Graphics Library for implementation of CASE tool or model a network. It is possible to use the wxWindows API outside C++ using a wrapper that allows Py thon script language. wxWindows has two separate sets of ODBC classes, depending on how complex the needs are, both work on Windows and Unix. Page 1 4 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 For more detailed information about the wxWindows, we present a table with a description of wxWindows by class groups. Group Description Managed windows Several types of window that are directly controlled by the window manager. Frames may contain windows, and dialog boxes may directly contain controls. Miscellaneous windows Advance GUI widgets (Panel, ScrolledWindow, Grid, PlotWindow, WizardPage, Statusbar, Toolbar ..) . Common dialogs Common dialogs are ready -made dialog classes which are frequently used in an application. Controls Small windows which provide interaction with the user. Controls that are not static can have validators associated with them. Menus Classes for handling Menus. Window layout Classes relevant to sizer -based layout and to constrai nts-based window layout. Device contexts Classes for Device contexts providing an abstraction that allows parameterisation of drawing code by passing different device contexts. Graphics device interface Classes are related to drawing on device contexts and windows. Events Classes for event object contains information about a specific event. Validators Classes for window validators, used for filtering and validating user input. Data structures Data structure classes supported by wxWindows (Date,HashTable,List,String, Regular Expressions,Time ..). Run-time class information system Classes to support run-time manipulation of class information, and dynamic creation of objects given class names. Debugging features Classes and functions for the message logging. Networking classes Classes for socket based networking. Interprocess communication Classes for simple interprocess communications facilities based on Windows DDE, but available on most platforms using TCP. Document/view framework Classes for support a document/view framework which provides housekeeping for a document-centric application. Printing framework Classes from printing and previewing framework. Drag and drop and clipboard classes Classes that provide support drag and drop and clipboard. File related classes Classes to work with disk files. Stream classes Stream classes to provide enhanced functionality. Threading classes Classes to make use of the native thread capabilities of the various platforms. HTML classes Classes to display t ext in HTML format including a help system based on the HTML widget. Virtual file system classes Classes that implement an extensible virtual file system, used internally by the HTML classes. XML-based resource system classes Classes to creating controls and other user interface elements from specifications stored in an XML format. Online help Classes that online help. Database classes Classes for accessing Microsoft's ODBC and new wxODBC. Miscellaneous Miscellaneous classes (Application, Command Line parser, Reading/Writing Configuration, Timer, Process, Encoding, Calendar Table 2. wxWindows Feature Overview Page 15 Technical Report D5 IST-2000-28169 Pedro Santos ScreenShots This section presents some screenshots of interfaces made using wxWindows. Figure 7. Figure 8. Display Doctor (http://www.scitechsoft.com ) Intuitive MX (http://www.intuitiveworks.com ) Page 1 6 12/18/2002 Technical Report D5 IST-2000-28169 Figure 9. Pedro Santos 12/18/2002 Mahogany (http://mahogany.sourceforge.net) Figure 10. Vulcan 4 (http://www.vulcan3d.com ) 3.1.3 Conclusion: Qt vs wxWindows The next table summarizes the comparison between both toolkits. It is followed by a conclusion that includes the choosing justification. Table Comparison between Qt and wxWindows Supported platform Architecture Design Window Widget System Event Handling Data Structure QT Microsoft Windows,Unix/Linux(X1 1),Mac OS X Emulate the native QT UI on the running platform Native Look and Feel wxWindows Microsoft Windows, Unix/Linux (GTK+,X11,Motif), Mac OS Toolkit wrap on each platform signals/slots concept List, queue, stack, string, date, time, MFC's like message maps List, hashtable, string, date, time, regular Page 1 7 Platform Look and Feel Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 Support Printing Support regular expression Y es expression Yes File I/O Support Network Support Yes Yes Yes Yes Database Support Thread and Process Support Html Help Support 2D Drawing support 3D API C ompatibility Scripting Language Yes Yes Yes Yes Yes Yes Yes (Native Classes, Device Context independent) OpenGL Yes (Native Classes) Qscript (based on the ECMAScript standard) Python, Perl, Ruby (Add -ons) Yes DuoPack 3280 U. S. Dollars, TrioPack 4370 U. S. Dollars (from Trolltech Pricing) Python (wxPython class interface for Python/wxWindows interaction) XML support Costs per license Table 3. OpenGL yes L-GPL (Library General Public Licence), with an exception stating that derived works in binary form may be distributed on the user's own terms Qt vs wxWindows Comparison Discussion: One of the main differences between both toolkits presented is related to an option that has to be made in the UI design. While Qt toolkit is using its own native IU, wxWindows is wrapped to the platform, so all the widgets will present a look-and-feel similar to used platfo rm. Normally this is an advantage but, in certain cases, can become a disadvantage, because it is difficult to keep up with the innovations in new widgets that a particular platform develops. The event handling system used by wxWindows offers an easier way for new event coding. The other difference is cost since, while wxWindows is LGPL licensed and open source certified, Qt is a commercial product requiring the purchase amount of 3280 U.S. Dollars per license. The portability factor and features requirements (like thread, printing, 2D drawing and 3D render with OpenGL) are satisfied by both solutions. Considering theses differences, we choose the wxWindows toolkit to be used as GUI Toolkit for SmartSketches applications. 3.2 Software for support Input pen-based features The aim of this section is to present some issue to handle input pen-based. This concern is relevant for 2D sketching since advanced pointing device offer new solution like pressure or cursor tilt information. It is simple to handle traditional mouse event with existing UI but there not exist a standardized platform to support advance feature. During a long time, this kind of feature were specific to pen-based drivers manufacturer, but it began to be support by graphic application using platform dependent API. The major effort of standardization was made for Microsoft Windows based applications using the Wintab API and with the emergence of Tablet PC. The following sections will present a brief description of the Wintab API, the new issues offer for Tablet PC and some suitable issues for Linux support. Page 1 8 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 3.2.1 Wintab API Wintab™ drivers provide a standardized set of functions to applications programs running under one of the versions of Microsoft® Windows. The applications programming interface (API) that the drivers provide is an open industry standard interface. Wintab supports x, y and pressure data, as well as cursor tilt information for tablets that report it. The Wintab drivers have a C-language oriented API, implemented through a DLL that is licensed and shipped with each device. The specification of Wintab API is provided by LCS/Telegraphics who licenses Wintab drivers to hardware manufacturers. The central component of Wintab architecture is the WINTAB module, WINTAB.DLL, which provides application interface services, and to which one or more device drivers connect. Applications manipulate software objects called contexts that encompass such information as input area, scaling, and event control. Two principle types of contexts are available. Digitizing contexts pass their input directly to applications, without plotting a cursor. System contexts provide system-mouse input. Wintab manager applications ac cess special functions that allow extensive user control over device configurations and preference settings, and limited adjustments of contexts. The advantage of using this API is that applications never deal with device drivers directly. 3.2.2 Tablet PC Platform SDK: Tablet Input The new Tablet PCs are designed to be pen-based driven. Microsoft has designed his new operating system (Windows XP Tablet PC Edition) to support advanced pointing features like pressure and tilt information. The Tablet PC Platform SDK offers the ability to get pressure and tilt information using the Tablet Input System. This interface is independent from the pen driver and was design generically to provide pressure and tilt information if the pen driver allows it. The new features of the pen are accessible using the Human Interface Device introduced by the Universal Serial Bus solution. The advantage of this design is that it supports either the pen system of Tablet PC as well as a Pen-based tablet device. 3.2.3 Issues Tablet support for Linux: XInput Page 1 9 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 For Linux there not exists standard support for Pen-based tablet device. The hardware manufacturers don’t normally provide support for their devices. But it still exist the possibility to use the XInput for the device handling. The XInput extension is an extension to X to allow the use of input devices beyond the standard mouse and keyboard. The extension supports a wide range of devices, including graphics tablets, touch-screens, joysticks, and dial-boxes. The most common use is probably for graphics tablets. There exists some project to support advanced pen-based feature. For example the project Xink (ftp://kiwi.cs.berkeley.edu/pub/raph/xink.tar.gz), Gsumi (http://www.gimp.org/~otaylor/gsumi/gsumi.html) and Gimp 1.1 (http://www.gimp.org) provide some issues to support pressure and tilt with Wacom devices using XInput. 3.2.4 Conclusion: SmartSketches Input Pen Based Interface Figure 11. SmartSketches Pen-based support Architecture The aim of SmartSketches Input Interface is to provide input pen based features such as pressure, tilt for Smartskeches applications under MS Windows and Linux. Since there doesn’t exist an independent API to support both operating systems, Smartscketches will provide an interface layer to handle pen-based features. The architecture will be based on the Wintab API for MS Windows since is the most independent API support by almost all driver manufacturer. For support under Linux, the feature will be only support for Wacom hardware. The input pen-based features under Linux will be provided using XInput Extension features. This solution was successfully implemented for Gimp application wich is the only application under Linux to take advantage of pressure and tilt information. The SmartSketches API will provide an independent interface implemented for both platforms providing all pen-based features need for SmartSketches application. SmartSketches Pen-based Interface (X , Y, Pressure, TiltX, TiltY, Buttons State) Wintab API Wacom Driver (Xinput, Xfree86) MS WINDOWS 95/98/NT/2000/XP 1.1.1.1.1 Linux/Unix/ X11 3.3 Low Level 3D-Graphic Libraries To generate 3d-graphics output applications make use of 3d-grahpic libraries. These libraries usually provide the developer functions for geometry creation, real-time lighting, Page 2 0 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 clipping, transformations and rendering. They also make use of hardware acceleration available in nowadays computers. Using the hardware capabilities effects like fog, antialiasing, bump mapping, motion blur, transparency, reflections, 3D textures, volume rendering and more are usable in real-time, giving high quality output with less programming effort. Generally the 3d-graphic libraries can be divided in low level and high level libraries. Usually the high level libraries itself make use of available low level libraries. They simplify the programming task by providing basic geometries, adding a geometry database, interaction methods, collision detection etc. For the evaluation of 3d-graphic libraries important criteria are availability, speed, stability, ease of use, supported functionality and rendering quality. In this document we first discuss low level libraries. Nowadays there are two low level libraries available that meet the needs for general 3d applications: OpenGL and Direct 3D. 3.3.1 Open GL (Open Graphics Language) OpenGL is a cross-platform standard for 3D rendering and 3D hardware acceleration, originally developed by Silicon Graphics. The software runtime library ships with all Windows, MacOS, Linux and Unix systems. OpenGL delivers fast and complete 3D hardware acceleration and makes real-time 3D effects possible. It is designed to support future innovations in software and hardware. The extension mechanism in OpenGL can expose radically new hard ware/software features that simply never existed when OpenGL was originally conceived. So you can be confident that you will continue to get the best possible performance from your applications as hardware technology advances. OpenGL is stable. Features in clude: • Texture Mapping • Z-Buffering • Double Buffering • Lighting Effects • Smooth Shading • Material Properties • Alpha Blending • Transformation matrices 3.3.2 Direct 3D-Microsoft Direct X Technology Direct 3D is the native 3d-graphic library for the Microsoft windows operation systems developed by Microsoft. Therefore it is not available on any other operation system. Page 21 Technical Report D5 IST-2000-28169 Figure 12. Pedro Santos 12/18/2002 Graphics Pipeline Direct 3D bypasses the standard Windows GDI and directly accesses the video memory on graphics card to obtain maximum performance. It offers areas for the displayed memory area and offscreen areas for behind the scene drawing. Direct3D has two modes of operation. Direct3D Retained Mode: Sophisticated geometry engine to create entire scene to be manipulated with high level API calls. Functionality comes at performance cost. Direct3D Immediate Mode: A device independent way for accessing low-level hardware acceleration. Programmers must design their own geometry and lighting modules. This mode is very fast but difficult to program. 3.3.3 Comparison OpenGL and Direct3D Using Direct3D in Immediate Mode the application can archive maximum rendering performance and quality from the hardware. The drawback is the programming effort and complexity in this mode, making it a time consuming task and the need of a highly trained programmer. Using the Retained Mode Direct 3D becomes easier and faster to program but looses its speed advantage over OpenGL. OpenGL on the other hand was born more than 10 years ago and reached a very stable state. Compared to Direct 3D Retained Mode it still is a bit slower but easier to program. It is the standard for professional applications and most important, it is available on every major computer platform, so the application keeps highly portable. Also most high level 3d-graphic libraries are build on top of OpenGL. Therefore we recommend using OpenGL for the SmartSketches applications. 3.4 High Level 3D-Graphic Libraries As mentioned before high level 3d-graphic libraries provide the programmers functionality for creating 3d primitives and geometries, user interaction and a scene management. Usually the 3d scene is organized in a tree structure called the scene graph. Here we consider only systems that allow real-time changes of the scene graph. That means unlike for example game-engines, which offer high speed optimizations on static scenes, these libraries allow dynamic changes of scenes, which is crucial for a sketch application. Page 22 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 3.4.1 Open Inventor Silicon Graphics had originally developed open Inventor for its IRIX operatio n system. Since Silicon Graphics made the Open Inventor source code freely available, ports to all major operation systems had been done. Some of them keeping open source, others extending the functionality but not free for charge. Open Inventor is an object-oriented library that simplifies and abstracts the task of writing graphics programming into a set of easy to use objects. These objects range from low-level data-centered objects such as Sphere, Camera, Material, Light, and Group, to high level application-level objects such as the Walkthrough Viewer and Material Editor. The foundation concept in Open Inventor is the "scene database" which defines the objects to be used in an application. When using Open Inventor, a programmer creates, edits, and composes these objects into hierarchical 3D scene graphs (i.e., database). A variety of fundamental application tasks such as rendering, picking, event handling, and file reading/writing are built-in operations of all objects in the database and thus are simple to invoke. Since Open Inventor is object-oriented (written in C++), it encourages programmers to extend the system by writing new objects. Open Inventor users have created a variety of new objects that are not included in the product, such as: Bezier su rfaces, CSG objects, animation objects, special viewers, and many more. The rendering mechanism inside Open Inventor objects employs OpenGL. During rendering each object automatically makes the proper, efficient calls to OpenGL. Since Open Inventor was designed specifically to use OpenGL for graphics rendering, it is highly optimized to take advantage of all OpenGL accelerators. Its optimized scene graph pipeline also allows the developer to target PC and low-end systems without hardware acceleration. Furthermore, Open Inventor rendering supports a caching scheme which automatically generates very fast renderings of the database without additional traversal overhead. Inventor picking is extremely efficient and does not utilize rendering. Furthermore, picking returns a variety of 3D information and detail about what objects were picked. A sorted list of picked objects and corresponding information is returned to the programmer. Picking is so fast that programs can perform 3D locate highlighting as the mouse moves across a 3D window. Inventor defines an event model for writing 3D interaction. This model is window system independent. It is quite easy to use and makes 3D direct manipulation programming possible. Open Inventor includes a variety of interactive 3D objects and tools for writing interactive objects, such as: Manipulators, Draggers, and Projectors. The flexible event model encourages programmers to extend the system to support new devices and event types. 3.4.2 OpenSG The OpenSG project was initiated at SIGGRAPH 1999 by Dirk Reiners, Allen Bierbaum and Kent Watsen. It was motivated because all new announced scene graph based toolkits like Page 2 3 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 Cosmo3D/Optimizer, OpenGL++, Fahrenheit had been discontinued before they really got started. OpenSG is on open so urce project available on all major operation systems. OpenSG supports general features that are needed by every system: decent performance due to view volume culling and optimized geometry handling (stripes etc.), support of static and dynamic objects, object-oriented C++ interface etc. Furthermore OpenSG concentrates on key features that are missing in most other scene graph libraries: portability, multithreading support, support for multiple graphics pipes and clusters, extensibility & reflectivity and flexibility. The biggest technological problem is the multi-threading. This is really tricky, as asynchronous threads really need independent copies of the scenegraph, anything less won't do. For example consider a physical simulation that calculates the motion and interaction of complex objects. It might take longer than a frame to do every step, so you don't want to do it for every frame to give the user better feedback. But you don't want to give him inconsistent feedback, either, i.e. half of the object moved to the new position, half in the old. Thus the simulation thread needs its own copy of the data. Add to that a simulation that actually deforms the objects and complete copy of everything is needed. Admitted, this is the worst case, but simpler cases like a geometry morpher need a copy of the geometry, while a solid object motion simulation needs a copy of every transformation. And both need access to consistent geometry data, so if they are supposed to work on their own version they would have to copy everything, and keep it up to date. It's more efficient for them to just work on the scene graph's copy. Thus OpenSG is able to handle multiple copies of the data, and do it in a way that's as transparent as possible to application writers. Multiple graphics pipes are a concept that is gaining more and more acceptance. High-end systems from Silicon Graphics and other vendors have been supporting it for quite a while, to drive multi-screen projection systems like Powerwalls or Caves. A trend that is rapidly evolving is using clusters of standard PCs for high-end applications using multiple projectors. To do that every machine in the cluster has to have the same data for rendering, so that all images fit together seamlessly. You can either distribute the OpenGL commands, which might create a lot of traffic, as the application can store some things more compactly than OpenGL. Or you can run the application itself on multiple machines, distributing just the input and hope that they all react the same to the same input. If you also have strict timing that is distributed too it might even work, but you have to change all the applications that are to be distributed. OpenSG is taking a middle ground and distributes the scene graph. It is a common component of all the applications, and it has a lot of structural information that helps it distribute information efficiently. 3.4.3 Open Scene Graph Open Scene Graph is developed using modern object-oriented design and utilizing up-todate C++ features. It embraces standard C++, generic programming, and design patterns. Page 24 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 The library components are namespaced, and every attempt is made to utilize modern, standard C++. The container classes used in the OSG belong to the standard template library, and iterators are used to abstract data structure traversal. Clean, object-oriented design is important to the developers of the Open Scene Graph, and published, documented design patterns are used where applicable. At the time of writing the Open Scene Graph makes use of the follo wing patterns: Adapter, Chain of Responsibility, Composite, Decorator, Iterator, Observer, Prototype, Singleton, Template Method, and Visitor. The Open Scene Graph uses a number of software techniques to optimize rendering and minimize the amount of work required of OpenGL and the graphics hardware. Currently implemented features include view frustum culling, small object culling, Level of Detail nodes, OpenGL state sorting, use of OpenGL display lists, and use of OpenGL vertex arrays. The above factors allow the Open Scene Graph to achieve frame rates similar to those of more established scene graphs. The Open Scene Graph standard distribution exists largely as two modules: the core scene graph itself (osg), and a utility library (osgUtil). The osg component provides core data structures and facilities, including various types of scene node, native file reader-writers, and foundation classes on which software may be built. It can be thought of as the implementation. The osgUtil component sits atop the co re osg, and supplies higher-level functionality, currently including a render visitor, ray picking facilities and utility classes for viewer development. The osgUtil component may be thought of as an implementation: Open Scene Graph users are free to ignore it and write their own supporting classes instead, if they so wish. The software makes use of dynamic libraries to allow users to plug in their own functionality. This may include file reader-writers (identified by extension), and node types. The Open Scene Graph has been developed with portability in mind. The only requirement made by the core components is OpenGL (or Mesa). But because Open Scene Graph is still in an early development state some crucial functions are still missing. There is still no support for user interaction features, such as draggers and manipulators. The library is not thread safe yet, for use on multiprocessor systems, though it is intended to support it in later versions. Furthermore documentation in the form of tutorials and user manuals are not available yet. 3.4.4 Java3D Java3D is developed by Sun Microsystems as an extension to the Java language. Because of Java has to be interpreted the programs are generally slower than generated machine code. Therefore the developers took a great concern about performance issues when designing Java3D. Java 3D API was designed to offer a high -level, object-oriented, programming paradigm that enables developers to rapidly deploy sophisticated applications and applets. Page 2 5 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 It was designed to provide a rich set of features for creating interesting 3D worlds, tempered by the need to avoid non- essential or obscure features. Features that could be written in the Java programming language and layered on top of Java 3D API were not included. Support for run-time loaders was included to allow Java 3D API to accommodate a wide variety of file formats such as vendor-specific CAD formats, interchange formats, VRML 1.0, and VRML 2.0. To optimize rendering, Java 3D API implementations are layered to take advan tage of the native, low-level API that is available on a given system. In particular, Java 3D API implementations that utilize OpenGL, Direct3D API, and QuickDraw3D will be available. This means that Java 3D API rendering will be accelerated across the same wide range of systems that are supported by these lower-level APIs. Java 3D API is aimed at a wide range of 3D-capable hardware and software platforms, from low cost PC game cards and software renderers, through mid-range workstations, all the way up to very high -performance, specialized, 3D image generators. The Java 3D API's scene graph-based programming model provides a simple and flexible mechanism for representing and rendering potentially complex 3D environments. The scene graph contains a complete description of the entire scene, or virtual universe. This includes the geometric data, the attribute information, and the viewing information needed to render the scene from a particular point of view. The Java 3D API improves on previous graphics APIs by eliminating many of the bookkeeping and programming chores that those APIs impose. Java 3D API allows the programmer to think about geometric objects rather than about triangles—about the scene and its composition rather than about how to write the rendering code for efficiently displaying the scene. Besides rendering Java3D offers support for input/output devices, behavior, animation, picking, culling, Level of Detail, billboards and 3d sound. 3.4.5 High Level 3D-Graphic Libraries Comparison Open Inventor is one of the first scene graph based graphic libraries and appears to be outdated in some aspects. Especially the lack of multithreading is a drawback for modern applications. On the other hand Open Inventor is very stable and a lot of knowledge about it is available. Furthermore a lot of useful extensions are available and it is still further developed. OpenSG has a modern architecture and seems to offer most necessary functions. But the main drawback with OpenSG still is, that the current version still lacks the stability desired for extensive use. Open Scene Graph has the cleanest design from the software engineering side of view, but is still in to early stage to be useful, because a lot of key functions are still missing and even documentation is rarely available. In spite of high performance considerations in the design Java3D is still much slower than the C++ based approaches. Therefore it is not a good choice for our SmartSketches applications. As can be seen, no library still appears to offer the functionality desired. For the moment we consider Open Inventor to be the best compromise, because of its stability and widespread use. But we also keep an eye on OpenSG, which looks promising for the future especially because of its comprehensive multithreading support. Page 26 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 3.4.6 Virtual Reality Libraries In the previous chapters we have been focusing on 3d-graphic libraries. In this chapter we will discuss systems that offer a more or less complete environment for virtual reality applications. The requirements for these environments are to support different kind of input devices, tracking systems, output devices, advanced user interfaces and widgets and user management. Some of these requirements may be partially fulfilled by the previous discussed high level 3d-graphic libraries, so virtual reality libraries might be strongly related to the library it builds on itself. 3.4.7 Studierstube Studierstube is a software framework built on top and tied into OIV. The full power of OIV is available to the application programmer as a foundation of Studierstube API. Studierstube complements that with the interfaces (classes) necessary for creating multi-user, multitasking applications with complex 3D interactions. Based on a module for device (i.e. tracker) I/O, a true 3D event system is added to OIV to deal with 6DOF data in a convenient way. The 3D event system is used by various classes such as 3D widgets, but also by the 3D window system. 3D windows serve as the containers for the visible portions (scene graphics) of multiple concurrent applications. Besides these components, manager classes provide capabilities required to manage non-graphical aspects of the system such as management of users, resources, and windows in a multi-user safe way. Figure 13. Studierstube Architecture Studierstu be uses the so-called “Pen and tablet” methaphor for VR interaction: the nondominant hand holds a transparent palette (Personal Interaction Panel PIP) on which the menus and buttons are displayed, the other handles the pen for application-related tasks. Page 27 Technical Report D5 IST-2000-28169 Figure 14. Pedro Santos 12/18/2002 Studierstube Personal Interaction Panel Example 3.4.8 VR Juggler VR Juggler is a collection of technologies, which provide the tools necessary for VR application development. VR Juggler allows a user to run an application on almost any VR system. It acts as "glue" between all the other Juggler components. From this, VR Juggler provides a virtual platform for virtual reality application development. It is an object-oriented development environment to support the efficient development of time-critical, interactive immersive applications independently of the underlying technologies. We discuss the VP concept in the context of prototyping, debugging, and running immersive applications and focus on the approach taken to specify, design, and implement VR Juggler. T he fundamental metaphor of VR Juggler is that VR Juggler is a virtual platform for VR application development. A virtual platform (VP) provides a development and execution environment that is independent from hardware architecture, operating system (OS), and available VR hardware configurations. It provides a unified operating environment in which developers can write and test applications using the available resources while guaranteeing the portability of the application to other resources. The VR Juggler virtual platform (JVP) addresses the following key technical challenges: • Abstract the complexities of the current VR system • Allow the use of any graphics API • Provide for scalability of VR systems and resources in terms of the number of display surfaces, computer systems, human/computer interface equipment, networks, and software tools. • Provide flexibility to adapt and cope with a wide variety of hardware configurations • Allow for run-time changes in the hardware and software configuration of the environment • P rovide the ability of running multiple applications simultaneously • Provide tools for evaluating and tuning the performance of the VR Juggler system and the applications that use it. Page 28 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 The purpose of the VR Juggler virtual platform (JVP) is to separate the hardware-dependent and hardware-independent software components of the VR software system. The virtual platform provides a simple operating environment for virtual reality application development. By using the JVP, a developer can write an application once on a local VR system and run it on any other VR system. 3.4.9 MAVERIK MAVERIK is a publicly available virtual reality system, which has been under development by the Advanced Interfaces Group of Manchester University since 1995. MAVERIK deals primarily with graphical and spatial management, and integrates with their other VR system, Deva, which extends MAVERIK abilities to multi user and multi application virtual reality. Within this wider context, MAVERIK is designed to support high-performance rendering, including large-model processing, customized representations of environments for different applications, and customizable techniques for interaction and navigation. Although it is a component of a larger system, MAVERIK works equally well stand-alone and forms an ideal platform for the construction of VR applications for individual users. MAVERIK has two components: The MAVERIK micro-kernel implements a set of core services, and a framework that applications can use to build complete virtual environments and virtual reality interfaces. The MAVERIK supporting modules contain default methods for optimized display management including culling, spatial management, interaction and navigation, and control of VR input and output devices. MAVERIK's structure allows these default methods to be customized to operate directly on application data, so that optimal representations and algorithms can be employed. MAVERIK can far more readily adapt (dynamically) to a wide range of application demands. Its flexible design means that applications with widely differing requirements can be supported. MAVERIK Core Services: • A framework for managing the display and interaction requirements specific to an application. • A spatial management system to keep track of objects in a 3D environment. • Level-of-detail processing, navigation, collision detection, and object manipulation. • High-performance algorithms for culling, navigation and collision detection. • A complete set of default primitive objects, from which virtual environments can be constructed. • Support for different VR input and output devices, such as stereoscopic headmounted displays, stereoscopic projection displays, autostereoscopic display, hand and head-tracking devices, sound output, and speech recognition. • Navigation and Interaction techniques. • Field algorithm for ease of navigating complex scenes. Page 29 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 3.4.10 Virtual Reality Libraries Comparison Though all presented libraries provide rather rich and complete in functionality, we consider the studierstube to be most suitable for our purpose. This library is rather easy to learn and understand, especially because it is like an extension to Open Inventor. It provides a complete environment that is easy to adapt for own applications without much overhead. It also provides its own user interface paradigm using the PIP -sheet and pen, which we experienced to be very intuitive to use. It natively supports a lot of tracking systems and output devices, so that no further adaptation to the hardware recommended later in this document is necessary. 3.5 CAD Kernel The goal of the SmartSketches project is to create 3d-models for car design. Because of the real-time demand of the graphic libraries the geometries are more or less represented as sets of faces and primitives. This representation does not reach the need for CAD accuracy in automobile construction. For the SmartSkeches modeler it is therefore crucial to create a precise CAD model using an industrial standard CAD kernel. 3.5.1 ACIS ACIS is an object-oriented three-dimensional (3D) geometric modeling engine from Spatial Technology Inc. (Spatial). It is designed for use as the geometry foundation within virtually any end user 3D modeling application. ACIS is written in C++ and consists of a set of C++ classes (including data and member functions, or methods) and functions. A developer uses these classes and functions to create an end user 3D application. ACIS complements existing applications by offering a unified environment for the modeling of curves, surfaces, and solids. ACIS also supports the integration of proprietary curve and surface subsystems. ACIS provides a foundation of common modeling functionality and the flexibility to be adapted and extended for particular application requirements. ACIS integrates wire frame, surface, and solid modeling by allowing these alternative representations to coexist naturally in a unified data structure, which is implemented in a hierarchy of C++ classes. ACIS bodies can have any of these forms or combinations of them. Linear and quadric geometry is represented analytically, and non-uniform rational B-splines (NURBS) represent free-form geometry. In addition to manifold geometry, ACIS can represent nonmanifold geometry. Geometry can be bounded, unbounded, or semi-bounded, allowing for complete and incomplete bodies. A solid can have faces missing and existing faces can have missing edges. Solids can also have internal faces that divide the solid into cells. ACIS is a boundary -representation (B-rep) modeler, which means that it defines the boundary between solid material and empty space. This boundary is made from a closed set of surfaces. The data types used by ACIS are summarized as follows: • Geometric information data types such as object space or xyz-space, surface parameter space or uv-space and curve parameter space represented by the C++ classes (such as position, vector, transf) Page 3 0 Technical Report D5 • • • IST-2000-28169 Pedro Santos 12/18/2002 Construction geometry data types refer to the C++ classes that hold the mathematical definitions of geometric objects (such as curve, surface, compcurv, cone, ellipse, intcurve, meshsurf, plane, sphere, spline, straight, and torus.) Model geometry data types refers to the C++ classes that add model management functionality to the construction geometry (such as CURVE, SURFACE, COMPCURV, CONE, ELLIPSE, INTCURVE, MESHSURF, PLANE, SPHERE, SPLINE, STRAIGHT, and TORUS) Model topology data types refer to the C++ classes that specifies the hierarchy of elements involved in the creation of a model (such as BODY, LUMP, SHELL, SUBSHELL, FACE, LOOP, WIRE, COEDGE, EDGE, and VERTEX) ACIS provides many ways to modify models. The functionality for these model modification techniques is implemented in different ACIS components. ACIS Core Functionality is: 3D Modeling • Extrude/revolve/ sweep sets of 2D curves into complex surfaces or solids. • Fillet and chamfer between faces and along edges in surface and solid models. • Fit surfaces to a closed network of curves. • Generate patterns of repetitive shapes. • Hollow solids and thicken surfaces. • Interactively bend, twist, stretch, and warp combinations of curves, surfaces, and solids. • Intersect/subtract/ unite any combination of curves, surfaces, and solids. • Loft surfaces to fit a set of profile curves. • Taper/offset/move surfaces in a model. 3D Model Management • Attach user-defined • data to any level of a model. • Track geometry and topology changes. • Calculate mass and volume. • Model sub-regions of a solid using cellular topology. • Unlimited undo/redo with independent history streams. 3D Model Visualization • Generate 2D projections of models with hidden line removal. • View models using OpenGL rendering. • Tesselate surface geometry into polygonal mesh representation. 3.5.2 OpenCascade Open CASCADE is a 3D modeling application development platform. It consists in reusable C++ object libraries and development tools that are available as Open Source. Open Page 3 1 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 CASCADE allows the creation of curves, surfaces and solids using a variety of modeling operations. Constraints can be applied to entities and in this way be used in the modeling process. Open CASCADE provides: • Descriptions of elementary geometric shapes (points, vectors, lines, circles and conics, and planes and elementary surfaces); • Positioning of these shapes in space or in a plane by means of an axis or a coordinate system; • Definition and application of geometric transfo rmations to these shapes (translations, rotations, symmetries, scaling transformations, and composed transformations); • Tools (coordinates and matrices) for algebraic computation. Open CASCADE has implementation of the most frequently used mathematical algorithms: • Algorithms to solve a set of linear algebraic equations, • Algorithms to find the minimum of a function of one or more independent variables, • Algorithms to find roots of one, or of a set, of non-linear equations, • An algorithm to find the eigenvalues and eigenvectors of a square matrix. Open CASCADE provides basic geometric libraries that gather functions used in basic geometric computation, and functions for defining the precision criterion used to compare numbers. The basic geometric computation functions are responsible for 3D positioning of 2D shapes, and computation of elementary surfaces. The precision package provides precision criteria regarding to real space and parametric space, defining criteria for checking distances and angles, and equality of parameters and point coincidence in parametric space. It also has the notion of an infinite value. The calculation of bounding volumes is also supported. Bounding boxes can be defined, checked for intersection and sorted accordingly. Open CASCADE’s triangulation tools provide data structures and services to create approximate representations of surfaces, or shapes. Open CASCADE supports interpolation and approximation of 2D points using B-Spline or Bezier curves, and of 3D points using BSpline, Bezier curves or B-Spline surface. The definition of a lower-level approximation function is allowed. This enables custom tangents to be defined for the approximation, curves to be approximated in parallel or smoothly. Geometric tools: Open CASCADE’s geometric tools offer the possibility of creating curves and surfaces from constraints. The following is possible: • Creation of faired and minimal variation 2D curves: curves with minimal variation in curvature. • Construction of ruled surfaces: a surface is built by ruling a line along the length of two curves. • Construction of pipe surfaces: a pipe is built by sweeping a curve (the section) along another curve (the path). Pipes allowed are: does with a circular section of constant radius, a constant section or a section evolving between two given curves. • Surface filling: a surface is built by capping a “hole” defined by two or more curves. • Construction of plate surfaces: a surface is constructed by deforming a surface so that it conforms to a given number of curve or point constraints. Page 3 2 Technical Report D5 • IST-2000-28169 Pedro Santos 12/18/2002 Extension of a 3D curve or surface beyond its original bounds: based on a continuity constraint and geometric requirements. Intersections and projections: Open CASCADE has functions defined for intersections computation. These intersections can be does between two 2D curves, self-intersections of a single 2D curve, the intersection points between a 3D curve and a surface, and he intersection curves between two surfaces. Projections can also be computed: points on curves or surfaces, and 3D curves on surfaces. Planar 3D curves can be transposed to the 2D parametric space and vice-versa. Constraint-based construction algorithms: Open CASCADE provides numerous construction algorithms for 2D circles or lines described with numeric or geometric constraints in relation to other curves. Impositions can fall upon such aspects as: circle radius, angles between straight lines, tangencies, passage through a point, circle center position restricted to a point or curve. Topologies supported: vertices, edges, faces, wires, polygonal wires, shells and solids. Allowed curve shapes can be bezier curve, B-Splines and NURBS. Basic and very common primitives are box, cone, cylinder and prism. Other objects can be created thru sweeping along profiles, either linearly, rotationally, or along complex profiles like B-Spline curves. Operations supported: • Boolean operations. • Fillets and chamfers on shape edges. • Offsets, drafts, sweeps and sewing: creation of tapered shapes through the use of draft angles, offset shapes, hollowing, shelling, lofting. • Feature creation: depressions and protrusions on surfaces. Open CASCADE also provides basic selection services that allow the definition of selectable entities in a view, and access to other properties. Different selection modes can be used and filters can be applied to restrict possible selections. Open Cascade supports the following file types: IGES, STEP, STL and VRML. 3.5.3 ACIS Open CASCADE Comparison It is difficult to say which CAD Modelling Kernel best satisfies the needs of SmartSketches. In fact ACIS and OpenCascade are very similar in the features they support, as can be seen in the figures below. One of the advantages of using ACIS is the fact that it is thouroughly tested before being released, so one could argu e that it is more safe and stable. A disadvantage is obviously, that while usage of ACIS for non-commercial purposes is free, commercial use will be expensive, compared to OpenCascade, which is Opensource. Page 3 3 Technical Report D5 IST-2000-28169 Page 34 Pedro Santos 12/18/2002 Technical Report D5 IST-2000-28169 Table 4. Pedro Santos 12/18/2002 CAD Kernel comparison We recommend both kernels for use in SmartSketches, since their features are very similar. We choose to base initial development on ACIS kernel since it is freely available for research purposes and more stable than OpenCascade. 3.6 Tracking Tracking is an indispensable requirement for all kinds of virtual reality (VR) and augmented reality (AR) systems. While the quality of tracking, in particular the need for high performance and fidelity have led to a large body of past and current research, little attention is typically paid to software engineering aspects of tracking software. 3.6.1 Minimal Reality Toolkit This toolkit (MR) is designed to ease the development of virtual reality applications. It not only tries to support multi-modal interaction but also influences computation and presentation. Therefore it defines the decoupled simulation model, to separate computation from the rest (interaction, geometric model and presentation) and process both parts asynchronously. The interaction component manages all input from and output to the user and for this toolkit should be coupled with the graphical display in the same process to reduce lag time. To access devices the toolkit defines servers, that are responsible for data processing and can be configured for all parameters except geometric transformations in a human readable file. Page 3 5 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 One server represents each input device and the data collected and preprocessed in the server is accessible for the application using clients that communicate with servers over TCP/IP connections. 3.6.2 Virtual-Reality Peripheral Network Quite similar to the MR Toolkit VRPN desires to ease the integration of various input devices in virtual reality applications. This toolkit has a strong focus on support for various input devices, without support for data processing or presentation. This remains completely in the applications responsibility. The toolkit (like the MR Toolkit) uses a server client design to separate the input devices from the application, using TCP/IP connections to distribute multiple servers and clients in a network. All computations necessary to achieve a special data format reside on the server side. All further data processing is part of the application implementing the client functionality. VRPN achieves device abstraction by reducing their abilities to minimal common features. So in this toolkit for example all supported trackers deliver the same kind of data with the same semantics, neglecting special abilities certain trackers could provide in favor of a uniform data output. In contrary to this the interaction framework developed with this thesis achieves device abstraction by integration, trying to support as many device abilities as possible. 3.6.3 OpenTracker To support multi-modal interaction the open tracker uses the approach of a data flow network. Nodes in an acyclic directed graph represent data processing elements, the edges connections between these elements. Thereby every edge can be working as a remote connection, giving this toolkit the ability to distribute computations. Data flows in this graph from sources to sinks crossing nodes, that define one or more input ports to get data from and one single output port to deliver data to. Duplication of data is done connecting multiple input ports to the same output port. Connections between ports are only possible if these ports work on the same port type. Open tracker thereby defines three port types: events, event queues and time dependent data. Data processing inside the data flow network is driven by a main loop that processes the nodes in a sequence. To protect from stalling nodes can be implemented in their own threads, the whole network is built at startup time from an XML configuration file and afterwards it is fixed and not (yet) designed to be reconfigured at runtime. 3.6.4 Tracking Systems Comparison Current tracking software typically provides device abstraction and linear extensibility. However what is generally not covered by such systems is support for complex or experimental configurations, requiring a combination of different tracking sources or geometric modifications of data from one source relative to another. An important feature conventional tracking systems lack is the possibility to broadcast tracking information onto the network, making it available to a variety of hosts at the same time allowing them to merge tracking sources. Finally a simple configuration of the tracking system by the end user is a very important point to allow simple reconfigurations of the tracking devices. All mentioned tracking systems cover part of those requirements. The tracking system that does cover all those issues is OpenTracker and therefore we choose it for SmartSketches. Page 36 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 3.7 Constraint Solvers Constraint Solvers are needed to allow modification of a model according to defined rules, namely constraints. Generally those constraints are geometric which will for example not allow a tube to bend more than specified by properties. In addition a constraint solver will recalculate the position of geometries by this modif ication, preserving their constraint rules. certain preconstraints, its material all affected 3.7.1 CE3D Geometric Constraint Solver for 2D and 3D Object Hierarchies CE3D can be applied to 2D and 3D mechanism design, and assembly design. This technology enables a new generation of non-history based shape design , which is capable of more flexibly capturing the design intent in the conceptual design phase. The features of the solver are as follows: • Typed degrees of freedom CE3D distinguishes between types of degrees of freedom (e.g., translational, rotational, dim ensional) and applies an order of preference when choosing the possible degrees of freedom in the analysis part of the solution. For instance, translating a plane has a more predictable outcome than rotating it, since rotation can be performed about many different axes. Therefore, the translational degrees of freedom are preferentially exploited when possible, before other degrees of freedom are tried • Temporary constraints The constraint solver also takes into account temporary constraints. Temporary constraints guarantee that object manipulations cannot be inadvertently undone by subsequent geometric manipulations. After picking a geometric element, the handle that appears actually acts as a local constraint, also when the handle is not actively manipulated. As long as a handle is not deleted, it fixes all degrees of freedom of that element. The handle can be later reactivated. • Topological Consistency The constraint definition is used to ensure geometric consistency, which is not necessarily guaranteed by the underlying representations. However, it is still possible to make objects inconsistent. By dragging the selected vertices or planes too far, the object may become self-intersecting. The solver uses the following 2 approaches to ensure that the constructed hierarchy is topologically consistent. o Boolean set operations can be used to eliminate the inconsistencies o Inequality constraints and topological constraints are used to avoid topological inconsistencies § Applicability: CE3D can deal with completely constrained, under-constrained, and over-constrained definitions. § Shape Manipulation: Shape manipulation can be done by a combination of interactive continuous dragging (using a mouse, for instance) or by iteratively specifying the geometric constraints and dimensioning, and the numeric values (i.e. command-driven). Page 37 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 § Object-oriented API: A set of C++ classes to access the full power of the constraint engine. § Data exchange: CE3D can be integrated into existing CAD systems, either by exchanging d ata in some standard format, or more directly via the API provided by the CAD system. § Mixed-dimensional geometric model definition: Models can be defined by a mixture of 2d and 3d constraints as well as congruence and algebraic relationships 3.7.2 D-Cube 3D D imensional Constraint Manager (DCM) To modify a model, the end-user simply specifies a change to the rules, such as a modified value for a dimension. The DCM then automatically re-calculates the locations of all the geometries affected by the new dimension value, while ensuring that their final locations are consistent with the previously applied dimensions and constraints. The end-user does not have to re-position the geometries manually to create the new configuration. Also, all modifications are achieved without replaying a design history., as in conventional CAD systems. The DCM is not a geometric modeling system. The geometric model is defined and stored in the application. The DCM is used to assist with the construction and modification of the application’s own geometric models through providing a method for controlling the location of the constituent geometries. Mechanisms can be assembled and their motion simulated using the 3D DCM. Furthermore, designs that have been constructed by end-users prior to the use of the 3D DCM can have dimensions and constraints added without requiring the models to be be reconstructed. Figure 15. 2D Variational Design & 3D Mechanism Simulation under constraints Key Features of the DCM: • Support for a wide range of geometries, dimensions and constraints. • 3D sketching, part and assembly modeling and mechanism simulation • An integration architecture that is compatible with all geometric/solids data structures, including all solid-modeling components. • The ability to solve a wide range of models using a combination of the most appropriate algebraic or numerical algorithms. Page 3 8 Technical Report D5 • IST-2000-28169 Pedro Santos 12/18/2002 Performance that is a linear function of increasing model size. Example Figure 16. DCUBED Example Many CAD systems offer an assembly modeling capability, where solids based piece-parts are positioned relative to each other using dimensions and constraints. Most of these systems use a simple history based method for assembling the parts. However, this model cannot be assembled using a simple history based approach. It can be so lved using the 3D DCM's sophisticated, fully three dimensional, variational algorithms. Following its assembly, the value of the angle dimension can be animated using the 3D DCM through 360 degrees, thus providing a kinematic simulation of this mechanism. All this is achieved without requiring the transfer of the model from a CAD system into a specialist mechanisms package. Integration The components are integrated into an application's existing user interface and file format environment. The components make very few assumptions about the data structures used in the host system. The definitions of the geometry are held in the application and accessed by the components through a simple and compact interface. Therefore, use of the components does not require the application to re-define its geometric data structures. Hence, they are compatible with any 3D application, based on a solid, surface or wireframe geometric definition 3.7.3 Discussion of Constraint Solvers to be used While CE3D offers a fair set of functionality, it is yet to be a fully-fledged constraint solver, also because it is still under development. Some very important aspects, that lead to the choice of D-Cube as a constraint solver for SmartSketches are the facts, that it can transparently be built in to our existing environment, accepting all kinds of geometric/solids data structures and has a linear performance at an increase of scene complexity. Also existing models need not be reconstructed, so constraints may be added to them as to fit the requirements of the constraint solver. Page 39 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 4 Hardware for 2D Sketching This chapter will describe the hardware recommendations for SmartSketches applications, on particular for 2D Sketching. 4.1 Hardware scenarios 4.1.1 The Tablet pen based scenario This scenario is the most conventional at work offices. The user has a desktop workstation with a traditional display and uses the Tablet pen based just as input for sketching applications. Normally since the visual aspect is the most relevant in sketching, the user should use a large screen and place the tablet in a collateral position with the display. The keyboard isn’t used during the work task and all the navigation is made using the tablet. The tablet can be attached to a laptop since it is portable. In this scenario, user can transport the tablet and use it both alongside laptop and work at home for example. The following figure shows the tablet connected to a laptop and a large display. This scenario is perfect for work at home or office. Figure 17. A Tablet pen based configuration 4.1.2 The interactive pen display scenario This scenario is similar to the tablet pen based scenario. The principal difference is that both display and input functions are performed by a unique device; the interactive pen display. This configuration is only suitable at office and offers new possibilities for sketch-based applications. Since the user is drawing directly on the screen, this allows for a better approach to the paper and pencil metaphor. To make this scenario more usable, we can embed the interactive display in a drawing board. The following figures show two scenarios with different size displays (18 inch with Cintiq Display and 15 inch with Vaio Display). Page 4 0 Technical Report D5 IST-2000-28169 Pedro Santos Figure 18. An interactive pen display configuration (Wacom Cintiq) Figure 19. Another interactive pen display configuration (Sony Vaio) 12/18/2002 4.1.3 The Tablet PC configuration The Tablet PC scenario while offering the advantages of the interactive pen display also explores mobility. This scenario is only compound by the tablet PC and its pen. The user can work anywhere for example at home or during train transport. This scenario offers the possibility for batter interaction with costumers. The user can explain concepts and change the drawing during presentation. Figure 20. Tablet PC scenario Page 41 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 4.2 System Requirements The supported platforms are PCs running Windows NT/2000/XP/Linux. The platform should have a minimum of 256 Mb of RAM memory but 512 Mb is recommended. To take vantage of the framework, the workstation should have the ability to display advanced OpenGL based graphics. That is the reason why we require an OpenGL accelerator graphic board. The interactions devices should be tablet pen based or interactive pen display. The framework will be functional using a Tablet PC too. 4.3 Pen-based Input Hardware Pen-based Hardware offers a new frontier for interactive systems and the technology is remarkably mature. With natural input from a pen, pen-based computers promise to supplant both the keyboard for text entry and the mouse for pointing, dragging, and selecting. The pen-based input had becomes the more natural way of interaction for a wide computer application. It had completely changed the way of work in various computers tasks, as Photo Editing, Drawing & Painting, Computer Gaming, Music & Video Editing, Browsing & Surfing and Handwriting. The followings sections present an overview of the different pen-based that will be consider for Smartsketches applications based on 2D sketching. 4.3.1 Pen-based Tablet System The pen-based tablet system is normally compound by two hardware devices: a pen device and a tablet to support it. There exist various manufacturers that provide this kind of hardware. The offer is based on to the industry requirements. For example there exists various size of tablet from A6 until A2 for CAD application with different abilities. The tablet hardware is able to detect pressure and tilt information from a pen. The following figure shows different tablet devices: Figure 21. Intuos2 A4 Wacom & A2 tablet (UltraPad A2) There exist a wide series of pen input device for tablets to give different tools and feeling to the user. For example, pen with eraser ability, pen with brush feeling, pen with airbrush feature. The principal artefact to simulate feeling is the pressure-sensitive tip. Normally the pen is able to provide 255 pressure levels, but advance device can provide until 1024 pressure levels. The pen input has normally some buttons which user can customise their functionality, by default there acts like mouse button. Normally tablets devices are compatible with cordless mouse device too. Some manufacturers provide different mouse system to the tablet device, for example to accurate Page 42 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 pointing there exist cordless mice with lens cursor to give more resolution an d positioning accuracy. The following figure shows different pen and mouse device for tablet support: Figure 22. examples of pen and mouse devices 4.3.2 Interactive Pen Display System This is another system of pen-based input device. The principal difference with the tablet system is that it uses a display to support the pen and not a tablet device. The system brings the possibility to write directly in the display without any lateral offset positioning like the tablet device. There exist different sizes of display from 15 inch until 18 inch and they use normally TFT technology. The choice of pen device for Interactive Display is more restrict but all have pressure-sensitive ability. This system doesn’t allow the use of mouse. Figure 23. Interactive Pen Display, Cintiq 18” Wacom Page 43 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 The following table presents a comparison of characteristics between two Wacom’s tablets and the interactive pen display Cintiq 18”: Graphire2 Intuos2 Cintiq Levels of Pressure 512 1024 512 Tablet Resolution 1016 2540 1015 Active Area 4x5 4x5, 6x8, 9x12, 12x12, 12x18 18" Diag. LCD Menu Strip NoMenu Strip Programmable NoMenu Strip ToolID No Yes No QuickPoint No 9x12 + No Accessories No Yes No Mouse 3-Button 4x5, 6x8 3-Button Others 5Button None Pen Standard Grip Pen Standard Table 5. Tablet pen based vs Interactive Pen Display Comparison 4.3.3 Tablet PC System The Tablet PC is a new solution that was present by Microsoft in November 7 th of this year in New York. The Tablet PC is a solution of hardware/software that allows the user to introduce information in the computer using a pen device, writing directly on the screen. Microsoft has develop a new operating system (Windows XP Tablet PC) to include support for pen, using a technology called “Ink” which allow pen interactivity and handwriting recognition. The Tablet PC offers all the advantages of a laptop and a Personal Digital Assistant system. There exist two basic configurations for Tablet PCs: • The “hybrid” model, which is a normal laptop with a rotating display, that allows to rotate the screen in the top of the keyboard like a notepad. • The “slate” model, which hasn’t any, keyboard and is basically compound by a LCD display with pen input ability. One of principal advantages of Tablet PC for SmartSketches applications is the mobility capacity that it provides. The following table present a comparison of the features of the Tablet PC compared to other mobile Microsoft pen based systems: Feature/Product Tablet PC Windows XP Pocket PC 2002 Handheld PC 2000 Digitizer (screen for input) used as a mouse Electromagnetic Optional Analog Analog Page 44 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 Feature/Product Tablet PC Windows XP Pocket PC 2002 Handheld PC 2000 Optimized Power States Required Optional Required Required Screen Rotation Required Optional 3rd Party s/w n/a Screen Resolution 120 DPI, 800 x 600 or greater 96 DPI or 120 DPI, 640 x 480 or greater 320 x 240 640 x 240 Surprise Undocking Required Optional Required Required Legacy Free Hardware Required Optional n/a n/a Hardware Button to Logon to Windows Required None n/a n/a Ink Support Yes No Yes No Windows Journal Yes No No No On Screen Keyboard Yes Yes - with Office XP, requires manual install Yes No Table 6. Tablet PC vs Pocket PC comparison Here is a comparison between Tablet PC solution and the interactiv e display Cintiq as used by the current SmartSketches prototype applications: Features TabletPC Cintiq Mobility Yes No Microsoft Digital Ink Yes No Most OEM Yes Dual side pen switch No Yes Large display (15"-18") No Yes Medium size display (10.4"-12.1") Yes No Pressure levels 256 512 Display Resolution XGA XGA or SXGA Color Calibrated No Yes *Penabled™ compatible Table 7. Tablet PC vs Cintiq Comparison The table presented in the following page shows the specifications of fourteen different Tablet PC models. Page 4 5 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 4.3.4 Advantages and disadvantages between scenarios The following table presents the advantages and disadvantages of the three solutions discussed. Tablet Pen Based Advantages Parallax control Interactive pen Display Closer to paper m etaphor Writing on responsive surface display Disavantages Cognitive dissymmetry writing on different surface Not portable (display) Hand occlude display Not portable + - Portable (notebook + tablet) Table 8. Tablet PC Mobility (work anywhere) Responsive surface Digitizer (electromagnetic tablets) Compact Potentially combine with other screen Hand occlude display + - Display size smaller Input Devices comparison These three scenarios will be considered for SmartSketches applications, since each scenario offers advantages depending on the task and the local of work. For example for office work both tablet pen based and interactive pen display scenario are the more suitable solution. For home, the best scenario will be the laptop with tablet or the Tablet PC. For presentation and costumer interaction, the Tablet PC is the best solution. Since the aim of Smartsketches project is to provide tools for modelling and design, Smartsketches applications will be designed to be used with the three kinds of input device presented in these scenarios. Page 46 Technical Report D5 IST-2000-28169 Table 9. Pedro Santos Tablet PC market Comparison Page 47 12/18/2002 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 5 Hardware for immersive 3D Modelling This chapter will describe the hardware recommendations for SmartSketches applications, on particular Immersive Modelers. 5.1 Hardware scenarios Hardware Configuration mainly consists of a stereo visualization device, a PC-based graphical workstation, a tracking system and interaction devices. 5.1.1 Tracking System Because of working in 3D Space the system requires a 6DOF input device. Of course for design tasks a very accurate and stable input is needed. Best results are archived with the Advanced Realtime Tracking (www.ar-tracking.de) tracking system (Fig.24), which provides high precision tracking. This greatly benefits accuracy, latency times and stability of tracking. Through wireless tracked objects (Fig. 25) like pens1, tablets and model representations, user acceptance is further increased. Because of short latency times, interaction is very smooth and without notable delays. Tracking the head position of the user allows rendering stereoscopic images in a perspectively correct way for his viewpoint. Figure 24. Camera-based Tracking-System Figure 25. 1 Pens are redesigned to transmit their events over a wireless link Page 48 Input Devices Technical Report D5 IST-2000-28169 Pedro Santos Figure 26. 12/18/2002 The Pen 5.1.2 Vis ualization Devices Generally the system works with all stereoscopic devices. But the application in car design requires a bigger scale output device. Traditionally used by the car industry are power walls – an active or passive stereo projection. Some more convenience has been experienced using a BARCO Virtual Table (Fig.24), that’s a table with the picture back -projected on it in active stereo. Another option is to use a head -mounted see through display (Fig.27) like a Daeyang I-visor. Figure 27. User with HMD 5.2 Tracking Methods of Virtual Reality allow a new and very intuitive kind of communication between man and machine. The basic idea of Virtual Reality (VR) is the generation of artificial, computer-simulated worlds, which the user not only can look at passively on a screen, but with which the user can actively interact. Depending on the application, different mechanisms to interact with the virtual world are employed. Page 49 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 Tracking is used in virtual and augmented reality environments, where the position and orientation of a real physical object is required. Physical objects may be tracked interaction objects, such as pens and palettes or shutter glasses, HMDs, etc. Specifying a point in 3D requires the transition position. However since it is required to manipulate entire objects, this also requires the orientation of the object to be measured, specified by three angles known as pitch, roll and yaw, thus leading to the conclusion, that tracking systems used in virtual environments need to provide six degrees of freedom (6DOF) resolution to fully describe the position of a 3D object. Tracking Systems can be classified by technology: 5.2.1 Mechanical Tracking Mechanical tracking systems measure change in position by physically connecting the remote object to a point of reference with jointed linkages. Their main advantages are their accuracy, low latency time and no interference problems. However they are only able to track small volumes accurately and they are intrusive, due to tethering. 5.2.2 Magnetic Tracking Magnetic tracking systems use sets of coils in transmitters that are pulsed to produce magnetic fields. Magnetic sensors in receivers determine the strength and angles of fields. Pulsed magnetic fields may be AC or DC. Their main advantages are accuracy, inexpensiveness, noise immunity and their large area tracking capacity. On the other hand ferromagnetic or metal conductive surfaces will cause distortion of the signals. The same can be said from electromagnetic interferences due to radio signals. High latency times due to filtering of the signals. 5.2.3 Optical Tracking Optical tracking systems use a variety of detectors, from ordinary video cameras to LEDs, to detect either ambient light or light emitted under control of the position tracker. Infrared light is often used to prevent interferences with other activities. Main advantages of optical tracking systems are their high availability, large area tracking capacity, their high accuracy and their immunity against magnetic interferences. Their weaknesses are the need for a clear line of sight, light source interferences and their need for processing power. Also they are more expensive than other tracking solutions. 5.2.4 Acoustic Tracking Acoustic tracking systems use three microphones and three emitters to compute the distance between a source and receiver via triangulation. Use ultrasonic frequencies so that the emitters will not be heard. Their main advantages are their inexpensiveness, no magnetic interference problems and their lightweight. Page 50 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 However they are susceptible to ultrasonic noise interferences, they have a low accuracy since speed of sound through the air varies according to environmental conditions and echoes may cause ghost pulses. Also line of sight is necessary 5.2.5 Inertial Tracking Inertial tracking systems use accelerometers and gyroscopes. Orientation of the object is computed by jointly integrating the outputs of the rate gyros whose outputs are proportional to angular velocity about each axis. Their advantages are their unlimited range, they are fast, have no line of sight or magnetic interference problems and they are small and inexpensive. On the other hand in general they only provide 3DOF compared to 6DOF with all other tracking systems, are subjected to Drift and may not be accurate for slow position changes. 5.2.6 SmartSketches tracking scenarios SmartSketches applications are design and modeling applications. The immersive prototypes of SmartSketches applications are targeted at design and modeling of 1:5 or even 1:1 prototypes of products, such as moulds or cars. This is why there is a need within this project for tracking systems that will be able to track medium to large areas, from virtual tables to power walls. Another critical issue is accuracy of tracking. Since this project focuses on modeling and CAD Kernels will be used for accurate modeling of products, then also tracking for 3D interactive design has to be accurate to reflect the CAD Kernels precision. For those reasons SmartSketches will focus on magnetic or optical tracking systems, since neither mechanical nor acoustic tracking systems provide the necessary tracking area coverage or accuracy. Inertial tracking systems will not be considered for they only provide 3DOF. 5.2.7 Overview on tracking systems In this chapter we present an overview on magnetic and optical tracking systems concluding with a recommendation on which system to choose for SmartSketches immersive prototypes. Polhemus FASTRAK The Polhemus Fasttrak was developed based on a redesign of the vendor’s Isotrak product. Isotrak was one of the first trackers developed for use in virtual environments. It used older analog technology that produced large latencies, sensor range was small, and signal noise large. These problems were solved in the redesign by using a digital signal processing architecture. Each Fastrak can accept data from up to 4 receivers and up to 8 systems can be multiplexed to allow up to 32 receivers. Latency time is 4ms, linear accuracy is 0.03 inch, angular accuracy is 0.15 degrees. It’s range is up to 10 ft and 30 ft with a long range transmitter. Update rate is 120Hz. Ascension Flock of Birds Page 51 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 Flock of Birds is a 6DOF tracking system by Ascension Technology Corporation. It is intended for tracking human motions in character animation, biomedics and virtual environments applications. In particular, Flock trackers are used for head tracking in flight simulators; head, hand and body tracking in virtual environment games and full body animation. Figure 28. Ascension Flock of Birds Tracking System Flock of Birds has 360° coverage without blocking or echoing problems and a fast measurement rate – up to 144 position and orientation updates per second. It can simultaneously track up to 60 separate independent points out to 8 feet with the Extended Range Transmitter option. Each standard range transmitter allows operation in a 3-foot radius. Ascension claims it has the lowest lag of all trackers when tracking multiple points. The Flock of Birds emitter radiates a sequence of DC pulses, in effect switching the emitted field on and off. This design is intended to reduce the effect of distorting eddy currents induced by changing magnetic fields in metallic objects. While it minimizes the effect of conductive metals, the Flock of Birds remains sensitive to ferromagnetic metals. Optotrak – Northern Digital The Optotrak system is an infrared based, non-contact position and motion measurement system. Small IR LEDs attached to an object are tracked by a number of custom designed sensors. The 3D positions of the markers are determined in real-time or post hoc, up to 256 markers can be tracked. The position sensor consists of three 1-D charged coupled device (CCD) sensors paired with three lens cells and mounted in a 1.1m long stabilized bar. Within each of the three lens cells, light from the LED is directed onto a CCD and measured. All three measurements together determine the 3D location of the marker, which is calculated and displayed in real time. The standard Optotrak system includes one position sensor unit, a kit of 24 markers, a system control unit and software. ART Advanced Realtime Tracking The ART optical tracking system is composed of two or more (theoretically extendable to N) CCD infrared tracking cameras, which contain Linux Embedded PC systems performing a two step calculation on marker recognition and position calculation. The results are then broadcasted onto a local tracking network (Ethernet) to which a tracking PC is attached, which will perform the final calculation of object positions merging data from all attached tracking cameras. Page 52 Technical Report D5 IST-2000-28169 Figure 29. Pedro Santos 12/18/2002 ART Tracking System The system is highly stackable so tracking volumes only depend on the number of cameras used. The final computed data by tracking PCs is broadcasted onto the network for further processing by one or more applications. Each object is defined by a geometry arrangement of retroreflective markers. Linear accuracy is 0.25 mm and angular accuracy is 0.12 degrees. Recommendations for Tracking Systems Within the SmartSketches project, immersive applications will be developed for design and modeling. Those applications will run on virtual tables or powerwalls. Therefore there is a need for a tracking system that is capable of tracking large areas. Since many scenarios require a collaborative approach, it would be nice if the tracking system also allowed for the results being broadcasted to a variety of hosts. Generally one system will only render immersive scenes for one viewport, so there will be a need to forward tracking data to more than one rendering computer. Another concern is, that tracking should be as accurate as possible as to match the precision of SmartSketches application’s CAD kernels. One of the best suited alternatives for tracking seems to be the ART optical tracking system, because it provides the accuracy needed, broadcasting of tracking data for collaborative scenarios, where multiple users might look at physical mock-ups through HMDs, or use distributed virtual tables. Also notice, that because of optical tracking, tracked objects need not be connected to anything and users may move and interact freely within the tracked volume. In addition this tracking system comes at a comparably moderate price of 30.000 Euro for a PC and two tracking cameras, covering around 6 sqm with this configuration. 5.3 Output Devices SmartSketches aims for easier input and output techniques in design and modeling applications. Some of the prototypes will use 2D output devices, such as regular monitor screens or tablet PCs. Others for immersive modeling and design will produce their output Page 53 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 on back projection systems, like virtual tables, powerwalls or use HMDs, which will allow for collaborative augmented reality scenarios. This section will cover output devices for immersive and non-immersive SmartSketches applications. 5.3.1 Stereovision - immersive scenarios Stereovision means that scenes created with immersive SmartSketches applications will have to be rendered simultaneously for the left and right eye of a user and then be displayed on a screen, back projection system or an HMD. This poses additional challenges to system hardware, such as graphic accelerators, projectors and HMDs, which need to be able to support it. Graphics boards like the 3D Labs Wildcat 4 or ATI Fire GL powered by Radeon 8800 GPU are able to provide the required output for active stereo vision by supporting the necessary update frequencies around 120Hz or passive stereo vision requiring two separate independent graphic outputs. Active Stereo Displays: In this case frames for right and left eye are multiplexed on one output port of the graphics board. This requires the board and the display to support high refresh frequencies which should be around 120Hz, so each eye will be able to visualize its content with 60 Hz. Generally active stereo displays require users to wear shutter glasses, because they have to actively switch between left and right frames. The display types may be monitors or projectors. Passive Stereo Displays: Here graphics boards will render left and right frames in parallel, thus in general sending their output to two regular mono projectors, which will then overlay their projection images as to provide a stereo view, using polarizers in front of their objectives and requiring the user to use polarizing glasses as well. Backprojection Systems for virtual and augmented reality There are several ways back projection systems can be set up. The most common use of such systems is the power wall, where either one active stereo projector or two passive stereo projectors per segment are setup, the segments being combined to an array of display areas forming a flat surface, able to display car models on a 1:1 scale for example. T hose display areas may be arranged to form flat surfaces, workbench configurations or even so-called CAVEs, cubes with each side being made of a projection segment or arrays of projection segments to create a truly immersive impression for the user. The most well-known back projection systems are from BARCO. Barco Baron is a virtual table, that is built around an active stereo CRT projector capable of 120 Hz refresh rates and a true color resolution of 1024x768, while the dimensions of the projection surface provide for a 1.7 m diagonal, which is used at IGD. Page 54 Technical Report D5 IST-2000-28169 Figure 30. Pedro Santos 12/18/2002 Barco Baron HMDs for virtual and augmented reality scenarios There are several scenarios where the use of HMDs might prove helpful in immersive modeling. HMDs can be used to simultaneously work on a single model in virtual reality at a table or across distances. See-through HMDs can also be used to work collaboratively on a single physical mock -up adding and changing features. HMDs come in several flavors – they may be opaque mono displays or stereo displays. For see-through capabilities, there are two possibilities. Either they provide video see-through capabilities in which video cameras are embedded in the HMD and provide a video feed to be mixed with virtual elements or they are optical see-through displays in which the virtual elements are projected on top of the glasses’ lenses as an overlay. The latest developments in HMD technologies are retinal scanning systems that will project the image directly on the users retina in full color (Microvision). However they are very expensive at the moment (500000$USD for a stereo display) Common types of HMDs in use are: Daeyang DH-4400VPD – which allows for a stereo true color 800x600 resolution in either active or passive mode N-Vision Datavisor 80 – which offers stereo see-through capabilities at 1280x1024 and refresh rates as high as 180Hz Trivisio Displays – which can be mono or stereo LCD displays with a single or two video cameras providing true color 800x600 resolution and active or passive stereo input. Page 55 Technical Report D5 IST-2000-28169 Figure 31. Pedro Santos 12/18/2002 Trivisio Stereo Video See-Through 5.3.2 Discussion of Displays to be used In case a workbench scenario is preferred for collaborative modeling, Barco will be the manufacturer of choice since there are no other alternatives on the market. A possibility to overcome this dependency is to build a table of one’s own, using common passive or active stereo projectors. For back projection systems it is recommended to use two or multiples of two projectors connected to the appropriate graphics boards with polarization filters to get a stereo display. Whenever one would like to collaboratively work on physical mock-ups, then the use of video see-through HMDs is recommended such as stated above. Optical see-through displays will provide a larger field of view than video see-through displays. However the costs are about ten times higher. Page 56 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 6 Conclusions This document has looked at design and system recommendations within the SmartSketches project, ranging from the choice of the appropriate operating system, to the appropriate software, covering VR systems, modelling libraries and multi-modal input support. 1. Operating system. To be able to address a high number of scenarios within this project and the associated hardware, we choose Microsoft Windows 2000 and Linux operating systems, as the target platforms of the SmartSketches applications. While most of the hardware used is supported by the Windows and Linux operating systems, operating systems such as Irix for Onyx SGI graphical servers or similar setups only run on those and are not available, or even designed for smaller and cheaper hardware settings. 2. Base software toolkits for two dimensional applications We reviewed several toolkits for use with two D applications. One of the principal differences between both toolkits presented is related to an option that has to be made in the UI design. While Qt toolkit is using its own native IU, wxWindows is wrapped to the platform, so all the widgets will present a look-and-feel similar to used platform. Normally this is an advantage but, in certain cases, can become a disadvantage, because it is difficult to keep up with the innovations in new widgets that a particular platform develops. The event handling system used by wxWindows offers an easiest way for new event coding. The other difference is cost since, while wxWindows is LGPL licensed and open source certified, Qt is a commercial product requiring the purchase amount of 3280 U.S. Dollars per license. The portability factor and features requirements (like thread, printing, 2D drawing and 3D render with OpenGL) are satisfied by both solutions. Considering these differences, we chose the wxWindows toolkit as GUI Toolkit for 2D SmartSketches applications. 3. Software for tablet input support The aim of SmartSketches Input Interface is to provide input pen based features such as pressure, tilt for SmartSketches applications under MS Windows and Linux. Since there doesn’t exist an independent API to support both operating systems, SmartSketches will provide an interface layer to handle pen-based features. The architecture will be based on the Wintab API for MS Windows since is the most independent API support by almost all driver manufacturer. For support under Linux, the feature will be only support for Wacom hardware. The input pen-based features under Linux will be provided using XInput Extension features. This solution was successfully implemented for Gimp, which is the only application under Linux to take advantage of pressure and tilt information. The SmartSketches environment will provide an independent interface implemented for both platforms providing all pen-based features need for SmartSketches application. 4 . Low Level 3D Graphics Libraries Using Direct3D in Immediate Mode the application can archive maximum rendering performance and quality from the hardware. The drawback is the programming effort and complexity in this mode, making it a time consuming task and the need of a highly trained programmer. Using the Retained Mode Direct 3D becomes easier and faster to program but looses its speed advantage over OpenGL. OpenGL on the other hand was born more than 10 years ago and reached a very stable state. Compared to Direct 3D Retained Mode it still is a bit slower but easier to program. It is the standard for professional applications and most important, it is available on every major computer platform, so the application keeps highly Page 57 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 portable. Also most high -level 3d-graphic libraries are built on top of OpenGL. Therefore we recommend using OpenGL for the SmartSketches applications. 5. High Level 3D-Graphic Libraries We have surveyed many different Libraries for Scene Graph management such as Open Inventor, OpenSG, Java3D and Open Scene Graph. OpenInventor is one of the first scene graph based graphic libraries and appears to be outdated in some aspects, especially in the lack of multithreading. On the other hand this platform is very stable and a lot of knowledge about it is available. OpenSG has a modern architecture and seems to offer most necessary functions. The main drawback with OpenSG is that the current version lacks the stability required for extensive use. Open Scene Graph has the cleanest design from the software engineering side of view, but is still in too early a stage to be useful, because a lot of key functions are missin g and even documentation is rarely available. In spite of high performance considerations in its design Java3D is still much slower than the C++ based approaches. Therefore it is not a good choice for our SmartSketches applications. For the moment we consider Open Inventor to be the best compromise, because of its stability and widespread use. But we also keep an eye on OpenSG, which looks promising for the future especially because of its comprehensive multithreading support. 6. Virtual Reality Libraries Though all presented libraries provide rather rich and complete in functionality, we consider studierstube to be most suitable for our purpose. This library is rather easy to learn and understand, especially because it is like an extension to Open Inventor. It provides a complete environment that is easy to adapt for own applications without much overhead. It also provides its own user interface paradigm using the PIP -sheet and pen, which we experienced to be very intuitive to use. It natively supports a lot of tracking systems and output devices, so that no further adaptation to the hardware recommended later in this document is necessary. 7 . CAD Kernel It is difficult to say which CAD Modeling Kernel best satisfies the needs of SmartSketches. In fact ACIS and OpenCascade are very similar in the features they support. We recommend both kernels for use in SmartSketches, since their features are very similar. However we chose to base initial development on ACIS since it is freely available for research purposes and is at present more stable than OpenCascade. 8. Tracking Current tracking software typically provides device abstraction and linear extensibility. However what is generally not covered by such systems is support for complex or experimental configurations, requiring a combination of different tracking sources or geometric modifications of data from one source relative to another. An important feature conventional tracking systems lack is the possibility to broadcast tracking information onto the network, making it available to a variety of hosts at the same time allowing them to merge tracking sources. Finally a simple configuration of the tracking system by the end user is a very important point to allow simple reconfigurations of the tracking devices. All mentioned tracking systems cover part of those requirements. The tracking system that does cover all those issues is OpenTracker and therefore we choose it for SmartSketches. 9. Constraint Solvers While some academic environments such as CE3D offer a fair set of functionality, they have yet to become fully-fledged constraint solvers, because they are still under development. Some very important aspects, that lead to the choice of D-Cube as a constraint solver for Page 58 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 SmartSketches are the fact that it can transparently be built in to our existing environment, accepting all kinds of geometric/solids data structures and has a linear performance at an increase of scene complexity. 10. Hardware Input for 2D Different scenarios will be considered for SmartSketches applications, since each scenario offers advantages depending on the task and the local of work. For office work both the tablet-PC pen based and the interactive pen display scenarios are the more suitable solutions. 11. Hardware Tracking Within the SmartSketches project, immersive applications will be developed for design and modeling. Those applications will run on virtual tables or powerwalls. Therefore there is a need for a tracking system that is capable of tracking large areas. One of the best suited alternatives for tracking seems to be the ART optical tracking system, because it provides both the accuracy needed, broadcasting of tracking data for collaborative scenarios, where multiple users might look at physical mock-ups through HMDs, or use distributed virtual tables. Also notice, that because of optical tracking, tracked objects need not be connected to anything and users may move and interact freely within the tracked volume. In addition, this tracking system comes at a comparably moderate price in practical configurations. 12. Hardware Output Devices In case a workbench scenario is preferred for collaborative modeling, Barco will be the manufacturer of choice since there are no other alternatives on the market. A possibility to overcome this dependency is to build a table of one’s own, using common passive or active stereo projectors. For backprojection systems it is recommended to use two or multiples of two projectors connected to the appropriate graphics boards with polarization filters to get a stereo display. Whenever one would like to collaboratively work on physical mock-ups, then the use of video see-through HMDs is recommended such as stated above. Optical seethrough displays will provide a larger field of view than video see-through displays. However the costs are about ten times higher. Page 59 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 7 References ACER http://www.acer.com Advanced Realtime Tracking http://www.ar-tracking.de BARCO http://www.barco.com CE3D http://rabbit.prakinf.tu-ilmenau.de/3dce.html DCUBED Homepage http://www.d-cubed.co.uk Fujitsu-Siemens http://www.fujitsu -siemens.com GNU Maverick http://aig.cs.man.ac.uk/maverik/ Gsumi v1.0 http://www.gimp.org/~otaylor/gsumi/gsumi.html JAVA 3D API Homepage http://java.sun.com/products/java-media/3D/ John's Linux USB Wacom Intuos Page http://linux.joganic.com/wacom/ LCS/Telegraphics Wintab http://www.pointing.com/wintab.htm Microsoft Direct3D http://www.microsoft.com/windows/directx/ Motion Computing http://www.motioncomputing.com/ MR Toolkit http://www.cs.ualberta.ca/~graphics/MRToolkit/ Open Inventor http://oss.sgi.com/projects/inventor/ OpenCascade http://www.opencascade.org OpenGL http://www.opengl.org Open Tracker http://www.studierstube.org/opentracker/index.html QT Trolltech http://www.trolltech.com Spatial http://www.spatial.com Studierstube Augmented Reality Project http://www.studierstube.org/ Tablet PC Feature Comparison http://www.ta bletpctalk.com/faqs/comparison.shtml Toshiba http://www.toshiba.com Viewsonic http://www.viewsonic.com Virtual Reality Peripheral Network http://www.cs.unc.edu/Research/vrpn/ VR Juggler Homepage http://www.vrjuggler.org/ Wacom Corporation http://www.wacom.com Windows XP Tablet Edition http://www.microsoft.com/windowsxp/tabletpc WxWindows Cross-Platform Library http://www.wxwindows.org XFree86 Project http://www.xfree86.org/ Page 6 0 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 8 Appendix One: List of Software Tools LIST OF SOFTWARE TOOLS Date of last update: Friday 13 December 2002 ? By whom: Joaquim Armando Pires Jorge PART I – Office Tools ?# ? Name of product Name of vendor Product characteristics ?1 ? OFFICE PROFESSIONAL 2000 Microsoft Word processing, spreadsheet, presentations PART II – Development Tools # Name of product Name of vendor Product characteristics 1 Visual Studio 6.0 Microsoft C++ windows development environment 2 Open Inventor Siggraph/ TGS Graph based graphic libraries 3 DCUBE-D DCUBE-D Constraints Solver 4 WxWindows WxWindows .org, LPGL Cross-platform GUI library 5 ACIS V8.0 3D Toolkit Spatial CAD kernel 6 ICEM Surf ICEM CAD application 7 Studierstube TU-Vienna (Coordinators),LPGL Immersive Toolkit 8 Opentracker TU-Vienna (Coordinators), LPGL Tracking Toolkit 9 Magic Software Magic Software Inc (Free Sourcecode) Computer Graphics Algorithm Library 10 Rational Rose (UML Modelling) Rational Corp. UML Modelling Tool Page 61 Technical Report D5 IST-2000-28169 Pedro Santos 12/18/2002 9 Appendix Two: List of Hardware Tools LIST OF Hardware Date of last update: Friday 13 December 2002 By whom: Joaquim Armando Pires Jorge Part I - 2D Sketching # Name of product Name of vendor Used By 1 Cintiq 18 inch Wacom INESC-ID 2 Vaio 15 inch Wacom/ Sony INESC-ID PART II – 3D immersive modelling # Name of product Name of vendor Used by 1 Barco Baron BARCO IGD 2 Daeyang DH-4400VPD Daeyang IGD 3 Advanced Realtime Tracking ART IGD Page 62