Objectives

The objective of the project is to develop a method to visualize, in three dimensions, the results of DEVS simulations. The secondary objective of the project is to enable interactive visualizations of DEVS simulations.

Project Background

This project uses the discrete event systems specification ( DEVS ) formalism to model discrete simulations. This formalism allows the development of discrete event simulation in a modular manner. DEVS models are a composed of sub models. Each sub model can be a behavior model ( atomic ) or a structural model ( coupled ). Coupled models connect a group of atomic and/or other coupled models. The recursive nature of the DEVS formalism allows tested models to be integrated into different model hierarchies where needed. Models that implement certain functionalities can be reused in other simulations, reducing testing time and enhancing productivity. In addition, the DEVS formalism has been extended to model Cell spaced discrete event simulations. This extension of DEVS is called Cell-DEVS. Cell-DEVS models are useful for simulating phenomenon that occurs over an area. The area is divided into many cells and the behaviour of the cells are modeled via a state variable, which is updated using a local rule. The local rule considers the current state and the states of the surrounding cells ( neighbourhood ). The cells are defined as atomic models and the entire cell space is modeled using a coupled model.

The CD++ tools enable implementing DEVS models using several methods.
Atomic models can be made using C++ or using a custom specification language in the case of Cell-DEVS models. The coupled models used in a normal DEVS model are defined in CD++ using a custom specification language as well. The custom specification languages are integrated with graphical user interfaces to aid in the development of the models.

	The project currently has several methods available to visualize the results of simulations.
·	Java Applet VRML viewers
·	Alias Maya 3D Software

These methods have some limitations. The Java applets use Java3D libraries and the VRML specification, both which are no longer actively developed. The current VRML viewers also lack functionality and ease of use.

Alias Maya is an excellent tool for creating environments and objects to visualize simulations; however it is designed to view animations, which generally do not provide robust interactivity. The installation size, workstation requirements, and licensing issues of the Maya software are also issues that prevent Maya from being the optimal viewer.

Project Plan

The goal of the project is to provide a fast, reliable and accurate tool for visualizing and interacting with a DEVS or Cell-DEVS simulation. The tool will provide visualizing simulations from CD++ simulation log files or interacting directly with CD++ while it is executing a simulation. The tool will also provide a method of interacting with the CD++ model, so it can detect the components of the DEVS model that require a visual counterpart. For example, if a DEVS model has an atomic model named Airport, the tool will extract this information from CD++ and then provide the option to represent the Airport by a visual component. The visual component can range from a simple sphere to an Airport graphical model created in Maya.
The initial phase of the project will be specifying the requirements of the graphical tool. The following list of components may change based on the research and results of the requirements phase.

The tool will involve developing the following components of the software:
·	Simulation Log File Parser.
o	Creates the list of objects which might require visual components.
o	Creates the list of events, ordered by time, that modify the visual state of the components which might require visual components.
o	Loads log files and provides the previously mentioned lists to the Simulation viewer.
·	Simulation Viewer
o	Provides GUI interface for initializing the visual components of the simulation.
§	Specify the graphical representation of the DEVS model components
§	Choose a backdrop to the simulation
§	Add visual detail to the environment. I.e. traffic signs, lights, etc
o	Provides GUI interface and controls for running the simulation
§	Starting
§	Stopping
§	Speed control
§	Seeking to a specific time
o	Provides GUI interface and controls for manipulating the view of the simulation.
§	Rotating
§	Translating
§	Zooming
§	Multiple simultaneous views
§	3rd person views of objects
§	First person views of objects
o	Uses an Octtree based Scene graph for quick visibility and lighting calculations.
·	Simulation Loader
o	Provides mechanism for loading 3d models from Maya into the Simulation Viewer
o	Provides support for saving and loading the settings and environment for viewing DEVS models.
o	Possibly provides support for loading other 3d model types.
·	Simulation Link
o	Provides a link to a currently executing CD++ simulation to receive the results of the simulation and display them with minimal delay.
o	Provides a link to a currently executing CD++ simulation to modify parameters of the simulation while it executes.
o	Provides a link to a currently executing CD++ simulation to synchronize the execution of the simulation with the viewer speed. The viewer cannot view the simulation faster than the execution speed allows.
The second phase involves analyzing the requirements and creating a design that fulfills the requirements and allows future expandability. The second phase also includes designing a testing method.
The third and final phase is the development and testing phase. Each component will be coded and the testing will follow the design developed in phase two.
Project Methods

	The tool will be developed using Object-Oriented programming techniques. The Analysis and Design of the tool will be done using UML diagrams. Use case, Class, State chart and Collaboration diagrams will be created to specify the design of the tool. The testing method will be designed into the UML documents.

	The features of the tool will be developed incrementally and in a modular manner. The components of the tool will each have a formal interface for interacting with other components. Each component will have a test procedure that will execute the interface of the component and report any errors encountered. The components themselves will be divided into classes according to the UML Class diagram. The code to implement the Use case diagrams will be written first, and the execution of the code will be compared to the Collaboration diagrams for correctness.

	The visualization of the simulations will be rendered using a workstation video card with 3d acceleration features. OpenGL will likely be used for the rendering, since it is implemented on a variety of platforms.
	
	The communication link between CD++ and the simulation viewer will be the last component created, it will be designed according to the CD++ capabilities for external communication.

Project Timetable

Milestone	Date	
First Phase - Requirements	September 30, 2004	
Second Phase – Tool Design Documents	October 20, 2004	
Second Phase – Testing Design Added	October 25, 2004	
Third Phase – Log File Parser	October 31, 2004	
Third Phase – Simulation Viewer ( No Visual Detail Objects, No Simultaneous Views, No Octtree )	November 20, 2004	
Third Phase – Simulation Loader ( No Maya)	November 30, 2004	
Written Progress Report
Oral Presentation & Poster Fair Info Sheets	December 6, 2004	
Third Phase – Simulation Loader ( With Maya 3d models loading)	January 5, 2005	
Oral Presentation	Mid January, 2005	
Third Phase – Simulation Viewer ( No Simultaneous Views )	January 22, 2005	
Third Phase – Simulation Viewer ( All features completed )	February 16, 2005	
Third Phase – Simulation Link ( No Parameter Modification)	March 10, 2005	
Third Phase – Simulation Link ( All features completed )	March 17, 2005	
Poster Fair	March 18, 2005	
Final Report Due	April 8, 2005	

Special Components and Facilities

o	Access to CD++ client and server software
o	Access to DEVS models
o	Workstation with OpenGL hardware support, C++ development IDE