Archive for the ‘OpenSim’ Category

Tribal One Integrates OpenSim and Facebook

Tuesday, August 12th, 2008

The video above (see here on YouTube) of an OpenSim integration with Facebook was posted today by Stefan Andersson of Tribal Media also see his blog here. This is the third in a series of videos that introduces Tribal’s new concept for 3D/web integration.

The picture above shows the in the left pane fetched pictures from Stefan’s Facebook photos. As Stefan explains a hybrid web app is talking to the region to change the picture accordingly and pull the photos into frames on the wall (for a more detailed technical explanation see here).

These videos (see the first here) from Stefan and his partner at Tribal Media, Darren Guard, Stefan explained, demonstrate as proof of concept how a “3D web architecture” could look and feel.

This concept has quite far reaching implications to many or our current notions of how inventory, virtual economy and content will work in virtual worlds. Stefan explained:

Sufficient to say is that Tribal One was an experiment, showing some concepts - much like realXtend is introducing some innovative new concepts. For example: Who creates your ‘inventory’ and what are you supposed to do with that? In our concept, the ‘inventory’ is a set of services that I can use to interact with the world, i.e, I have a “pictureFrame” in my inventory that, when I drag it onto a wall, the act of dragging it onto the wall instructs the region with the wall to use that url to fetch the definition of that pictureFrame, as well as showing that pictureFrames application web page to me. And, when I interact with that web page, that web page interacts with the region to change the picture in the frame. Contrast that with the notion of an ‘inventory’ that contains a set list of stored objects that I can ‘rez’.

The next video Stefan noted will demo a ‘friends’ tab and you can choose to ‘join’ or ‘visit’ them. “The point there being not having to run, fly or teleport just click. Also, the clip shows ’snapping.’ the picture frames ’snap’ to compatible surfaces something you’d like in Second Life.”

Interview with Stefan Andersson

Tish Shute: What are the goals of Tribal One?

Stefan Andersson: One of the central goals with the Tribal Server platform is actually about cost-efficiently adding 3D to existing communities or intranets. We did the Tribal One to:

1) show how easy it is to build what we call a “Community Provider” which basically is a connector between an OpenSim-based server and any given community or intranet - the ‘provider’ is just a small piece of code that provides authentication and profile data for the 3D region.

2) show how a hybrid web/2d interface could look, and address those very questions that we discussed would be interesting to ask Avi Bar-Zeev (see full interview here).

3) show our concept of 3D web applications, where a user works with an application trhu a seamless mix of 2D and 3D interactions, all resulting in http methods on a simple web application in the background.

We wanted to show how third-parties could create 3D-aware applications without coding anything but web services, for example in php. This has two great benefits; a) you can let web-coders (of which there are plenty) do the work of 3d-coders (of which there are few) and b) you can utilize existing web service contracts and security solutions when passing over trust boundaries, which would let a 3D-host securely interact with public web services, instead of letting a hosted region have direct database access.

Tish: Is it correct to say while your experiment here provides a nice solution to identity management between 2D and 3D spaces but it does not approach the issues that OGP and AWG (Architecture Working Group) are dealing with re trust management now, where the real meat on the table is now inventory and permissions and economy?

Stefan: That would be correct; in our model, the inventory actually consists of url references to web applicatons; for example - the picture frame that is visible in the clip I’m uploading, is in the inventory as a url to a web application that creates the xml definition for the 3D object

We are aiming for something a bit more ‘active’ than a static collection of statically stored assets.

We wanted to proof-of-concept an approach where you had an application generating the inventory and the objects in the inventory, as opposed to having a static databse listing of statically stored items.

So, the inventory is generated on-the-fly for the user, depending on what services he or she has subscribed to, and how those services are configured - not just by how stuff has been given/taken.

So, if you had an Phat wardrobe node in your inventory, for example, Phat could add items to that node depending on what you did on their web site

Tish: And that would be assuming they offered virtual clothing right?

Stefan: Yes, exactly.

Okay, take some virtual clothing company - the point is that the inventory, in this case, could be modified ‘from the outside’. Of course, in an SL-centric world view, that’s outrageous, but if you thought of this from a service-centric view, it would make sense.

Tish: But protocols could be worked out to extend this beyond Tribal to other OpenSim worlds and even Second Life assuming those other worlds wanted to participate?

Stefan:Yes, definitively - we did this to show how a 3D web architecture could look and feel.

Tish: Server centric is like Tribal where you are basically running your sim on your own PC

Stefan: Yes - we actually based all this on very simple web protocols; the ‘web viewport’ concept is just an extension of the existing OpenSim object exchange xml ’standard’.

Tish: And while this idea would have no place in the old SL grid - would it be more feasable to integrate it in the new Linden Lab Open Grid with the agent domains?

Could agent domains say choose to opt in and opt out of these kind of web services?

Stefan: To be honest, I’m waiting for the AWG (Architecture Working Group) to solve the ‘inventory’ issue before I would venture using the term ‘agent domain’.

Tish: So when there is inventory sharing that is when the agent domain comes of age in your view?

Stefan: Well the question is: Who creates your ‘inventory’ and what are you supposed to do with that?

In our concept, the ‘inventory’ is a set of services that I can use to interact with the world.

Ie, I have a “pictureFrame” in my inventory that, when I drag it onto a wall, the act of dragging it onto the wall instructs the region with the wall to use that url to fetch the definition of that pictureFrame, as well as showing that pictureFrames application web page to me.

And, when I interact with that web page, that web page interacts with the region to change the picture in the frame.

Contrast that with the notion of an ‘inventory’ that contains a set list of stored objects that I can ‘rez’.

Tish: And at the moment in AWG discussions ideas are limited to Second Life models of inventory?

Stefan: That is my understanding

Again, Tribal One is not a ready-made product - it’s a vision of how future 3D/Web applications could function.

We just need somebody to pay us to finish it! *laughs*

Tish: Is there any reason why assuming AWG figure out how to manage the conventional notion on inventory this concept couldn’t be layered into extended protocols and options?

Stefan: I would assume the AWG solution would be able to fit our concepts - since we’ve already done this with the existing SL protocol.

Tish: Do you see this new notion of inventory offering new oppoertunities to content creators to be rewarded for their work?

Stefan: Well, with this prototype we were more looking at how the web works; we were more concerned with generating and distributing content from a service point of view.

This concept is more oriented towards users utilizing a business service, like a web site.

In our scenario, content is created by server-side services written in for example php.

imagine, if you will, if the SL model was based on scripts that were able to create objects, instead of objects having scripts.

Tish: Won’t this involve the development of lots of new tools for content creation?

Stefan: Well, yes and no; it’s like with the web you need people to do the designing, and then people to do the scripting, but you also need people to do the server side coding.

We are not addressing the current SL paradigms of content creation we are addressing what we felt was missing; a platform for organisations to make dynamically created content, like the difference between a static html page and a php page. Both can have client-side scripting on them, but the php page can pull data out of databases - any kind of databases - existing databses.

Take the example with the “where I’ve been” application in Facebook: You add that app, then you can fill in where you’ve been, and you get a nice map of where you been, and you can compare that to that of your friends

Now, that’s a database creating those images out of the data that you and your friends entered.

What we did, was an api, so that the author of that facebook app could add a set of php pages, which would let users share in inventory item, that was an url to an web app that returned the definition for a map of where I’ve been, so I could have that same map on the wall in my 3d living room.

Tish: So this implies a completely different model of content creation and economy to the one Second Life uses?

