# Virtual world framework

The virtual world framework (VWF) is a means to connect robust 3D, immersive, entities with other entities, virtual worlds, content and users via web browsers. It provides the ability for client-server programs to be delivered in a lightweight manner via web browsers, and provides synchronization for multiple users to interact with common objects and environments. For example, using VWF, a developer can take video lesson plans, component objects and avatars and successfully insert them into an existing virtual or created landscape (such as EDGE or Open Sim), interacting with the native objects and users via a VWF interface.
VWF further opens the door to interface different training content, simulations, objects, users and locations; which will extend and expand the scope of training and education. (Imagine running a tank simulation with aviation assets, provided by two different simulations suites, but executed together and passing imagery and sensor data between them, working over a common landscape and feeding a constructive mapping simulation run on a third platform, all seamlessly and transparent to remote users via their browsers). The VWF is meant as a useful tool to interact with differing types of entities (objects, avatars, simulations, spaces). As an open-source tool protected under the Apache II license, VWF is free and accessible to any number of developers who can create content and expand its scope and functionality. The VWF delivers its interactivity using the web, creating an opportunity to align mismatched objects or environments. VWF is under development to work with Massively Multiplayer Online Role Playing Games (MMORPG) such as EDGE, and ideally will be developed to interface with the latest object encodings (such as Unity and MP4), environments (such as OpenSim MOSES) and other simulations platforms in order to create a truly agnostic interfacing tool.

## Myths

Even though it has a suggestive name, the VWF is not a virtual world. Nor is it a virtual world generation tool. Can the VWF produce a virtual space and content to fill it? Yes, it can, and it absolutely can be used to provide additional objects and interactions to augment/interact with entities to which it connects. VWF is not a simulator. The VWF is meant to extend the use of active client-server simulations in order that they can be accessed via a web browser. It is also meant to add extra dimensions to existing simulations or to create simulation content to add to an existing virtual space (such as MOSES) or a spontaneously generated space. The VWF has the capability to create fully functional simulations but is not meant to be a complete simulator on its own.
VWF is not an avatar, nor does it require an avatar to run. The VWF does not require a virtual space in order to work; it can be used to generate a virtual space within the web browser or locally on the host machine. The VWF does not need an avatar to function, and does not necessarily generate avatars for use with virtual worlds, but can be used to produce or interact with avatars.

## Raison d'etre

The United States Department of Defense (DoD) cannot continue to do business as usual. In FY05, the DoD spent $9.1B in Modeling and Simulation related activities. Approximately 40% of that budget was used for simulators, war gaming, and modeling. The vision of the VWF is to reduce the funding used to support M&S activities in direct support of pressure to reduce spending and increase efficacy of existing / emerging technology.
The DoD needs a tool to tie together its myriad, stove-piped, specialty simulations solutions. It needs a tool to extend and expand its ability to train an increasing number of personnel across ever-widening distances. DoD stresses a need to reduce and reuse technology and to find more cost-efficient means to provide the most advanced technological and pedagogical systems of training. It is not just about training DoD personnel however.
We are surrounded by immersive, personalized social media and technology (such as Smart Phones, Facebook, Twitter, Pandora Radio, Project Glass and augmented reality sites such as Layar). Traditional education systems do not allow for the pace of information sharing and immersion that media, games and the internet provide to youth on a regular basis and modernization/customization of education is becoming absolutely essential to its effectiveness. The intersection of technologies and the speed/volume of data delivery create a perfect storm of possibility for this system to provide the most good at the best cost.

## Intended audience

The VWF is for developers of simulations, education systems, training content, games, information sharing, private individuals, really anyone with an interest in sharing information with multiple users in a lightweight fashion using a web browser as a delivery mechanism. The VWF is for users to be able to access information, training, or content no matter where they are or what their hardware or bandwidth restrictions may be, as long as they have a secure link to the training server through the internet. The VWF is to provide rapidly available content to those who need it most, when they need it, in a fashion which is accessible and low-overhead.

## Significance for business and government

