Simulation Driven Virtual Reality A Framework for Large Scale Virtual Simulation Submitted by: Lacey Duckworth Committee-Chair: Dr. Andrew Strelzoff – strelz@orca.st.usm.edu - (601)266-6628 Committee-Members: Dr. Tulio Sulbaran, Dr. Ray Seyfarth, Dr. Nan Wang, Dr. Chaoyang Zhang Date: 2/16/2008 Abstract Client-Server Virtual Reality Environments that are intended for social networking are attractive platforms to develop simulations, because they reach millions of people world-wide with an accessible, compelling and engaging visual and audible experience. However, these environments were not intended for large scale simulations. Limitations in the internal, event driven language for virtual environments force programmers into difficult and unreusable design patterns. Using this approach to program large scale virtual simulations results in long segments of code spread among multiple objects, effectively, “spaghetti” code. External to the virtual environment a variety of specialized simulation languages exist which are both easy to use and provide strong re-usability of code designs. The problem which is the focus of this dissertation is that a robust and reusable communication method does not exist to connect external simulation languages with the compelling and accessible client-server Virtual Reality Environments. Preliminary Study Previously, our research group simulated one process at the Chevron Oil Refinery Plant in Pascagoula, Mississippi. The consultant provided the figure seen in figure 1 of the refinery process the plant wanted simulated. Creating this process, which is only one out of forty six of the total processes, took 200 hours to complete. If using the current method, the man hours required to fully simulate the entire Pascagoula Chevron Figure 1 – Consultant provided diagram (left) and Virtual Reality Environment interpretation Plant, where each process increases on a scale of difficulty by ten, would take 96,000 hours. There are three contributions associated with the time complexity for simulating oil refinery processes. First, client-server virtual reality environments were never intended for large scale software development. An ideal solution for this would be developing an object-oriented language for "top-level" process rigs where all instances and specialized rigs could be easily derived. The second contributor is that computer scientists are not refinery plant operators making it very hard to “get it right” from conversations and schematics. For this situation, an ideal solution would be to develop a high-level behavioral simulation environment in which programmers would contribute a first version and plant operators and consultants could iteratively "get the details right” largely on their own. The last contributing factor is that the client-server virtual reality environments were never intended for large scale computations. As the number of numerical processes increase, the servers tend to bog down and cause performance degrades. An ideal solution would be to have an external simulation language that could run independently on a dedicated server providing scalable performance as the size of the simulation grew. Applicable Experience Our research group has a lot of experience and success building bridges in and out of the Virtual Environment SecondLifeTM. Figure 2 illustrates two different communication processes. In the image on the left, Second LifeTM is communicating through the internet where updates are made inside and/or outside the environment to a “white board” where each “white board” reflects the changes. In the image on the right, Second LifeTM is communicating with a MySQL database which populates the data displayed on the board. Figure 2 - Illustration of communication between SecondLife TM and the Internet (left) and SecondLifeTM and MySQL. In addition to this experience with communication in and out of Second LifeTM the research team also has experience with LabVIEW, a popular instrumentation simulation software which is an object oriented hierarchical programming language, well known amongst chemical engineers, and provides reasonable performance as it is multi-core adaptive. Objective The objectives of this dissertation will be threefold: (1) Define a communication language protocol schema between a simulation language and a client-server Virtual Reality Environments, (2) Test the robustness of the developed communication protocol, and (3) Develop a generalized framework to provide reuse of the communication protocol. Methodology There are three phases in the research methodology for completing this dissertation which are define, test, and develop. In the define state the objective is to define a communication language protocol schema between a simulation language and a client-server Virtual Reality Environment. The communication protocol will make a generalized mapping between the finite state machine definitions of the a generalized simulation language (Σ1,S1,s01,δ1,F1) and the event-driven finite state machine of the client-server virtual reality environment (Σ2,S2,s02,δ2,F2). For example, Σ2x is a “touch start” event in the virtual environment may be mapped to Σ1x, “event start” in the simulation language. This would allow an instance of the communication protocol to trigger simulation events when an object is touched in the virtual environment (or vs. versa). This state is a qualitative, content analysis form of research, because it describes a schema with flexible guidelines, yields code, and identifies specific characteristics of a body of material. In the second phase, testing, the robustness of the developed communication between the two protocols, SecondLifeTM and LabVIEW, will be tested. This phase is a quantitative, action research method where the theory of improving the robustness will be tested, numerical data collected, numerical data presented, and results based on the analysis will be written. The last phase, developing, a generalized framework to provide reuse of the communication protocol will be developed. This phase is a quantitative quasi-experimental type of research because it describes a framework through written results, and identifies specific characteristics of a body of material. Expected/Impact Results Completing this dissertation will produce the following results: A communication language protocol schema between a simulation language and a client-server Virtual Reality Environment. Communication between virtual reality environment SecondLifeTM and LabVIEW TM. Experimentally tested framework to provide reusable simulation driven virtual environment components References Brooks, F. P., Jr. (1999). What’s Real About Virtual Reality. http://www.cs.unc.edu/~brooks/WhatsReal.pdf Chan, L.K.Y and Lau, H. Y. K. 2006. An Interactive Virtual Reality based e-Education System. http://www.hku.hk/cc/ccsystem/hpc-fac-2006/ie/plychan_virtual_reality.pdf Hayward, V., Astley, O., Cruz-Hernandez, M.,Grant, D., and Robles-De-La-Torre, G. (2004). Sensor ReviewVolume 24 · Number 1 · 2004 · pp. 16–29. http://www.roblesdelatorre.com/gabriel/VH-OA-MC-DGGR-04.pdf LabVIEW Wiki. LabVIEW. May 26, 2008. http://wiki.lavag.org/LabVIEW LabVIEW. NI LabVIEW. 2009. http://www.ni.com/labview/ Leedy, P. D. and Ormrod, J. E. Practical Research. Planning and Design. Eight Edition. Pages 133-240. 2005. OMNeT++ Discrete Event Simulation System. 2009. http://www.omnetpp.org/ OMNEST. OMNEST Simulation Environment. 2008. http://www.omnest.com/ SecondLife TM. Getting Started with LSL (2008). http://wiki.secondlife.com/wiki/GettingStartedInLSL Strickland, J. (2008). How Virtual Reality Works. http://electronics.howstuffworks.com/gadgets/other-gadgets/virtual-reality.htm/printable The Math Works. Simulink Simulation and Model Based Design. 2009. http://www.mathworks.com/products/simulink/ The Math Works. Simulink Product Description. 2009. http://www.mathworks.com/products/simulink/description1.html