Stefan: Well, in these kinds of business scenarios, the content in itself would probably have little value, but the service that generated the customized content would have great value.

Tish: So this will raise the bar for people making a living from content creation? right?

Stefan: Most definitively. But that is how it should be.

Tish: I’m not sure everyone will agree with that!

Stefan: Oh? That’s the back side of progress; the ‘advanced’ part of ‘advancement’ if you will. That’s why it has value.

Tish: Well one of the things that made SL popular was the fact that a non professional developer, just someone with talent, could make a few Lindens creating content.

But, don’t you think the two models of content production will work together?

Stefan: They still will be able to. Most definitively in SL.

Again, it’s like with the web; in the beginning, people could make money out of just being able to notepad some html and ftp it to a server.

Today we have .NET server side database programmers doing the server bits, and educated professional graphical designers doing the ui and design bits.

Tish: Won’t the web services model have to rest in some way on a template understanding of content?

Stefan: Of course it has. You’re very right about that.

But then again, it’s not an ‘either-or’ - it’s a ‘both’.

And with that, a whole new spectrum of utility.

Tish: Perhaps, the two models will find interesting ways to interact in the end? They already do to some degree?

Stefan: Yes, you know these malls with 10 packs of skins, where the only difference is the combination of skin and makeup?

Or hair variations?

A good designer teams up with a good programmer and creates one good app that just delivers that exact combination.

There is good design and bad design, good design will always be coveted.

Tish: So do you have any summarizing remarks?

Stefan: Social games and technical innovation aside, what is needed to bring forth the 3D web revolution are good examples of business and user value - applications reaching beyond social networking bubbles and into the intranets and databases of organizations - and I believe Tribal Media has shown that we are very well suited to help bring those applications to life.

,

Will the future of virtual world’s be in the browser? Interview with Avi Bar-Zeev

Friday, August 8th, 2008


So here it is, as promised in my previous post, my interview with Avi Bar-Zeev! Avi is a key virtual world thinker, now with Microsoft, who has put time and energy “into trying to figure out where the real value is with 3D.”

Avi was co-founder of Keyhole, maker of Earthviewer (which later became Google Earth). Also, Avi developed technologies for Second Life, including the procedural 3D object rendering code.” The pictures above are from his portfolio (from left to right, Linden Lab’s Second Life, World Design’s Virtual Environment Theater, Disney Imagineering).

I requested an interview with Avi because it seems in the recent “cambrian explosion” of browser based virtual worlds there is a lot of confusion about what “in your browser” virtual worlds really bring to the table.

Are they a step backward into little more than 3D chat or a harbinger of a future seamless integration of fully immersive, user generated virtual worlds like Second Life into the web?

After reading Avi’s post, “Volumes of Reading,” where he points out some of the confusions about browser based virtual worlds in this TechCrunch post, notably an elision of the difference between “in-browser-window” and truly “hosted in a browser,” I became convinced that if anyone had a clear view of what was actually going on, and what the future might hold for virtual worlds, it might be Avi.

If you have read Ugotrade before you know I am a tireless promoter of open source virtual worlds, in particular OpenSim. Why OpenSim? Because, as key OpenSim player, Stefan Andersson, Tribal Media AB, puts it, “OpenSim was thought to be a rapid prototyping testbench for wannabe paradigm shifters. That is really the heart of OpenSim.”

And yes, “open and distributed will win!” IMHO.

In his post Avi made some interesting comments about Adam Frisby’s “firestarter” XBAP based in your browser viewer for OpenSim and Second Life, Xenki. So my interview started, with the questions about the significance of Adam’s work, “Creating An In Your Browser Viewer For OpenSim/Second Life.” But Avi’s eloquent answers quickly made for a wider discussion about the future of virtual worlds.

Thank you Avi for being so generous with your time!

Will the future of Virtual World’s be in the browser: Interview with Avi Bar-Zeev


1) Could you explain more of your thoughts on a truly “hosted in the browser” open viewer and what the potential and limitations for such a project are? Have you since your blog post examined further the potential of Adam’s Xenki project in this regard? Are there other truly hosted in the browser projects that you know about that have potential?


There are a number of embedded 3D viewers out there now, without naming any names (one of the caveats of working at Microsoft now is that I should generally try to avoid openly praising or criticizing specific companies, though I’ll make it clear that all opinions offered here are my own and do not represent my employer in any way). Most of those viewers are deployed as ActiveX controls, which means they are essentially compiled OpenGL or DirectX applications with their 3D output windows and input events glued to the browser window, and with an added ability to invoke some of their functions via Javascript.

The adoption rate for those sorts of approaches have been pretty low, it turns out, mostly due to “effort to install” and the issue of “trust.” ActiveX controls can do just about anything on your computer that you can, and even well meaning ActiveX controls could potentially be exploited by malicious websites via bugs, which is coincidentally why they require so much pain to install. You should really be careful about which plugins you let on your computer, because I guarantee not all of them have been thoroughly secured.

Now, any one of those plugins could take off the way Flash has. But it’s a chicken and egg problem — a critical mass is needed to attract a critical mass. Flash broke through largely because of one killer app: web video. Prior to that, it was common to hear that Flash-based websites were over-designed, pretentious and annoying. Along came YouTube and others and now everyone has Flash installed almost by default.

Being “hosted in the browser” implies a few things that ActiveX can’t handle. First, the 3D viewer should run in a sandbox, with prohibitions against accessing or writing to other parts of your computer. That’s a benefit of the XBAP method Adam picked. But “hosted” also typically implies more cross-platform portability, much like Javascript, which his chosen method doesn’t provide. XBAP does work equally well in IE and Firefox on the PC with .Net installed, so that’s a plus. But a Mac version, for example, will be more difficult to come by. To be fair, even Javascript, incl. AJAX apps, often require a few platform-unique code paths, but hopefully only for low-level logic, not the whole app.

The real “hosted” in browser projects out there right now all use either Flash, which isn’t really part of browsers but is so ubiquitous that it might as well be, or Java, which was designed to handle the sandboxing and cross-platform issues right out of the box. Flash is unfortunately still quite slow for any serious real-time 3D. And Java has some lingering problems, like startup time, which I’m still hoping to see resolved someday.

The best hope for true “hosted” 3D viewers though is for 3D to become a native element of existing browsers — OR — for someone to write a new class of browser that’s built to handle 3D and 2D equally well. It’s the best hope, simply because 3D is a superset of 2D — anything you can do in 2D can be done in 3D with some degrees of freedom left blank. 3D elements should be able to be mixed effortlessly with traditional 2D markup and vice versa, selecting, cut, paste, flow, and so on. And that’s never going to happen in a simple plug-in.


2) While Adam explained to me his viewer Xenki will have a tighter coupling than say Adobe Acrobat which opens solely in a new tab, it will not be a truly hosted in the browser and not be using javascript or canvases or anything like that since it lacks the ability to do things like access UDP network stacks, etc. So it seems cross platformness is still an illusive goal!

Is a truly hosted in a browser viewer feasible right now considering the feature sets of browsers aren’t sufficient yet to do 3D graphics or advanced networking. And do you think the latter will ever be the case?


Alas, I don’t see enough 3D support in browsers or even Flash for the very robust and performing hosted viewers just yet, but maybe soon. The best approaches for 3D from a technological perspective are still ye-old stand-alone application, where you simply have more ability to control the variables. The main impetus for hosting or at least plugging these 3D viewers into browsers is a business one — trying to break the adoption limits we’ve seen and make it a seamless web-like experience (assuming the web ever is). Why should anyone care if 3D is implemented differently from text and video when they’re just bopping around the web? But right now, they should, because 3D in a browser window just doesn’t work as well.