VWF means a massive savings in preventing redundancy, in linking different systems and in building economies of scale and scope. It means access to unprecedented complexity of training content and a huge flexibility in its delivery. It means faster and more thoroughly trained personnel. It means platform-independent computing solutions for passing any type of data quickly and efficiently. It means highly adaptive, rapid prototypes independent of the platforms which created them. It means staying at the forefront of the computing trends in information sharing. It means a rapid means of generating customized training solutions. It means spontaneous meeting spaces and a method for delivering increased complexity and speed of intelligence to those who need it.

## Ownership and licensing
### Ownership

The DoD owns the rights to the source code of the VWF; however, as it is licensed using Apache II, it is freely usable by any and all as long as original attribution is given to the creators.

### Licensing

The framework is licensed under the Apache II license, which essentially states that the user of the software is granted a royalty-free license to use, modify, and sell derivative works of, the software as long as the original license and attribution file(s) are included in the distribution of any and all subsequent works. The original work is licensed "as is" and contains no warranties of any kind.

### Content rights

Content rights are managed via the provisions contained in the Apache 2 license. The current content version control is affected by the primary engineers through GitHub, with the latest stable builds published under unique serial numbers.

### Designers

The designers are David A. Smith (computer scientist) (Lockheed Martin Chief Innovation Officer – project oversight, design, architecture), David Easter (LM Engineer - Development/Architecture), Richard Boyd (Lockheed Martin Virtual world Labs Chief Architect - governance and ecosystem design), Allison Corey (LM Engineer – development), Scott R. Haynes (LM Engineer - Development), Michael J. Vacirca (LM Engineer - Development), Steven D. Carr (LM Engineer - Development), Cynthia L. Moore (contractor, OSD(P&R) TRS – design, future specs, governance), Carlton Rosengrant OSD(P&R) TRS – overall Program Manager, Frank C. DiGiovanni (Director, OSD(P&R)TRS), Coles/RDECOM (Edge interfacing), Robert Chadwick (ADL – code efficiency and applications), and emerging partners as new functions and libraries are proposed.

### Contributing

VWF is posted on GitHub, and is open to any and all developers who wish to contribute forks, projects, suggestions or build-outs for the framework. The original creators especially seek major platform developers who wish to add interfacing to their platform for use with VWF, such as MMOs, simulations designers, terrain mapping providers, 3D modeling, virtual landscapes, etc. The paper "A Virtual World Ecosystem Framework", presented at the IITSEc conference in 2012, explains the philosophy of contribution to the system.

## Development path
### Evolution

The VWF is managed via GitHub and developer inputs through a loose consortium of the original creators. In time, the community will stand up a non-profit governing organization, in order to conduct full-time partnerships and version control of the software. Through the use of the latest codecs, interfacing partnerships with major content, object and texture providers, and a persistent location, it is additionally the goal of the creators that VWF will evolve into the standard for interfacing content with users on the web.

### Availability to web applications

The VWF is available for use in web applications, and there are a few minor applications/demonstrations already constructed as proofs of concept. As the community extends the robustness of the VWF, increases the libraries and finalizes the toolkits, these applications will gain in complexity as well. Developers are welcome to construct web applications with the existing code and examples. There is nothing special required to run completed applications outside of having access to a compatible browser with WebGL and potentially web sockets capability depending on the location of the source objects and interactions.

### A framework among frameworks

There are many applications available which advertise themselves as Thin Clients or web interfaces. There are no open source development tools in widespread use that interface different entities in a persistent, secure manner using a thin client through web-browsers.^
While there are many tools available, many of them are highly specialized and require proprietary software installed on both the client and server side. There are still other tools which produce virtual environments, avatars, and content, but none of the ones known tie them together, spontaneously create interfaces among them or provide seamless communications to all of the entities regardless of their timing and without a heavy burden in bandwidth or processing power for the client. VWF does this and will do more as it continues its evolution. VWF utilizes web sockets and WebGL, directly providing a content link between entities and build 3D objects in the quickest, most efficient manner possible. Other virtual interfacing programs utilize Flash which also provides direct content, but does so in a less efficient manner.

