Flex-VR Content Model (Building Configurable 3D Web Applications with Flex-VR) Part 1

To fully exploit the possibilities of building configurable 3D Web applications, a high-level model of the application content is required. Such a model enables efficient organization, manipulation and exchange of content between applications. The Flex-VR content model describes a 3D application on a much higher level of abstraction than a typical content representation language, such as VRML/X3D. The Flex-VR content model may be stored in a database to provide persistence, high-performance data manipulation, multi-user remote access, and transactional processing.

Presentation Spaces

In the Flex-VR approach, 3D application content is organized hierarchically. The hierarchy is built of presentation spaces (Fig. 5.4). Each presentation space may have an arbitrary number of sub-spaces. The depth of the hierarchy is not limited. Presentation spaces may correspond to complete virtual environments, parts of environments, or may be used merely as containers for objects. The semantics of the sub-spacing relationship depends on the super-space. For example, it may denote spatial, temporal or logical composition, alternative representations, or scenario steps. In some cases, there may be no semantic connection of the super-space and the sub-spaces.

Flex-VR content model: template and template instance (P—parameter, D—default value, V—actual value)


Fig. 5.5 Flex-VR content model: template and template instance (P—parameter, D—default value, V—actual value)

Presentation spaces serve as containers that may hold three types of elements: instances of content templates, instances of behavior templates, and instances of content objects.

Templates and Template Instances

A template is a parameterized program used to generate virtual scenes, which are representations of a presentation space. There are two types of templates: content templates and behavior templates. Content templates are used to generate the overall structure of virtual scenes and to select content objects that should be included in these scenes. The simplest templates generate scenes by combining content objects. More complex templates may additionally include background elements, such as a model of a room or environmental properties (e.g., a fog).

Each of the included content objects may contain its own behavior script. In some cases, however, it is useful to have the same (or similar) behavior shared by a number of objects. To achieve this, an instance of a behavior template, used to generate scripts implementing common object behavior, may be also included in the presentation space.

Templates may be encoded in any scripting language that is suitable for scene content generation, such as X-VRML or PHP (Chap. 4). A template consists of a template implementation and a definition of a set of template parameters, each of which has a name, a type, and a default value. The parameters influence the way of execution of the template code.

A template instance is a template supplied with actual values of some of its formal parameters (Fig. 5.5). Default values are used for parameters that do not have values specified in the instance. A single template can have an arbitrary number of instances.

Flex-VR content model: content object

Fig. 5.6 Flex-VR content model: content object

Content Objects and Object Instances

A content object is the basic content element of the Flex-VR content model. Content objects may correspond to simple 3D objects, complex objects gathering several components—either 3D components or other media, such as images, movies and sounds—or VR-Bean objects with their own behavior specification. A content object is independent of other content objects.

A content object consists of a number (zero or more) of media components and content object metadata (Fig. 5.6). Media components are used for representing the content object in virtual scenes using various media. Examples are 3D model, image, video sequence, audio sequence, and text. More than one media component of the same type may be associated with a content object. Media components are used to represent content objects in virtual scenes. Media components may be associated with media component metadata providing component description.

A content object instance is a content object assigned to a presentation space, together with an optional set of object presentation properties. Similarly as with template instances, a content object can have multiple instances in the same or different presentation spaces.

Presentation Domains

A common problem in the design of real-life interactive 3D applications is caused by different hardware and software environments, in which the applications must run (e.g., an immersive system versus a laboratory equipped in PC computers). Also, often the applications must be targeted at different groups of users (e.g., a group of school children playing with a system while visiting a museum versus an archaeologist exploring details of cultural artifacts). To enable reuse of the same generic content model at different target platforms and with different presentation methods, while keeping consistency of the designed presentation structure and the content, the notion of presentation domains has been introduced. A presentation domain corresponds to a target environment or a usage scenario for the 3D application.

Flex-VR content model: hierarchy of presentation domains

Fig. 5.7 Flex-VR content model: hierarchy of presentation domains

Presentation domains form a hierarchy (Fig. 5.7). An example of a domain can be “WEB.LOCAL.” “WEB” is the name of the parent domain, while “LOCAL” is the name of the sub-domain. “ANY” is an abstract super-domain of all domains, and has no practical implementations.

In the Flex-VR content model, in each presentation space there may be a separate template for each presentation domain. For example, a space with a virtual museum exhibition may contain three sets of content templates and behavior templates, which enable presentation of the system (1) on a high-end immersive installation in the museum, (2) remotely over the Internet on standard PC computers, and (3) locally in the museum on small portable computers as an interactive guide. The templates differ in the selection of content objects, quality of the 3D models, interaction methods, etc.

To make the process of designing large 3D applications more efficient, the notion of template instance inheritance has been introduced. If a presentation space does not contain a template instance in a particular presentation domain, first a template instance in a super-domain is used—if it exists in the presentation domain. If not, a template instance from a higher-level presentation space is used—in the same domain or a super-domain.