On the other hand, one thing the web is very good at is enabling mashups to find opportunities the original application makers never found or had time to explore. And so for the truly visionary companies who are willing to open up their 3D viewers to external mashing, they may find a more organic path to Flash-like ubiquity that no mortal marketing budget can afford.


3) Adam’s work towards a “hosted in your browser viewer” for OpenSim and SL is a separate project to a full scale Open Viewer project. (With Xenki he is aiming for a more lightweight browser-oriented client which will be more useful for people just casually visiting.)

But while doing a from scratch Open Viewer is an enormous and very difficult task, most advocates for open source virtual worlds and interoperability seem to agree an Open Viewer project is very necessary. But at the moment I think Open Viewer is in a very rudimentary stage (unlike OpenSim which is really moving along at a fast pace). What are you thoughts on possible directions for a full on Open Viewer project? How and where might energy be best directed in this regard?


I’m not convinced an Open Viewer will be any more or less successful than other 3D browser plugins, as long as it takes a similar approach. I think you could in this case try something more unique to open source — the main advantage you can exploit is to leverage other open source projects, like, say, Mozilla, with your code to either enhance Mozilla under the hood or produce some new combination, say, using the nice layout engine, JS interpeter/compiler, and network support from Moz with some new 3D rendering layers.

The main problem with getting any 3D viewer adopted by the mainstream isn’t the openness of the code, IMO, but the suitability of the technology, UI, etc..

For example, Real Video was around for a long time. Philip Rosedale in fact was a pioneer in that regard. But Web Video didn’t really explode into UCC until the quality of the experience increased to at least YouTube levels. That meant better compression and bandwidth to avoid the “buffering…” delays, better resolution, more viewable window sizes, and much simpler installation than Real Video offered (i.e., no registration and those annoying ads on my desktop every day — ymmv).

Whoever solves those problems for 3D can become the viewer of choice. And thus far, I’d say Google and Microsoft have the biggest advantages in that regard, if for no other reason than they have market and mindshare to attract lots of people at once and see what sticks.


4) You mentioned that when/if “one of the “3D chat” clients pushes into that territory” it could be a game changer? Could you elaborate more on what you think might be the magic ingredients for this?


Lively could add some real user created content, for example. They haven’t shown much interest in making SketchUp a more vital part of that experience, except maybe at the file level (i.e., create something and then publish it, unlike SL’s instantaneous collaborative editing — I’m referring more to Google Earth now, but I expect this for Lively too). Caligari has been collaborative for a while now, and it’ll be interesting to see what direction they want to go next. Vivaty just announced some more UCC tools, which I haven’t yet tried out, so I won’t comment, except to say that VRML/X3D still feels more like Real Video than YouTube.

That’s all to say that SL is still fairly alone in the degree to which it lets people craft and control the world without direct corporate control. The closest analogs for SL are actually the lego-like worlds like Roblox and, well, the Lego MMO, not other social worlds.


5) Considering your depth of experience in networked 3D environments and, that you have generously offered to work up a blog entry on LLVolume and a procedural geometry primer, do you see yourself becoming more involved with the community effort that is beginning to gather around OpenSim?

I’m a big fan of open source. I’m not as big an advocate of SL’s gridded approach to building the Metaverse, though it works well for them. I’m happy help document the open sourced LLVolume because I had a big hand in it originally and you shouldn’t have to work so hard to reverse engineer it at this point. I’m sure even Linden Lab would want you making better use of that code.

6) I totally agree with you, the future should hold richer, smarter object formats. But at the moment the thorny issue of trust management in virtual worlds seems to be the first hurdle to get over? Do you have any thoughts on this? I am not sure if this is an issue you are interested in? But, just in case, here is the chat on this issue from the AWG to show u the stage this discussion seems to be at in the recent Open Grid Beta between LL and OpenSim.


http://wiki.secondlife.com/wiki/User:Zero_Linden/Office_Hours/2008_August_05).


It’s a huge topic to cover, but I’ll take on a few aspects. One is basic security. A procedural language like Java or Javascript needs to be sandboxed to avoid compromising your PC, as would any system that delivered 3D objects along with procedural methods. But a simple declarative language might be the way to go. I’m guessing that’s one reason why the XAML stuff Adam is working with works as well as it does. Turns out, a simple declarative language could be extremely expressive in terms of 3D shapes as well, and even the term “procedural geometry” may be a misnomer, unless of course actual code or script is being delivered for each new object.

Another aspect of trust is transactional security — maintaining the integrity of who owns what. And on that front, my views might be a bit out the mainstream. Since I believe that no electronic system can ever truly prevent digital copying, we should actually be thinking about how to reward authors in a “post-scarcity” environment, where any object can be freely copied without restriction — it’s the original designs, unique patterns in the universe that we should try to reward (but again, not restrict).

For example, I’d rather see the system track uniqueness in objects, and have the ability to determine which objects are “derived” from which (and by what percentage) to create a sort of “tree of authorship.” People could copy and modify designs at will. But when any derived object makes any actual money, the system, knowing the derivation chain, could flow proportionate revenues back to each partial author. If objects don’t make money, there’s nothing to fight about. But authors never need to worry about who’s copying them — in fact, they’d actually want people to copy them.

In such a system, authors are encouraged to maximize originality and usefulness of their objects because anyone who uses or derives from your object even indirectly could potentially be a revenue source down the road — in fact, the farther down the road, the broader the base in general. Imagine I’m the original author of “the basic sphere” and see how often that would be used or modified by others.

In this case, the algorithm is the final arbiter of how similar two objects are and which came first, so as to handle cases of two people independently creating similar forms. The right kind of modeling system for this approach would work “by example,” encouraging reuse vs. reinvention. But that part is a much longer discussion.


7) Leaving the tech stuff aside for a moment, what about the user experience in a new browser hosted viewer? How should the user ‘be’ in several places at the same time, the way he is on a web site? How would you have a shared-space continuum like SL operate over several ‘pages’?

No one has really solved this yet, and it’s probably the biggest hole in virtual worlds right now. Some people take the literal shot at an answer, saying a “room” is an analog to a website. In that sense, multiple connected rooms (using, say, portals as the analog to href links) makes some sense.

But one of the advantages of 2D web pages is that they can lay out a good deal of information in a simple static (1D scrollable) format. When you start plastering content across multiple walls like some art gallery, many people get lost or frustrated that it’s not all in one easy place. The benefit of 3D should be to add spatial context, not make things harder.

And it turns out, by introducing some cute navigational constraint like walking, flying, etc.., you may actually detract from the user experience as compared to 2D. You’ve added a handicap of having to move at a reasonable pace by real-world or perceptual metrics. vs. the near instantaneous click of a mouse on your 2D screen. You’ve actually lost something in translation.

One experiment I tried for a company tried to work around that by expanding your field of view to a full 360 perceptual space using some rendering tricks. I wouldn’t call it successful, but there were some interesting notions that grew out of it for being able to simply click on what you want vs. having to walk or fly to get close enough or to move around to see something without distortion. I think that’s probably why Lively makes every thing in the world clickable/dragable, which leaves MMO users scratching their head over why you have to drag your avatar around too.

Frankly, right now, I’d be happy to see a mostly 2D web page with 3D elements popping out as needed. We can gradually build up a working vocabulary of 3D concepts in the way we built up a vocabulary of cinematography for understanding emotion in movies and of web browsing too. We tend to rely on those shortcuts without realizing. This will take some time to work out, so any standards we espouse must have the flexibility to experiment built in.


