Modular distributed visualization and collaboration
for a real-time 3D visualizer
Alexandre Valdetaro
*
, Alberto Raposo
*
and Pablo Elias
*
*
Technical-Scientific Software Development Institute (Tecgraf)
Pontifical Catholic University of Rio de Janeiro
Rio de Janeiro, Brazil
Email: xvaldetaro@gmail.com, abraposo@tecgraf.com.br, pelias@tecgraf.puc-rio.br
Abstract—In this work, we present the design and implemen-
tation of distributed visualization and collaboration for an immer-
sive 3D visualizer in a component-oriented fashion. The design
follows an MVC approach, isolating all the business objects in the
lowest level of the application, making it modular and extensible,
therefore providing an easier prototyping of functionality and
the isolation of complex business logic algorithms. This design
as a solution came from the necessity of an existing visualizer
with a monolithic implementation, whose maintainability and
improvement are impaired due to the coupling between the
business logic and the diverse visualization and distribution
algorithms. Our design may be reused as an inspiration for other
visualizers that wish to reduce the complexity and cost of the
development of new business functionality. We implemented the
designed visualizer, where we verified both the synchronism of the
distributed visualization and the consistency of the collaboration
among multiple nodes. We also evaluated the performance impact
caused by the distributed visualization.
I. I NTRODUCTION
Immersive applications seek to provide an experience to
the user as close to real life as possible. Such experience must
re-create sensorial stimuli and perception of space in order
to induce the user’s brain into believing that the immersive
experience is real life. Although an immersive experience can
be delivered by any kind of system, Real-Time 3D visualizers
may stand out as the key player in the field. A visualizer
is an application that enables the user to visually explore a
virtual scene. The success of such applications is consequence
of many features combined, such as, credible visual input to
the user by usage of modern computer graphics techniques,
enhanced illusion of visual depth due to stereoscopy, pre-
cise and immediate control thanks to real-time reading and
processing of user input. Therefore, the development of an
application that provides an immersive experience to the user
can be very complex because of these many requirements and
their implementation in a real-time reactive system.
A. Distributed Visualization
Distributed visualization is the process of displaying a
single virtual scene from multiple views. Such process faces
the technical problem of how to render and synchronize so
many views and output to different screens. A traditional
approach to achieve distributed visualization is through the
usage of out-of-the box systems that make use of dedicated
hardware. The hardware controls all the visualization devices.
Such solution presents, usually, a high cost of deployment and
maintenance.
The rendering speed depends roughly on the amount of
geometry—the number of vertices of every object in the view-
able scene—being processed and the size of the output image.
Therefore, rendering multiple views of the same scene gets
very expensive in terms of processing, specially if the output
images have to be very big for display walls. Consequently,
distributing the scene to multiple nodes can be a feasible
solution—despite the distribution difficulties. There are many
possible designs of a visualizer that provide scene distribution
as well as many tools available for it. In the related work
section we make a review of the main available tools and their
usefulness for our scenario.
B. Collaboration
Collaborative software is a software that enables multiple
users to collaborate to achieve a common goal [1]. A collab-
orative visualizer lets the users explore a common scene, and
possibly make changes and view other users avatars in the
scene. The most common case of a collaborative visualizer is
a multi-player game, where the players interact with each other
in a shared virtual world. The players can talk to each other,
engage non player characters and change the persistent world
in many ways.
C. Real-time Visualizer
Any real-time application must be reactive, i.e., it must
process input from external devices with a delay small enough
not to break user immersion. Moreover, the interactive vi-
sualization requires that at least a given amount of frames
be rendered every second. Thus, efficiency is the utmost
requirement when developing a feature in a real time 3D
visualizer.
In order to achieve maximum efficiency in a visualizer’s
many routines, e.g., rendering, input processing, distribution,
data loading and so on, there is a natural tendency of the
developers to trade abstractions for low-level APIs in order to
have access to every available optimization setting. However,
the exposure of every low level API to the business logic
developer can greatly increase the complexity, which may lead
to an increase in the lifecycle cost [2] and effort [3] required
to maintain and extend a visualizer with new functionalities.
To the best of our knowledge, the majority of the 3D
visualizers, where efficiency is paramount, are implemented
in a monolithic way. There is no clear separation between
business, distribution, rendering, architectural elements and
2014 IEEE 17th International Symposium on Object/Component-Oriented Real-Time Distributed Computing
1555-0885/14 $31.00 © 2014 IEEE
DOI 10.1109/ISORC.2014.44
32