...................................hypermatter
 

Soft, rigid and vehicular real-time dynamics

 
 
Home

Products

Company Gallery Contact OPL  
   

(Site Under Construction)

What is Hypermatter?

Hypermatter is a software library for producing high quality soft body (and rigid/quasi-rigid) dynamics and effects for use in 3D computer animation, games, toys, virtual environments, scientific and medical visualisation, graphical web authoring tools, etc…etc.

Hypermatter is distinguished by the unsurpassed realism and visual appeal of the motion it produces. It is also remarkably stable (able to model large and violent deformations), supremely controllable, and simple and intuitive to use. It is also fast. These factors make Hypermatter the ideal choice for many real time and interactive applications, and as a powerful and reliable foundation for more complex physically based scenarios.

The most common uses for Hypermatter include general squash-and-stretch effects and adding secondary, inertial deformations to otherwise rigidly moving objects. These effects are particularly simple to implement, and can greatly increase an object’s realism and visual appeal.

To animate click on image

Other areas where Hypermatter can play a substantial role include skinning of simple skeletal structures, facial animation, slipping, sliding and rolling effects, and contacts, impacts and collisions. The range of possible uses and effects are endless.

The strength of Hypermatter derives from its very accurate and stable elasticity model. Unlike most other approaches, it does not use linear springs. Instead it is derived from (a unique 6D-variant of) the equations governing the classical theories of elasticity and continua.

Linear spring approaches (which avoid solving the classical 3D elasticity equations altogether) are necessarily very crude and the motions they produce are therefore artificial looking and often unpleasant. They also suffer severe stability problems, especially when large deformations are involved.

Another approach is to use finite element methods, which typically only handle small deformations also, and, in any case, are designed to enable very accurate calculation of the stresses and strains that arise in particular regions of irregularly shaped materials (e.g. triangular sheets of metal with holes cut in them). They are not normally designed for animation or real-time contexts, where such detailed analysis is not needed.

 

To animate click on image

Hypermatter Physical Components

A recent extension of the core Hypermatter system are ‘physical components’. These are dynamically-closed composite objects (built from simple Hyp objects and other lower-order components) that manage or control their constituent objects to fulfil a specific role or function. Higher-order components can be created by attaching together other lower-order components and regular Hyp objects.

Two examples of first-order components are ‘rotorunits’ and ‘motorunits’, from which simple, higher-order machines, contraptions and vehicles can be built. Hypermatter vehicles can be driven in various different driving and braking modes, they have forward, neutral and reverse gears, they can be steered, and they have accelerator and brake pedal-type control mechanisms, and many other features that real cars have.

To animate click on image

Because they are physically based, Hypermatter vehicles are remarkably realistic, and exhibit many of the same nuances and characteristic movements and responses that real and toy cars do. They can be driven over flat or hilly terrains, can be made to skid and do wheelies and other stunts, and to crash, etc, etc.

Basic Hypermatter Scenario

Physically based animation of a user geometry object is achieved by first creating a controlling Hyp object that roughly matches the shape of the geometry object (either automatically, or manually). The shape of the Hyp object can then be edited, if necessary, to achieve a better fit with its associated geometry. An appropriate set of material attributes is ascribed to the object, and an Initial state is defined.

Hypermatter performs physically based animation through an internal ‘time-stepping' function, which, each time it is called, progresses the current state of the Hyp object(s) from one instant to the next, according to Newton’s laws and their physical and material properties. This process determines the ‘natural' motion of a Hyp object.

The natural motion of Hyp objects can be ‘constrained', using built-in constraint functions, to control their motion or behaviour. Hypermatter constraint functions can act on either individual (nodal) points of a Hyp object or on ‘parts' of Hyp objects (sets of Hyp object points, either default or defined by the user).

For example, parts of Hyp objects can be temporarily or permanently ‘rigidified’, or ‘fixed in space’, or `attached’, by various means, to moving (e.g. key framed) geometry objects (cf. animatronic type control methods used in real life), or, for example, to the moving `bones’ of a skeleton. Other constraints enable contacts and collisions to take place between Hyp objects, or between Hyp objects and any user-geometry (surface), or against fixed walls or planes.