8) Do we need to ‘divide the protocol cake’ - ie, that stuff like the SL protocol, simply is too much for one protocol and a layer model is needed where several standards and protocols can coexist like the web?

Note: This question and the one above come from a chat I had with Stefan Andersson of Tribal Media. Stefan also added: “I mean, that a 3D world shouldn’t be seen as _one_ application, up in the application layer. I believe we need the “http 3.D” and the “vrhtml” which is what prompted this question.

I don’t think one protocol is ever the answer. I think it will be important to fold SL support into any attempted standard. But not everyone wants to build their world out of prims.

On the other hand, I think the other flavors of virtual world protocols could benefit from more procedural support for world-building. One of the reasons they don’t work as well IMO is that they force the client to download way too much data, especially geometry. Download times for 3D worlds need to be comparable to websites or faster (given the real-time rendering), though many currently require several orders of magnitude more data before they grant the user some navigational control. One of the best things about SL’s protocols is how the world is progressively streamed in. That’s the most important part to keep.


Anyway these questions are just for starters. Any thoughts you may have on the development of an open interoperable metaverse/VWs are interesting to me! So please feel free to give me pointers to directions you think are of interest.

You might want to look over some older blog posts of mine about Web 3D, semantics, and even scenegraphs, as they all apply to this discussion. I believe I had a post on post-DRM authorship as well.




Xenki: An “In Your Browser Viewer” for OpenSim and Second life

Thursday, August 7th, 2008

The story of Xenki, an in your browser viewer for OpenSim and Second Life (you can download the source on Forge.OpenSimulator), began with a stream of tweets from Dr_Manhattan (Kyle Gomboy, avatar G2 Proto) - power house of the Microsoft Developer Community in OpenSim (see Project Manhattan), and Second Life (see here) - announcing the merging of DirectX and WPF in the .NET 3.51 SP1 release.

I was not the only one to notice these tweets, and the links were soon in the OpenSim IRC channels, and my friend Peter Quirk, EMC, quickly circulated them in the realXtend developers’ Google discussion group. And most importantly, perhaps, almost immediately the phenom developer of OpenSim, Adam Frisby, started coding up an in your browser viewer for OpenSim and Second Life, called Xenki (see Adam’s blog for a series of posts) that show just how fast Xenki is progressing. The picture above is of Wright’s Plaza, OSGrid. As I have been there many times, I can testify it is beginning to become recognizable as Wright’s Plaza in Xenki.

Now Zain Naboulsi, Microsoft’s Virtual Worlds Evangelist, has introduced Adam to David and Gerhard, the Project Manager and Lead Programmer respectively on the WPF Graphics Team, who Adam writes: “have graciously offered me their time to help answer some performance related questions with regards to the Xenki viewer I have been developing.”

Here are some quotes from Dr Manhattan’s first tweets:
“Why is SP1 for Visual Studio 2008 and .NET 3.5 a potential virtual
world shocker? WPF + Direct 3D love! Can you say powerhouse 3D
client?”
“You will be able to treat Direct3D content just like an image within
an application”
“A little bit of grid math translation from OpenSim, some MSSQL 2008
database coding, mix in a little .NET 3.5SP1 WPF goodness=Virtual
Viewer”
“.NET 3.5 SP1 in WPF=new shader effects architecture/API that allows
visual effects to be created & applied to any control/element in WPF.
Read about SP1 here.”

Avi Bar-Zeev, Reality Prime, comments on Xenki

Avi Bar-Zeev was one of the first people to pick up on what Adam is doing with his in your browser viewer - see this post (also see Avi’s blog Reality Prime for a lot of important posts for virtual worlds). Avi is a key virtual world thinker who has put time and energy “into trying to figure out where the real value is with 3D.” He was co-founder of Keyhole, maker of Earthviewer (which later became Google Earth ). Also, Avi developed technologies for Second Life, including the procedural 3D object rendering code.” In this post, “Volumes of Reading,” Avi begins with pointing out some of the confusions about browser based virtual worlds in this TechCrunch post, notably an elision of the difference between “in-browser-window” and truly “hosted in a browser.” Anyway Avi goes on to point out some of the weaknesses of the current crop of browser based worlds that:

still suffer from other in-browser-window issues, like what happens if I hit the back button or refresh the page, or simply scroll the window down so I don’t see my nice virtual world anymore. Or worse yet, what happens to my mouse wheel, for which, for example, the GE plugin steals control. Philip is right that it’s simply not as immersive as a full-screen stand-alone client, and web integration of 3D worlds is a much more complex issue than just placing windows on pages.

Avi reports he followed an interesting chain of progression to Adam Frisby’s blog about his work on Xenki. Now here I take some credit for being an actor in my own story as it was my comment on the Tech Crunch post that led Avi to Adam’s work on Xenki!

I was very excited when I read Avi’s post because I realized one of the best minds in Virtual Worlds was looking at Xenki with interest! So I began to formulate some questions for Avi. See my next post for some fascinating answers to a wide range of questions on the future of browser based 3D, OpenSim and the future of virtual worlds.

Interview with Adam Frisby, on Xenki

Adam Frisby: I’d like to set it up as a viable alternative viewer project - and my goal is to get a revised v 0.1.0 out by the end of the week. Functionally it will be about the same as where I am now (perhaps with some minor additional features), but the interior will be a lot cleaner leaving room for expansion down the track.

Tish Shute: What is the difference between what you have done and what Darren Guard did in some recent late night hacking? (see screen shot below from the post of Stefan Andersson, Tribal Media AB - “Using XABP to embed the Second Life Browser in a Web Page”).

Adam Frisby: He took the same base API that I’m using, but used it to embed the SL Client’s OpenGL rendering surface on it. It’s clever - but I don’t think it’s more than a clever trick because the SL viewer still has all the warts we face. Which means it’s not fantastic in the longer term.

Tish Shute: Have you decided on what rendering engine and physics you will use?

Adam Frisby: Well, physics remains serverside, but at this stage rendering will have to be done mostly in-house I’m thinking, although Francis Chung has expressed interest in helping and has made the suggestion that we look seriously at the Irrlicht engine.

Tish Shute: Is Francis Chung part of the lrrlicht engine team? And when you say rendering in house do you mean little dynamic rendering?

Adam Frisby: No, he’s a SL developer - worked on a lot of high profile projects.

Tish Shute: How does the Xenki viewer project relate to the Open Viewer project?

Adam Frisby: I’ve still got people working for me doing work on OpenViewer and that’s still making it’s own way - but I think there’s two different niches here. OpenViewer is general purpose alternate viewer - much like the mainline SL viewer. Xenki I’m aiming at something possibly a bit more lightweight and embeddable.

Tish Shute: How does using XAPB compare to using Active X?

Adam Frisby: Well, first - it runs on Firefox without anything more than .NET installed. Second - it’s sandboxed. The XBAP has a very tight cage - whereas ActiveX is unconstrained and has fully access to your system. ActiveX is pretty much universally decried these days as a really bad idea.

XBAP addresses a lot of those concerns by at least paying some attention to security.

Tish Shute: So what are the possibilities do you think for a browser hosted viewer for OpenSim/SL?

Adam Frisby: I think it makes some sense to go after the same market as Lively - to grab the instant gratification instant presence that Lively gets right. There’s no reason it should be mutually exclusive. A point I think Philip missed in his recent interview on the subject.

