[ogpx] Synchronization of gestures (was: Limits to interoperability of scripted objects)

Carlo Wood <carlo@alinoe.com> Tue, 10 November 2009 20:42 UTC

Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 91EC43A68AF for <ogpx@core3.amsl.com>; Tue, 10 Nov 2009 12:42:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.83
X-Spam-Level:
X-Spam-Status: No, score=0.83 tagged_above=-999 required=5 tests=[AWL=-0.340, BAYES_50=0.001, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QgdIi7f7vcTU for <ogpx@core3.amsl.com>; Tue, 10 Nov 2009 12:42:42 -0800 (PST)
Received: from viefep15-int.chello.at (viefep15-int.chello.at [62.179.121.35]) by core3.amsl.com (Postfix) with ESMTP id 46B653A67E4 for <ogpx@ietf.org>; Tue, 10 Nov 2009 12:42:42 -0800 (PST)
Received: from edge01.upc.biz ([192.168.13.236]) by viefep15-int.chello.at (InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id <20091110204308.DEJ8249.viefep15-int.chello.at@edge01.upc.biz> for <ogpx@ietf.org>; Tue, 10 Nov 2009 21:43:08 +0100
Received: from mail9.alinoe.com ([77.250.43.12]) by edge01.upc.biz with edge id 3Yj51d0Gj0FlQed01Yj6rb; Tue, 10 Nov 2009 21:43:08 +0100
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from <carlo@alinoe.com>) id 1N7xXH-0001ew-0t for ogpx@ietf.org; Tue, 10 Nov 2009 21:41:55 +0100
Date: Tue, 10 Nov 2009 21:41:55 +0100
From: Carlo Wood <carlo@alinoe.com>
To: ogpx@ietf.org
Message-ID: <20091110204155.GA5757@alinoe.com>
References: <e0b04bba0910262215td0cf125lb3129947e8f81891@mail.gmail.com> <f72742de0910270951x6b4536d8wef165e850ba16ef8@mail.gmail.com> <e0b04bba0911091956j5edc4840pd5a32d98eff3776e@mail.gmail.com> <4AF8ECDE.2010900@cox.net> <f72742de0911100919r76c337b6i980736db91f7f53c@mail.gmail.com> <20091110201157.GA10861@alinoe.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20091110201157.GA10861@alinoe.com>
User-Agent: Mutt/1.5.20 (2009-06-14)
Subject: [ogpx] Synchronization of gestures (was: Limits to interoperability of scripted objects)
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>, <mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Nov 2009 20:42:46 -0000

On Tue, Nov 10, 2009 at 09:11:57PM +0100, Carlo Wood wrote:
> make animated hugs (or any couple animations) really work (with
> effort).

without*


Here is an idea of how it could work:

* Viewer A (or object) initiates Multi-gesture Request
  to N (other) viewers, this involves a list of the
  animations (UUID) to play for each of the avatars
  involved, and sounds to play etc, and the starting
  position in the world of each avatar.
* Each viewer reacts with: Ok, will try; or Nope, I won't.
  If any viewer denies the request (or times out?)
  then the server informs all viewers that the multi-
  animation was aborted (and why). [ An optional flag
  could be to continue anyway, but without the avatar(s)
  that don't want to. ]
* Once all avatars that want to play the multi-animation
  are known, the server sends them a message: "We have a go!"
* All viewers that have all the needed information to
  continue (downloaded and cached the animations, sounds etc)
  send a message to the server: "ready!"
* As soon as all viewers are ready (optionally, a parameter
  of the original request includes a timeout after which
  the delayed avatar is considered to have said "no"),
  the server informs all viewers to start playing the
  multi-gesture.

And YAY! finally a completely synchronized couple (and
multi) animation, even synced with sound!

Options in case of delays (timeouts) should be:
- Play as soon data available locally,
- Wait till at least N, or at least those, avatars
  are ready.
- Abort completely if any can't play in time.
- If someone is delayed and the rest already plays
  the animation, then the viewer can decide to abort
  or play the animations locally anyway, as soon as
  they become avaiable, etc etc... All those possibilities
  are mere bits in already existing messages, so why not.

As a side effect of this it should be possible to
play a gesture involving animation and sound by ONE
avatar (as are the gestures in SL now) but *synchronized*:
everyone sees it at the same time, and the animations ARE
synced with the sound once the start to play (unlike now,
where the animation is played and 30 seconds later you
hear the sound).

-- 
Carlo Wood <carlo@alinoe.com>