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