Tish Shute: XBAP is what enabled your sudden progress on Xenki. Can you say, in lay persons terms, what were the key factors that came together to allow you to make Xenki take off at lightening speed?

Adam Frisby: Sure - Programming libraries are basically bits of prebuilt code you can use as shortcuts. For example, Instead of having to program common infrastructure - such as communicating with your 3D hardware to display a simple scene - a library called WPF allows you to do all of that with just a handful of lines of code. The more detailed and well written the library, the faster you can develop your applications. The downside can be that sometimes they also box you into a specific way of doing things.

In this case, the WPF API (which XBAP employs) is very rich in terms of 3D functionality and allows us to create complex scenes fairly simply. It does have some drawbacks (which I wrote about), but it does lend itself to very rapid development.

Tish Shute: The Lively architects did a talk in Second Life and Lively organized by World2Worlds the other day. They said that Lively is based on Active X.

Adam Frisby: Lively uses a standard 3D engine wrapped up to render on an ActiveX control. It’s certainly a lot of work - but for what I’m doing, we don’t need to start with that level of complexity on the table.

For one, it would slow us down tremendously when it comes to simple tasks such as debugging - and mandate a large team in doing so.

Tish Shute: So do you think you will be able to get some of the same distributed functionality that is the most appealing bit about Lively for me at least!

Adam Frisby: Well, distributed infrastructure is a matter for the backend servers I think. So a modular OpenSim enables this potentially hehe!

Yeah, that’s one of the goals OpenSim is aiming for.

Tish Shute: Yes the mantra is “distributed and open will win” right!

Adam Frisby: Yep! :)

Here are some screen shots from Adam’s blog “of things sort of almost rendering correctly.”

and one more from Adam, “showing the detail of one of Cubey’s planes (in this case his Ornithopter - and it renders correctly!)”

The Open Grid (Beta): The First Step to Interoperable Virtual Worlds

Thursday, July 31st, 2008

Open Grid Public Beta opened today (see Second Life blog) marking the beginning of a new era of interoperable virtual worlds and a new architecture for Second Life TM. The magic of “running code and consensus” is here and, at least between OpenSim and Second Life TM, avatars are jumping back and forth. Hamilton Linden, who is leading the Open Platform Product Group (OPPG) as Director, Engineering for Linden Lab said:

The Public Open Grid Beta is an important step towards opening up the Second Life Grid to become interoperable with other virtual worlds. Having successfully demonstrated interoperability with IBM, we’re excited to begin interoperability testing with the entire OpenSim community.

In the picture opening this post Adam Frisby (avatar Adam Zaius) one of the founders of OpenSim, David Levine, IBM, (avatar Zha Ewry) who wrote the interoperability code. and myself are about to teleport from the Ugotrade OGP (Open Grid protocol) enabled OpenSim to the Linden Lab Open Grid. The teleport to an external region option is in a pull down menu that brings up the box you see on the left. If you join the Beta and want to visit, my region URL is http://ugotrade.net:9000

As these teleports are about moving identity, at the moment, and no digital assets are moved, we are all Ruths.

You must join Gridnauts in Second Life TM if you want to participate. The download and instructions for the OGP (Open Grid Protocol) Open Grid Viewer will be on the Wiki. And, to get a zipped binary package to set up an OGP enabled OpenSim you can go to the OpenSim forge site. Thanks to Mono and .NET using the same bytecode format, the same package will work just fine for .NET and Linux/Mono. Mike Ortman, DeepThink has generously created the zip package which he will keep updated.

In the screenshot below, Adam Zaius, Zha Ewry and Tara5 Oh are preparing to teleport back from Open Grid to the Ugotrade OGP OpenSim.

Linden Lab’s New Architecture

But along with interoperability the Open Grid Beta marks the debut of Linden Lab’s new architecture that has been incubated in the Architectural Working Group (AWG) spearheaded by Zero Linden. As Zero Linden explained:

A key component of virtual worlds that sets them apart from web sites, is that you interact with them with your chosen identity. Separating out the Agent Domain enables your identity to be held and hosted by a organization of your choice, and enables your identity to be truly independent of the many organizations that will eventually host regions. The web can’t do this - your identity on a web site is tied up with that web site. You have an account at each web site. In virtual worlds, independent persistent identity is key to the experience - and Agent Domains are just the technical mechanism that enables them in an open virtual world.

The interop protocols developed in AWG and used in David Levine’s, IBM, (Zha Ewry in Second Life) interoperability patch not only play an important part in enabling virtual world interoperability, they will be a key component of the new Linden Lab architecture and eventually part of their main production grid Agni, that is the grid we call Second Life. Zero explained:

The plan is, that once this is shown to work, that this code base will eventually be rolled into Agni, probably even before Agni is opened up to outside grids. TPing, and Login will be done on Agni using these interop protocols as the standard method. Of course, there are legacy viewers to support - so the existing stuff isn’t going away for some time. And we’ll proceed very cautiously onto Agni, with “kill switches” that allows to revert all viewers, even new, back to the old pathways.

Zero Linden and Zha Ewry will be speaking on “OpenSim and the Future” - the progress they have made, and the implications of their work at Metanomics, Noon PST on Monday, August 4th. Dusan Writer will also be announcing the follow-up to his much-lauded competition to create a better Second Life client viewer at the start of the show.

The picture below shows how the Open Grid client which, in addition to the teleport option after login, allows you to select an external region even before you log in

The Open Grid - a community of developers, “playing with shiny things”

There is a strong team of Linden’s working with Hamilton in the Open Platform Product Group. Tess Linden, Technical Director, leads design and Implementation for the OPPG, and Layla Linden has been getting the agent domain ready. Periapse Linden is project manager for OPPG. Whump Linden is managing the Open Grid Public Beta. Whump is also a very interesting contributor, I think, to the evolution of the Open Grid. He has an enormous amount of web experience and has been a blogger since 1998. Whump came to Linden Lab from Apple’s MobileMe group. He is the point person for the Open Grid Beta which is organized through the Second Life TM Gridnauts group.

Enus Linden and Infinity Linden are working on testing tools known as the PyOGP test harness. These testing tools are a very interesting project themselves. Tao Takashi who was the prime mover in the PyOGP project before it became part of the Open Grid Beta explained to me:

My vision was always to create something like libsecondlife but for plain Python instead of .NET. The old protocol was just too undocumented to really get something like this done quickly so when OGP was getting born I though of trying again but with a better protocol and by coincidence Linden Lab need a test harness for testing all those components out there so PyOGP was born, as the library can now serve as backend for the tests. But in the long run of course more is possible. It can also become a full implementation of client and server, web service interface and more. I am working on an agent domain implementation for pyogp right now and I have some ideas for some text based or maybe even 2d gfx client.

Something worth noting about the Interoperability effort between Linden lab and OpenSim, the Architectural Working Group, and the PyOGP initiative is the large number of experienced and talented developers that are putting extraordinary amounts of time and effort into these projects.

The meetings are packed. I had my first God-mode teleport into a full sim in Second Life TM from Zero Linden today so I could get into the AWG meeting to ask some questions for this post. Yes, God-mode is truly the finest way to travel! I hope to devote a series of posts to the pioneering developers that are creating the future of open source virtual worlds. Their dedication and brilliance is quite extraordinary.

Hey but for starters a tip of the hat to the indefatigable and omnipresent Saijanai Kuhn (Lawson English in RL) - “a 20+ year script kiddie programmer who always wanted to get into game programming.” Saijanai says: “This is my chance to do something kool on a significant scale, so I’m excited about the whole AWG OGP thing.”

