Sunday, October 17, 2004
Another thing we're now working on is the integration of video into Croquet. Imagine doing away with the stilted and often silly avatars in the current build and replacing them with a video derived from the web cam of each participant of a Croquet space. By making this possible, we can move toward enabling peer-to-peer video conferencing within Croquet spaces - without the need for a server! So far, we have been successful in integrating two-way video (showing both your own live video and that of a peer as textures on two avatars in a Croquet space). Right now the performance could be improved a bit. We're getting refresh rates of about 3-4 refreshes per second for the textures applied to an avatar (while the frame rate of the space is largely unaffected). The refresh rates are much higher when video textures are applied to static objects. At this time, we're not quite sure where the bottleneck of the refresh rate might be. We could probably improve performance via a more complex sort of video than sequence of individual images (although a 1,000 Mbit network could theoretically carry about 1,300 aggregate frames/second at the largeish 160x120, 32 bit depth we are using). Assuming that the clients are arbitrarily fast, which they are not, there would be enough LAN bandwidth after various overhead for many to many broadcast of perhaps 100 10 frames/second videos at 96x96 pixels. That means that a conferencing approach might not need optimization in a LAN environment with fast switched connections to peers running fast and well-optimized Croquets. We're hoping that it will perform about as well as any other Croquet visual data set manipulation. Still, our preliminary work has been done in the pre-Jasmine build. Right now we are getting our stuff into Jasmine for some demos in early November. This means that method names and such may change and require some re-writing. I am also designing the TV set-like 3D objects in Max that will carry the video textures in a Croquet space.