### Additional resources

VWF information is available on two sites: Virtual World Framework Homepage (mirrored on vwf mirror site) and github (search virtual-world-framework).

## VWF applications
### Training tasks & timeline

VWF can be applied to content to train on most tasks which do not require solely live training. Specifically: Curriculum facilitated through simulations, classroom training, augmented reality, mixed media training, and games are the ideal candidates for VWF. Augmented reality content delivered to classrooms, or augmented additions to mobile devices such as this one Also simulations which combine live training with simulated content are good candidates for VWF. The complexity of the training and the number of trainees largely dictates the date by which this VWF capability will be delivered. For delivery of classroom-type training the VWF is capable of being used to develop content. For simulations-type training, following the persistence and synchronization elements of the VWF being developed in the next 6 months (by fall 2012), this capability of the VWF should be possible. For augmented reality and truly immersive gaming, VWF will be under development with critical partners and hopes to have this capability in the coming 24 months, depending on current technologies and partnerships.

### LVC exercises

Ideally, VWF will be used in live, virtual, and constructive simulation (LVC) exercises as a primary or secondary delivery mechanism. LVC is ideal for VWF delivery due to its large virtual/digital component and its need to be delivered to myriad audiences in a variety of locations/platforms.

### Live training & VWF

Live objects such as aircraft, weapons and vehicles will pass data to the simulator through sensors (read off of the radar/weapons/sensors on the live equipment directly into the simulation and then the input/output data passed through VWF to the myriad participants), data streaming through interfacing servers (in the case of personnel/equipment trackers such as Blue Force Tracking) and through information injection through constructive simulations (such as placing live units on a map and manually tracking their status/positions).

### Constructive simulation & VWF

Simulations do not take place "in" the Virtual World Framework. The VWF is a tool to help interface different entities. constructive simulations, in which simulated people operate simulated systems, are stimulated using human inputs. Ostensibly the VWF would provide the interface (via the web) for some or all of these humans who would be inputting data into the system, then would receive the simulation results from the program executing on the server machine/cloud/locally-determined-host, and would display the results in some fashion via web interface.

### Required tools to use the VWF

Developers use the VWF to build simulations using JavaScript and functionality provided through the VWF. The VWF generates the appropriate display and manipulation files at the time of compilation. As the VWF develops a construction environment will be developed in order to allow users to drag and drop content and manipulate it, greatly reducing production time/complexity. This environment is under construction, and is anticipated to be completed at the end of 2012.

## Security considerations
### Web security issues

The web is agnostic to content. The VWF is not secure or unsecure. The use of secure socket layer encryption (SSL), virtual private networks (VPN), public key encryption (PKI), proprietary encryption, hardware secured network systems, etc. provides the security needed to secure any simulations produced and interfaced using the VWF. With the use of IPv6, bit-wise security protocols are available that were previously not available to data transport. A potential additional security method is to add a security bit header to the data transported via VWF in order to provide an additional layer of security. This measure has not yet been added to the current build.

### Problems with web sockets and their solutions

The problem with opening a continuous connection between two computers via a web browser using Web sockets is that it potentially opens up the link to something called cache poisoning, in which someone can directly introduce viruses or other malware to the link, compromising the system. Here is a summary of other weaknesses: Security tool for Web Sockets). Originally, potential security issues led Mozilla and Opera to discontinue support for Web Sockets until the Internet Engineering Task Force (IETF) could produce a standardized Web Sockets protocol as part of HTML5. A work around based on Connect based handshakes (as opposed to upgrade- based handshakes) proved to be secure. The semantics of the handshake as coded into VWF will take this into account. Since late 2011 this has been largely addressed with latest builds and standards, and many web platforms do support Web Sockets.

## WebGL
### What is WebGL?