And, If you want a little example of how quickly some of this developing brilliance produces results in this community check out this prototype for a “Lively™”-style viewer for OpenSim+SL. that Adam Frisby (OpenSim/Deep Think) whipped up in a few hours! There is a currently a petition to release llmath/llvolume.cpp under a more liberal license which Adam pointed out to me is “somewhat required to do accurate rendering in alternate clients.”

I spent this weekend jumping around Second Life and OpenSims with Whump Linden and Zha Ewry. The picture below shows Zha, Whump and I arriving on the LL Open Grid from Zha’s laptop sim. There is a bug Zha told me that is making us arrive at (0,0,0) on the sim.

Managing Assets and Identity in an Interoperable Open Grid

Linden Lab is NOT throwing the baby (the Second Life economy) out with the bath water (the old Second Life Architecture). Linden Lab have made this very clear many times but Zero reiterated for me when I asked this question:

Absolutely — after all, I love babies — we positively need to build an architecture that supports the economy of SL — while at the same time allowing the virtual world to be open to a wider variety of experiences.

And, if you have already watched the video of the NYC Metaverse Meetup you will know that interoperability of assets and managing identity in open virtual worlds is what’s on everyone’s minds. But as David Levine (Zha Ewry in SL) pointed out several times: “These teleports are just about moving identity for the moment they do not bring a single digital asset with them for a moment.”

There was a long but very interesting discussion about some of the issues of managing and federating identity and moving assets between multiple virtual worlds at the Meetup. And, Adam Frisby and David Levine outlined some of technical and social steps to full interoperability in that discussion.

David Levine has also asserted several times that a big priority for him is looking at how the interoperability of assets can be implemented without detriment to “creators” whom he describes are “the secret sauce” that makes Second Life a compelling place and the ingredient that makes a virtual world either work or not work. But, interoperability, regardless of how particular virtual worlds decide to handle it, will force virtual worlds to rethink the way they do or don’t help their content creators and users to relate outside of the little puddle of their own particular terms of service. But, David pointed out, if we want to do something that spans not just one or two applications, this discussion, which is social as much as technical, has to be done in a broader community

For now, the goals of the OGP Beta are narrow. As Whump pointed out:

The matter of inventory is not in scope for this part of the beta. Figuring out inventory is a combination of technical and community work. Some of this will be figuring out a common vocabulary for talking about these issues. We want to figure out the basics of protocols for teleport, find the bugs, and refine these issues. We want to have running code and test suites, because that will bring interested parties.

But, while the beta has begun with a simple version of OpenSim trunk the next step will be to work on interop with projects like realXtend and Tribal Net. Both these initiatives are bringing a lot of innovation to OpenSim. Both realXtend and Tribal see interoperability as a key project and are looking forward to joining the Beta soon.

Roadmap for Open Grid

I asked Zero Linden what the roadmap for the next few months would be:

Zero Linden: Well, now that we’ve demonstrated some technical work, and are going into a public beta, August is going to find much of the LL side hunkered down and fleshing out much architectural detail. For some areas, especially inventory and identity, we’ll be putting together some concrete frameworks so those more complex discussions can make progress in the Fall. So the next step is to pave the way for clear progress on them. They are big issues and deserve the time and background work to make them be successful discussions and eventually successful desgins.

Tara5 Oh: So when you say concrete framework you mean code and architecture?

Zero Linden: I mean more of a specific set of issues, use cases and design options to have a discussion about. We’ve been talking about identity and inventory in largely general terms for almost a year. I think we as a whole have a common sense of what we are talking about. Now we need some specific points to answer, and a guide for the design. Then, the code will follow.


Tara5 Oh: so when you say uses cases do u have a wish list yet?


Zero Linden: Well, I have may personal pet use cases — who doesn’t — what we will be developing in August is a more rational set. So, in short, nothing yet. I’m trying to stay purposly “zen mind” about it — since it can be such an explosive topic.

In the picture below Whump Linden gazes out at the open horizon.

Metaverse Meetup: “OpenSim and Virtual Worlds Interoperability”

Sunday, July 27th, 2008


Here is the video of our last Metaverse Meetup: OpenSim & Virtual Worlds Interoperability 7.23.08 (from Vimeo). The video of this landmark event was produced thanks to the awesome Annie Ok, Artist, Creative Director, Curator, Video Director, Metaverse Evangelist/Consultant, Co-Organizer of Metaverse Meetup.

While Annie’s first love is art, she has been involved in an extraordinary number of projects (see her bio here). Notably, Annie Ok, with Jeff Crouse, & Stephanie Rothenberg made the documentary and helped with the amazing Invisible Threads project which shows how excellent Second Life is for such innovative mixed reality installations. The documentary premiered at Synthetic Times. Annie also created the interactive, collaborative Timeline of Virtual Worlds that the whole community can help with.

Photos of the meetup are now posted here on Flickr and some nice portraits here on Facebook.

With the video Annie sent out a great write up about the meetup.

Annie noted:

Adam Frisby and David Levine gave us incredible insight into OpenSim and shared compelling details that really expanded on what has previously been known about its amazing potential and revolutionary role in the future of the metaverse.”

And she was very kind about my really minor supporting role!

“Tish Shute was great as the guest moderator, asking key questions and adding salient commentary.”

And I really agree with Annie’s synopsis about what is at the heart of our metaverse meetups!

“It was so nice to see all the familiar regulars as well as meet the new ones. In true Metaverse Meetup style, we migrated en mass to a local bar where we continued the conversation about all things metaversal and had fun hanging out with fellow avatars until the late hours.”

Thanks to everyone and especially Global Kids for making the meetup possible.

Please be sure to check out the list of Metaverse Meetup links on the new About page. There are now Metaverse Meetup group on LinkedIn, Flickr and FriendFeed, as well as a list of Metaverse Meetup chapters in other cities for those of you who are not based in NYC.

Looking forward to seeing you at the next meetup!

Realizing the Potential of Virtual Worlds: Why and How to Support OpenSim

Wednesday, July 23rd, 2008

Are you one of those people who need something more to get you excited about the future of virtual worlds than, “I am in ur browser, chatting in 3D?”

Well, perhaps, it is time for you to take a close look at the burgeoning open source ecosystem surrounding OpenSIm.

Jonas Karlsson, Xerox, (avatar Poinky Malaprop) wrote an excellent post (I quote his great title above!) explaining why he is not turned on by the big bubble of browser based worlds that have sprung up recently - Vivaty, Lively, JustLeapIn, ExitReality, WebFlock and more

This flood of browser based worlds into the virtual world scene has caused many commentators in the field to articulate clearly what is important about virtual worlds and where these lite weight worlds fall short (see Dusan Writer) and how they can’t realize virtual worlds’ potential as innovative disruptive technnologies that will actually improve the human condition.

Even the the mainstream of the blogosphere can see how retro and limited this new crop of VWs lite are (see PC World’s look at Lively).

I am not arguing that these “stepping stone” browser worlds won’t be something that many people try out. But, like Jonas and Gwyneth Llewelyn, I believe that the destiny of virtual worlds lies elsewhere. I agree with Jonas, the keys that opened the doors for virtual worlds to bring something new, exciting and very beneficial to human communication were sown in Second Life with the “in-world creation tools, that enabled co-creation and a new form of collaboration” - none of these “in ur browser” wannabes are even close to offering this kind of paradigm shifting experience. Though some of them may play a role in introducing a wider audience to a limited sense of the possibilities of avatar interaction.

