Creating Interreality: The Virtual Object System

Version 0.12.0

Peter Amstutz

T. Reed Hedges

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation. A copy of the license is included in the section entitled "GNU Free Documentation License".


Table of Contents
1. A New Vision for the Internet
1.1. A Short Scenario
1.2. Virtual Reality
1.3. The Problems of Virtual Worlds
2. Concepts and Design
2.1. Concepts and Terminology
2.1.1. Objects
2.1.2. Networks
2.1.3. Additional Concepts
2.1.4. VOS Terminology
2.2. The VOS Design
2.2.1. Goals
2.2.2. The Vobject Model
2.2.3. Sites
2.2.4. Messages
2.2.5. Types
2.2.6. Linking and Naming
2.2.7. Listeners
2.2.8. Substitution and Scripting
3. Using VOS to Explore and Build Virtual Worlds
3.1. Ter'Angreal
3.1.1. Compiling Ter'Angreal
3.1.2. Connecting to a 3D Server
3.1.3. Controls
3.1.4. Configuration
3.1.5. Text messages and commands
3.1.6. Supported file formats
3.1.7. Troubleshooting
3.2. VOS World Server
3.2.1. Synopsis
3.2.2. Description
3.3. Exporting from Blender
3.3.1. Notes
3.4. A3DL Converter
3.4.1. Synopsis
3.4.2. Options
3.5. Mesh (Metaverse Shell)
3.5.1. Overview
3.5.2. Command list
3.6. Writing your own server application
4. Building VOS from Source
4.1. Welcome!
4.2. Compiling VOS from Source
4.2.1. Supported Platforms
4.2.2. Build Dependencies
4.3. The Build Process
4.3.1. VOS on Unix
4.3.2. Visual C++
4.4. Documentation
4.5. VOS with Firewalls and NAT Gateways
4.5.1. SOCKS
4.5.2. Manual Port Forwarding
4.6. VOS Library Configuration Using Environment Variables
5. VOS Programming
5.1. VOS in C++
5.1.1. C++ Tutorials
5.1.2. Common Coding Questions
5.1.3. Common VOS Programming Errors
5.1.4. C++ API Reference
5.2. Using VOS in Perl
5.2.1. A Complete VOS Virtual World Server in Perl
6. Object Type Definitions
6.1. Introduction
6.2. The OTD Repository
6.3. Contents and Syntax
6.4. Name and Version Info
6.4.1. replaces
6.4.2. extends
6.4.3. revision
6.4.4. group
6.4.5. name
6.4.6. number
6.5. Description (required)
6.6. Authors list (required)
6.7. Child objects list
6.8. List of messages
6.9. Application Support
6.10. History
6.11. TODO List
6.11.1. Wildcards
7. VOP, the Virtual Object Protocol
7.1. Introduction
7.2. Syntax
7.3. Special Features
7.3.1. Defaults
7.3.2. Blocks and Includes
7.3.3. Parameter substitution:
7.3.4. Scheduling
A. VOS Binary Packages
B. Frequently Asked Questions
C. Typechain
C.1. Introduction
C.2. Syntax
C.2.1. ABNF Syntax
C.2.2. Examples
C.3. Identifiers
C.3.1. Final Media-Type Identifiers
C.3.2. Encoding Identifiers
C.4. Typechain MIME type
C.5. Appendix: Implementations
References
D. GNU Free Documentation License
D.1. PREAMBLE
D.2. APPLICABILITY AND DEFINITIONS
D.3. VERBATIM COPYING
D.4. COPYING IN QUANTITY
D.5. MODIFICATIONS
D.6. COMBINING DOCUMENTS
D.7. COLLECTIONS OF DOCUMENTS
D.8. AGGREGATION WITH INDEPENDENT WORKS
D.9. TRANSLATION
D.10. TERMINATION
D.11. FUTURE REVISIONS OF THIS LICENSE
D.12. How to use this License for your documents
List of Figures
2-1. A graphical example of how a method call is converted into a message and sent to the target object over a network; the reply is sent back and used for the return value of the method call.
2-2. Parent (incoming) and child (outgoing) links on a Vobject; "J Random Vobject" is a child of Vobjects x, y and z and a parent of Vobjects a, b, c, d and e.
2-3. An example site with six vobjects describing an simple virtual world
Version 0.12.0