Since inheritance concerns template instances and not only templates, all values of template parameters set in the upper-level presentation domain or the upper-level presentation space are preserved in the sub-domain or sub-space. This significantly speeds-up the design of large content models and enables to easily maintain visual and behavioral consistency of the virtual scenes.

Flex-VR content model: presentation properties

Fig. 5.8 Flex-VR content model: presentation properties

Presentation Properties

To enable presentation designers to customize Flex-VR presentations, the content model provides a notion of presentation properties. Presentation properties form a ternary relationship between presentation spaces, content objects and media components (Fig. 5.8). Each presentation property is assigned to a presentation space, and it may be also optionally assigned to a content object, or to a content object and a media component.

If a presentation property is assigned to a presentation space only, it describes the presentation space. Such a value can be used by a template to create representation of the presentation space. An example of space-level presentation property is a description of a presentation space.

If a presentation property is assigned to a presentation space and a content object, it describes presentation of this content object within the presentation space. A textual label describing an object is a good example of a content object-level presentation property.

If a presentation property is assigned to a presentation space, a content object, and a media component, then it describes presentation of this particular media component, within the content object, within the presentation space. Scale of a 3D model is an example of a media component-level presentation property.

Presentation Structure

The overall structure of a Flex-VR presentation is shown in Fig. 5.9. A presentation designer builds Flex-VR presentations by forming a hierarchy of presentation spaces and creating—in the presentation spaces—instances of content templates, instances of behavior templates as well as instances of content objects, and by setting values of presentation properties.

Flex-VR content model: Flex-VR presentation space

Fig. 5.9 Flex-VR content model: Flex-VR presentation space

Different presentations can be achieved by the creation of template instances and content object instances derived from the same template or content object but supplied with different sets of parameter values or properties. In some applications, template parameters and content object properties that are not fixed by a content designer can be changed by end-users.

Flex-VR presentations can be built using one or more Flex-VR design patterns. The design patterns simplify creation and management of configurable 3D applications by imposing known semantic structure on the content. The most important single-space patterns include Scene Template, Scene Template—Data Source, Environment Template—Objects, Shared Behavior, Behavior Template, Active Environment, Reactive Object, Scenario, and Autonomous Object [27, 30].

Complex Structures

The Flex-VR content model enables creation of complex content structures based on several presentation spaces. The most important multi-space design patterns are Complex Object, Complex Space, and Complex Content. These patterns are presented below.

Complex Object

The Complex Object design pattern enables creation of complex objects, which are spatial, temporal, and logical arrangements of their constituting elements. In this pattern, presentation sub-spaces are used instead of content objects. The presentation spaces may contain content templates, behavior templates and other objects— simple or composite. Although complex object may expose arbitrary behavior, which depends only on the content and behavior templates employed, there are four typical uses of the Complex Object pattern:

•    Aggregation—implements spatial combination of sub-objects;

•    Choice—implements selection of one of sub-objects;

•    Sequence—implements temporal or logical sequence of sub-objects;

•    LOD—implements selection of sub-objects depending on the required level of detail.

An example of aggregation of objects is a virtual museum room with objects arranged next to each other in the 3D space. An example of choice of objects is a museum showcase in which a user can select the presented artifact. An example of sequence is a showcase in which the presented artifact changes every minute to the next artifact from a given collection. An example of a LOD is a 3D model of an artifact, which changes to a higher level of detail when a user approaches the showcase containing this model and back to a lower level when a user moves away from the object.

In the Flex-VR approach, complex structures are modeled as presentation spaces containing content controllers. Content controllers are generic content templates and behavior templates. Controllers can be used as general building blocks in many applications.

The components of complex structures can be either content objects or again presentation spaces. Therefore, arbitrarily complex structures can be created. For example, a complex three-level structure may be built by combining spatial arrangement at the highest level, time-dependent objects and levels of detail at the middle level, and user privileges implementation at the lowest level (Fig. 5.10).

The controllers in the Flex-VR model are conceptual generalization of some structures available in content representation languages (e.g., X3D), such as Transform and Switch. However, in the content representation languages the structures are functionally fixed, while in Flex-VR these structures are flexible. This means that, e.g., spatial arrangement of objects can depend on the amount of space provided as a parameter by the upper-level model, while temporal arrangement of objects can be automatically ordered chronologically using age information retrieved from metadata descriptions. Functions performed by a content controller can be arbitrarily complex. Also, entirely new types of controllers can be built, for example, taking into account user preferences or privileges [33].

Complex Object design pattern Complex Space

Fig. 5.10 Complex Object design pattern Complex Space

The Complex Space pattern is used to implement complex virtual environments that consist of several sub-spaces. In this pattern, a virtual scene is generated based not only on a single presentation space but on a whole hierarchy of presentation spaces. The hierarchy may generate a collection of interconnected virtual scenes, a large scene composed of several spaces, or a conditional virtual scene in which representation depends on some criteria (e.g., when the number of content objects exceeds a certain limit, another 3D environment is used).

An example of a presentation structure based on the Complex Space pattern in presented in Fig. 5.11.

Next post:

Previous post: