Zonja Capalini

Hypergrid, or how to teleport between WORLDS using OpenSim

[Update 20090106: Corrected information about names after hypergrid tp, added two captures]

HyperGrid

This post presents a user experience with Hypergrid, a technology included in OpenSim that allows teleports between virtual worlds (or grids), and includes also a short tutorial so that you can try it yourself, link your virtual world with your friends’ worlds, etc. It assumes a minimal working knowledge of OpenSim, at the level described in my previous post. Yes, yes, I know, after a “Installing OpenSim” post there should come another titled “Saving our database” or “Our first Grid” — but I’m doing that for fun, ok? :-)

Why Hypergrid matters

Hypergrid represents a radical change in the model for 3D online OpenSim-compatible virtual worlds. Up to now, we’ve been used to big, monolithic worlds (like Second Life or OSGrid), modelled under the metaphor of a flat, grid-like world (hence the term grid). The world is made of pieces called islands or regions which occupy a place in the grid determined by two integer coordinates, and these in turn determine the visibility between islands. Thus, if island A is at (1000,1000) and island B is at (1001,1000), A and B share a border: the east of A is the west of B.

This “big world” model has several problems: big worlds don’t scale well, the data is in the hands of the service provider, not the customer, and it’s easy to for the service providers to scam their customers. Besides, if OpenSim has to become the 3D web, one doesn’t understand clearly why having some islands (= having a web) should imply having neighbours or occupying a position in a vaster plane — there’s no notion of “neighbour web” in the WWW.

Enter HyperGrid. HyperGrid allows us to work with a completely different model, what we could call a “small world” model. Everybody can have a world, a grid, in the same way that everybody can have a web. You, your community, your employer, whomever. And, as webs are linked using HTTP links, so grids are linked using HyperGrid. Easy, no?

Therefore HyperGrid matters. Indeed, it matters a lot. A hypergrided universe is a universe in which you can have your own world, take your own backups, create your own contents and save it to your HD, invite your friends… and still not be isolated.

To be fair, the technology has its problems. For example, DRM as we know it today cannot work, and there also are some security concerns. Anyway, these problems will most probably be tackled, one way or another.

A question of names

Let’s say that I’m called Jane Doe in world A, and I’m teleporting to world B. What should be my name in world B? To make sense of that question, think that an avatar called Jane Doe could  already have been created in world B! For example, I am Zonja Capalini in Second Life, Open Life and the Rezzable PGA; if these worlds became hypergrided, it’s conceivable that the Zonja Capalini of Second Life wanted to attend a party at Rezzable — please note that this involves a hypergrid teleport, and is different from logging in directly to rezzable. :-)

Additionally, when an avatar rezzes at world B, it would be nice if there was a way to identify where (i.e., which world) did this avatar come from. For example, it could well be that avatars coming from, say, LLmafia.org had a bad reputation, or that avatars from lively.com had no genitalia, etc.  So, knowing where does a foreing avie come from is important.

The current implementation of HyperGrid addresses these two points in a simple and elegant way. Assume again that I’m Jane Doe in world A, and assume that the URL of world A is http://www.worlda.com:9000. Then when I take a hypergrid teleport to world B, my name becomes

Jane.Doe http://www.worlda.com:9000

Neat, no? My first and second names are combined to form the first name of my avie by placing a period between the two, and the name of the place I come from takes the place of the second name of my avie. For example, if I came from OSGrid (http://osgrid.org:8002), I would be seen as

Zonja.Capalini http://osgrid.org:8002

Currently, this new name is only seen by others looking at me, not by myself, which seems proper, but involves the small risk of finding my own doppelgänger! :-)

0464 - Meeting myself

[Update: After a time, my own name changes too:]

0463 - Meeting myself

Lend me your island for my map

So, anyway, how does a teleport between worlds work? The key idea is the following: assume that world B has a region called Nice Island and wants to open it to foreign teleports. World B then configures OpenSim for HyperGrid. When the managers of world A want to implement teleports to Nice Island, they configure OpenSim for HyperGrid too, and then they use the “link-region” command (described below) to include the map image of Nice Island in the world map of A. And then this image of Nice Island can be used to teleport to World B using the map. That simple! Indeed the administrators of world A don’t need to give to “Nice Island” the same name it has on world B, they can name it “Gateway to B” for example, so that you don’t teleport to world B by accident.

