Monday, December 27, 2004

Like an Elephant

Time and again many of the new people that I speak with about Croquet immediately (and most certainly prematurely) begin making comparisons between what they think we are trying to do with Croquet and the technologies and categories of technologies with which they are already familiar. With few exceptions, this happens long before they gain even a rudimentary understanding about what we are actually seeking to accomplish through the efforts of this project.

Of course, relating something new to something familiar is a natural way of dealing with what's new. Categories are comfortable. But they can spawn preconceptions or even prejudices that then stand in the way of one's ability to see what is most important or individually unique about a new thing. This is especially true when a large share of a new thing's value lies in the outcome of the interaction between its constituent parts. Emergent properties can have great value...

This is essentially the problem described in John Godfrey Saxe's (1816-1887) poetic version of the famous Indian legend known as The Blind Men and the Elephant in which each observer only perceives a part of the whole in a way that prevents a wholistic understanding of the animal and what it is capable of doing.

It was six men of Indostan
To learning much inclined,
Who went to see the Elephant
(Though all of them were blind),
That each by observation
Might satisfy his mind.

The First approached the Elephant,
And happening to fall
Against his broad and sturdy side,
At once began to bawl:
"God bless me! but the Elephant
Is very like a wall!"

The Second, feeling of the tusk
Cried, "Ho! what have we here,
So very round and smooth and sharp?
To me `tis mighty clear
This wonder of an Elephant
Is very like a spear!"

The Third approached the animal,
And happening to take
The squirming trunk within his hands,
Thus boldly up he spake:
"I see," quoth he, "the Elephant
Is very like a snake!"

The Fourth reached out an eager hand,
And felt about the knee:
"What most this wondrous beast is like
Is mighty plain," quoth he;
"'Tis clear enough the Elephant
Is very like a tree!"

The Fifth, who chanced to touch the ear,
Said: "E'en the blindest man
Can tell what this resembles most;
Deny the fact who can,
This marvel of an Elephant
Is very like a fan!"

The Sixth no sooner had begun
About the beast to grope,
Than, seizing on the swinging tail
That fell within his scope.
"I see," quoth he, "the Elephant
Is very like a rope!"

And so these men of Indostan
Disputed loud and long,
Each in his own opinion
Exceeding stiff and strong,
Though each was partly in the right,
And all were in the wrong!


So oft in theologic wars,
The disputants, I ween,
Rail on in utter ignorance
Of what each other mean,
And prate about an Elephant
Not one of them has seen!

Unfortunatly, the vision of what Croquet really is remains just a vision until we begin deploying a more mature networking technology and the framework of interactivity and worldbase servers as described in whitepapers on the project website. Words do it little justice. Trying to explain it is kind of like trying to describe the smell of coffee to a Martian with no earthly experience. As the character Morpheus in The Matrix puts it so well: "Unfortunately no one can be told what the matrix is, you have to see it for yourself." This lack of experience with the whole is why so many are compelled to relate only to Croquet's consituent parts at the level of the categories with which they are already familiar.

Below I list below some of the typical comments that I hear from people who are new to Croquet. Notice the syntax - it's usually a statement of category followed by a reference to an existing product or approach. The reference part, usually in the form of a question, is for most people the result of a desire to be helpful.

"It's like an open source game engine - Oh, are you familiar with open source CrystalSpace or the Unreal engine and its mod capabilities?"

"It's like a 3D chat room - oh yea, have you checked out things like Second Life or Adobe Atmosphere?"

"It's like a 3D desktop - have you seen Sun's Project Looking Glass, its also a 3D desktop?"

"It's like a 3D learning space - have you gotten in touch with Active Worlds, they are building an Education Universe, aren't they?"

"It's like a collaboration suite - doesn't SharePoint do everything you are trying to do?"

"It's like a videoconferencing tool - gee, I thought NetMeeting already did that, have you looked into that?"

"It's like an operating system - I hear that Longhorn will be 3D and collaborative, right?"

"It's like a digital repository - so do you know about DSpace and the IMS specifications?"

"It's like a browser - do you use Mozilla source code and are you a member of W3C, after all, standards are important aren't they?"

"It's like a learning management system - Moodle and other commercial systems like WebCT and Blackboard do collabrative stuff, don't they?"

"It's a peer-to-peer technology - is it a file sharing program like Morpheus or KaZaA?"

"It's an integrated tool for collaboration, communication, and training - Macromedia Breeze does that, right?"

"It's like a 3D wiki - isn't there a...
(then there is a long pause while they think about it)...hmmm...a real 3D that would be cool!"

Just like the blind men and just like an elephant...

Friday, December 24, 2004

Picturing an Exhibition

The Citris Gallery Builder is a Croquet-based collaborative virtual gallery construction and viewing tool for the humanities. Its one of several interactive collaboration tools for humanists being developed at Berkeley by Prof. Ruzena Bajcsy in collaboration with the students and staff of Citris. The Gallery Builder is being designed with the goal of allowing non-technical users to easily build 3D virtual galleries which contain images, movies, audio, and 3D objects of various types. The galleries are then able to be viewed and modified collaboratively by members of a Croquet place.

Building the gallery is done in a familiar 2D floorplan mode, where the user lays out walls and positions media on the walls or in the space via drag-and-drop capabilities from a content browser into the 2D view. The gallery is then also viewable in 3D. Ultimately, the team at Berekley hopes that this technology will contribute to promoting cooperative interaction between geographically distributed real-world sites through realistic reconstruction of those sites in virtual space in real-time. Special thanks to Orion Elenzil and Tao Starbow who braved the bleeding edge in rolling this out. We salute you!

Click here for more information about the Croquet-based Citris Gallery Builder.

Thursday, December 23, 2004

Talking to Your TV

"Imagine what it would be like if TV actually were good. It would be the end of everything we know." - Marvin Minksy

While visiting Japan last January, I saw a technology demostration that really captured my attention. Its called TVML (TVprogram Making Language) and it could very well change the way we relate to multimedia. It's a script description language being developed by Japanese researchers for use in producing full "TV programs" in real time virtual environments by using computer generated (CG) characters, a voice synthesizer, and familiar multimedia conventions. With this system a user should be able to dictate actions within a virtual space simply by generating a text-based script in real-time. In a TVML script, the contents and actions of a virtual space can be controlled by text-based commands such as "show title#1" or "character walk". The possibility of using voice-to-text capabilities makes this even more interesting. Written or spoken, TVML could be a very compelling way for people to script interactive virtual spaces and simulations using natural laguage approaches. It could also significantly lower the barrier to entry for a good many creative minds and allow for the rapid and low cost development of interactive virtual environments for entertainment, education, and training.

TVML was initially developed by R&D teams at NHK (Japanese Broadcasting Corporation), Hitachi Kokusai Electric Inc., Hitachi, Ltd., Central Research Laboratory, and Keio University. In 2001, the project moved entirely to the NHK where the effort is being led by Hayashi-san and his team and in collaboration with researchers at NICT (The National Institute for Information and Communications Technology). The good news is that they are now working to develop a TVML API and interface module for Croquet!

The first implementation of a TVML-emabled Croquet technology is intended for a Kyoto tourism information and support system. The idea is that a character will respond to tourists questions and guide them to points of interest in a virtual Kyoto. The virtual Kyoto will also be tied in with real-world locations and the technology is therefore being developed for use on multiple real-world display devices. Click here to learn more about TVML.

Sunday, December 19, 2004

Random Acts

We're working to come up with an approach to enable Croquet-based simulations involving ‘random’ events to be replicated on multiple machines. This is an interesting problem for us because of the fact that replication of computation would also replicate generation of the random numbers to be used in a simulation. This would usually be undesireable. For example, if we create a virtual coin toss simulation in Croquet that is intended to produce a random outcome (the outcome of either "heads" or "tails"), we would have to ensure that what might come up as “heads” on my instance is also “heads” on all other clients in the TeaParty. The problem is that if all of us are replicating the calculation of a random outcome, there would be nothing to ensure that what appears as “heads” on my machine would not be “tails” on yours. Solving this problem has deep implications on making the somewhat non-deterministic ODE (Open Dynamics Engine) integration with Croquet both deterministic and collaborative. Setting aside the obvious philosophical treatise that the act of structuring a form of deterministic randomness in cyberspace might warrant, we're presently considering two practical approaches to this issue.

One approach is to generate results on a master machine (the initiator of the event) and then replicating the random number computation (actually a pseudo-random number computation) on all other machines in the TeaParty (one machine simply tells all the other machines in the TeaParty that a new final result has been produced). In this way, when the triggering event or gesture happens on a particular machine, then that machine consults its own random number generator to produce a result. When the same event or gesture occurs on another machine, the random number generator on that machine is consulted to produce the result. For moderately complex simulations, there will be little guarantee of uniformity across ones that are moderately shared.

Another approach would be to get all participants to behave as if they are using the same random number generator. This would involve creating one random number generator that produces a well-distributed sequence of random values, regardless of which machine originates the request for any one of these values and the resulting sequence would be shared by all members of the TeaParty. In so doing, each request for the next random number would be shared as a TeaParty-wide event by all participating machines and no machine would be permitted to request an additional random number on its own that is not seen by all the other machines. This does not necessarily mean that there would be one generator for all purposes in all simulations running in the TeaParty. There could be one shared generator per ball in a billiards simulation, or one shared generator per billiard table in a simulation, or even one per TSpace. The point being that each of these shared generators is individually a single conceptual generator that is shared by all machines participating in the TeaParty.