More generally, any position, velocity or angular velocity can be ascribed to any part or point of a Hyp object at any time. The programmer, therefore, has complete control of Hyp objects at all times. Points of Hyp objects can also be glued together, or unglued. The glue constraint is used internally by Hypermatter vehicles, for example, to attach together its constituent components and its Hyp object `chassis/body’.

Using the supplied Hypermatter constraints, more complex, customised, constraints can be constructed. The fact that Hypermatter is physically based means that the task of designing efficient constraint mechanisms is intuitive…usually, you just need to imagine how you would contrive the same sort of effects in real life, and then figure the best way to implement them using the Hypermatter constraints.

Finally, after each frame of physically based animation, the new shape/state of geometry objects is interpolated from the current state of their associated Hyp objects, thus resulting in physically based animation of the geometry.

Hypermatter API

The class-based Hypermatter software library has been developed, tested and fine-tuned over many years, and numerous, custom-designed extensions and additions have also been developed, including interpolation methods for enabling Hypermatter to operate on arbitrary user-geometry (via its own Hypermatter objects), and a compact but powerful set of constraint functions.

Hypermatter relieves the programmer of the difficult and time consuming task of modelling and programming the low-level material structure and behaviour of physically based objects, allowing the programmer, instead, to attend to higher level issues involving object set-ups and initialisations and the means of controlling Hyp objects. Many different object set-ups are possible, and the programmer has `complete’ control of all objects at all times.

The Hypermatter API is designed to be the simplest solution that is sufficient to address the wide range of possible physically based scenarios that a programmer is likely to encounter. Many different object set-ups are possible, and the programmer has `complete’ control of all objects at all times.

The Hypermatter API includes the following five main classes:

  • The HypForm class is used as a template for defining the shape of a Hyp object, and creating a Hyp object from it.
  • The HypObject class contains the data and functionality of an individual Hyp object, including its constraint functions and functions for getting and setting its many features and properties.
  • The GeoObject class contains vertex, face, and transform data representing user-geometry, and interfaces between user-geometry and Hyp objects. A special GeoObject member function enables a Hyp object to be created from it automatically, which roughly matches its shape and configuration. Another can be used to interpolate new vertex positions from the current state of its associated Hyp object (if any).
  • The HypGroup class can be used for managing groups of Hyp objects.
  • The GeoGroup class can be used for managing groups of Geo objects.

Hypermatter Standalone Demo Application

We have recently developed a Hypermatter Demo Standalone Application that enables you to load a selection of example scene files and tutorials, and to experiment with Hypermatter, and which demonstrates many of the different effects and styles of motion that can be produced with Hypermatter.

The functionality of the Demo Application closely matches the functionality of the Hypermatter API on which it is based. For example, the Hypermatter Constraint Editor enables you to easily and quickly set up sequences of Hypermatter constraints (with full use of variables and logical flow of control) that correspond directly to the constraint sequences that the API programmer would otherwise need to encode manually.

The Demo UI controls allow you to create simple ‘Geo’ objects (representing your own geometry objects), and to key frame them, if necessary. Hyp objects can be created, either automatically from Geo objects, or on their own and then later ‘materially associated’ with arbitrary Geo objects. Controls are included for editing the structure/shape of Hyp objects, editing `parts’ and ‘groups’ of Hyp objects, and for editing their Initial states and material properties. After each frame of animation, the new state of each Geo object is automatically interpolated from that of their associated Hyp objects.

Another feature of the Demo lets you ‘pick up’ Hyp objects up and ‘throw’ them about, interactively, using the mouse-pointer. This is a particularly quick and simple way to appreciate their remarkable stability and quality of motion.

Please contact us if you are a developer of computer games or animation tools, or similar technologies, and would like more information about Hypermatter, or Hypermatter physical components, and would like us to email to you a copy of the Standalone Demo Application.

 

 

Copyright 2009 OPL