Open questions

The HyperGrid technology is still in its infancy, and there are a number of open questions that will probably be addressed in future versions: if I create an object in a foreign world, what should be the creator of this object, as seen from the foreign world?; Can I make friends with somebody of a foreign world?; Can I take a landmark of a foreign world and use it to tp back to that world?; etc.

Hypergrid experience and tutorial (for Windows XP)

Step 1: Use names, not IP addresses

My RL friend Ludmilla Writer and me tested HyperGrid by using two XP computers connected to the same ADSL router. My (internal) IP address was 192.168.1.38, and Ludmilla’s was 192.168.1.33. To be able to use names, we had to tweak the “hosts” file, located in “C:\WINDOWS\system32\drivers\etc”. This file normally contains some comments, and then a single line which says

  127.0.0.1       localhost

We added two lines

  192.168.1.38    zonja
  192.168.1.33    ludmilla

at the end of the “hosts” file, and saved it. We did that both on my machine and on Ludmilla’s machine. This tweak allows us to use “zonja” instead of 192.168.1.38 and “ludmilla” instead of “192.168.1.33″ as the addresses of our machines.

If the grids you are going to link don’t have dns addresses, you can use this trick — don’t forget that unless you’re making the experiment at home, as we did, you’ll need to use external ip addresses.

Step 2: Modify OpenSim.ini on both grids

The “Installing and running HyperGrid” section of the HyperGrid page in the OpenSim wiki is excellent, you can follow the instructions there to modify your OpenSim.ini files. Except for the http_listener_ port and remoting_listener_port variables, please use the port numbers as shown  (port numbers come at the end of urls, preceded by a colon — 9300 and 8001-8004 in the examples; modify them if necessary). Here are the modified OpenSim.ini files for the “zonja”

0458 - OpenSim.ini, "zonja" machine
and “ludmilla”

0459 - OpenSim.ini, "ludmilla" machine

machines.

Step 3: Modify region files to use external host names

Go to “C:\Program Files\OpenSim\Regions”. You’ll see one or more .xml files. Open them one by one with NotePad and change the “external_host_name” parameter to point to the name defined in Step 1 (if you’re using different machines to run your grid you know what to do).

0460 - Modifying region files

Step 4: Modify region files to check that the coordinates of your maps don’t overlap

This one isn’t documented anywhere and it made us lose more than two hours! If the destination region in the destination world has the same (x,y) coordinates as the origin region in the origin world, the teleport will fail, and you will be logged off. The coordinates of your islands are located in the .xml files of “C:\Program Files\OpenSim\Regions”, under parameter names sim_location_x and sim_location_y. Make sure that these are not identical in both worlds (also make sure they are not more than 4000 apart). In our case, we set “Condensation Land”, the unique island at “zonja”, at (1000,1000) in my machine’s map, and “Ludmilla’s Island”, the unique island at “ludmilla”, at (1010,1010) in Ludmilla’s machine map. You may want to review the “default_location_x” and “default_location_y” of your respective OpenSim.ini files and change them accordingly too.

Step 5: Start OpenSim in HyperGrid mode and check that hypergrid is working

Go to Start -> Run, type “cmd” and press ENTER, type “cd \Program Files\OpenSim” and press enter, type “OpenSim -hypergrid=true”.

Wait until you get the “Region <root> # :” prompt. Type “link-region” and press enter.

You should get a reply; if not, something is not working properly.

Step 6: Link your worlds!

On the OpenSim console, at the “Region <root> # :” prompt, type

  link-region <Xloc> <Yloc> destination.world.address port Destination World Gateway

Use Xloc and Yloc that make sense to your world, i.e. close to your regions, but not adjacent. For example, since “Condensation Land” was at (1000,1000) in my world’s map, (1002,1000) was a good position to put Ludmilla’s Island from Ludmilla’s world:

  link-region 1002 1000 ludmilla 9000 Ludmilla's Gateway

If all goes well, you’ll get a handshake confirmation message.

Step 7: Log in, and make sure that home is defined for your avatar

If you have not, go to World -> Set home to here in the Second Life client; otherwise your teleport will fail.

Step 8: Open the map and wonder

You should see your islands, and, in addition, the gateway island from the other world in your map!

Here’s the map before region linking:

0461 - Zonja's world map before region linking

