Sunday, November 25, 2007

A Croquet Winter Wonderland

It has emerged as a type of practice here in the United States for people to begin putting up holiday decorations on the weekend after our annual Thanksgiving celebration. In keeping with this, I offer this link to a new video from the folks at EduSim. In this one, they use a projected Croquet space in combination with a very compact eBeam input device that converts any surface (in this case a regular wall) into an interactive surface. The result is an on demand and relatively low cost interactive white board solution ($800-900 US) that, in combination with a data projector ($600-2,500 US) and Croquet software (free), may represent the beginnings of an economical alternative to traditional in-classroom visual communication boards (the typical front-of-the-classroom whiteboard/bulletin board installation is comparable in price). Could this be the earliest manifestation of a new form of broadly available classroom media for K-12?

Saturday, November 24, 2007

Squeak by Example

Croquet is written in Squeak, a modern open-source development environment for the classic Smalltalk-80 programming language (the first purely object-oriented language and environment). Squeak was used because Croquet required a number of capabilities that could only be provided by a true late bound, message sending language. Croquet's relationship to Squeak gives Croquet the property of a purely object-oriented system. This has allowed for some significant flexibility in the design and the nature of the protocols and architectures that have been developed for Croquet.

An essential property of Squeak is its ability to keep the system running while testing and making changes. Squeak allows even major changes to be performed incrementally and within a mere fraction of a second. Another key feature is Squeak's generalized storage allocator and garbage collector that is efficient in real-time so that animations and dynamic media of many kinds can be played while the garbage collector is collecting. It also allows reshaping of objects to be done safely. This is important to the creation and delivery of media rich collaborative virtual environments.

Early on in the project, a Java-based Croquet was considered. However, that approach was abandoned because Java lacks needed meta facilities. In many ways Squeak/Smalltalk is still far ahead of its successors in promoting a vision of an environment where everything is an object, and anything can change at run-time. This is an important property for virtual environments that are deeply flexible and modifiable as an immediate result of the actions people take within those environments. Still, the lack of significant corporate backing and marketing muscle behind Squeak/Smalltalk has meant that less capable technologies are the ones with which most of today's developers are most familiar.

To help more people get familiar with Squeak's very powerful programming environment, the new book Squeak by Example is now being made available under the Creative Commons Attribution-ShareAlike 3.0 license. It's intended for both students and developers and guides readers through the Squeak language and development environment by means of a series of examples and exercises. This is very useful to those who wish to become more familiar with the Croquet programming environment. You can either download the PDF for free, or you can buy a softcover copy from

Saturday, November 17, 2007

Avatars in First Life

This video illustrates what real life might be like if we were limited to the avatar capabilities/interactions presently available in virtual worlds such as Second Life. It very much underscores the limitations in the ways we are able to represent ourselves within today's 3D gaming and chat environments. If we are going to leverage virtual environments to support interactions between people, then we need far better ways of representing ourselves within them. Our representations should ideally be able to project as fully as possible the broadest range of human cues and capabilities. Clearly, 3D virtual worlds have a long way to go in this regard. As a first step, we need to get past the dress-up doll house metaphor that appears to have emerged for interaction within these environments.

The static avatars presently made available as placeholders in the Croquet SDK are far less capable than those of Second Life. Still, the Croquet SDK offers developers an opportunity to change whatever they need about the way people are represented with virtual environments. Opportunities for avatar experimentation are huge. Just imagine avatars that contain action triggers, link buttons, or even multiple on-board virtual environments. The possibilities through Croquet are as limitless as the imaginations brought to bear on the problem (and of course the resources expended in implementing them). The flexibility and efficiency of the Croquet programming environment gives researchers and other creatives far more capability in exploring how best to represent presence in virtual environments than is available with today's commercial 3D world technologies.

I should point out that all of the .mdl avatars that the Croquet SDK now uses actually came from an early version of the Alice project and from Squeak's Wonderland. However, the Croquet team at the University of Minnesota is working on some nicer avatars that will likely be made available in the next version of the Croquet SDK. A preview of the Minnesota avatars can be seen briefly on the Croquet video in a previous post. Also, Matt Schmidt and his team in Missouri are also beginning to experiment with avatar improvements and it will be interesting to see what they come up with.

Tuesday, November 06, 2007

Building a Lesson in EduSim

Here is another video tutorial developed by Rich White at the Greenbush EduSim project showing how to bring resources into an EduSim/Croquet world and how apply textures to those resources.

Sunday, November 04, 2007

Tragedy in the Commons

At sometime during the night of Monday, February 26, 2007 a group of republican Second Life users, some sporting "Bush '08" tags, vandalized the John Edwards Second Life HQ. Though amusing to some, this type of activity underscores the need for secure virtual spaces - not just spaces where anyone, dressed up as anything they wish, can go anywhere and do anything they want. Restrictions based on identity or group affiliation are particularly important for serious simulation-based educational and research environments. Click here for a more detailed view of the damage.

Saturday, November 03, 2007

How Croquet is Different

In recent months, more and more people have been asking me how Croquet is different from Second Life - thanks to all the media buzz around Second Life. Let me break it down this way: Croquet, as a software development environment, is more extensible than the development environments used to create collaborative worlds such as those in Second Life, and before that the unified metaverse of ViOS. These early server-based commercial approaches to establishing large-scale metaverses do not create computational environments that users/programmers can actually control - instead they must rely on constrained server-based computational environments to capture eyeballs for a variety of schemes to derive revenue for those who run the servers.

By contrast, Croquet makes it possible to develop any number of interlinked metaverses that can be deployed independently of a commercial authority or the constraints imposed by server-imposed resource limitations. The less cyberlibertarian of you may find value in the fact that Croquet can also be used by institutions to implement far more capable and flexible and controllable commercial systems than those of Second Life and before that ViOS.

Here are some additional points that distinguish Croquet from its predecessors/cohorts:
  • Croquet's users/developers may freely share, modify and view the source code of the entire system.
  • Croquet is platform and device independent.
  • Croquet's users/developers may freely share, modify and view the source code of the entire system.
  • Croquet provides a complete professional programming language, integrated development environment, and class library in every distributed, running participant’s copy.
  • Croquet-based worlds can be updated while the system is live and running.