Python and the Open Grid Protocol – status of the pyogp project (technical)

As you might have heard in the press, many people are quite active in making virtual worlds interoperability possible. So am I.

Together with Linden Lab and other interested participants we started the pyogp project a little while ago and it seems to make great progress. But what is all that, OGP, pyogp and the AWG?

OGP = Open Grid Protocol

You can think of this as some sort of HTTP of the future. It will be for virtual worlds what HTTP is today for the web. It will be an open, standardized protocol which defines how avatars, virtual objects and all that can be transported over the network. You can read what’s there right now in the OGP Draft 1.

AWG = Architecture Working Group

This is the name of the group working on the Open Grid Protocol. It is made up of people from Linden Lab, from IBM, from COM.lounge (well, me) and basically everybody who is interested on working on this. We have many regular meetings in Second Life, a mailing list and recently also an IRC channel (#gridnauts on There are also many wiki pages on it.

Another group is the AWGroupies group which is made up of interested Second Life residents.

pyogp = A Python implementation of the Open Grid Protocol

This is what I introduced above. As said, it’s making great progress and login as well as initial teleport are working already. We have an IRC channel (#pyogp on, a mailing list (or via gmane) and of course many wiki pages already.

Since yesterday we also have every other day meetings which will happen Monday, Wednesdays and Fridays at 9:30 AM Second Life Time at „infinity is full of stars“ @ Levenhall/91/208/22 in Second Life.

My EuroPython presentation about pyogp

To give those folks at EuroPython a little introduction about the idea behind and the concepts of the OGP as well as an pyogp introduction I did a little presentation:

(And please please please vote for me in the World’s Best Presentation Contest!! :-) )

I am not sure how much the slides alone will work and explain things (probably not so much) but maybe I will find some time to add some audio track to it as well.


What we have right now is login and placing an avatar on a region. The process stops there right now and what we need is a way to establish a presence with that region which is done by implementing lots of UDP handling. Locklainn Linden right now is working on a UDP packet decoder and I am working on refining the code a bit and making suggestions on what we can improve.

So far we decided on the following components to use:

  • The Zope Component Architecture for having decoupled components which are easy to test and easy replaceable.
  • buildout for setting up a development sandbox
  • Python eggs for packaging the parts of the library (which right now is only one package but might grow into additional ones)
  • unittest and doctests for doing tests (although Infinity Linden wants to look at py.test as well)
  • probable grokcore.component for doing the component registration
  • maybe WSGI for setting up test scenarios which do not involve running a separate server (we call the WSGI application directly)

The Test Harness

The main reason for starting this Python library was to have a tool for testing components which implement some part of the Open Grid Protocol. This is what the test harness is about and Infinity Linden seems to be the person right now working mostly on that front. We probably simply will use the normal unittest framework but will add some configuration option to setup hostnames and so on.

Moreover we need some way to telling the component we want to test which test fixture to load. All this is in a very early stage and I will report back on this once we know more.

All in all this project is coming along quite nicely I think. In the beginning there is of course lots of confusion about all the parts being used but I hope everybody in the end will be happy with those choices. We also seem to have a good team which communicates quite a lot via IRC, Second Life or the mailing list and so everything seems fine at the moment. What’s of course needed might be more people participating, so if you are into Python and might want to work on a library which implement HTTP of the future just chime in on the IRC channel or mailing list mentioned above.

Teile diesen Beitrag