WebGL (web graphics library) is a JavaScript Application Programming Interface (API) for rendering interactive 3D graphics within any compatible web browser without using plug-ins. WebGL programs include control code (written in JavaScript) and shader code which is executed on the graphics processing unit on the video card (GPU). WebGL is designed and maintained by the non-profit Khronos Group.

### Browsers supporting WebGL

Mozilla Firefox 6.0 onward, Opera 11 onward, Google Chrome 9 onward (native support), Safari 5.1 onward. So far, Internet Explorer does not support WebGL and has not announced any plans to support WebGL. Chrome Frame and IEWebGL plug-ins support WebGL for IE 6.0 onward.

### Standard setting bodies

The WebGL standard is affected by the Khronos Group, Mozilla, Apple and Google along with influence from United States Computer Emergency Readiness Team which raises security concerns to which the WebGL consortium (headed by the Khronos Group) react.

### Devices supporting capable browsers

Most PCs, laptops, and tablets support WebGL capable browsers. Mobile support for WebGL is nascent. Expectations are that current mobile bindings for JavaScript and WebGL are not good enough but there is an Android version of Firefox with WebGL (only about 10% of potential users access content via mobile device requiring WebGL support). Opera also supports WebGL on Android platforms. iPhone does not support WebGL yet.

### Microsoft support for WebGL

Microsoft does not have plans to support WebGL due to security concerns over handshake vulnerabilities. There are two plug-ins for Internet Explorer which support WebGL interfaces: Chrome Frame and IEWebGL. It is true that native support tends to run better than plug-in support, and not all security organizations will support the installation of additional plug-ins to web browsers.

## JavaScript
### What is JavaScript?

JavaScript is a prototype-based scripting language that is dynamic, weakly typed, general purpose and supports object oriented, imperative, and functional programming styles. This means that JavaScript enables the programmer to build a series of prototypes and interact with them using a mostly literal syntax based on C. Due to its ease of use and widespread appeal, JavaScript quickly became one of the most popular programming languages for web applications.

### JavaScript vs. Java or C#

JavaScript runs locally in the browsers, does not require additional plug ins or environments (like the Java runtime environment) to run, and does not require compilation or .exe files to be run on the client machine in order to work. It is faster, more efficient, and simpler to build and execute than both Java and C#.

## Standards
### Current standards supported by VWF

HTML 5.0, ECMAScript5, WebGL, Web Sockets, Collada (or other later file formats), and others as the tool matures.

## Community and governance
### Contributing code to VWF

Developers can download the latest build of VWF from GitHub and submit their recommendations, code and applications directly on the site. GitHub allows users to create their own forks, submit pull requests, and leave questions, comments and support related items in the issue tracker.

### Coalition partners

VWF is available freely and openly on GitHub to any and all persons, regardless of origin. VWF content specifically designed for operations will be negotiated on a case-by-case basis depending on the content, training objectives, and coalition goals being exercised. There is no standing reason why VWF cannot be shared and there are no security restrictions on the original code.

## Business models
### Commercial products from VWF

Can commercial entities build services or games with the VWF? Absolutely. The VWF is meant to interface content via the web, but it also contains construction pieces enabling the creation of games or communications services wholly executable within the web browser. VWF is licensed using Apache II, but this allows for a commercial repackaging of the open-source portions as part of a larger work. These games and services would capitalize on the direct link between entities facilitated by the VWF, while the company would determine where the resources were located. For example: A game company might use VWF to create an online game using their proprietary graphics, and store both the graphics and the program files on their own servers while delivering that content through the web; a teleconference company might more efficiently create an e-classroom with the VWF to take their own streaming media codec and pass their video through the web to a digital classroom environment created wholly with the VWF, complete with avatars and interactive objects.

## Advisors
### Current advisors

There is a multitude of partners and advisors for the VWF project. There are the creators (mentioned earlier), as well as partnerships with Mark P. McCahill from Duke University, Advanced Distributed Learning (ADL), Doug Maxwell (for MOSES) and Cole Corporation (for the Edge military MMO). All of these personnel provide advisory support to the VWF. The creators encourage additional partnerships meant to expand the scope and scale of VWF.