INSA
  • Tutorials
  • Documentation
  • Api Documentation
  • Changelog
Show / Hide Table of Contents
  • Scenario Engine
    • What is a scenario Engine?
    • Main Definitions
      • Scenario
      • Transition
      • Sensor
      • Effector
      • Context
    • All Definitions
      • Comment
      • Complex Sequence
      • Context
      • Decision Tree
      • Effector
      • Event
      • Event Context
      • External Context
      • External Scenario
      • Function
      • Node
      • Net
      • Petri-Net
      • Place
      • Safe Petri-Net
      • Scenario
      • Scenario Context
      • Sensor
      • Sequence
      • State
      • State Machine
      • Token
      • Token Assign
      • Token Merge
      • Token Split
      • Transition
    • How to deal with asynchronous events?
  • Relation Engine
    • What is a relation Engine?
  • Scenario with Relation

FIVE

Note

FIVE is the legacy name of the relation engine and the name of the underlying model

Paper HAL

The relation engine proposes a set of models to support the definition of actions and behaviours of objects of a Virtual Environment. Its role is to determine how and which objects of the world can be used.

The main goal of the Relation Engine is to make the creation of interactions easier between objects in a virtual environment. More precisely, the interactions are actions involving several objects, and which have consequences on the virtual environment. Create an interaction may be simple for one object, but it becomes more complicated when it is about multiple objects that use a same interaction. #FIVE allows to do generic interactions on multiple objects with a minimum of effort.

Concepts

The data model of the relation engine is base on two concepts: relational object and relation. This model is based on two concepts, objects and relations.

Object-Relation

An Object is an entity that can potentially interact with other objects. It has an influence on the environment. Generally, an object in a 3D environment is characterized by its geometry and some properties (react to collisions or gravity). A Relation connects objects based on a set of object patterns. Moreover, it gives a meaning to their union.

FIVE

Five uses four concepts:

Object: an object in #FIVE is an element that can interact. Its main goal is to identify each element as a unique entity. In this way, it is possible to do queries on all objects.

Type: To describe a behavior of an object we use Types. A Type can be generic and be used on different objects without additional adaptation.

Object Patterns: An object can have more than one types. Object Pattern will provide the information the relation engine needs to associate these types to only one object.

Relation: A Relation connects objects based on a set of object patterns. Moreover, it gives a meaning to their union.

To demonstrate this concept,

  • Let Hand be an object that can take objects
  • Let Hammer be an object that can hit objects and be taken
  • Let Nail be an object that can be hit

They all have a Type describing their behaviors.

In this example, we have two main relations:

  • Take any objects that can be taken
  • Hit any objects that can be hit

The relation Hit will wait until any Types Hammer and Nail enter in collision. If it happens, the relation will be launched and the nail will be pushed.

Five Concept
INSA     IRISA     Inria     Ouest Valorisation Back to top