Why is OpenSim Important?

While Second Life demonstrated most of the key paradigm shifts to social interaction possible through virtual worlds, open source and open standard development, as Linden Lab has acknowledged for a while now, are central to unleashing the full potential of virtual worlds into a scalable, global and world changing phenomena.

A number of interesting open source virtual world projects are out there. But, of all these, OpenSim is beginning to show its got the right stuff to move virtual worlds forward quickly, in a positive direction. Open standards are not arrived at by ivory tower committees. They are worked out on the ground in a process which requires the magic of “rough consensus and running code” (this phrase is drawn from a conversation I had with Mic Bowman, Intel, about interoperability of virtual worlds).

This magic, “rough consensus and running code” is exemplified in the rapidly developing ecosystem committed to growing OpenSim technology - OpenSim provides powerful and fexible software modules for building virtual worlds.

There is a powerful community of amazing diversity working with OpenSIm - from many enthused individuals to contributors from some of the world’s largest corporations, IBM, Intel, and Microsoft (see the many commentaries, here and here, in the blogosphere on the MS dev community entry into OpenSim and for my interview with Kyle Gomboy of the MS dev community and Zain Naboulsi, Microsoft, see here).

And, while Linden Lab do not contribute code directly to OpenSim yet, some of Linden Lab’s top developers are involved in a major an interoperability effort between Second Life and OpenSim. This effort has also been spearheaded by David Levine (avatar Zha Ewry), IBM.

David’s interoperability patch and Linden Lab’s OWG (Open Grid Protocols) will go into Beta on the LL Preview Grid at the end of the month. To become part of this Beta you must join the Gridnauts group in Second Life. The code developed from this interoperability work will eventually be part of the OpenSim trunk.

There is a common misunderstanding about OpenSim. OpenSim is NOT a virtual world, and is certainly not as many in the blogosphere like to suggest a virtual world competing with Second Life. On the contrary as the err “love child” of Second Life, it carries the qualities of Second Life into the future. And Linden Lab’s acknowledgement and support of OpenSim is clear in their interoperability efforts.

Adam Frisby sets the record straight on his blog:

OpenSim is not a virtual world. It’s a piece of software, which if configured in a specific way allows you to run a virtual world. Consider it another way - the Apache Webserver is not a website, but ~50% of the websites online are running Apache.

I have blogged some of the diverse projects OpenSim has spawned including the highly innovative realXtend (see here, here, here and here -my most recent post on reX) and Tribal Net (see here). But Adam includes an excellent list of some of the diverse applications that have been developed on OpenSim and explains the difference between application and platform in this post.

Check out this wonderful slide show of the work some 3rd - 4th grade students are doing with their quests on the Opensim based GreenbushGrid VW.

How to become Involved in the OpenSim Community

Here I am as noobie in OSgrid standing in front of the fountain built by master builder and OpenSim developer, Nebadon Izumi (Michael Cerquoni in RL). Charles Krinke told me: “The fountain behind me was built by Nebadon last September and the day scripts were sufficient to run the particle system, we turned the water on.”

OpenSim is alpha still. But there is an immense pride and excitement to being there a

nd contributing in these ground breaking days. The OpenSim Wiki is the most complete source for information on OpenSim but there is a nice tutorial here on White’s Virtual White blog on how to get your own standalone openSim server up and running in Windows Vista (hat tip to Dusan Writer)

But there are many different ways to become part of the OpenSim effort.

One of the important entry points to the OpenSim development community, other than joining the IRC channels #opensim, #opensim-dev, and #osgrid is to visit and participate in activities in OSGrid (see later in this post for a complete list of the goals of OSGrid).

OSGrid is also the place where developers, content creators, and ordinary users can support the OpenSim effort. Two good times to find the OpenSim community gathered in OSGrid are:

“Test Hour”, “Wright Plaza”, Saturday 1900UTC, Noon PDT, 3PM EDT.

“Office Hour,” Wright Plaza, Tuesday 1900UTC, Noon PDT, 3pm EDT.

OSgrid is the second oldest OpenSim grid. It was created in July, 2007.

The picture opening this post is taken inside the Scriptwerks building, Wright’s Plaza, OSGrid. This room is part of the effort in OSGrid to teach scripting. It is built by Pablo Pharmanaut (avatar name), a pharmacist in Northern California. Pablo has set up a number of demonstrations of scripting including the scripts themselves. The scripts are also on the forum. One of the goals of OSGrid is to encourage folks to copy the scripts and use them to learn how to script.

The picture below shows Wright’s Plaza where office hours are held. OSGrid guru and organizer Charles Krinke (avatar Charles Krinkeb) is showing me a demo of OpenSim’s version of html on a prim, which is implemented differently from the LL version. And on the right is the “grafitti” board written by Justin Clark-Casey that is used to set the agenda at meetings now.

Th first “Office Hour” in OpenSim was on a blank island, no physics, no scripts, no clothes, last August. This blank island is now Wright Plaza, named for Michael Wright, the creator of OpenSim. Stephan Andersson, known as “Lbsa” is honored in the second plaza created.

There are several ways to join the OpenSim effort. And Charles Krinke the tireless and brilliant community organiser for OSgrid pointed out to me there are roles for all who want to get involved as:

The goals of OSGrid are 1) to test OpenSim releases on a daily basis and 2) to build a healthy community.

Charles Krinke (avatar Charles Krinkeb), whom I met first in the OpenSim office hours, began running OSGrid in August with 150 users and a dozen regions. Others were brought in as managers, most notably “Nebadon Izumi”, “Hiro Protagonist”, “Paulie Flomar” and more in the Fall. “We now have 3200 users and nearly 400 regions attached as of early July, 2008,” Charles noted.

In the picture above, Hiro Protagonist (James Stallings in RL) and I are seated in Zaius Plaza, OSGrid (see also Hiro’s blog).

The Goals of OSGrid

Charles Krinke described the Goals of OSGrid in detail to me.


Goal 1: “Testing OpenSim releases”

There are several considerations here from a grid viewpoint. First and foremost is the fact that differing regions on OSGrid run on differing operating systems and with differing configurations. This includes both Windows and Linux servers running regions. Some regions run scripting with the dotnet script engine. Others run with xengine for scripting. Some regions use local assets, some grid assets. Regions running different operating systems and different configurations are right next to each other. Additionally two regions might be adjacent on the grid, but physically on opposite sides of the planet. Some are in colo-farms with fat pipes and some are in homes with modest cable modem connections.

Testing things like avatar appearance editing, script functionality (or lack thereof), region crossings, inventory usage all become important in a heterogeneous grid like this as we use a systems approach to testing and facilitating software development.

It is entirely appropriate to report at http://opensimulator.org/mantis bugs found in OpenSim regions on OSGrid particularly if these bugs can be confirmed on at least two regions running different operating systems. To the extent we can identify and replicate with a simple recipe problems in the software, it becomes easier for the core developers in OpenSim to fix these problems. OSGrid provides a fairly rich spectrum of region configurations to allow more bugs to be identified then with a single standalone of even a grid will all identical regions.

Goal 2: “Building more community”

Our “Plaza” regions all honor a different personality in OpenSim history. Each one is a little different. But each serve as seed regions to expand the mainland and folks wishing to connect regions to OSGrid are encouraged to attach to a face or corner of one of the plazas to help expand and fill in the gaps of our mainland. As we expand, there will be new plazas from time to time and all of them will have a unique personality.

