Technical descriptions of solution for different problems in
the Mimoid Project

In this document we describe the different ideas we have of how to implement much of the functionality in the Solaris Scene world.

Modelling the scene, the Solaris planet and the ocean

The scene is made up of the space station orbiting the planet Solaris, which  is covered with an chaotic, organic and living ocean. The ocean is described in the Mimoid Description, both in the libretto and the themes description.  In this chapter we will describe how we have intended to implement this semi organic living and knowledge based sea.

The idea is to use the World Wide Web as the knowledge source for the ocean. The process generating the ocean will build up the ocean with pictures collected from the World Wide Web. Which image that will be fetched is controlled by the motions of the avatars making up the two actors. We have not figured out the exact algorithm but the idea is like this:
there is always a current web site accessed by the process, at start-up this is set to a default site. Between each image fetch the motions of the avatars are monitored. The total distance travelled during this time is divided into two directions, left/right and backwards/forward. The distance travelled forward/backwards decides which link to follow in the current web page to get a new page. Say the avatar has travelled 3 meters forward then follow the third link in the current web page. This new web page will become the current one. If the avatar has travelled backwards instead the link is counted from the end of the web page instead of from the beginning. The distance travelled left or right decides which image to take from current web page in the same way as the link is decided. If a link generates an error or there are no images on a page the next link is followed and an images is fetched from this page. We have to test this algorithm how well it performs, the goal is that a lot of images will be fetched from the net and it should only be possible to roughly predict how the process works. The results of the interaction will not be completely predictable, it will be a bit like navigating the real sea - you set your direction and the boat will sway and turn with the waves but the "average" result is a travelling in the general chosen direction.

When an image is fetched it is put as a texture on an object either a plain square or a curved surface with an arbitrary shape like a triangle, square, hexagon or romb. These objects will make out the surface and the ocean of Solaris. The objects will be placed spherically around a centre point and slowly start to move towards this point, doing so they will also get more and more transparent and finally disappear. But if the same image is fetched again and has not disappeared from the surface, there will not be a new object created instead the object with this image is made opaque and moved to its start position. Then staring again falling into the centre of Solaris.

More ideas to make the planet an exciting object is to make it slowly swell and shrink periodically as if were breathing.
 

Controlling avatars

 There are two different scenarios for the act, one where both the female and the male avatars are controlled by human beings and one where only the male avatar is controlled by a human. The last one is the problematic one because here must the female avatar act in an autonomous way. In this chapter we will discuss how to solve this problem. We will also give a short presentation at the end of the human controls of the avatars will work.
 

An autonomous avatar

For the person playing the male avatar there will be a script to follow but how should it be done for the female avatar when she is controlled by a computer program? Our idea of how to solve this was inspired by the ideas of Lars-Erik Holmquist about Loose Scripts but we will use them a little bit differently.

In the play the actions of the man will trigger actions of the woman and vice versa. The problem is to have the computer understand the actions of the man. We will have to come up with some description of his actions, to parameterize them. The easiest way to do this is by looking for different events like colliding with something or reaching a certain point and let them be the parameters. Another solution would be to always monitor the male avatar and from these data find parameters. In DIVE it is rather simple to put up a lot of invisible objects which can be used to detect collision with them. For example if we want to find out if the hands of the avatar has been lifted above the head we can place an invisible object there and detect the collision of the hands with this object. Maybe this is not accurate enough but in such case we have to try the other method where we monitor all the motions of the avatar and generate parameters from this. For example by measuring how fast an arm is moving and its position.
What ever method we decides to use, the parameters will be send as an message to the female avatar who decides how to interpretate this information. This is where the loose scripting comes in place. A loose script is a non-linear script consisting of a collection of segments, each segment describing an event and the preconditions necessary for that event. When the female avatar receives a message she runs through her loose script and executes those events which preconditions has been fulfilled. In this way she can not be stuck in the middle of the script as she might have been if the script was linear. In a linear script, if a message is not generated as for seen by us by the process watching the male avatar the female avatar will keep waiting for this message until she receives it. She will act as if she were dead or mechanical.
To have a successful implementation of this action engine we must study the script carefully and together with the producer of the play.
 

Human control of an avatar

This is rather straight forward and easy to do. We will use some kind of tracking system like Ascensions MotionStar Wireless and map the motions directly onto the avatar of the actor playing the role of that avatar. DIVE has already support for Ascensions Flock of Birds which will make it rather easy to make the adoption to MotionStar Wireless.


Last Modified, January 28, 1998
Karl-Petter Åkesson, kalle@sics.se