In the REVE Worlds system, a virtual object's
functionality is exposed as a set of functions which
can be executed, in potentially rapid succession, by a
virtual agent's effectors as part of the execution of
complex actions, such as animated motion and other
kinds of virtual object manipulation. This introduces
the requirement for accurately-timed read- and
write-access to the virtual environment's scene graph
which, in X3D's case, turns out to be problematic
because of its asynchronous execution model. In
addition, it is necessary that the scene graph is
evaluated and updated on a per-frame basis so that
the virtual world's state is at all times consistent with
all laws in effect, which is also problematic because
of X3D's lack of inherent per-frame processing
support. We were able to address those requirements
effectively and elegantly by incorporating the
proposed patter into the REVE Worlds system's
architecture. We have also found modifications of
relevant application code to be straightforward and
transparent, thus increasing the maintainability,
extendibility and life-span of our implementation.
6 CONCLUSIONS
In this paper, we present specific elements of the
X3D specification that may pose problems to virtual
environment developers. We also propose solutions
to those problems and describe an object-oriented
architectural pattern for the transparent incorporation
of those solutions into concrete virtual environment
designs. In particular, we demonstrate how to
address field output timing issues that may arise due
to X3D's asynchronous event model, as well as how
to implement per-frame processing according to an
event delegation mechanism. We have been unable,
however, to overcome the inability to access
primitive geometry node size-related fields (for
instance, for the purposes of automatic bounding
box calculation), as that is a restriction that arises
from the X3D specification itself.
ACKNOWLEDGEMENTS
We would like to thank all members of the X3D
Public mailing list, the X3D developer message
boards and the Web3D Consortium for all the
exciting discussions we had and the invaluable
insights they provided us with over the past few
years of our involvement with X3D and Xj3D.
REFERENCES
Anastassakis, G., Panayiotopoulos, T., 2011. Intelligent
Virtual Environment Development with the REVE
Platform: An Overview. In Vilhjalmsson, H. H., Kopp,
S., Marsella, S. and Thorisson, K. R. (Eds.), Intelligent
Virtual Agents, Lecture Notes in Computer Science,
Vol. 6895 (pp. 431-432). Springer.
Aylett, R., Luck, M., 1999. Applying Artificial Intelligence
to Virtual Reality: Intelligent Virtual Environments.
Applied Artificial Intelligence 14(1), 3-32.
Behr, J., Dähne, P., Roth, M., 2004. Utilizing X3D for
immersive environments. In Web3D '04: Proceedings
of the ninth international conference on 3D Web
technology (pp. 71-78). ACM.
Bouras, C., Panagopoulos, A., Tsiatsos, T., 2005.
Advances in X3D multi-user virtual environments. In
Proceedings of the Seventh IEEE International
Symposium on Multimedia (ISM'05) (pp. 136-142).
Bouras, C., Tegos, C., Triglianos, V., Tsiatsos, T., 2007.
X3D Multi-user Virtual Environment Platform for
Collaborative Spatial Design. In Proceedings of the
27th International Conference on Distributed
Computing Systems Workshops (ICDCSW '07).
Cabral, M., Zuffo, M., Ghirotti, S., Belloc, O., Nomura,
L., Nagamura, M., Andrade, F., Faria, R., Ferraz, L.,
2007. An experience using X3D for virtual cultural
heritage. In Proceedings of the Twelfth International
Conference on 3D Web Technology (Web3D '07) (pp.
161-164). ACM.
Gamma, E., Helm, R., Johnson, R. and Vlissides, J., 1995.
Design Patterns: Elements of Reusable Object-
Oriented Software. Addison-Wesley.
Ibanez-Martinez, J., Delgado-Mata, C., 2006. A Basic
Semantic Common Level for Virtual Environments.
International Journal of Virtual Reality, 5(3) 25-32.
Ieronutti, L., Chittaro, L., 2007. Employing virtual humans
for education and training in X3D/VRML worlds.
Computers & Education, 49(1), 93-109.
Ong, S., Mannan, M., 2004. Virtual reality simulations
and animations in a web-based interactive
manufacturing engineering module. Computers &
Education, 43(4), 361-382.
REVEnet, 2011. REVEnet. http://kelnet.cs.unipi.gr/reve.
Web3D Consortium, 2011. X3D and related Specifications.
http://www.web3d.org/x3d/specifications/
Xj3D, 2011. The Xj3D project. http:// http://www.xj3d.org.
AN ARCHITECTURAL PATTERN FOR X3D-BASED VIRTUAL ENVIRONMENTS - An Object-oriented Approach
471