All of our plazas run on donated, community servers and the OSGrid control operators administer the servers and encourage community builds, freebie zones, script demonstrations and the like. As time goes on, we establish more “Hours”, which are dedicated times set aside to discuss, learn, teach or demonstrate some aspect of using OpenSim.

Around the plazas are various personal, corporate and university regions. All of these regions are owned by their providers and not by OSGrid. Commercial activies are encouraged by those whose corporations put up regions. Other things such as artist colonies, homesteading areas and the like exist and are encouraged.

It is reasonable for organizations to build additional mainlands elsewhere on the grid. There is no requirement that all regions be near the existing mainland at 20000,20000. After all, OSGrid is intended to develop a diverse, global Metaverse and it certainly seems to be happening.

Folks are encouraged to donate original creations to the various freebie areas for others to get with the “Take Copy” option and use, modify and understand as they wish. Also there are a number of scripts on the forums at http://osgrid.org/forums for folks to use as they expand their scripting knowledge.

, , , , , , ,

Astrophysics in Virtual Worlds: Implementing N-Body Simulations in OpenSim

Saturday, July 19th, 2008

Junichiro Makino, University of Tokyo, leads the way into the National Astronomical Observatory of Japan (NAOJ) in Tokyo. Piet Hut, Institute of Advanced Studies, Princeton, is right behind with the Genkii team. Jun Makino has offered the use of a server at the observatory to set up an OpenSim environment. History is about to be made.

Thanks Genkii for the photos! Genkii is a Tokyo-based strategic consultancy focusing on social media and virtual worlds (see here for my interview with CEO of Genkii, Ken Brady and COO, Adam Johnson).

Next day Piet Hut announced to the Meta Institute for Computational Astrophysics MICA:

Adam Johnson and Jeff Ames, developers of OpenSim, and members of the Tokyo Genkii team, have succeeded today in tweaking their physics engine in OpenSim to let stars dance according to Newtonian Gravity.

On a Mac laptop, they let hundreds of stars move in real time, as a gravitational N-body problem (yes, a few hundred!). This is a historic watershed.

A video was soon up on YouTube here. But as Adam Johnson noted:

I don’t think the video can capture the pure fun of this thing, it makes computational astrophysics approachable to a 3 year old… like legos for astronomy. And it really puts OpenSim in a new light! This same method can be applied to other areas too.. think protein folding visualizations.

Computational Astrophysics is a field that has long been associated with some serious number crunching. Jun Makino is holding up a piece of the new GRAPE (an acronym for “gravity pipeline” and an intended pun on the Apple line of computers) - a super computer that will become one of the fastest super computers in the world (again).

Later in this post there is an in depth interview I did in Second Life with Jun. His Second Life avatar is Makino Magic. Jun discusses the future of computational astrophysics, and how this may be tied in with virtual worlds

The photo above was taken by Adam Johnson of Genkii. Adam noted:

We want to use super computers like this (the Cray and GRAPE) to offset the simulations and push the results to OpenSim. That way it can simulate thousands, or millions of stars/planets

The picture below shows the Cray at the National Observatory of japan on the right, and on the left Jeff Ames is shown working on the N-Body simulation in OpenSim. I heard Jeff implemented most of the code for Newtonian Gravity in OpenSim on the train ride to the observatory!

Genkii, in addition to their work on OpenSim are developing, with 3Di and other open source virtual world developers, an OpenViewer a “from scratch” that should allow people like scientific researchers, game developers, educators, etc to make fully customized viewers more easily than they could before. Adam explained:

Open Viewer is (BSD Licensed) using, at the moment, OgreDotNet for rendering and LibSL for the protocol.

But you can use any protocol you want actually and any rendering engine - ideally we want to allow it to support numerous virtual worlds with one viewer. We have been talking to HiPiHi guys about getting their protocol working with it as well, and soon will talk to some IBM guys in China to see if they want to take part in that action.


MICA - Pioneering Astrophysics in Virtual Worlds

Piet Hut has been evangelizing the potential of virtual worlds for astrophysics, and bringing astrophysicists into virtual worlds through the Meta Institute for Computational Astrophysics (MICA) for quite a while now (see my previous post). And, Piet and Eiko Ikegami have just published a fascinating paper about Japanese History and Second Life.

MICA, begun in 2007, is a virtual astronomy institute featuring many MODEST-related activities. Aimed at harnessing the capabilities of virtual worlds and 3D collaborative environments (such as Second Life, Qwaq, Sun Wonderland), it fosters interaction among astrophysicists with interest in large-scale simulations, including dense stellar systems. Outreach and educational activities are also major MICA goals. MICA weekly events include popular talks, computational astrophysics lectures and Journal Club discussions of recent astro-ph papers. The MICA wiki, containing more information, schedules of events, and links to related pages, can be found here.

Also, there is an excellent video of Piet’s talk on the “Scientists and Science Outreach in Second Life,” that was part of the SL5BD events posted on YouTube here.

In the picture above, MICA members Prospero Frobozz (Prospero Linden a.k.a. Robert Knop in RL), Tara5 Oh (me, Tish Shute in RL), Pema Pera (Piet Hut in RL), Peter28 shostakovich (Peter Teuben in RL), Paradox Olbers (Spike MacPhee in RL) see also Paradox’s Spindrift in Scilands blog, Pan Numanox (Alfred Whitehead in RL), Jazz90meteotl Loon, Eamu Godenot (Will Farr in RL), and Lagrange Euler (Steven McMilland in RL). Thank you MICA member and SL photographer Kirk Smythe (Tom Deluca III in “real” life) for this picture, and for the portrait of Piet’s avatar Pema Pera below.

I have been attending MICA meetings as an observer since spring when their activities were mostly focused in Qwaq. Now the focus of MICA is Second Life and OpenSim. There is a regular schedule of events. In fact, I was invited to speak about Open Source virtual worlds at one of the daily “coffee” meetings. I later heard that my talk was in fact the trigger for the collaboration between Piet and the Genkii team!

I invited Adam Johnson to come to the discussion after my talk when the conversation focused on OpenSim. After I introduced Adam to Piet, they realized they were both in Tokyo in RL, they met for lunch and the rest is history.

I have blogged and attended a number of MICA’s events including Dr. Rob Knop’s (a.k.a Prospero Linden a.k.a Prospero Frobozz) talk, “The Power of the Dark Side: How Dark Matter and Dark Energy dominate our Universe.” Dr. Knop was on the team that discovered the accelerating expansion of the universe.

Why does MICA want to do simulations within Virtual Worlds?

I asked Piet (Pema Pera in Second Life, picture below) why MICA wants to do simulations in virtual worlds and, why N-body simulation is so important to astrophysics?

Pema Pera: For two reasons:

1) Traditionally simulations were where scientists spent years and visualization was an afterthought, a few pictures in a journal, never the right tools to really mine the data, not enough time, money, tools. So we can use VWs to start with visualization and then have the simulations follow. Another example of inverting a traditional priority, like going to what-you-see-is-what-you-get. Most breakthroughs in computer use are like that. So starting with the enormous investment already in the visualization aspects of Virtual Worlds, you can then run your simulations within them, or so it seems. Whether they actually run in there, or in a hidden way elsewhere on a Cray or GRAPE is of no real concern for the user.

2) Collaborative code writing and debugging. Traditionally, observers collaborate — can’t build a telescope and observatory with one person. Theoretical folks now have to learn to collaborate. You can’t write a whole simulation package in one PhD three-year period.

Most breakthroughs are inverting something, first direct addressing to make the computer fast, but a pain for humans, then you switch to indrect addressing, makes more sens