Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

Saphyre2 Design

Introduction

En aquest fitxer es descriuran les decisions i idees madures sobre com ha de ser S2. Les especulacions o idees de fumeta per madurar estan a Saphyre2 Objects i Saphyre2 Drug Induced Happy Ideas.

El disseny de Saphyre2 es basa en:

Multiverse And Multisystem

Saphyre2 can simulate several Universes in parallel, each one being completely independent from the rest.

All animated Objects live in the Universe, but are grouped into Systems in order to animate/simulate them properly and efficiently.

Some aspects of each System can be configured:

The criteria for grouping objects into systems are:

Inside each System the Objects (their Models, in fact) can be furtherly grouped/partitioned for efficiency purposes (decoupled objects can be simulated independently)

The System is the smallest simulated unit in Saphyre2.

Multimodel

A physical Object may be represented for its animation/simulation by different mathematical models (sets DOF and their equations of motion).

Switching the Model that represents a certain Object for can be useful for several reasons:

As Objects live in the Universe, Models live in Systems. A Model can only be in one System at the same time, but it can be transferred into another one if needed.

Does a Model exist outside of a specific System? Yes, even though for efficiency purposes it may be better to make Models local to the System in which they are simulated, for flexibility I'll make them global BY NOW... this may change in the future.

Todo:
Enumerar en quins casos te sentit que un Model canvii de System (Systems amb limits espaials, per exemple, per simular habitacions autònomes, etc...)
Theory about model-switching can be found in GILLESPIE97.

Si es vol que Model pugui representar un obj tan complexes com un cotxe (Car) llavors s'ha de considerar la seva conversió a una sèrie de Models i Constraints en coordenades maximals, que no correspondria a un altre Model sinó a un System. AIXO ES MOLT IMPORTANT!

El Model en coordenades generalitzades podria estar sotmès a Constraints no integrades en el propi model (no usades per eliminar DOF analíticament, ja sigui pq són no-holonòmiques o pq involucren altres Models o senzillament pq no ho sabem fer), i aquestes també s'haurien de convertir en canviar de Model.

Un personatge articulat seria un altre bon exemple d'objecte físic que podria tenir un Model en coordenades generalitzades molt complex convertible a un cjt d'objectes simples en coordenades maximals i constraints entre ells. En aquest cas, la jerarquia interna del model seria més complexa que en cas del cotxe, i els requeriments de controlabilitat i capacitat d'integració entre cinemàtica i dinàmica serien molt importants.

Generic Constraints

Sobre els Object es poden definir diverses restriccions (igualtat, desigualtat, juntes mecàniques, no-interpenetració, limits angulars, etc..). La definició d'aquestes restriccions es farà sobre els Object de forma genèrica, però la seva formulació matemàtica per a simular-la pot dependre del tipus de Model amb el qual es simula l'Objecte en cada moment.

Processing & Data Blocks + DAG

Tasks, Subsystems, Data Flow...

Entities

For more information on entities see Saphyre2 Objects.

Example Systems

Several short examples:

Several detailed examples follow in the next subsections.

Controlled Particle

A particle (with any geometric shape) has 3 translational DOF. We may want to control its planar movement (XZ plane) while its vertical (Y axis) movement is computed by dynamics (gravity).

The control is performed by speed input by the user (kinematic control), therefore, the X and Z DOF are not free but controlled kinematically.

The final movement is restricted by the non-penetration constraint between the particle and any other object (floor, walls, other particles).

Controlled Particle on a Surface

A particle is now constrained to move on a Surface (which may be attached to another dynamics object or not)

A particle (with any geometric shape) has 3 translational DOF. We may want to control its planar movement (XZ plane) while its vertical (Y axis) movement is computed by dynamics (gravity).

The control is performed by speed input by the user (kinematic control), therefore, the X and Z DOF are not free but controlled kinematically.

The final movement is restricted by the non-penetration constraint between the particle and any other object (floor, walls, other particles).

Pendulum

A simple pendulum consists of a mass particle attached to a rigid rod with one end fixed to some point in the space. The System can be furtherly constrained to move on a plane.

This System can be modelled in several ways:

Car

Un cotxe es pot modelar com:

Total: 3+3+4*1+4*1+1 = 15 DOF

Total: 6+6*4 - 2*(2+2) - 2*(1+2) = 30 - 8 - 6 = 16 DOF (1 més pq els angles de rotació de les 2 rodes de davant no estan acoblats... com fer-ho?)

Articulated Character

Architecture

Saphyre2 is divided in several modules:

Utilitats


Generated on Tue Aug 10 15:58:31 2004 for Saphyre2 by doxygen 1.3.5