Grid Hopping – Multi-Grid and Hypergrid Teleport URI Scheme

There has been much discussion of the teleport addresses that can be used within virtual worlds browsers for OpenSim and the generalisation of the platform specific secondlife:// URI scheme handler that Second Life viewers have used, and that have been extended by adding OpenSim grid domain names and interpreted as OpenSim teleport addresses in the past.  Some of these extensions have violated URI standard syntax by adding a second protocol element (http or https after the main prefix protocol), extra : (colons) or spaces between elements (not within an element which can be replaced by a valid %20 code).

A proposal to use a hop:// scheme has been incorporated into a number of third party viewers (TPVs) although some implementation issues remain. Cinders Biscuit of the Firestorm viewer development team states:

It [hop://] was introduced by Armin Weatherwax for Kokua and Firestorm over a year ago. I don’t know the history of it, just the scheme. It can be registered with IANA when it’s finalized, possibly for FS 4.4.6. It’s more than just replacing trademarked syntax. Bear in mind, this is not a Firestorm specific scheme. It originated in Kokua for adding grids to the gridlist from the web and grew and is present in all hypergrid enabled V2/V3-based viewers for OpenSim.

There as been much discussion of this on discussion forums and in OpenSimulator Mantis and Viewer JIRA issues. E.g.,

A recent requirement for a split in the development of viewers which can be used with the proprietary Linden Labs Second Life platform (due to the inclusion of a proprietary licenced Havok physics library recently) and open source platforms like OpenSimulator offers an opportunity to create a suitable and general non-proprietary form of URI protocol handler in the OpenSim branch of these viewers.

Proposal for hop:// and hops:// Teleport URI Protocol Handling

A proposal is as follows… that inter-grid valid teleport indications are characterised by the standard forms hop://and hops:// for secure https usage:

  • hop://gridhostname:port/regionname/x/y/z/
  • hops://gridhostname:port/regionname/x/y/z/

Relevant parts ought to be able to be left out if that makes sense… but not at the expense of making platform or region size assumptions. The landing places ought to be able to be left unspecified if the hop:// is unambiguous rather than bundling in such assumptions to the protocol specification, though any specific implementation could use platform knowledge of course.

A missing gridhostname:port ought to imply the address is only valid on the local grid. But if gridhostname:port is present it should also work even if its used on that grid (this is not the case in the present handling of hop:// in some viewers).

Default port should be the HTTP default port :80, HTTPS default port is :443 (i.e. not a platform specific port).

x, y and z in units of a metre, decimal point notation allowed.

Final / optional?

Test Grid Hops

The following links act as a simple test of hop:// handling by viewers between two OpenSimulator grids… where the fours regions involved are all within one hop of each other (within 4095,4095 regions on an x,y grid maps – another issue inherited from Second Life viewer specific restrictions). Hops ought to be possible between any of these URIs when they are used, you should get to the correct grid and the reported link to the previous place ought to work to return you to the grid and/or region you were in, even if teleporting between locations on the same grid.

hop://login.osgrid.org:80/Wright%20Plaza/128/128/25/
hop://login.osgrid.org:80/Sandbox%20Plaza/128/128/25/
hop://virtual.aiai.ed.ac.uk:8002/Vue-9000/128/128/25/
hop://virtual.aiai.ed.ac.uk:8002/Sandbox/128/128/25/

More information and test hop:// addresses are given at http://www.aiai.ed.ac.uk/~ai/hg.html

x-grid-location-info:// Scheme proposal and Experiments

Cinder Roxley is developing a multi-grid teleport addressing scheme that works in a similar fashion to hop:// in that it can be used to launch or communicate with a running viewer and teleport to a specific grid, region and location, as well as run certain app features. It is being implemented initially in the Alchemy Viewer.

Update and Test Cases by Fred Beckhusen on 20-Dec-2019:

  • Excel (to test a local embedded Hyperlink
  • Web page from Chrome browser – See http://www.hyperica.com/Search/test.htm
  • “Search” Web page Inside Viewer (see Hyperica.com which has a TEST button when search is set for Hyperica)
  • Media On A Prim (same as above, but on a prim)
  • Search bar at top of viewer
  • Chat/IM

Tests image from Fred Beckhusen. As at 20-Dec-2019 only V3HG works in the Viewer Search, along with local. E.g., secondlife://http|!!hg.osgrid.org|80+Lbsa+Plaza

This entry was posted in OpenSim and tagged , . Bookmark the permalink.

2 Responses to Grid Hopping – Multi-Grid and Hypergrid Teleport URI Scheme

  1. bat says:

    Update 17-Dec-2019 by Fred Beckhusen: Testing various means of teleporting or Hypergrid jumping from browser links… here is the short list:

    * Map: http://griddomain:port/ Region (space after the /)
    * HOP: hop://hg.osgrid.org:80/Lbsa%20Plaza/137/135/42
    * V3HG: secondlife://http|!!hg.osgrid.org|80+Lbsa+Plaza
    * HG: secondlife://hg.osgrid.org:80/Lbsa%20Plaza/137/135/42
    * XGrid: x-grid-location-info://griddomain:port/Region%20Name
    * Local: secondlife://Lbsa%20Plaza/137/135/42
    * Experimental, but so far are the best versions.
    * secondlife:///app/teleport/3d.gimisa.ca|9000|gimisa5|128,128,20
    * secondlife:///app/teleport/dolfinsdream.ddns.me:8002/140.42/81.368/25.830
    * secondlife:///app//teleport/grid.metaversedepot.com|8002|sandbox//186/193/23 two slashes make this work on Sing and FS.

    Some results…

    * V3HG works in Chrome to Firestorm with a pop up, does not work in Singularity ( wrong grid)
    * V3HG: secondlife://http|!!greenworld.online:9022/startpunkt/
    * Hop: No regions found – as it only works on the current grid, with a pop up, teleport with photo. Tries to open Firestorm so I did not test it in Singularity
    * hop://greenworld.online:9022/startpunkt/
    * HG: works in Chrome to Firestorm with a pop up teleport, Singularity complains its on a different grid.
    * HG: secondlife://greenworld.online:9022/startpunkt/
    * URI works – no pop up. Singularity complains its on a different grid.
    * URI: secondlife:///app/teleport/greenworld.online|9022|startpunkt//128/128/100
    * URI (modified) also works – no pop up. Singularity complains its on a different grid.
    * URI: secondlife:///app/teleport/greenworld.online:9022/startpunkt/128/128/100
    * URI with one or two slashes before the X,Y,Z works either way.

  2. bat says:

    Windows 10 updates have simplified the information presented and limited the ways in which file type and protocol handling can be changed. Only a few key functions are now presented and the change options are only to a few apps, typically the main Microsoft ones The option to ask each time when opening a registered handler is also removed, which is problematic for those with multiple virtual world viewers installed. So it is difficult both to find what viewers are registered for hop://, xgrid-…, etc.

    These may be visible via the Registry (using regedit)…

    Computer\HKEY_CLASSES_ROOT\secondlife
    Computer\HKEY_CLASSES_ROOT\x-grid-location-info

    Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\secondlife
    Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\x-grid-location-info

    It seems to be the case that the latest VW viewer installed registers itself for secondlife: and x-grid-location-info: protocols.

    Fred Beckhusen reports that he sees an registry entry for hop on his system.

    Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\hop

    I had no such entry that I could fine until Firestorm 6.4.10 which now appears to add this, and it points to the last version of Firestorm you install.

Comments are closed.