and here’s the map after region linking:

0462 - Zonja's world map after region linking

Step 9: Teleport between worlds

By using the map.

Step 10: Party :-)

Links

About these ads

January 5, 2009 - Posted by | OpenSim, SL Exodus, Tutorials | , ,

12 Comments »

  1. Thanks! Map is not much an issue, agreed. And inventory and DRM are big issues, but that’s discussed elsewhere (e.g., in the links I provided; maybe I should have added an explicit reference to these subjects in my post).

    The implementation of identity came to me as a surprise when I did the tests, though. Makes me think about a global identity system. And that is a big issue, isn’t it? :-)

    Comment by Zonja Capalini | January 6, 2009

  2. interesting post! I think though the real issue is less about identity and map and more about inventory and DRM.

    And why a 2D map for a 3D world anyway?

    Comment by rightasrain | January 6, 2009

  3. [...] Hypergrid, or how to teleport between WORLDS using OpenSim – Zonja Capalini – Hypergrid, a short – but very interesting – explanation & a tutorial and how to do it – cross grid teleports – yourself and even how to enable them. Have fun! (And try not to loose to many virtual bits in the process! ;)) [...]

    Pingback by Second Life web resources for January 5th 2009 through January 6th 2009 | VintFalken.com | January 7, 2009

  4. [...] Zonja Capalini « Hypergrid, or how to teleport between WORLDS using OpenSim [...]

    Pingback by Dynamic hypergrid links: the new Metaverse « Zonja Capalini | February 8, 2009

  5. [...] Hypergrid So that C kept C2, which they now were renting from me, and I was left with only three islands: Condensation Land, Condensation North, and Condensation Beach. I used Christmas holidays to learn more about Opensim; Justin Clark-Casey had published a very interesting article about the future of the metaverse, where a vision of an hypergrid of small, interconnected grids was presented, and Diva Canto was modifiying Opensim to implement that Hypergrid, providing a mechanism to allow teleports between worlds, amongst other things. I tried the mechanism, and blogged about it. [...]

    Pingback by The Openspace fiasco: six months later « Zonja Capalini | April 30, 2009

  6. [...] already blogged (here and here) about hypergrid, an virtual world architecture that allows the federation of Opensim [...]

    Pingback by Grider: Prototypying the next generation Hypergrid « Zonja Capalini | June 10, 2009

  7. [...] is clearly be the future for the metarevse. Here are some blog articles I wrote about hypergrid: [1],  [2], [3], and here’s a video showing an hypergrid travel from OSGrid to my own grid, the [...]

    Pingback by An interview by Alyne Dagger (with some final remarks) « Zonja Capalini | September 2, 2009

  8. Thanks for the tutorial! I have successfully set up two hypergrid servers linking to one another, allowing avatars to teleport freely between the two. I will put a link of this webpage on my webblog.

    Comment by Toutou Schonberg | May 27, 2010

  9. You’re very welcome :-) I’m surprised that the instructions are still current, this is a quite old article…

    Comment by Zonja Capalini | May 28, 2010

  10. Currently the hypergrid is basically hype without the grid. It is unreliable, problematic and hardly worth the effort. Crossing sims is bad enough in most grids. Trying to access other with any degeree of reliability might be ok for those with a whole bunch of time on their hands but if you think its going to catch on in its present state you can forget it.

    Comment by mike.townsend35@yahoo.co.uk | December 4, 2010

  11. This post was written almost two years ago, and it’s really somehow discouraging that in that time the technology has not stabilized enough.

    OTOH, sim crossing stability and performance vary wildly depending on the grid you’re using. In my own mini-grid, Condensation Land, which hosts 12 sims in the same machine, sim crossings and teleports always work flawlessly. That’s a different story when you go to OSGrid, of course, but then OSGrid is a completely heterogeneous grid and you aren’t supposed to expect decent performance.

    Then of course one could go on and ask whether it’s a good strategy to have a completely unreliable grid (OSGrid) as a showcase for a technology…

    Comment by Zonja Capalini | December 4, 2010

  12. very nice, thanks for this. I do have a hypergrid working, but i have not seen one piece of information that i think might be nice to know. How do you remove a hyperlink if its no longer wanted? ive tried several commands but no luck.

    Comment by charvey | October 4, 2012


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 25 other followers

%d bloggers like this: