<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://opensimulator.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://opensimulator.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sacha+Magne</id>
		<title>OpenSimulator - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://opensimulator.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sacha+Magne"/>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Special:Contributions/Sacha_Magne"/>
		<updated>2026-05-12T06:35:13Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.9</generator>

	<entry>
		<id>http://opensimulator.org/wiki/User_Documentation</id>
		<title>User Documentation</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User_Documentation"/>
				<updated>2009-04-08T08:03:21Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
==Initial Setup==&lt;br /&gt;
* [[Download]] - Download instructions&lt;br /&gt;
* [[Dependencies]] - The other packages you need to install that OpenSim relies upon&lt;br /&gt;
* [[Build Instructions]] - How to build and compile OpenSim from Source&lt;br /&gt;
* [[Configuration]] - How to configure your OpenSim server up and running&lt;br /&gt;
* [[Upgrading]] - How to upgrade your OpenSim version so that you can use your existing data&lt;br /&gt;
* [[Connecting]] - How to connect a compatible viewer to OpenSim&lt;br /&gt;
* [[Troubleshooting]] - How to trouble shoot your OpenSim installation.&lt;br /&gt;
* [[Tips]] - Useful tips from users like you&lt;br /&gt;
* [[FAQ]] - Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
==Administrator Guide==&lt;br /&gt;
* [[Server Commands]] - Commands to control OpenSim&lt;br /&gt;
* [[OpenSim Database support]] - Dealing with databases&lt;br /&gt;
* [[Logging]] - Logging in OpenSim&lt;br /&gt;
* [[Custom Libraries]] - Describes how to add custom content to your OpenSim server&lt;br /&gt;
* [[Automating Tasks]] - How to make administrating a walk in the park&lt;br /&gt;
* [[Network Settings]] - NAT, Ports, Services and more...&lt;br /&gt;
* [[Management]] - All about being an effective administrator/moderator&lt;br /&gt;
* [[Performance]] - How to tweak OpenSim's performance&lt;br /&gt;
* [[Console-less OpenSim]] - How to run OpenSim without console&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Core Facilities==&lt;br /&gt;
* [[OpenSim Archives]] - Loading and saving whole region archives with OpenSim&lt;br /&gt;
* [[IRCBridgeModule]] - A core OpenSim module for integrating IRC with a simulator.&lt;br /&gt;
* [[Hypergrid]] - Information about how to configure the experimental hypergrid architecture&lt;br /&gt;
* [[GridInfo]] - how to provide information about your grid to smart clients&lt;br /&gt;
&lt;br /&gt;
==RealXtend==&lt;br /&gt;
* [[ModRex]] - How to setup the RealXtend server module&lt;br /&gt;
* [[RealXtend Viewer Linux]] - This tutorial describes how to use the RealXtend viewer on Linux, using wine&lt;br /&gt;
&lt;br /&gt;
==Scripting==&lt;br /&gt;
* [[Scripting Documentation]] - Everything you need to know about OpenSim scripting&lt;br /&gt;
* [[Scripting Library]] - A list of example scripts&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
===Platform specific===&lt;br /&gt;
* [[Linux Gridserver, the ubuntu way]] the quick and dirty way to install opensim under ubuntu (Linux)&lt;br /&gt;
* [[Wiimote]] - How to use a wiimote/nunchuk controller with the OpenSim viewer (Linux)&lt;br /&gt;
* [[Cacti]] - Generate Serverstats using the Cacti-Tool and SNMP (Linux)&lt;br /&gt;
* [http://sunredbeach.com/dokuwiki/doku.php?id=opensim:minimal-server Installing an openSUSE 11.1 Minimal server setup for an OpenSim server] - Quick and Dirty setup on an openSUSE 11.1 server&lt;br /&gt;
&lt;br /&gt;
* [http://chapter-and-metaverse.blogspot.com Chapter &amp;amp; Metaverse] - Full suite of tutorials, tips and tricks, for the Windows user (Windows)&lt;br /&gt;
&lt;br /&gt;
===Cross-platform===&lt;br /&gt;
* [[OSGrid Region Registration]] - Describes how to link your region into OS-Grid&lt;br /&gt;
* [[Hints &amp;amp; Tricks]] - A page for Hints and Tricks&lt;br /&gt;
* [[Getting Started with Region Modules]] - The Hello World of OpenSim application development&lt;br /&gt;
* [[Building a bot]] - Getting started with bot design using libomv from the client side.&lt;br /&gt;
* [[pCampBot]] - Physical OpenSim bots&lt;br /&gt;
* [[Using L3DT]] - How to create custom terrains&lt;br /&gt;
* [[Detailed cross-region terrain making]] - A workflow for creating large cross-region custom terrains&lt;br /&gt;
* [http://update.multiverse.net/wiki/index.php/About_Terrain How to make a good Terrain (includes 4 programs to use)]&lt;br /&gt;
&lt;br /&gt;
==Gforge Projects==&lt;br /&gt;
* [[OpenSimSearch]] - Search for your OpenSim&lt;br /&gt;
* [[Linux Gridserver]] - Linux Gridserver using the Moo tool&lt;br /&gt;
* [[Wixtd|WiXTD]] - Setup and usage of the WiXTD metaverse-portal&lt;br /&gt;
* [[ServerStats]] - RRD/Proc serverstats using the OpenSim module for Berlios Serverstats (Linux)&lt;br /&gt;
* [[JabberBridge]] - Jabber/Xmpp bridge for opensim (currently only works properly in Standalone mode)&lt;br /&gt;
&lt;br /&gt;
==Unofficial Hypernauta's Basic Manual==&lt;br /&gt;
* If you are a real beginner it can be for you. Talking about &amp;quot;personal&amp;quot; worlds created using domestic computers. [http://www.dmu.com/opensime LINK]&lt;br /&gt;
&lt;br /&gt;
==Contribution Policy==&lt;br /&gt;
* [[User_Wiki_Conventions|User Wiki Conventions]] - Read this carefully, before adding content to the wiki&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
&amp;lt;cleanpage title=hide cats=hide /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User_Documentation</id>
		<title>User Documentation</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User_Documentation"/>
				<updated>2009-04-08T07:37:49Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: Add monit (sm) wip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
==Initial Setup==&lt;br /&gt;
* [[Download]] - Download instructions&lt;br /&gt;
* [[Dependencies]] - The other packages you need to install that OpenSim relies upon&lt;br /&gt;
* [[Build Instructions]] - How to build and compile OpenSim from Source&lt;br /&gt;
* [[Configuration]] - How to configure your OpenSim server up and running&lt;br /&gt;
* [[Upgrading]] - How to upgrade your OpenSim version so that you can use your existing data&lt;br /&gt;
* [[Connecting]] - How to connect a compatible viewer to OpenSim&lt;br /&gt;
* [[Troubleshooting]] - How to trouble shoot your OpenSim installation.&lt;br /&gt;
* [[Tips]] - Useful tips from users like you&lt;br /&gt;
* [[FAQ]] - Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
==Administrator Guide==&lt;br /&gt;
* [[Server Commands]] - Commands to control OpenSim&lt;br /&gt;
* [[OpenSim Database support]] - Dealing with databases&lt;br /&gt;
* [[Logging]] - Logging in OpenSim&lt;br /&gt;
* [[Custom Libraries]] - Describes how to add custom content to your OpenSim server&lt;br /&gt;
* [[Automating Tasks]] - How to make administrating a walk in the park&lt;br /&gt;
* [[Network Settings]] - NAT, Ports, Services and more...&lt;br /&gt;
* [[Management]] - All about being an effective administrator/moderator&lt;br /&gt;
* [[Performance]] - How to tweak OpenSim's performance&lt;br /&gt;
* [[Console-less OpenSim]] - How to run OpenSim without console&lt;br /&gt;
* [[Monit]] - Monit, the GridWay (Linux and Monit)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Core Facilities==&lt;br /&gt;
* [[OpenSim Archives]] - Loading and saving whole region archives with OpenSim&lt;br /&gt;
* [[IRCBridgeModule]] - A core OpenSim module for integrating IRC with a simulator.&lt;br /&gt;
* [[Hypergrid]] - Information about how to configure the experimental hypergrid architecture&lt;br /&gt;
* [[GridInfo]] - how to provide information about your grid to smart clients&lt;br /&gt;
&lt;br /&gt;
==RealXtend==&lt;br /&gt;
* [[ModRex]] - How to setup the RealXtend server module&lt;br /&gt;
* [[RealXtend Viewer Linux]] - This tutorial describes how to use the RealXtend viewer on Linux, using wine&lt;br /&gt;
&lt;br /&gt;
==Scripting==&lt;br /&gt;
* [[Scripting Documentation]] - Everything you need to know about OpenSim scripting&lt;br /&gt;
* [[Scripting Library]] - A list of example scripts&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
===Platform specific===&lt;br /&gt;
* [[Linux Gridserver, the ubuntu way]] the quick and dirty way to install opensim under ubuntu (Linux)&lt;br /&gt;
* [[Wiimote]] - How to use a wiimote/nunchuk controller with the OpenSim viewer (Linux)&lt;br /&gt;
* [[Cacti]] - Generate Serverstats using the Cacti-Tool and SNMP (Linux)&lt;br /&gt;
* [http://sunredbeach.com/dokuwiki/doku.php?id=opensim:minimal-server Installing an openSUSE 11.1 Minimal server setup for an OpenSim server] - Quick and Dirty setup on an openSUSE 11.1 server&lt;br /&gt;
&lt;br /&gt;
* [http://chapter-and-metaverse.blogspot.com Chapter &amp;amp; Metaverse] - Full suite of tutorials, tips and tricks, for the Windows user (Windows)&lt;br /&gt;
&lt;br /&gt;
===Cross-platform===&lt;br /&gt;
* [[OSGrid Region Registration]] - Describes how to link your region into OS-Grid&lt;br /&gt;
* [[Hints &amp;amp; Tricks]] - A page for Hints and Tricks&lt;br /&gt;
* [[Getting Started with Region Modules]] - The Hello World of OpenSim application development&lt;br /&gt;
* [[Building a bot]] - Getting started with bot design using libomv from the client side.&lt;br /&gt;
* [[pCampBot]] - Physical OpenSim bots&lt;br /&gt;
* [[Using L3DT]] - How to create custom terrains&lt;br /&gt;
* [[Detailed cross-region terrain making]] - A workflow for creating large cross-region custom terrains&lt;br /&gt;
* [http://update.multiverse.net/wiki/index.php/About_Terrain How to make a good Terrain (includes 4 programs to use)]&lt;br /&gt;
&lt;br /&gt;
==Gforge Projects==&lt;br /&gt;
* [[OpenSimSearch]] - Search for your OpenSim&lt;br /&gt;
* [[Linux Gridserver]] - Linux Gridserver using the Moo tool&lt;br /&gt;
* [[Wixtd|WiXTD]] - Setup and usage of the WiXTD metaverse-portal&lt;br /&gt;
* [[ServerStats]] - RRD/Proc serverstats using the OpenSim module for Berlios Serverstats (Linux)&lt;br /&gt;
* [[JabberBridge]] - Jabber/Xmpp bridge for opensim (currently only works properly in Standalone mode)&lt;br /&gt;
&lt;br /&gt;
==Unofficial Hypernauta's Basic Manual==&lt;br /&gt;
* If you are a real beginner it can be for you. Talking about &amp;quot;personal&amp;quot; worlds created using domestic computers. [http://www.dmu.com/opensime LINK]&lt;br /&gt;
&lt;br /&gt;
==Contribution Policy==&lt;br /&gt;
* [[User_Wiki_Conventions|User Wiki Conventions]] - Read this carefully, before adding content to the wiki&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
&amp;lt;cleanpage title=hide cats=hide /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Download</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Download"/>
				<updated>2009-02-21T15:18:14Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Quicklinks}}&lt;br /&gt;
==Source code==&lt;br /&gt;
Here are the current released versions of OpenSim.  &lt;br /&gt;
&lt;br /&gt;
Please see [[Branches]] for more information on the repository branches and what they are for.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;'''Please note:'''&amp;lt;/font&amp;gt; As OpenSim is still at an alpha code maturity stage, there is absolutely no guarantee that functionality works or is stable, even in the numbered releases.  Certain features may not work either because the code is in rapid evolution, or because functionality expected by the Linden Labs Second Life viewer has simply not been implemented yet.  However, constructive feedback is still welcomed.&lt;br /&gt;
&lt;br /&gt;
Also, please be aware that OpenSim requires that you have a fair amount of technical knowledge in order to set it up.&lt;br /&gt;
&lt;br /&gt;
You may need to use the Subversion source code management system to obtain the code.  For Windows you can install just [http://subversion.tigris.org/servlets/NewsItemView?newsItemID=1941 Subversion] or the often preferred [http://tortoisesvn.tigris.org Tortoise Subversion extension]. Mac OS X 10.l5 and above have Subversion built but OS. X 10.4.x can still [http://homepage.mac.com/martinott/Subversion-1.4.4.pkg.zip download Subversion].&lt;br /&gt;
&lt;br /&gt;
* '''0.6.3 Alpha release''' (r8540) **** USE 0.6.3 POSTFIXES ****&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/tags/0.6.3-release opensim&lt;br /&gt;
&lt;br /&gt;
* '''0.6.3 Alpha with post-release fixes''' (r8542)&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/branches/0.6.3-post-fixes opensim&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''0.6.2 Alpha release''' (r8068)&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/tags/0.6.2-release opensim&lt;br /&gt;
&lt;br /&gt;
* '''0.6.1 Alpha release''' (r7840)&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/tags/0.6.1-release opensim&lt;br /&gt;
&lt;br /&gt;
* '''0.6.1 Alpha with post-release fixes'''&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/branches/0.6.1-post-fixes opensim&lt;br /&gt;
&lt;br /&gt;
* '''0.6.0 Alpha release''' (r7471)&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/tags/0.6.0-release opensim&lt;br /&gt;
&lt;br /&gt;
* '''Latest Subversion revision version (bleeding edge)'''&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/trunk opensim&lt;br /&gt;
&lt;br /&gt;
Another option for obtaining the code is via [http://www.selenic.com/mercurial/wiki/ mercurial] from the [http://opensimulator.org/hg/opensim-trunk/ OpenSim repository].&lt;br /&gt;
&lt;br /&gt;
* '''Latest mercurial revision version (bleeding edge)'''&lt;br /&gt;
 hg clone http://opensimulator.org/hg/opensim-trunk/ opensim&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
==Installers==&lt;br /&gt;
&lt;br /&gt;
* '''Official 0.6.2 Windows Installer''' &lt;br /&gt;
 http://forge.opensimulator.org/gf/download/frsrelease/157/359/OpenSimSetup0.6.2.exe&lt;br /&gt;
&lt;br /&gt;
* '''Official 0.6.1 Windows Installer'''&lt;br /&gt;
 http://forge.opensimulator.org/gf/download/frsrelease/147/318/OpenSimSetup0.6.1.exe&lt;br /&gt;
&lt;br /&gt;
* '''Official 0.6 Windows Installer'''  Not Valid for OSGrid Nov 30 2008&lt;br /&gt;
 http://forge.opensimulator.org/gf/download/frsrelease/137/251/OpenSimSetup0.6.exe&lt;br /&gt;
&lt;br /&gt;
* '''[[UnofficialDebPackages|Unofficial .deb packages]]&lt;br /&gt;
&lt;br /&gt;
==Packages==&lt;br /&gt;
* '''0.6.2 release''' (thanks to the OSGrid team, and especially Nebadon)&lt;br /&gt;
 http://dist.opensimulator.org/OpenSimulator.v0.6.2.8068.zip&lt;br /&gt;
&lt;br /&gt;
* '''0.6.1 release''' (thanks to the OSGrid team)&lt;br /&gt;
 http://dist.opensimulator.org/opensim.v0.6.1.7840.zip&lt;br /&gt;
&lt;br /&gt;
* '''0.6.0 release''' (thanks to the OSGrid team)&lt;br /&gt;
 http://osgrid.org/download/osgrid.opensim.v0.6.0.7471.zip&lt;br /&gt;
&lt;br /&gt;
* '''Official Nightly Build Binary (Recommended for quick testing)&lt;br /&gt;
 http://builds.opensimulator.org&lt;br /&gt;
&lt;br /&gt;
==Related Software==&lt;br /&gt;
[[Related_Software|Related Software Section - CLICK HERE]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Pages by Category:''[[:Category:Users| User-pages]],[[:Category:Development| Developer-pages]],[[:Category:Scripts| Scripts]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Developers]]&lt;br /&gt;
&amp;lt;cleanpage title=hide cats=hide /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Download</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Download"/>
				<updated>2009-02-21T13:39:28Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Quicklinks}}&lt;br /&gt;
==Source code==&lt;br /&gt;
Here are the current released versions of OpenSim.  &lt;br /&gt;
&lt;br /&gt;
Please see [[Branches]] for more information on the repository branches and what they are for.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;'''Please note:'''&amp;lt;/font&amp;gt; As OpenSim is still at an alpha code maturity stage, there is absolutely no guarantee that functionality works or is stable, even in the numbered releases.  Certain features may not work either because the code is in rapid evolution, or because functionality expected by the Linden Labs Second Life viewer has simply not been implemented yet.  However, constructive feedback is still welcomed.&lt;br /&gt;
&lt;br /&gt;
Also, please be aware that OpenSim requires that you have a fair amount of technical knowledge in order to set it up.&lt;br /&gt;
&lt;br /&gt;
You may need to use the Subversion source code management system to obtain the code.  For Windows you can install just [http://subversion.tigris.org/servlets/NewsItemView?newsItemID=1941 Subversion] or the often preferred [http://tortoisesvn.tigris.org Tortoise Subversion extension]. Mac OS X 10.l5 and above have Subversion built but OS. X 10.4.x can still [http://homepage.mac.com/martinott/Subversion-1.4.4.pkg.zip download Subversion].&lt;br /&gt;
&lt;br /&gt;
* '''0.6.3 Alpha release''' (r8540)&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/tags/0.6.3-release opensim&lt;br /&gt;
&lt;br /&gt;
* '''0.6.3 Alpha with post-release fixes''' (r8542)&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/branches/0.6.3-post-fixes opensim&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''0.6.2 Alpha release''' (r8068)&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/tags/0.6.2-release opensim&lt;br /&gt;
&lt;br /&gt;
* '''0.6.1 Alpha release''' (r7840)&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/tags/0.6.1-release opensim&lt;br /&gt;
&lt;br /&gt;
* '''0.6.1 Alpha with post-release fixes'''&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/branches/0.6.1-post-fixes opensim&lt;br /&gt;
&lt;br /&gt;
* '''0.6.0 Alpha release''' (r7471)&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/tags/0.6.0-release opensim&lt;br /&gt;
&lt;br /&gt;
* '''Latest Subversion revision version (bleeding edge)'''&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/trunk opensim&lt;br /&gt;
&lt;br /&gt;
Another option for obtaining the code is via [http://www.selenic.com/mercurial/wiki/ mercurial] from the [http://opensimulator.org/hg/opensim-trunk/ OpenSim repository].&lt;br /&gt;
&lt;br /&gt;
* '''Latest mercurial revision version (bleeding edge)'''&lt;br /&gt;
 hg clone http://opensimulator.org/hg/opensim-trunk/ opensim&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
==Installers==&lt;br /&gt;
&lt;br /&gt;
* '''Official 0.6.2 Windows Installer''' &lt;br /&gt;
 http://forge.opensimulator.org/gf/download/frsrelease/157/359/OpenSimSetup0.6.2.exe&lt;br /&gt;
&lt;br /&gt;
* '''Official 0.6.1 Windows Installer'''&lt;br /&gt;
 http://forge.opensimulator.org/gf/download/frsrelease/147/318/OpenSimSetup0.6.1.exe&lt;br /&gt;
&lt;br /&gt;
* '''Official 0.6 Windows Installer'''  Not Valid for OSGrid Nov 30 2008&lt;br /&gt;
 http://forge.opensimulator.org/gf/download/frsrelease/137/251/OpenSimSetup0.6.exe&lt;br /&gt;
&lt;br /&gt;
* '''[[UnofficialDebPackages|Unofficial .deb packages]]&lt;br /&gt;
&lt;br /&gt;
==Packages==&lt;br /&gt;
* '''0.6.2 release''' (thanks to the OSGrid team, and especially Nebadon)&lt;br /&gt;
 http://dist.opensimulator.org/OpenSimulator.v0.6.2.8068.zip&lt;br /&gt;
&lt;br /&gt;
* '''0.6.1 release''' (thanks to the OSGrid team)&lt;br /&gt;
 http://dist.opensimulator.org/opensim.v0.6.1.7840.zip&lt;br /&gt;
&lt;br /&gt;
* '''0.6.0 release''' (thanks to the OSGrid team)&lt;br /&gt;
 http://osgrid.org/download/osgrid.opensim.v0.6.0.7471.zip&lt;br /&gt;
&lt;br /&gt;
* '''Official Nightly Build Binary (Recommended for quick testing)&lt;br /&gt;
 http://builds.opensimulator.org&lt;br /&gt;
&lt;br /&gt;
==Related Software==&lt;br /&gt;
[[Related_Software|Related Software Section - CLICK HERE]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Pages by Category:''[[:Category:Users| User-pages]],[[:Category:Development| Developer-pages]],[[:Category:Scripts| Scripts]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Developers]]&lt;br /&gt;
&amp;lt;cleanpage title=hide cats=hide /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Download</id>
		<title>Download</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Download"/>
				<updated>2009-02-21T10:37:54Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Quicklinks}}&lt;br /&gt;
==Source code==&lt;br /&gt;
Here are the current released versions of OpenSim.  &lt;br /&gt;
&lt;br /&gt;
Please see [[Branches]] for more information on the repository branches and what they are for.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=red&amp;gt;'''Please note:'''&amp;lt;/font&amp;gt; As OpenSim is still at an alpha code maturity stage, there is absolutely no guarantee that functionality works or is stable, even in the numbered releases.  Certain features may not work either because the code is in rapid evolution, or because functionality expected by the Linden Labs Second Life viewer has simply not been implemented yet.  However, constructive feedback is still welcomed.&lt;br /&gt;
&lt;br /&gt;
Also, please be aware that OpenSim requires that you have a fair amount of technical knowledge in order to set it up.&lt;br /&gt;
&lt;br /&gt;
You may need to use the Subversion source code management system to obtain the code.  For Windows you can install just [http://subversion.tigris.org/servlets/NewsItemView?newsItemID=1941 Subversion] or the often preferred [http://tortoisesvn.tigris.org Tortoise Subversion extension]. Mac OS X 10.l5 and above have Subversion built but OS. X 10.4.x can still [http://homepage.mac.com/martinott/Subversion-1.4.4.pkg.zip download Subversion].&lt;br /&gt;
&lt;br /&gt;
* '''0.6.3 Alpha release''' (r8540)&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/tags/0.6.3-release opensim&lt;br /&gt;
&lt;br /&gt;
* '''0.6.2 Alpha release''' (r8068)&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/tags/0.6.2-release opensim&lt;br /&gt;
&lt;br /&gt;
* '''0.6.1 Alpha release''' (r7840)&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/tags/0.6.1-release opensim&lt;br /&gt;
&lt;br /&gt;
* '''0.6.1 Alpha with post-release fixes'''&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/branches/0.6.1-post-fixes opensim&lt;br /&gt;
&lt;br /&gt;
* '''0.6.0 Alpha release''' (r7471)&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/tags/0.6.0-release opensim&lt;br /&gt;
&lt;br /&gt;
* '''Latest Subversion revision version (bleeding edge)'''&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/trunk opensim&lt;br /&gt;
&lt;br /&gt;
Another option for obtaining the code is via [http://www.selenic.com/mercurial/wiki/ mercurial] from the [http://opensimulator.org/hg/opensim-trunk/ OpenSim repository].&lt;br /&gt;
&lt;br /&gt;
* '''Latest mercurial revision version (bleeding edge)'''&lt;br /&gt;
 hg clone http://opensimulator.org/hg/opensim-trunk/ opensim&lt;br /&gt;
&lt;br /&gt;
==Binaries==&lt;br /&gt;
==Installers==&lt;br /&gt;
&lt;br /&gt;
* '''Official 0.6.2 Windows Installer''' &lt;br /&gt;
 http://forge.opensimulator.org/gf/download/frsrelease/157/359/OpenSimSetup0.6.2.exe&lt;br /&gt;
&lt;br /&gt;
* '''Official 0.6.1 Windows Installer'''&lt;br /&gt;
 http://forge.opensimulator.org/gf/download/frsrelease/147/318/OpenSimSetup0.6.1.exe&lt;br /&gt;
&lt;br /&gt;
* '''Official 0.6 Windows Installer'''  Not Valid for OSGrid Nov 30 2008&lt;br /&gt;
 http://forge.opensimulator.org/gf/download/frsrelease/137/251/OpenSimSetup0.6.exe&lt;br /&gt;
&lt;br /&gt;
* '''[[UnofficialDebPackages|Unofficial .deb packages]]&lt;br /&gt;
&lt;br /&gt;
==Packages==&lt;br /&gt;
* '''0.6.2 release''' (thanks to the OSGrid team, and especially Nebadon)&lt;br /&gt;
 http://dist.opensimulator.org/OpenSimulator.v0.6.2.8068.zip&lt;br /&gt;
&lt;br /&gt;
* '''0.6.1 release''' (thanks to the OSGrid team)&lt;br /&gt;
 http://dist.opensimulator.org/opensim.v0.6.1.7840.zip&lt;br /&gt;
&lt;br /&gt;
* '''0.6.0 release''' (thanks to the OSGrid team)&lt;br /&gt;
 http://osgrid.org/download/osgrid.opensim.v0.6.0.7471.zip&lt;br /&gt;
&lt;br /&gt;
* '''Official Nightly Build Binary (Recommended for quick testing)&lt;br /&gt;
 http://builds.opensimulator.org&lt;br /&gt;
&lt;br /&gt;
==Related Software==&lt;br /&gt;
[[Related_Software|Related Software Section - CLICK HERE]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Pages by Category:''[[:Category:Users| User-pages]],[[:Category:Development| Developer-pages]],[[:Category:Scripts| Scripts]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
[[Category:Developers]]&lt;br /&gt;
&amp;lt;cleanpage title=hide cats=hide /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Grid_Associations</id>
		<title>Grid Associations</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Grid_Associations"/>
				<updated>2009-02-16T19:45:36Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a wiki page to draft out the idea of grid associations and eventually have a list of associations.&lt;br /&gt;
&lt;br /&gt;
What is a grid association?&lt;br /&gt;
* A group of grid owners working together to achieve common goals.&lt;br /&gt;
&lt;br /&gt;
Why have grid associations?&lt;br /&gt;
* Unity is power.&lt;br /&gt;
* Homogeneous experience with standardized quality for users that teleport between grids.&lt;br /&gt;
* Hyper grid technology enables grid associations linking up in world.&lt;br /&gt;
* Shared quality goals.&lt;br /&gt;
* Same grid version.&lt;br /&gt;
* Shared user base.&lt;br /&gt;
* Teaming up for 24/7 maintenance.&lt;br /&gt;
* Collecting improvement ideas and bugs to OpenSim dev team.&lt;br /&gt;
* Shared assets for grid association sharing a theme.&lt;br /&gt;
* Together baked terrain offering seamless map over the entire grid associations hyper grid.&lt;br /&gt;
* Working on contents like avatars meshes&lt;br /&gt;
* Mutualising ressources &lt;br /&gt;
* Working on databse replication (grid A  /B &amp;lt;&amp;gt; B/A )&lt;br /&gt;
&lt;br /&gt;
What types of grid associations there could be?&lt;br /&gt;
* Theme: urban, nature, rpg, scifi&lt;br /&gt;
* Hobby: climbing, diving&lt;br /&gt;
* Business&lt;br /&gt;
* Game&lt;br /&gt;
&lt;br /&gt;
== Grids Looking for Cooperation ==&lt;br /&gt;
&lt;br /&gt;
Add your grid information to this list if you are interested in joining to a grid association.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! Grid Name&lt;br /&gt;
! Grid Homepage&lt;br /&gt;
! Grid HG SLUR&lt;br /&gt;
! Grid Contact Email&lt;br /&gt;
! Cooperation Wishlist&lt;br /&gt;
|-&lt;br /&gt;
| Example Grid&lt;br /&gt;
| http://www.example-grid.com&lt;br /&gt;
| secondlife://gateway.example-grid.com:9000/&lt;br /&gt;
| john.smith@example-grid.com&lt;br /&gt;
| We are looking for a, b and c.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Grid Associations ==&lt;br /&gt;
&lt;br /&gt;
If you have formed a public grid association you can add it to this list.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! Association Name&lt;br /&gt;
! Association Homepage&lt;br /&gt;
! Association HG Gateway SLUR&lt;br /&gt;
! Association Contact Email&lt;br /&gt;
! Association Member Grids&lt;br /&gt;
|-&lt;br /&gt;
| Example Association&lt;br /&gt;
| http://www.example-association.com&lt;br /&gt;
| secondlife://gateway.example-association.com:9000/&lt;br /&gt;
| john.smith@example-association.com&lt;br /&gt;
| Grid A, Grid B, Grid C &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Public_Hypergrid_Nodes</id>
		<title>Public Hypergrid Nodes</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Public_Hypergrid_Nodes"/>
				<updated>2009-02-07T10:40:22Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is a list of hypergrid-ready nodes that you can use for testing your installation and for linking your world. Please add your public node here if you wish to help build a web of opensims!&lt;br /&gt;
&lt;br /&gt;
For the time being, and until the security concerns are addressed, we advise you to be careful about who you link to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
![[Hypergrid|link-region server and port]]&lt;br /&gt;
!Organization&lt;br /&gt;
!Description&lt;br /&gt;
!Grid Location&lt;br /&gt;
|-&lt;br /&gt;
|'''osl2.nac.uci.edu 9006'''&lt;br /&gt;
|University of California, Irvine&lt;br /&gt;
|The &amp;quot;UCI Welcome&amp;quot; region connected to OSGrid. It is run by Diva (Crista Lopes) on a machine owned by the University of California, Irvine. You can link to it as a way to link to OSGrid.&lt;br /&gt;
|OSGrid is centered at 10,000, 10,000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''osl3.nac.uci.edu 9000'''&lt;br /&gt;
|University of California, Irvine&lt;br /&gt;
|The &amp;quot;UC Irvine&amp;quot; region connected to OSGrid, neighboring Wright Plaza. You can link to it as a way to link to OSGrid.&lt;br /&gt;
|OSGrid is centered at 10,000, 10,000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''ucigrid02.nacs.uci.edu 9000'''&lt;br /&gt;
|University of California, Irvine&lt;br /&gt;
|The UCI Grid&lt;br /&gt;
|UCIGrid is centered at 8,888, 8,888&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''ucigrid04.nacs.uci.edu 9003'''&lt;br /&gt;
|University of California, Irvine&lt;br /&gt;
|The UCI Grid, region &amp;quot;Gateway 3000&amp;quot;. Link your lower-1,000's grid to this node in order to bridge to grids in the 10,000's.&lt;br /&gt;
|This node is positioned at 3,000, 3,000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''ucigrid04.nacs.uci.edu 9007'''&lt;br /&gt;
|University of California, Irvine&lt;br /&gt;
|The UCI Grid, region &amp;quot;Gateway 7000&amp;quot;. Link your 10,000's grid to this node in order to bridge to grids in the lower-1,000's.&lt;br /&gt;
|This node is positioned at 7,000, 7,000. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''grid.cyberlandia.net 9000'''&lt;br /&gt;
|Cyberlandia&lt;br /&gt;
|The &amp;quot;Cyberlandia Gw&amp;quot; region. http://www.cyberlandia.net Metaverso italiano 3D, more to 250 region and 1000 users. You can link to it as a way to link to Cyberlandia. &lt;br /&gt;
|Cyberlandia is centered at ???&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''hypergrid.cyberlandia.net 9000'''&lt;br /&gt;
|Cyberlandia &lt;br /&gt;
|The &amp;quot;Osgrid Gw&amp;quot; region connected to Cyberlandia grid http://www.cyberlandia.net. Search on map &amp;quot;Cyberlandia grid&amp;quot; You can link to it as a way to link to OSGrid.  &lt;br /&gt;
|OSGrid is centered at 10,000, 10,000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''regionsde.ralf-haifisch.biz 9000'''&lt;br /&gt;
|Ralf Haifisch on osgrid&lt;br /&gt;
|The &amp;quot;Sharkland Tropical&amp;quot; region connected to OSGrid. German welcome aerea, Freebie aerea, region rental, pretty tropical regions  &lt;br /&gt;
|Centered at 10000,10000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''joomla-italia.net 9000'''&lt;br /&gt;
|Social Network Italia&lt;br /&gt;
|The &amp;quot;SNI City&amp;quot; region connected to SNI (Social Network Italia) grid http://www.opensim-italia.net. This grid is connected with Osgrid,Collateral World,Francogrid and Darwin  &lt;br /&gt;
|Centered at ???&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''collateral.opensim-italia.net 9000'''&lt;br /&gt;
|Part of Social Network Italia&lt;br /&gt;
|Collateral World &lt;br /&gt;
|Centered at ???&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''88.191.79.199 9050'''&lt;br /&gt;
|Francogrid&lt;br /&gt;
|Francogrid node, connected to &amp;quot;City&amp;quot;, behind the welcome land of Francogrid &amp;quot;Orion&amp;quot; &lt;br /&gt;
|Centered at 1000 1000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''94.23.8.158 9999'''&lt;br /&gt;
|Le Monde de Darwin&lt;br /&gt;
|The Lost World of Darwin http://www.LeMondedeDarwin.com. [[Image:hypergrid.jpg|200px]]&lt;br /&gt;
|Centered at ???&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''sg.k-grid.com 9000'''&lt;br /&gt;
|K-Grid&lt;br /&gt;
|The Kool grid for the Kool KidZ . Feel free to visit us. The main Gateway is located at 3700,3700 so take that in account before any HyperJump. Adress updated 02/07/09  &lt;br /&gt;
|This node is located at 3700,3700 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''metropolis.hypergrid.org 9000'''&lt;br /&gt;
|METROPOLIS-Grid&lt;br /&gt;
|The Region &amp;quot;Center-World&amp;quot; (at 1000:1000) connected to the METROPOLIS-Grid http://metropolis.hypergrid.org . German Grid with a lot of free Content and free SIM-hosting. Connected via HG to the most of the Grids listed here &lt;br /&gt;
|Centered at 1000,1000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''ascent.bluewallgroup.com 9910'''&lt;br /&gt;
|BlueWall Group&lt;br /&gt;
|This region is in a good proximity @ (6000,6000) for intermediate jumps to OSGrid from grids in the (2000,2000) range, or any region within 4096 units. [[Image:Hypernaut 001.png|150px|none|thumb|Get your Hypernaut here :)]]&lt;br /&gt;
|Centered at 6000,6000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''sim.thestudyofracialism.org 9000'''&lt;br /&gt;
|Backintyme Publishing&lt;br /&gt;
|TSOR1 is a stand-alone sim owned by Backintyme Publishing. It connects to most of the other downrange sites listed here. The sim is intended for an SL study/discussion group's eventual migration from SL to OS.&lt;br /&gt;
|Centered at 4000,4000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''pc.backintyme.com 9100'''&lt;br /&gt;
|Backintyme Publishing&lt;br /&gt;
|TSOR2 is a small teleport relay island, also owned by Backintyme Publishing, intended for jumps to the vicinity of OSGrid. It is linked to most of the uprange sites listed here.&lt;br /&gt;
|Centered at 8000,8000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''24.248.172.208 9005'''&lt;br /&gt;
|'''MyOpenGrid'''&lt;br /&gt;
|Myopengrid is connected to osl2.nac.uci.edu &amp;quot;Osgrid Gateway&amp;quot; and 88.191.79.199 9050 &amp;quot;Franco Grid&amp;quot;&lt;br /&gt;
|Centered at 7000,7000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''cuonsim1.de 9300'''&lt;br /&gt;
|Cuon-Grid&lt;br /&gt;
|Cuon-Grid is a little grid and has some Main Sims with linux themes, server are in Germany. To login in to the grid use this http://sim-linuxmain.org:8081/CuonGrid/index.html. There are free sims for testing. &lt;br /&gt;
|Centered at 10,000, 10,000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''metaversesims.net 9014'''&lt;br /&gt;
|Metaverse Sims&lt;br /&gt;
|Standalone mode - 6 regions - linked to several other grids. [[Image:Mtvs09010101.jpg|200px]]&lt;br /&gt;
|Centered at 9,000, 9,000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''mecatreco.game-host.org 9002'''&lt;br /&gt;
|Villa Pelopes &lt;br /&gt;
|Two regions,one standalone server. Member of the [http://www.dmu.com Digital Media Universe], brazilian federation of independed hypergrided worlds: [[Image:Dmu.jpg|100px]]&lt;br /&gt;
| 1002 1002&lt;br /&gt;
 &lt;br /&gt;
|-&lt;br /&gt;
|'''ellis.pseudospace.net 9000'''&lt;br /&gt;
|Pseudospace Central Gateway &amp;amp; Welcome Center &lt;br /&gt;
|Pseudospace is a free to play, public access OpenSimulator grid created to provide role players with an immersive environment by which they may play, socialize, and build within.  This is a mature grid which may contain adult content and situations, only those who are 18 or older may enter.&lt;br /&gt;
&lt;br /&gt;
Please be advised, that we are currently under heavy construction. Feel free to look around, but mind the mess and the occasional flying prims! If you have any questions or concerns please feel free to email john(at)pseudospace(dot)net.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All user content such as skins, attachments, textures, etc. are provided for free using a share and share alike, create for the sake of creativity methodology.  All such assets are kept within the content library on Ellis Island and are freely copyable / distributable unless the &amp;quot;No Transfer&amp;quot; option is enabled which simply means that the asset may not be copied off of the grid.  Individual contributions to the grid's content library are greatly welcomed and may be done so by leaving a copyable box containing your contribution on one of the shelves located inside the Ellis Library.&lt;br /&gt;
&lt;br /&gt;
| 9000 9000&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''ellis.pseudospace.net 9009'''&lt;br /&gt;
|Pseudospace Lost Gateway &lt;br /&gt;
|Gateway on Pseudospace grid for regions within the 5000x5000 range. - See above description for grid info.&lt;br /&gt;
| 5000 5000&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|'''grid4us.net 9020'''&lt;br /&gt;
|Grid4Us&lt;br /&gt;
|German Grid that is linked to OSGrid and Francogrid.&lt;br /&gt;
|Centered at 8500,8500&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''gotz.ath.cx  9002'''&lt;br /&gt;
|Gotz&lt;br /&gt;
|One region,one standalone server. Visits: 9:00 PST -&amp;gt; 19:00 PST. Member of the &lt;br /&gt;
[http://www.dmu.com Digital Media Universe] , brazilian federation of independent hypergrided worlds:[[Image:Dmu.jpg|100px]]&lt;br /&gt;
| 1002 1002&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''87.230.89.74 9000 '''&lt;br /&gt;
|SCHWARZE WELT&lt;br /&gt;
| inworld location of www.schwarze-welle.de , the maybe biggest dark music streaming readio&lt;br /&gt;
| 100000 10000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''villapileque.game-host.org  9002'''&lt;br /&gt;
|Villa Pileque&lt;br /&gt;
|One region,one standalone server.   Member of the &lt;br /&gt;
[http://www.dmu.com Digital Media Universe] , brazilian federation of independent hypergrided worlds:[[Image:Dmu.jpg|100px]]&lt;br /&gt;
| 1002 1002&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''peak.sciencesim.com 9001'''&lt;br /&gt;
|ScienceSim&lt;br /&gt;
|[http://www.sciencesim.com/ ScienceSim] is a virtual world created for the high performance computing community for scientific visualizations, a number of interesting real world terrains (Mt St Helens and Yellowstone Park) and some astronomical simulations. And some useful, BSD-licensed content.&lt;br /&gt;
| Centered at 10000,10000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''meanduland.com 9124'''&lt;br /&gt;
|Meanduland&lt;br /&gt;
|[http://www.meanduland.com] is a residentual only sim offering beautiful regions with low lag and friendly neighbors. Located on the hypergrid to allow easy access to OSGrid. Links to the most popular OS grids available in our Welcome Island. This grid is up 24/7 and all are welcome to drop in and and look around. If you have trouble connecting, please contact Frank Northmead or Ayana Northmead and let us know so we can help fix the problem.&lt;br /&gt;
| Centered at 8000,8000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''alpha.bubblecloud.org 9000'''&lt;br /&gt;
|Bubble Cloud&lt;br /&gt;
|The alpha 00 is the entrance area to bubble cloud grid. Bubble cloud is test grid where anyone can experiment. If you build something please do it in medieval fantasy setting for others to enjoy.&lt;br /&gt;
|Centered at 10,000, 10,000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''opensim.mydyn.de 9090'''&lt;br /&gt;
|OpenSIM.de&lt;br /&gt;
|[http://www.opensim.de OpenSim.de] Standalone-Testserver with 16 Regions, German Users (Deutsche Benutzer), High-End Quad-Core Rackserver with Linux Ubuntu 8.10 . Port 9090 is the M34 named Main Island. Live Support &amp;amp; IRC, Wiki, FAQ, Howto´s, Downloads.&lt;br /&gt;
|Centered at 1000,1000&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Hypergrid</id>
		<title>Hypergrid</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Hypergrid"/>
				<updated>2008-12-26T14:38:07Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==The OpenSim Hypergrid==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== What is the hypergrid? ===&lt;br /&gt;
&amp;lt;!-- [[image:VWV.jpg|250px|thumb|Web of Virtual Worlds]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hypergrid is an extension to opensim that allows you to link your opensim to other opensims on the internet, and that supports seamless agent transfers among those opensims. It can be used both in standalone mode and in grid mode. The hypergrid is effectively supporting the emergence of a Web of virtual worlds. &lt;br /&gt;
&lt;br /&gt;
The basic idea for the hypergrid is that region/grid administrations can place hyperlinks on their map to hypergrided regions run by others. Once those hyperlinks are established, users interact with those regions in exactly the same way as they interact with local regions. Specifically, users can choose to teleport there. Once the user reaches the region behind the hyperlink, she is automatically interacting with a different virtual world without having to logout from the world where she came from, and while still having access to her inventory.&lt;br /&gt;
&lt;br /&gt;
The hypergrid started as a GForge project, but it is now included in the standard distribution of OpenSim. To run your OpenSim instance in hypergrid mode, please see [[Hypergrid#Installing_and_Running_Hypergrid|Installing and Running]].&lt;br /&gt;
&lt;br /&gt;
=== Virtual World Hyperlinks ===&lt;br /&gt;
[[image:hghyperlink.jpg|250px|thumb|A Virtual World Hyperlink]]&lt;br /&gt;
&lt;br /&gt;
We're all familiar with hypertext links on the Web. But what is a virtual world hyperlink?&lt;br /&gt;
&lt;br /&gt;
In the hypergrid model, we consider the 2D map of the virtual world as the equivalent of a web page. As such, a VW hyperlink is simply a region on that map. &lt;br /&gt;
&lt;br /&gt;
The default model of opensim-based virtual worlds already supports this concept of hyperlink, to some extent. When you teleport from one region to another via the map, chances are you are migrating your agent into a different opensim server. This migration is a glorified &amp;quot;agent transfer&amp;quot; that also exists, in rudimentary form, on the web when hypertext links are followed. The default model, however, imposes two very strong constraints on these hyperlinks: &lt;br /&gt;
# The entire map of regions is controlled by a central service known as the grid service, whose job is to provide a uniform view of the world to all of its regions.&lt;br /&gt;
# The only agents that can be transferred are those pertaining to users known to another central service, the user service; if the incoming user is not on that service's database, the agent transfer doesn't go through.&lt;br /&gt;
&lt;br /&gt;
The hypergrid simply removes these two constraints. &lt;br /&gt;
&lt;br /&gt;
First, it allows individual opensim instances to add &amp;quot;neighbors&amp;quot; to their local map, shifting the control of the map down from the grid server to individual opensim instances (although hyperlinks can also be served by grid servers if grid admins so wish). In doing so, the world becomes a lot more interesting and varied. The map that you see in one opensim instance may be completely different from the map that you see after you teleport via an hyperlink. As an opensim administrator, you are free to define what other opensims you want to see on your map.&lt;br /&gt;
&lt;br /&gt;
Second, it allows the transfer of agents pertaining to foreigner users, i.e. users who are registered elsewhere. Instead of assuming one central user service, the hypergrid assumes an arbitrarily large number of such services distributed all over the world. As such, when agents are transferred among hypergrided opensims, a lot more information is passed about the corresponding user. That information includes the collection of servers that the transferring user needs.&lt;br /&gt;
&lt;br /&gt;
=== Usage Scenarios ===&lt;br /&gt;
&lt;br /&gt;
The following are some usage scenarios. There isn't a clear separation between these scenarios, there's a large overlap between them. This is also not an exhaustive list. The purpose of these descriptions is to give you some starting ideas for how to use the hypergrid in practice. Please feel free to add other interesting scenarios to this list.&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoA.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Personal Worlds'''&lt;br /&gt;
&lt;br /&gt;
This first scenario pertains to standalone opensims. Normally, standalones are completely disconnected from the internet. However, when run in hypergrid mode, standalones become network-able. As such, you can run your own world in your own computer, and link your world to whoever you want. For example, you can link to your friends' hypergrided opensims and to hypergrid gateways in open grids such as OSGrid. &lt;br /&gt;
&lt;br /&gt;
The great thing about this scenario is that all of your assets are stored on your computer, and not on somebody else's server. You can back them up using ordinary backend tools. The not so great thing about this scenario is that all of your assets are stored on your computer! If your disk goes berserk, you loose them. (so make sure you make external backups regularly)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoB.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Communities'''&lt;br /&gt;
&lt;br /&gt;
This second scenario is about communities, broadly construed. The idea here is that a group of people come together to support a small community grid, i.e. a common world where shared activities take place. But at the same time, the members of the community maintain their own standalone worlds. The standalones link to the community grid, and the community grid may link back to the individual members' worlds and other places of interest.&lt;br /&gt;
&lt;br /&gt;
The members' identities are probably the identities they have on their standalones, and their assets are also probably stored there. The assets present in the community regions, however, are stored on the grid asset server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoC.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Grid Public Regions'''&lt;br /&gt;
&lt;br /&gt;
Walled-gardens are here to stay, and they serve many useful purposes. There is a hybrid mode for the hypergrid that some walled-garden grid operators may be interested in supporting. In this hybrid mode, most opensim instances on the grid run in normal, wall-garden mode, so no foreign visitors are allowed there - technically it is impossible to reach them. However, a few opensim instances on that grid can run in hypergrid mode, so that foreign visitors are allowed. This way, there is a gateway for grid-local users and arbitrary visitors to meet. This is also a good strategy for attracting new users to the grid, since random users are able to visit those gateway regions without having to sign up for an account upfront.&lt;br /&gt;
&lt;br /&gt;
This hybrid mode is very similar to what happens on the web. For example, anyone can visit Facebook's public pages without having to sign up for a Facebook account. However, only Facebook users can go further inside.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoD.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Level Games'''&lt;br /&gt;
&lt;br /&gt;
The normal version of OpenSim enforces a common map for all the regions on a grid. The hypergrid removes that constraint. As such, it becomes easy to design VW games where the world looks different depending of where the player is. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Security Concerns ==&lt;br /&gt;
&lt;br /&gt;
There is a wide-spread assumption that open grids such as OSGrid and new forms of grids such as the hypergrid are inherently insecure, and that it will be impossible to develop a &amp;quot;goods-based&amp;quot; economy on top of them; only walled-gardens can be secured. This is both true and false. While it is true with the current state of things, open grids, whatever their form, can be made as secure as the web. The first step towards that is to define exactly what the security threats are, and how they affect (or not) open and closed grids. So, let's spell them out, and face them head-on. This will help put our feet on the ground so that we start developing appropriate solutions.&lt;br /&gt;
&lt;br /&gt;
=== Malicious Clients ===&lt;br /&gt;
&lt;br /&gt;
==== CopyBots ====&lt;br /&gt;
&lt;br /&gt;
Everyone knows about the infamous [http://en.wikipedia.org/wiki/CopyBot CopyBot]. Using libraries such as [http://www.libsecondlife.org/wiki/Main_Page LibSL] (now known as OpenMetaverse) it is possible to develop clients for opensim servers that do unorthodox things such as bypassing the permissions system to copy people's assets. Bots written by griefers can do lots of other nasty things.&lt;br /&gt;
&lt;br /&gt;
Malicious bots are a problem for all opensim administrators, including walled-garden grids. They can be prevented, to a certain extent, by exo-technical solutions such as Terms of Service and real-world lawsuits. Technically speaking, the only way to keep intruders out is to run opensim inside a firewall, pretty much like all other pieces of client/server software out there. If that's an acceptable solution for your case, you should do it.&lt;br /&gt;
&lt;br /&gt;
Unfortunately firewalls also keep the public out, and most opensim operators, even the ones running walled-garden grids, want to reach out to the public. In this case, opensim operators may develop additional technical obstacles for bots, similar to those we see on the Web. For example, make sure agents are being run by real people by giving them a human-challenge during the login/TP process, etc.&lt;br /&gt;
&lt;br /&gt;
Every obstacle to malicious clients lowers the risk of an intruder attack. However keep this in mind: no matter how many obstacles one builds, a sufficiently skilled and motivated attacker will be able to overcome them to penetrate opensims connected to the public internet. This affects hypergrid nodes as much as walled-garden grids. In fact, it's more pervasive than that: it affects '''all''' servers (opensim, web, etc.) connected to the public internet. Fighting malicious intruders is a fact of a connected world. Fortunately, those attacks don't happen very often, or the Web would have been dead by now.&lt;br /&gt;
&lt;br /&gt;
==== Web Clients ====&lt;br /&gt;
&lt;br /&gt;
CopyBots are the most well-known bots for opensim-based virtual worlds, but these virtual worlds are also susceptible to attacks by regular web clients. With the current state of things, it is actually easier to copy assets with a web-based client than with a libsl-based one. The weakness is that asset servers are connected to the public internet, and the protocol for interacting with them is public. &lt;br /&gt;
&lt;br /&gt;
OpenSim has some minimal guards in place to fence against these kinds of attacks. Specifically, when the inventory server receives a request for an item, it checks the session identifier of the requester. Web clients aren't logged in, so they are refused service. I don't want to expand much more on this, so not to make life easy for attackers, but let's just say that opensim has the necessary mechanisms in place to fence off web-based attackers.&lt;br /&gt;
&lt;br /&gt;
=== Malicious Hosts ===&lt;br /&gt;
&lt;br /&gt;
==== Actively Malicious Hosts ====&lt;br /&gt;
&lt;br /&gt;
The new security threat introduced by openness, one that does not exist in closed grids, is the possibility of a user to visit a region that is running malicious code. In the current state of opensim, a malicious host can do serious damage to the user's assets. Let's see how.&lt;br /&gt;
&lt;br /&gt;
Assume you have your assets in your hypergrided-standalone opensim, and you go visit another opensim that happens to be running malicious code. Here is a non-exhaustive list of vulnerabilities that you are exposed to:&lt;br /&gt;
&lt;br /&gt;
* The host has your session id, so it can request your inventory items on your behalf and store copies in its local asset server. To add insult to injury, a malicious host could simply wipe out your inventory after having copied it.&lt;br /&gt;
* Even if the malicious host doesn't access your items by itself, every time you access items in your inventory while you are in that region, those items are cached in the region's local cache, and can be stored persistently by the malicious host.&lt;br /&gt;
&lt;br /&gt;
Malicious hosts can do a lot more damage, but those two are enough to illustrate this new kind of vulnerability affecting open grids. Note that this affects all open grids, i.e. those where arbitrary people can plug-in their opensims, and not just the hypergrid.&lt;br /&gt;
&lt;br /&gt;
Fortunately, there is a family of simple solutions to this problem that can be summarized as &amp;quot;protecting you from yourself.&amp;quot; That proposal is described [[Hypergrid Inventory Access|here]].&lt;br /&gt;
&lt;br /&gt;
==== Piracy ====&lt;br /&gt;
&lt;br /&gt;
A second new security threat affecting open grids is one pertaining to commerce of virtual goods. Suppose you put something out for sale on your hypergrided opensim. A foreign user comes and buys it. What that really means is that that user will physically get a copy of the assets moved to his/her asset server, which is different from your asset server. The permissions will be whatever you define them to be, and using the regular VW client, that user can only do what you defined he/she should could do with the object, as usual. However, if the user has direct backend access to the asset and inventory servers, that person can simply modify the permissions on his/her copy. This is commonly known as '''piracy'''.  (This is also a problem with programmers who have direct access to the cache that their client keeps; in this case, the only thing that needs to be done to enable piracy is for the user to actually see a texture/animation/in-world object.  This does NOT allow scripts to be copied, though, since the script is only interpreted on the server and is never sent for interpretation by the client.)&lt;br /&gt;
&lt;br /&gt;
This situation is the kernel of the belief that open grids are hopeless for a virtual-goods economy. DRM discussion aside, maybe they are hopeless. But then, everyone thought the web was hopeless for selling music, and look at the success of iTunes in spite of all the piracy that still exists out there. Who will be the equivalent of iTunes for virtual hair, skin and clothes?&lt;br /&gt;
&lt;br /&gt;
== Hypergrid Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Hyperlinks and Agent Transfers ===&lt;br /&gt;
&lt;br /&gt;
When you establish a link between your opensim and another, a message is sent out to that other opensim requesting information about it; the required information includes the network information of that opensim host, and the coordinates of its first region on its local grid in the form of a region handle. For example, suppose you are linking node X.com:9000, placing it in your local map at 900, 900. That opensim runs one or more regions that likely are not in 900, 900 on their own map; suppose the first region of that opensim is at 1100, 1100. From your point of view, it doesn't matter what those other coordinates are, and you don't need to know -- that's the key to being able to decentralize the &amp;quot;world&amp;quot; as given by a 2D map; you want to place it in your map at 900, 900. The &amp;quot;true&amp;quot; position of that simulator only matters for the LL viewer, when there are teleports between your world and that other opensim. This mapping between coordinate systems is the essence of  hyperlinks for opensim; it's one simple but critical thing that the hypergrid implementation does. The mapping happens on the TeleportFinish event; instead of sending the local coordinates to the viewer, the hypergrid teleport wrapper sends the remote coordinates.&lt;br /&gt;
&lt;br /&gt;
When an agent teleports through that hyperlink the following happens. First, before InformRegionOfChildAgent, the local opensim notifies the remote opensim of this foreign user via the &amp;quot;expect_hg_user&amp;quot; method. That message sends along the addresses of all the servers that this user uses, i.e. user, inventory and asset servers. The remote opensim places an entry for that user in its local user profile cache but not in its user database; the foreign user information is non-persistent. After that, the teleport process is exactly the same as the normal teleport process; the only difference is that the region handles are switched between the remote region's hyperlink position on the local grid and its actual position on its grid. &lt;br /&gt;
&lt;br /&gt;
In summary, the two new concepts introduced by the hypergrid are the concept of an hyperlink and the concept of a &amp;quot;local user&amp;quot; vs. &amp;quot;foreign user&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Inventory Access ===&lt;br /&gt;
&lt;br /&gt;
Inventory access from abroad is done by wrapping the existing scene-inventory interactions with additional code that gets or posts inventory assets from/to the user's asset server. When inventory is accessed, the hypergrid wrapper checks if the user is foreign and, if she is, the wrapper simply brings the necessary assets from the user's asset server to the local asset cache and server; from then on, the wrapper passes the control to the existing inventory access functions. When something is added to inventory, the hypergrid wrapper is notified via an event, and posts the assets to the user's asset server. A cache of the exchanged item identifiers is maintained so that they aren't brought back over and over again.&lt;br /&gt;
&lt;br /&gt;
The result is that hypergrided opensim instances end up interacting with several asset servers, instead of just one. That interaction is implemented in a straightforward manner by instantiating several GridAssetClient objects, instead of just one.&lt;br /&gt;
&lt;br /&gt;
=== The Hypergrid Namespace ===&lt;br /&gt;
&lt;br /&gt;
Currently, the hypergrid is implemented outside of the OpenSim namespace, so that there is complete separation between what already exists and this new behavior. It has its own namespace, HyperGrid. In it, there are 4 sub-namespaces that follow directly the software architecture of OpenSim, namely:&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Framework''' extends OpenSim.Framework in the following manner:&lt;br /&gt;
** HGUserProfileData extends UserProfileData by introducing information about the user's &amp;quot;home&amp;quot;, namely the home address, port and remoting port. The user's home is not that user's user service; it's the opensim that the user has defined to be her home. This is necessary for supporting the home jump (Ctrl-Shift-H).&lt;br /&gt;
** HGNetworkServersInfo follows the spirit of NetworkServersInfo, although it neither extends it nor uses it. For now, it's a utility class whose two main functions are to convert domain names of servers to IP addresses, and to uniformly provide the answer to the question bool IsLocalUser(...).&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Environment''' extends OpenSim.Region.Environment.Scenes in the following manner:&lt;br /&gt;
** HGSceneCommunicationService extends SceneCommunicationService, overriding RequestTeleportToLocation. There are two very small but critical changes to the base method: (a) on the TeleportFinish event, we switch the region handles when the destination region is an hyperlink; (b) the connections at the end are always closed for hyperlink TPs.&lt;br /&gt;
** HGScene extends Scene, overriding TeleportClientHome(...). The only change to the base method is to stay away from the user server, for now, because the user service is still not completely wrapped up for foreign users. Once the user service is properly wrapped up, this class will become unnecessary.&lt;br /&gt;
** HGScene.Inventory is a partial class of HGScene, just like what happens in the OpenSim framework. This part of HGScene overrides some inventory-scene interaction methods, so that assets are fetched/posted from/to the user's asset server. Once that extra fetching/posting is done, these methods simply pass the ball to the base methods.&lt;br /&gt;
** HGAssetMapper: this is a new class specific to the hypergrid that manages the fetching and posting of assets between foreign regions where the user is and the user's asset server.&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Protocol''' is a mashup of OpenSim.Region.Communications.*. This is the place where most of the hypergrid extension lies. One of the reasons for this is that the hypergrid communications part is doing one additional thing: it is making standalones network-able.&lt;br /&gt;
** HGCommunicationsStandalone extends CommuniationsLocal. Just as its base, it is a hub for the several network services available in standalone mode. The main difference is that those services are extensions of what's in OpenSim.&lt;br /&gt;
** HGCommunicationsGridMode extends CommunicationsManager directly. Again, it's a hub for the network services available in grid mode, those services being extensions of OpenSim.&lt;br /&gt;
** The cluster HGGridServices (superclass), HGGridServicesStandalone and HGGridServicesGridMode (subclasses) implements the OpenSim interfaces IGridServices and IInterRegionCommunications. The 2 subclasses are wrappers for LocalBackEndServices and OGS1GridServices, respectively. There is one common pattern throughout these classes: check if the region to talk to is an hyperlink; if it's not, simply delegate the work to LocalBackEndServices/OGS1GridServices; if it is, push the work to the base class HGGridServices. HGGridServices, in turn, does the management of hyperlink regions, and defines two additional pieces of inter-region protocol:&lt;br /&gt;
*** region_uuid: for linking regions&lt;br /&gt;
*** expect_hg_user: similar to the existing expect_user interface, but with a lot more information about the user being passed around, namely all the user's servers (inventory, asset, user, home, etc.)&lt;br /&gt;
** HGInventoryService extends LocalInventoryService and implements ISecureInventoryService. This class is the most obvious mashup of the pack, mixing local service access for standalone users and remote inventory access for when users are out and about. Right now, there is a fair amount of selective copy-and-paste, to stay away from the ugliness coming from OGS1InventoryService and OGS1SecureInventoryService. HGInventoryService is always a ISecureInventoryService. Its methods all follow the same pattern: check if the user is a local standalone user; if it is, pass the work to the base method (in LocalInventoryService); if it's not perform secure remote access.&lt;br /&gt;
** HGUserServices wraps OSG1UserServices, but it's not functional yet.&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Modules''' is a collection of 3 region modules:&lt;br /&gt;
** HGWorldMapModule extends WorldMapModule. It reuses almost everything from the base class. The only small change is in RequestMapBlocks, where it tries to send Offline mapblocks to the client.&lt;br /&gt;
** HGStandaloneInventoryService and HGStandaloneAssetService do what their names say. They are region modules that allow access to inventory and assets for standalones, when the standalone user is out and about. In spirit, there is a lot in common between these modules and the REST inventory/asset plugin. Unfortunately, that plugin could not be used because it defines a completely different interface than that used by existing inventory and asset servers, and the access for the hypergrid must use a consistent interface.&lt;br /&gt;
&lt;br /&gt;
=== Class Diagram ===&lt;br /&gt;
&lt;br /&gt;
[[image:HypergridImplementation.jpg|600px|center|(Click on the image to enlarge)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installing and Running Hypergrid ==&lt;br /&gt;
&lt;br /&gt;
=== Installing ===&lt;br /&gt;
&lt;br /&gt;
# Checkout OpenSim, prebuild and build as normal.&lt;br /&gt;
# Make the following changes to your OpenSim.ini:&lt;br /&gt;
#* The map: '''WorldMapModule = &amp;quot;HGWorldMap&amp;quot; ''' If you didn't have this setting in your original OpenSim.ini, make sure you place it under the [Startup] section.&lt;br /&gt;
#* If you're running your opensim in grid mode with the UGAIM servers on other machines, you're done. If you're running in standalone and you want it to be network-able, or if you have your grid on loopback (127.0.0.1) change all the [Network] server addresses to &amp;lt;nowiki&amp;gt;&amp;quot;http://&amp;lt;external_host_name&amp;gt;:&amp;lt;http_port&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;. See below.&lt;br /&gt;
# Run opensim like this: &amp;lt;nowiki&amp;gt;[mono] OpenSim.exe -hypergrid=true&amp;lt;/nowiki&amp;gt;. To make sure the hypergrid is running type this on your console: '''link-region'''. If you don't hear anything back, the hypergrid is not properly installed.&lt;br /&gt;
&lt;br /&gt;
Here is an example of the Network settings for a standalone:&lt;br /&gt;
&lt;br /&gt;
 [Network]&lt;br /&gt;
 http_listener_port = 9300&lt;br /&gt;
 remoting_listener_port = 9895&lt;br /&gt;
 &lt;br /&gt;
 grid_server_url = http://example.com:9300&lt;br /&gt;
 grid_send_key = null&lt;br /&gt;
 grid_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 user_server_url = http://example.com:9300&lt;br /&gt;
 user_send_key = null&lt;br /&gt;
 user_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 asset_server_url = http://example.com:9300&lt;br /&gt;
 inventory_server_url = http://example.com:9300&lt;br /&gt;
&lt;br /&gt;
Here is an example of the Network settings for a grided opensim:&lt;br /&gt;
&lt;br /&gt;
 [Network]&lt;br /&gt;
 http_listener_port = 9300&lt;br /&gt;
 remoting_listener_port = 9895&lt;br /&gt;
 &lt;br /&gt;
 grid_server_url = http://example.com:8001&lt;br /&gt;
 grid_send_key = null&lt;br /&gt;
 grid_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 user_server_url = http://example.com:8002&lt;br /&gt;
 user_send_key = null&lt;br /&gt;
 user_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 asset_server_url = http://example.com:8003&lt;br /&gt;
 inventory_server_url = http://example.com:8004&lt;br /&gt;
&lt;br /&gt;
'''Important Note'''&lt;br /&gt;
&lt;br /&gt;
Make sure you have a 'home' set. If your home region doesn't exist, the hyperlink TPs may not work. To set your home, go to one of your local regions and &amp;quot;Set Home&amp;quot; from the viewer.&lt;br /&gt;
&lt;br /&gt;
=== Linking regions ===&lt;br /&gt;
&lt;br /&gt;
On the console, type for example:&lt;br /&gt;
&lt;br /&gt;
link-region &amp;lt;Xloc&amp;gt; &amp;lt;Yloc&amp;gt; osl2.nac.uci.edu 9006 OSGrid Gateway&lt;br /&gt;
&lt;br /&gt;
* Use Xloc and Yloc that make sense to your world, i.e. close to your regions, but not adjacent.&lt;br /&gt;
* replace osl2.nac.uci.edu and 9006 with the domain name / ip address and the port of the region you want to link to&lt;br /&gt;
&lt;br /&gt;
'''Important Note'''&lt;br /&gt;
&lt;br /&gt;
Due to a viewer [https://jira.secondlife.com/browse/SVC-2941 bug], you can only TP between regions that are no more than 4096 cells apart in any dimension. What this means in practice is that if you want to link to OSGrid, you must have your own regions reachable from the (10,000; 10,000) point on the map, which is where OSGrid is centered. Place your regions somewhere in the 8,000s or the 12,000s.&lt;br /&gt;
&lt;br /&gt;
== Public Hypergrid Nodes ==&lt;br /&gt;
&lt;br /&gt;
The following is a list of hypergrid-ready nodes that you can use for testing your installation and for linking your world. Please add your public node here if you wish to help build a web of opensims!&lt;br /&gt;
&lt;br /&gt;
For the time being, and until the security concerns described above are addressed, we advise you to be careful about who you link to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''osl2.nac.uci.edu 9006'''&lt;br /&gt;
The &amp;quot;UCI Welcome&amp;quot; region connected to OSGrid. It is run by Diva (Crista Lopes) on a machine owned by the University of California, Irvine. You can link to it as a way to link to OSGrid.&lt;br /&gt;
&lt;br /&gt;
* '''ucigrid02.nacs.uci.edu 9000'''&lt;br /&gt;
A region in the UCI Grid. It is run by Diva (Crista Lopes) on a machine owned by the University of California, Irvine.&lt;br /&gt;
&lt;br /&gt;
* '''hypergrid.cyberlandia.net 9000'''&lt;br /&gt;
The &amp;quot;Cyberlandia Gw&amp;quot; region connected to OSGrid.  Search on map &amp;quot;cyberlandia grid&amp;quot; Is link to cyberlandia Italian Opensim grid. You can link to it as a way to link to Cyberlandia.&lt;br /&gt;
&lt;br /&gt;
* '''hypergrid.cyberlandia.net 9300'''&lt;br /&gt;
The &amp;quot;Osgrid Gw&amp;quot; region connected to Cyberlandia grid http://www.cyberlandia.net.  Search on map &amp;quot;Osgrid grid&amp;quot; You can link to it as a way to link to OSGrid.&lt;br /&gt;
&lt;br /&gt;
* '''joomla-italia.net 9000&lt;br /&gt;
The &amp;quot;SNI City&amp;quot; region connected to SNI (Social Network Italia) grid http://www.opensim-italia.net. This grid is connected with Osgrid,Collateral World,Francogrid and Darwin&lt;br /&gt;
&lt;br /&gt;
* '''collateral.opensim-italia.net 9000&lt;br /&gt;
The &amp;quot;Collateral&amp;quot; region connected to Collateral World Grid http://collateral.opensim-italia.net. This grid is connected with Social Network Italia, Osgrid and Francogrid '''[This grid is temporarily offline for maintenance]'''&lt;br /&gt;
&lt;br /&gt;
* '''88.191.79.199 9050'''&lt;br /&gt;
Francogrid node, connected to &amp;quot;City&amp;quot;, behind the welcome land of Francogrid &amp;quot;Orion&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* '''94.23.8.158  9999'''&lt;br /&gt;
Le Monde de Darwin node, The Lost of Darwin http://www.LeMondedeDarwin.com&lt;br /&gt;
----&lt;br /&gt;
[[Image:hypergrid.jpg]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* '''grid.k-grid.com 9000'''&lt;br /&gt;
K-grid,  [http://k-grid.com the Kool grid for the Kool KidZ] . Feel free to visit us. The main Gateway is located at 3700,3700 so take that in account before any HyperJump&lt;br /&gt;
&lt;br /&gt;
* '''81.169.166.109 9000'''&lt;br /&gt;
The Region &amp;quot;Center-World&amp;quot; (at 1000:1000) connected to the METROPOLIS-Grid http://metropolis.hypergrid.org . German Grid with a lot of free Content and free SIM-hosting. Connected via HG to the most of the Grids listed here.&lt;br /&gt;
&lt;br /&gt;
* '''ascent.bluewallgroup.com 9910'''&lt;br /&gt;
This region is in a good proximity @ (6000,6000) for intermediate jumps to OSGrid from grids in the (2000,2000) range, or any region within 4096 units. [[Image:Hypernaut 001.png|150px|none|thumb|Get your Hypernaut here :)]] &lt;br /&gt;
&lt;br /&gt;
* '''sim.thestudyofracialism.org 9000'''&lt;br /&gt;
TSOR is a stand-alone 2-region sim (at 8500,8500). It connects via HG to most of the other sites listed here. Although currently sparse, the sim is eventually intended for an SL discussion-group's migration from SL to OS.&lt;br /&gt;
&lt;br /&gt;
* '''http://myopengrid.com 9000'''&lt;br /&gt;
Myopengrid is connected to osl2.nac.uci.edu &amp;quot;Osgrid Gateway&amp;quot; our regions are at (7000,7000).&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Hypergrid</id>
		<title>Hypergrid</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Hypergrid"/>
				<updated>2008-12-26T14:36:45Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==The OpenSim Hypergrid==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== What is the hypergrid? ===&lt;br /&gt;
&amp;lt;!-- [[image:VWV.jpg|250px|thumb|Web of Virtual Worlds]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hypergrid is an extension to opensim that allows you to link your opensim to other opensims on the internet, and that supports seamless agent transfers among those opensims. It can be used both in standalone mode and in grid mode. The hypergrid is effectively supporting the emergence of a Web of virtual worlds. &lt;br /&gt;
&lt;br /&gt;
The basic idea for the hypergrid is that region/grid administrations can place hyperlinks on their map to hypergrided regions run by others. Once those hyperlinks are established, users interact with those regions in exactly the same way as they interact with local regions. Specifically, users can choose to teleport there. Once the user reaches the region behind the hyperlink, she is automatically interacting with a different virtual world without having to logout from the world where she came from, and while still having access to her inventory.&lt;br /&gt;
&lt;br /&gt;
The hypergrid started as a GForge project, but it is now included in the standard distribution of OpenSim. To run your OpenSim instance in hypergrid mode, please see [[Hypergrid#Installing_and_Running_Hypergrid|Installing and Running]].&lt;br /&gt;
&lt;br /&gt;
=== Virtual World Hyperlinks ===&lt;br /&gt;
[[image:hghyperlink.jpg|250px|thumb|A Virtual World Hyperlink]]&lt;br /&gt;
&lt;br /&gt;
We're all familiar with hypertext links on the Web. But what is a virtual world hyperlink?&lt;br /&gt;
&lt;br /&gt;
In the hypergrid model, we consider the 2D map of the virtual world as the equivalent of a web page. As such, a VW hyperlink is simply a region on that map. &lt;br /&gt;
&lt;br /&gt;
The default model of opensim-based virtual worlds already supports this concept of hyperlink, to some extent. When you teleport from one region to another via the map, chances are you are migrating your agent into a different opensim server. This migration is a glorified &amp;quot;agent transfer&amp;quot; that also exists, in rudimentary form, on the web when hypertext links are followed. The default model, however, imposes two very strong constraints on these hyperlinks: &lt;br /&gt;
# The entire map of regions is controlled by a central service known as the grid service, whose job is to provide a uniform view of the world to all of its regions.&lt;br /&gt;
# The only agents that can be transferred are those pertaining to users known to another central service, the user service; if the incoming user is not on that service's database, the agent transfer doesn't go through.&lt;br /&gt;
&lt;br /&gt;
The hypergrid simply removes these two constraints. &lt;br /&gt;
&lt;br /&gt;
First, it allows individual opensim instances to add &amp;quot;neighbors&amp;quot; to their local map, shifting the control of the map down from the grid server to individual opensim instances (although hyperlinks can also be served by grid servers if grid admins so wish). In doing so, the world becomes a lot more interesting and varied. The map that you see in one opensim instance may be completely different from the map that you see after you teleport via an hyperlink. As an opensim administrator, you are free to define what other opensims you want to see on your map.&lt;br /&gt;
&lt;br /&gt;
Second, it allows the transfer of agents pertaining to foreigner users, i.e. users who are registered elsewhere. Instead of assuming one central user service, the hypergrid assumes an arbitrarily large number of such services distributed all over the world. As such, when agents are transferred among hypergrided opensims, a lot more information is passed about the corresponding user. That information includes the collection of servers that the transferring user needs.&lt;br /&gt;
&lt;br /&gt;
=== Usage Scenarios ===&lt;br /&gt;
&lt;br /&gt;
The following are some usage scenarios. There isn't a clear separation between these scenarios, there's a large overlap between them. This is also not an exhaustive list. The purpose of these descriptions is to give you some starting ideas for how to use the hypergrid in practice. Please feel free to add other interesting scenarios to this list.&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoA.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Personal Worlds'''&lt;br /&gt;
&lt;br /&gt;
This first scenario pertains to standalone opensims. Normally, standalones are completely disconnected from the internet. However, when run in hypergrid mode, standalones become network-able. As such, you can run your own world in your own computer, and link your world to whoever you want. For example, you can link to your friends' hypergrided opensims and to hypergrid gateways in open grids such as OSGrid. &lt;br /&gt;
&lt;br /&gt;
The great thing about this scenario is that all of your assets are stored on your computer, and not on somebody else's server. You can back them up using ordinary backend tools. The not so great thing about this scenario is that all of your assets are stored on your computer! If your disk goes berserk, you loose them. (so make sure you make external backups regularly)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoB.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Communities'''&lt;br /&gt;
&lt;br /&gt;
This second scenario is about communities, broadly construed. The idea here is that a group of people come together to support a small community grid, i.e. a common world where shared activities take place. But at the same time, the members of the community maintain their own standalone worlds. The standalones link to the community grid, and the community grid may link back to the individual members' worlds and other places of interest.&lt;br /&gt;
&lt;br /&gt;
The members' identities are probably the identities they have on their standalones, and their assets are also probably stored there. The assets present in the community regions, however, are stored on the grid asset server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoC.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Grid Public Regions'''&lt;br /&gt;
&lt;br /&gt;
Walled-gardens are here to stay, and they serve many useful purposes. There is a hybrid mode for the hypergrid that some walled-garden grid operators may be interested in supporting. In this hybrid mode, most opensim instances on the grid run in normal, wall-garden mode, so no foreign visitors are allowed there - technically it is impossible to reach them. However, a few opensim instances on that grid can run in hypergrid mode, so that foreign visitors are allowed. This way, there is a gateway for grid-local users and arbitrary visitors to meet. This is also a good strategy for attracting new users to the grid, since random users are able to visit those gateway regions without having to sign up for an account upfront.&lt;br /&gt;
&lt;br /&gt;
This hybrid mode is very similar to what happens on the web. For example, anyone can visit Facebook's public pages without having to sign up for a Facebook account. However, only Facebook users can go further inside.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoD.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Level Games'''&lt;br /&gt;
&lt;br /&gt;
The normal version of OpenSim enforces a common map for all the regions on a grid. The hypergrid removes that constraint. As such, it becomes easy to design VW games where the world looks different depending of where the player is. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Security Concerns ==&lt;br /&gt;
&lt;br /&gt;
There is a wide-spread assumption that open grids such as OSGrid and new forms of grids such as the hypergrid are inherently insecure, and that it will be impossible to develop a &amp;quot;goods-based&amp;quot; economy on top of them; only walled-gardens can be secured. This is both true and false. While it is true with the current state of things, open grids, whatever their form, can be made as secure as the web. The first step towards that is to define exactly what the security threats are, and how they affect (or not) open and closed grids. So, let's spell them out, and face them head-on. This will help put our feet on the ground so that we start developing appropriate solutions.&lt;br /&gt;
&lt;br /&gt;
=== Malicious Clients ===&lt;br /&gt;
&lt;br /&gt;
==== CopyBots ====&lt;br /&gt;
&lt;br /&gt;
Everyone knows about the infamous [http://en.wikipedia.org/wiki/CopyBot CopyBot]. Using libraries such as [http://www.libsecondlife.org/wiki/Main_Page LibSL] (now known as OpenMetaverse) it is possible to develop clients for opensim servers that do unorthodox things such as bypassing the permissions system to copy people's assets. Bots written by griefers can do lots of other nasty things.&lt;br /&gt;
&lt;br /&gt;
Malicious bots are a problem for all opensim administrators, including walled-garden grids. They can be prevented, to a certain extent, by exo-technical solutions such as Terms of Service and real-world lawsuits. Technically speaking, the only way to keep intruders out is to run opensim inside a firewall, pretty much like all other pieces of client/server software out there. If that's an acceptable solution for your case, you should do it.&lt;br /&gt;
&lt;br /&gt;
Unfortunately firewalls also keep the public out, and most opensim operators, even the ones running walled-garden grids, want to reach out to the public. In this case, opensim operators may develop additional technical obstacles for bots, similar to those we see on the Web. For example, make sure agents are being run by real people by giving them a human-challenge during the login/TP process, etc.&lt;br /&gt;
&lt;br /&gt;
Every obstacle to malicious clients lowers the risk of an intruder attack. However keep this in mind: no matter how many obstacles one builds, a sufficiently skilled and motivated attacker will be able to overcome them to penetrate opensims connected to the public internet. This affects hypergrid nodes as much as walled-garden grids. In fact, it's more pervasive than that: it affects '''all''' servers (opensim, web, etc.) connected to the public internet. Fighting malicious intruders is a fact of a connected world. Fortunately, those attacks don't happen very often, or the Web would have been dead by now.&lt;br /&gt;
&lt;br /&gt;
==== Web Clients ====&lt;br /&gt;
&lt;br /&gt;
CopyBots are the most well-known bots for opensim-based virtual worlds, but these virtual worlds are also susceptible to attacks by regular web clients. With the current state of things, it is actually easier to copy assets with a web-based client than with a libsl-based one. The weakness is that asset servers are connected to the public internet, and the protocol for interacting with them is public. &lt;br /&gt;
&lt;br /&gt;
OpenSim has some minimal guards in place to fence against these kinds of attacks. Specifically, when the inventory server receives a request for an item, it checks the session identifier of the requester. Web clients aren't logged in, so they are refused service. I don't want to expand much more on this, so not to make life easy for attackers, but let's just say that opensim has the necessary mechanisms in place to fence off web-based attackers.&lt;br /&gt;
&lt;br /&gt;
=== Malicious Hosts ===&lt;br /&gt;
&lt;br /&gt;
==== Actively Malicious Hosts ====&lt;br /&gt;
&lt;br /&gt;
The new security threat introduced by openness, one that does not exist in closed grids, is the possibility of a user to visit a region that is running malicious code. In the current state of opensim, a malicious host can do serious damage to the user's assets. Let's see how.&lt;br /&gt;
&lt;br /&gt;
Assume you have your assets in your hypergrided-standalone opensim, and you go visit another opensim that happens to be running malicious code. Here is a non-exhaustive list of vulnerabilities that you are exposed to:&lt;br /&gt;
&lt;br /&gt;
* The host has your session id, so it can request your inventory items on your behalf and store copies in its local asset server. To add insult to injury, a malicious host could simply wipe out your inventory after having copied it.&lt;br /&gt;
* Even if the malicious host doesn't access your items by itself, every time you access items in your inventory while you are in that region, those items are cached in the region's local cache, and can be stored persistently by the malicious host.&lt;br /&gt;
&lt;br /&gt;
Malicious hosts can do a lot more damage, but those two are enough to illustrate this new kind of vulnerability affecting open grids. Note that this affects all open grids, i.e. those where arbitrary people can plug-in their opensims, and not just the hypergrid.&lt;br /&gt;
&lt;br /&gt;
Fortunately, there is a family of simple solutions to this problem that can be summarized as &amp;quot;protecting you from yourself.&amp;quot; That proposal is described [[Hypergrid Inventory Access|here]].&lt;br /&gt;
&lt;br /&gt;
==== Piracy ====&lt;br /&gt;
&lt;br /&gt;
A second new security threat affecting open grids is one pertaining to commerce of virtual goods. Suppose you put something out for sale on your hypergrided opensim. A foreign user comes and buys it. What that really means is that that user will physically get a copy of the assets moved to his/her asset server, which is different from your asset server. The permissions will be whatever you define them to be, and using the regular VW client, that user can only do what you defined he/she should could do with the object, as usual. However, if the user has direct backend access to the asset and inventory servers, that person can simply modify the permissions on his/her copy. This is commonly known as '''piracy'''.  (This is also a problem with programmers who have direct access to the cache that their client keeps; in this case, the only thing that needs to be done to enable piracy is for the user to actually see a texture/animation/in-world object.  This does NOT allow scripts to be copied, though, since the script is only interpreted on the server and is never sent for interpretation by the client.)&lt;br /&gt;
&lt;br /&gt;
This situation is the kernel of the belief that open grids are hopeless for a virtual-goods economy. DRM discussion aside, maybe they are hopeless. But then, everyone thought the web was hopeless for selling music, and look at the success of iTunes in spite of all the piracy that still exists out there. Who will be the equivalent of iTunes for virtual hair, skin and clothes?&lt;br /&gt;
&lt;br /&gt;
== Hypergrid Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Hyperlinks and Agent Transfers ===&lt;br /&gt;
&lt;br /&gt;
When you establish a link between your opensim and another, a message is sent out to that other opensim requesting information about it; the required information includes the network information of that opensim host, and the coordinates of its first region on its local grid in the form of a region handle. For example, suppose you are linking node X.com:9000, placing it in your local map at 900, 900. That opensim runs one or more regions that likely are not in 900, 900 on their own map; suppose the first region of that opensim is at 1100, 1100. From your point of view, it doesn't matter what those other coordinates are, and you don't need to know -- that's the key to being able to decentralize the &amp;quot;world&amp;quot; as given by a 2D map; you want to place it in your map at 900, 900. The &amp;quot;true&amp;quot; position of that simulator only matters for the LL viewer, when there are teleports between your world and that other opensim. This mapping between coordinate systems is the essence of  hyperlinks for opensim; it's one simple but critical thing that the hypergrid implementation does. The mapping happens on the TeleportFinish event; instead of sending the local coordinates to the viewer, the hypergrid teleport wrapper sends the remote coordinates.&lt;br /&gt;
&lt;br /&gt;
When an agent teleports through that hyperlink the following happens. First, before InformRegionOfChildAgent, the local opensim notifies the remote opensim of this foreign user via the &amp;quot;expect_hg_user&amp;quot; method. That message sends along the addresses of all the servers that this user uses, i.e. user, inventory and asset servers. The remote opensim places an entry for that user in its local user profile cache but not in its user database; the foreign user information is non-persistent. After that, the teleport process is exactly the same as the normal teleport process; the only difference is that the region handles are switched between the remote region's hyperlink position on the local grid and its actual position on its grid. &lt;br /&gt;
&lt;br /&gt;
In summary, the two new concepts introduced by the hypergrid are the concept of an hyperlink and the concept of a &amp;quot;local user&amp;quot; vs. &amp;quot;foreign user&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Inventory Access ===&lt;br /&gt;
&lt;br /&gt;
Inventory access from abroad is done by wrapping the existing scene-inventory interactions with additional code that gets or posts inventory assets from/to the user's asset server. When inventory is accessed, the hypergrid wrapper checks if the user is foreign and, if she is, the wrapper simply brings the necessary assets from the user's asset server to the local asset cache and server; from then on, the wrapper passes the control to the existing inventory access functions. When something is added to inventory, the hypergrid wrapper is notified via an event, and posts the assets to the user's asset server. A cache of the exchanged item identifiers is maintained so that they aren't brought back over and over again.&lt;br /&gt;
&lt;br /&gt;
The result is that hypergrided opensim instances end up interacting with several asset servers, instead of just one. That interaction is implemented in a straightforward manner by instantiating several GridAssetClient objects, instead of just one.&lt;br /&gt;
&lt;br /&gt;
=== The Hypergrid Namespace ===&lt;br /&gt;
&lt;br /&gt;
Currently, the hypergrid is implemented outside of the OpenSim namespace, so that there is complete separation between what already exists and this new behavior. It has its own namespace, HyperGrid. In it, there are 4 sub-namespaces that follow directly the software architecture of OpenSim, namely:&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Framework''' extends OpenSim.Framework in the following manner:&lt;br /&gt;
** HGUserProfileData extends UserProfileData by introducing information about the user's &amp;quot;home&amp;quot;, namely the home address, port and remoting port. The user's home is not that user's user service; it's the opensim that the user has defined to be her home. This is necessary for supporting the home jump (Ctrl-Shift-H).&lt;br /&gt;
** HGNetworkServersInfo follows the spirit of NetworkServersInfo, although it neither extends it nor uses it. For now, it's a utility class whose two main functions are to convert domain names of servers to IP addresses, and to uniformly provide the answer to the question bool IsLocalUser(...).&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Environment''' extends OpenSim.Region.Environment.Scenes in the following manner:&lt;br /&gt;
** HGSceneCommunicationService extends SceneCommunicationService, overriding RequestTeleportToLocation. There are two very small but critical changes to the base method: (a) on the TeleportFinish event, we switch the region handles when the destination region is an hyperlink; (b) the connections at the end are always closed for hyperlink TPs.&lt;br /&gt;
** HGScene extends Scene, overriding TeleportClientHome(...). The only change to the base method is to stay away from the user server, for now, because the user service is still not completely wrapped up for foreign users. Once the user service is properly wrapped up, this class will become unnecessary.&lt;br /&gt;
** HGScene.Inventory is a partial class of HGScene, just like what happens in the OpenSim framework. This part of HGScene overrides some inventory-scene interaction methods, so that assets are fetched/posted from/to the user's asset server. Once that extra fetching/posting is done, these methods simply pass the ball to the base methods.&lt;br /&gt;
** HGAssetMapper: this is a new class specific to the hypergrid that manages the fetching and posting of assets between foreign regions where the user is and the user's asset server.&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Protocol''' is a mashup of OpenSim.Region.Communications.*. This is the place where most of the hypergrid extension lies. One of the reasons for this is that the hypergrid communications part is doing one additional thing: it is making standalones network-able.&lt;br /&gt;
** HGCommunicationsStandalone extends CommuniationsLocal. Just as its base, it is a hub for the several network services available in standalone mode. The main difference is that those services are extensions of what's in OpenSim.&lt;br /&gt;
** HGCommunicationsGridMode extends CommunicationsManager directly. Again, it's a hub for the network services available in grid mode, those services being extensions of OpenSim.&lt;br /&gt;
** The cluster HGGridServices (superclass), HGGridServicesStandalone and HGGridServicesGridMode (subclasses) implements the OpenSim interfaces IGridServices and IInterRegionCommunications. The 2 subclasses are wrappers for LocalBackEndServices and OGS1GridServices, respectively. There is one common pattern throughout these classes: check if the region to talk to is an hyperlink; if it's not, simply delegate the work to LocalBackEndServices/OGS1GridServices; if it is, push the work to the base class HGGridServices. HGGridServices, in turn, does the management of hyperlink regions, and defines two additional pieces of inter-region protocol:&lt;br /&gt;
*** region_uuid: for linking regions&lt;br /&gt;
*** expect_hg_user: similar to the existing expect_user interface, but with a lot more information about the user being passed around, namely all the user's servers (inventory, asset, user, home, etc.)&lt;br /&gt;
** HGInventoryService extends LocalInventoryService and implements ISecureInventoryService. This class is the most obvious mashup of the pack, mixing local service access for standalone users and remote inventory access for when users are out and about. Right now, there is a fair amount of selective copy-and-paste, to stay away from the ugliness coming from OGS1InventoryService and OGS1SecureInventoryService. HGInventoryService is always a ISecureInventoryService. Its methods all follow the same pattern: check if the user is a local standalone user; if it is, pass the work to the base method (in LocalInventoryService); if it's not perform secure remote access.&lt;br /&gt;
** HGUserServices wraps OSG1UserServices, but it's not functional yet.&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Modules''' is a collection of 3 region modules:&lt;br /&gt;
** HGWorldMapModule extends WorldMapModule. It reuses almost everything from the base class. The only small change is in RequestMapBlocks, where it tries to send Offline mapblocks to the client.&lt;br /&gt;
** HGStandaloneInventoryService and HGStandaloneAssetService do what their names say. They are region modules that allow access to inventory and assets for standalones, when the standalone user is out and about. In spirit, there is a lot in common between these modules and the REST inventory/asset plugin. Unfortunately, that plugin could not be used because it defines a completely different interface than that used by existing inventory and asset servers, and the access for the hypergrid must use a consistent interface.&lt;br /&gt;
&lt;br /&gt;
=== Class Diagram ===&lt;br /&gt;
&lt;br /&gt;
[[image:HypergridImplementation.jpg|600px|center|(Click on the image to enlarge)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installing and Running Hypergrid ==&lt;br /&gt;
&lt;br /&gt;
=== Installing ===&lt;br /&gt;
&lt;br /&gt;
# Checkout OpenSim, prebuild and build as normal.&lt;br /&gt;
# Make the following changes to your OpenSim.ini:&lt;br /&gt;
#* The map: '''WorldMapModule = &amp;quot;HGWorldMap&amp;quot; ''' If you didn't have this setting in your original OpenSim.ini, make sure you place it under the [Startup] section.&lt;br /&gt;
#* If you're running your opensim in grid mode with the UGAIM servers on other machines, you're done. If you're running in standalone and you want it to be network-able, or if you have your grid on loopback (127.0.0.1) change all the [Network] server addresses to &amp;lt;nowiki&amp;gt;&amp;quot;http://&amp;lt;external_host_name&amp;gt;:&amp;lt;http_port&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;. See below.&lt;br /&gt;
# Run opensim like this: &amp;lt;nowiki&amp;gt;[mono] OpenSim.exe -hypergrid=true&amp;lt;/nowiki&amp;gt;. To make sure the hypergrid is running type this on your console: '''link-region'''. If you don't hear anything back, the hypergrid is not properly installed.&lt;br /&gt;
&lt;br /&gt;
Here is an example of the Network settings for a standalone:&lt;br /&gt;
&lt;br /&gt;
 [Network]&lt;br /&gt;
 http_listener_port = 9300&lt;br /&gt;
 remoting_listener_port = 9895&lt;br /&gt;
 &lt;br /&gt;
 grid_server_url = http://example.com:9300&lt;br /&gt;
 grid_send_key = null&lt;br /&gt;
 grid_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 user_server_url = http://example.com:9300&lt;br /&gt;
 user_send_key = null&lt;br /&gt;
 user_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 asset_server_url = http://example.com:9300&lt;br /&gt;
 inventory_server_url = http://example.com:9300&lt;br /&gt;
&lt;br /&gt;
Here is an example of the Network settings for a grided opensim:&lt;br /&gt;
&lt;br /&gt;
 [Network]&lt;br /&gt;
 http_listener_port = 9300&lt;br /&gt;
 remoting_listener_port = 9895&lt;br /&gt;
 &lt;br /&gt;
 grid_server_url = http://example.com:8001&lt;br /&gt;
 grid_send_key = null&lt;br /&gt;
 grid_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 user_server_url = http://example.com:8002&lt;br /&gt;
 user_send_key = null&lt;br /&gt;
 user_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 asset_server_url = http://example.com:8003&lt;br /&gt;
 inventory_server_url = http://example.com:8004&lt;br /&gt;
&lt;br /&gt;
'''Important Note'''&lt;br /&gt;
&lt;br /&gt;
Make sure you have a 'home' set. If your home region doesn't exist, the hyperlink TPs may not work. To set your home, go to one of your local regions and &amp;quot;Set Home&amp;quot; from the viewer.&lt;br /&gt;
&lt;br /&gt;
=== Linking regions ===&lt;br /&gt;
&lt;br /&gt;
On the console, type for example:&lt;br /&gt;
&lt;br /&gt;
link-region &amp;lt;Xloc&amp;gt; &amp;lt;Yloc&amp;gt; osl2.nac.uci.edu 9006 OSGrid Gateway&lt;br /&gt;
&lt;br /&gt;
* Use Xloc and Yloc that make sense to your world, i.e. close to your regions, but not adjacent.&lt;br /&gt;
* replace osl2.nac.uci.edu and 9006 with the domain name / ip address and the port of the region you want to link to&lt;br /&gt;
&lt;br /&gt;
'''Important Note'''&lt;br /&gt;
&lt;br /&gt;
Due to a viewer [https://jira.secondlife.com/browse/SVC-2941 bug], you can only TP between regions that are no more than 4096 cells apart in any dimension. What this means in practice is that if you want to link to OSGrid, you must have your own regions reachable from the (10,000; 10,000) point on the map, which is where OSGrid is centered. Place your regions somewhere in the 8,000s or the 12,000s.&lt;br /&gt;
&lt;br /&gt;
== Public Hypergrid Nodes ==&lt;br /&gt;
&lt;br /&gt;
The following is a list of hypergrid-ready nodes that you can use for testing your installation and for linking your world. Please add your public node here if you wish to help build a web of opensims!&lt;br /&gt;
&lt;br /&gt;
For the time being, and until the security concerns described above are addressed, we advise you to be careful about who you link to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''osl2.nac.uci.edu 9006'''&lt;br /&gt;
The &amp;quot;UCI Welcome&amp;quot; region connected to OSGrid. It is run by Diva (Crista Lopes) on a machine owned by the University of California, Irvine. You can link to it as a way to link to OSGrid.&lt;br /&gt;
&lt;br /&gt;
* '''ucigrid02.nacs.uci.edu 9000'''&lt;br /&gt;
A region in the UCI Grid. It is run by Diva (Crista Lopes) on a machine owned by the University of California, Irvine.&lt;br /&gt;
&lt;br /&gt;
* '''hypergrid.cyberlandia.net 9000'''&lt;br /&gt;
The &amp;quot;Cyberlandia Gw&amp;quot; region connected to OSGrid.  Search on map &amp;quot;cyberlandia grid&amp;quot; Is link to cyberlandia Italian Opensim grid. You can link to it as a way to link to Cyberlandia.&lt;br /&gt;
&lt;br /&gt;
* '''hypergrid.cyberlandia.net 9300'''&lt;br /&gt;
The &amp;quot;Osgrid Gw&amp;quot; region connected to Cyberlandia grid http://www.cyberlandia.net.  Search on map &amp;quot;Osgrid grid&amp;quot; You can link to it as a way to link to OSGrid.&lt;br /&gt;
&lt;br /&gt;
* '''joomla-italia.net 9000&lt;br /&gt;
The &amp;quot;SNI City&amp;quot; region connected to SNI (Social Network Italia) grid http://www.opensim-italia.net. This grid is connected with Osgrid,Collateral World,Francogrid and Darwin&lt;br /&gt;
&lt;br /&gt;
* '''collateral.opensim-italia.net 9000&lt;br /&gt;
The &amp;quot;Collateral&amp;quot; region connected to Collateral World Grid http://collateral.opensim-italia.net. This grid is connected with Social Network Italia, Osgrid and Francogrid '''[This grid is temporarily offline for maintenance]'''&lt;br /&gt;
&lt;br /&gt;
* '''88.191.79.199 9050'''&lt;br /&gt;
Francogrid node, connected to &amp;quot;City&amp;quot;, behind the welcome land of Francogrid &amp;quot;Orion&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* '''94.23.8.158  9999'''&lt;br /&gt;
Le Monde de Darwin node, The Lost of Darwin http://www.LeMondedeDarwin.com&lt;br /&gt;
----&lt;br /&gt;
[[Image:hypergrid.jpg]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* '''grid.k-grid.com 9000'''&lt;br /&gt;
K-grid,  [http://k-grid.net the Kool grid for the Kool KidZ] . Feel free to visit us. The main Gateway is located at 3700,3700 so take that in account before any HyperJump&lt;br /&gt;
&lt;br /&gt;
* '''81.169.166.109 9000'''&lt;br /&gt;
The Region &amp;quot;Center-World&amp;quot; (at 1000:1000) connected to the METROPOLIS-Grid http://metropolis.hypergrid.org . German Grid with a lot of free Content and free SIM-hosting. Connected via HG to the most of the Grids listed here.&lt;br /&gt;
&lt;br /&gt;
* '''ascent.bluewallgroup.com 9910'''&lt;br /&gt;
This region is in a good proximity @ (6000,6000) for intermediate jumps to OSGrid from grids in the (2000,2000) range, or any region within 4096 units. [[Image:Hypernaut 001.png|150px|none|thumb|Get your Hypernaut here :)]] &lt;br /&gt;
&lt;br /&gt;
* '''sim.thestudyofracialism.org 9000'''&lt;br /&gt;
TSOR is a stand-alone 2-region sim (at 8500,8500). It connects via HG to most of the other sites listed here. Although currently sparse, the sim is eventually intended for an SL discussion-group's migration from SL to OS.&lt;br /&gt;
&lt;br /&gt;
* '''http://myopengrid.com 9000'''&lt;br /&gt;
Myopengrid is connected to osl2.nac.uci.edu &amp;quot;Osgrid Gateway&amp;quot; our regions are at (7000,7000).&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OpenWiredux:_Taking_the_next_step</id>
		<title>OpenWiredux: Taking the next step</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OpenWiredux:_Taking_the_next_step"/>
				<updated>2008-12-13T21:56:31Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As the OpenSimWiredux is in use with lots of simple grids and also some larger grids, the need to make a revamp to it was a call for freedom.&lt;br /&gt;
&lt;br /&gt;
== Old version ==&lt;br /&gt;
&lt;br /&gt;
== Proposed changes ==&lt;br /&gt;
Adding the possibility for the user to add their region with the webserver : the regionserver will get the regions's data from there (SM)&lt;br /&gt;
Adding RegionServer's control and report (uptime, activities, release...) &lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OpenWiredux:_Taking_the_next_step</id>
		<title>OpenWiredux: Taking the next step</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OpenWiredux:_Taking_the_next_step"/>
				<updated>2008-12-07T15:49:59Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As the OpenSimWiredux is in use with lots of simple grids and also some larger grids, the need to make a revamp to it was a call for freedom.&lt;br /&gt;
&lt;br /&gt;
== Old version ==&lt;br /&gt;
&lt;br /&gt;
== Proposed changes ==&lt;br /&gt;
Adding the possibility for the user to add their region with the webserver : the regionserver will get the regions's data from there&lt;br /&gt;
&lt;br /&gt;
== Progress ==&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Hypergrid</id>
		<title>Hypergrid</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Hypergrid"/>
				<updated>2008-12-07T10:59:44Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==The OpenSim Hypergrid==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== What is the hypergrid? ===&lt;br /&gt;
&amp;lt;!-- [[image:VWV.jpg|250px|thumb|Web of Virtual Worlds]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hypergrid is an extension to opensim that allows you to link your opensim to other opensims on the internet, and that supports seamless agent transfers among those opensims. It can be used both in standalone mode and in grid mode. The hypergrid is effectively supporting the emergence of a Web of virtual worlds. &lt;br /&gt;
&lt;br /&gt;
The basic idea for the hypergrid is that region/grid administrations can place hyperlinks on their map to hypergrided regions run by others. Once those hyperlinks are established, users interact with those regions in exactly the same way as they interact with local regions. Specifically, users can choose to teleport there. Once the user reaches the region behind the hyperlink, she is automatically interacting with a different virtual world without having to logout from the world where she came from, and while still having access to her inventory.&lt;br /&gt;
&lt;br /&gt;
The hypergrid started as a GForge project, but it is now included in the standard distribution of OpenSim. To run your OpenSim instance in hypergrid mode, please see [[Hypergrid#Installing_and_Running_Hypergrid|Installing and Running]].&lt;br /&gt;
&lt;br /&gt;
=== Virtual World Hyperlinks ===&lt;br /&gt;
[[image:hghyperlink.jpg|250px|thumb|A Virtual World Hyperlink]]&lt;br /&gt;
&lt;br /&gt;
We're all familiar with hypertext links on the Web. But what is a virtual world hyperlink?&lt;br /&gt;
&lt;br /&gt;
In the hypergrid model, we consider the 2D map of the virtual world as the equivalent of a web page. As such, a VW hyperlink is simply a region on that map. &lt;br /&gt;
&lt;br /&gt;
The default model of opensim-based virtual worlds already supports this concept of hyperlink, to some extent. When you teleport from one region to another via the map, chances are you are migrating your agent into a different opensim server. This migration is a glorified &amp;quot;agent transfer&amp;quot; that also exists, in rudimentary form, on the web when hypertext links are followed. The default model, however, imposes two very strong constraints on these hyperlinks: &lt;br /&gt;
# The entire map of regions is controlled by a central service known as the grid service, whose job is to provide a uniform view of the world to all of its regions.&lt;br /&gt;
# The only agents that can be transferred are those pertaining to users known to another central service, the user service; if the incoming user is not on that service's database, the agent transfer doesn't go through.&lt;br /&gt;
&lt;br /&gt;
The hypergrid simply removes these two constraints. &lt;br /&gt;
&lt;br /&gt;
First, it allows individual opensim instances to add &amp;quot;neighbors&amp;quot; to their local map, shifting the control of the map down from the grid server to individual opensim instances (although hyperlinks can also be served by grid servers if grid admins so wish). In doing so, the world becomes a lot more interesting and varied. The map that you see in one opensim instance may be completely different from the map that you see after you teleport via an hyperlink. As an opensim administrator, you are free to define what other opensims you want to see on your map.&lt;br /&gt;
&lt;br /&gt;
Second, it allows the transfer of agents pertaining to foreigner users, i.e. users who are registered elsewhere. Instead of assuming one central user service, the hypergrid assumes an arbitrarily large number of such services distributed all over the world. As such, when agents are transferred among hypergrided opensims, a lot more information is passed about the corresponding user. That information includes the collection of servers that the transferring user needs.&lt;br /&gt;
&lt;br /&gt;
=== Usage Scenarios ===&lt;br /&gt;
&lt;br /&gt;
The following are some usage scenarios. There isn't a clear separation between these scenarios, there's a large overlap between them. This is also not an exhaustive list. The purpose of these descriptions is to give you some starting ideas for how to use the hypergrid in practice. Please feel free to add other interesting scenarios to this list.&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoA.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Personal Worlds'''&lt;br /&gt;
&lt;br /&gt;
This first scenario pertains to standalone opensims. Normally, standalones are completely disconnected from the internet. However, when run in hypergrid mode, standalones become network-able. As such, you can run your own world in your own computer, and link your world to whoever you want. For example, you can link to your friends' hypergrided opensims and to hypergrid gateways in open grids such as OSGrid. &lt;br /&gt;
&lt;br /&gt;
The great thing about this scenario is that all of your assets are stored on your computer, and not on somebody else's server. You can back them up using ordinary backend tools. The not so great thing about this scenario is that all of your assets are stored on your computer! If your disk goes berserk, you loose them. (so make sure you make external backups regularly)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoB.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Communities'''&lt;br /&gt;
&lt;br /&gt;
This second scenario is about communities, broadly construed. The idea here is that a group of people come together to support a small community grid, i.e. a common world where shared activities take place. But at the same time, the members of the community maintain their own standalone worlds. The standalones link to the community grid, and the community grid may link back to the individual members' worlds and other places of interest.&lt;br /&gt;
&lt;br /&gt;
The members' identities are probably the identities they have on their standalones, and their assets are also probably stored there. The assets present in the community regions, however, are stored on the grid asset server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoC.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Grid Public Regions'''&lt;br /&gt;
&lt;br /&gt;
Walled-gardens are here to stay, and they serve many useful purposes. There is a hybrid mode for the hypergrid that some walled-garden grid operators may be interested in supporting. In this hybrid mode, most opensim instances on the grid run in normal, wall-garden mode, so no foreign visitors are allowed there - technically it is impossible to reach them. However, a few opensim instances on that grid can run in hypergrid mode, so that foreign visitors are allowed. This way, there is a gateway for grid-local users and arbitrary visitors to meet. This is also a good strategy for attracting new users to the grid, since random users are able to visit those gateway regions without having to sign up for an account upfront.&lt;br /&gt;
&lt;br /&gt;
This hybrid mode is very similar to what happens on the web. For example, anyone can visit Facebook's public pages without having to sign up for a Facebook account. However, only Facebook users can go further inside.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoD.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Level Games'''&lt;br /&gt;
&lt;br /&gt;
The normal version of OpenSim enforces a common map for all the regions on a grid. The hypergrid removes that constraint. As such, it becomes easy to design VW games where the world looks different depending of where the player is. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Security Concerns ==&lt;br /&gt;
&lt;br /&gt;
There is a wide-spread assumption that open grids such as OSGrid and new forms of grids such as the hypergrid are inherently insecure, and that it will be impossible to develop a &amp;quot;goods-based&amp;quot; economy on top of them; only walled-gardens can be secured. This is both true and false. While it is true with the current state of things, open grids, whatever their form, can be made as secure as the web. The first step towards that is to define exactly what the security threats are, and how they affect (or not) open and closed grids. So, let's spell them out, and face them head-on. This will help put our feet on the ground so that we start developing appropriate solutions.&lt;br /&gt;
&lt;br /&gt;
=== Malicious Clients ===&lt;br /&gt;
&lt;br /&gt;
==== CopyBots ====&lt;br /&gt;
&lt;br /&gt;
Everyone knows about the infamous [http://en.wikipedia.org/wiki/CopyBot CopyBot]. Using libraries such as [http://www.libsecondlife.org/wiki/Main_Page LibSL] (now known as OpenMetaverse) it is possible to develop clients for opensim servers that do unorthodox things such as bypassing the permissions system to copy people's assets. Bots written by griefers can do lots of other nasty things.&lt;br /&gt;
&lt;br /&gt;
Malicious bots are a problem for all opensim administrators, including walled-garden grids. They can be prevented, to a certain extent, by exo-technical solutions such as Terms of Service and real-world lawsuits. Technically speaking, the only way to keep intruders out is to run opensim inside a firewall, pretty much like all other pieces of client/server software out there. If that's an acceptable solution for your case, you should do it.&lt;br /&gt;
&lt;br /&gt;
Unfortunately firewalls also keep the public out, and most opensim operators, even the ones running walled-garden grids, want to reach out to the public. In this case, opensim operators may develop additional technical obstacles for bots, similar to those we see on the Web. For example, make sure agents are being run by real people by giving them a human-challenge during the login/TP process, etc.&lt;br /&gt;
&lt;br /&gt;
Every obstacle to malicious clients lowers the risk of an intruder attack. However keep this in mind: no matter how many obstacles one builds, a sufficiently skilled and motivated attacker will be able to overcome them to penetrate opensims connected to the public internet. This affects hypergrid nodes as much as walled-garden grids. In fact, it's more pervasive than that: it affects '''all''' servers (opensim, web, etc.) connected to the public internet. Fighting malicious intruders is a fact of a connected world. Fortunately, those attacks don't happen very often, or the Web would have been dead by now.&lt;br /&gt;
&lt;br /&gt;
==== Web Clients ====&lt;br /&gt;
&lt;br /&gt;
CopyBots are the most well-known bots for opensim-based virtual worlds, but these virtual worlds are also susceptible to attacks by regular web clients. With the current state of things, it is actually easier to copy assets with a web-based client than with a libsl-based one. The weakness is that asset servers are connected to the public internet, and the protocol for interacting with them is public. &lt;br /&gt;
&lt;br /&gt;
OpenSim has some minimal guards in place to fence against these kinds of attacks. Specifically, when the inventory server receives a request for an item, it checks the session identifier of the requester. Web clients aren't logged in, so they are refused service. I don't want to expand much more on this, so not to make life easy for attackers, but let's just say that opensim has the necessary mechanisms in place to fence off web-based attackers.&lt;br /&gt;
&lt;br /&gt;
=== Malicious Hosts ===&lt;br /&gt;
&lt;br /&gt;
==== Actively Malicious Hosts ====&lt;br /&gt;
&lt;br /&gt;
The new security threat introduced by openness, one that does not exist in closed grids, is the possibility of a user to visit a region that is running malicious code. In the current state of opensim, a malicious host can do serious damage to the user's assets. Let's see how.&lt;br /&gt;
&lt;br /&gt;
Assume you have your assets in your hypergrided-standalone opensim, and you go visit another opensim that happens to be running malicious code. Here is a non-exhaustive list of vulnerabilities that you are exposed to:&lt;br /&gt;
&lt;br /&gt;
* The host has your session id, so it can request your inventory items on your behalf and store copies in its local asset server. To add insult to injury, a malicious host could simply wipe out your inventory after having copied it.&lt;br /&gt;
* Even if the malicious host doesn't access your items by itself, every time you access items in your inventory while you are in that region, those items are cached in the region's local cache, and can be stored persistently by the malicious host.&lt;br /&gt;
&lt;br /&gt;
Malicious hosts can do a lot more damage, but those two are enough to illustrate this new kind of vulnerability affecting open grids. Note that this affects all open grids, i.e. those where arbitrary people can plug-in their opensims, and not just the hypergrid.&lt;br /&gt;
&lt;br /&gt;
Fortunately, there is a family of simple solutions to this problem that can be summarized as &amp;quot;protecting you from yourself.&amp;quot; That proposal is described [[Hypergrid Inventory Access|here]].&lt;br /&gt;
&lt;br /&gt;
==== Piracy ====&lt;br /&gt;
&lt;br /&gt;
A second new security threat affecting open grids is one pertaining to commerce of virtual goods. Suppose you put something out for sale on your hypergrided opensim. A foreign user comes and buys it. What that really means is that that user will physically get a copy of the assets moved to his/her asset server, which is different from your asset server. The permissions will be whatever you define them to be, and using the regular VW client, that user can only do what you defined he/she should could do with the object, as usual. However, if the user has direct backend access to the asset and inventory servers, that person can simply modify the permissions on his/her copy. This is commonly known as '''piracy'''.&lt;br /&gt;
&lt;br /&gt;
This situation is the kernel of the belief that open grids are hopeless for a virtual-goods economy. DRM discussion aside, maybe they are hopeless. But then, everyone thought the web was hopeless for selling music, and look at the success of iTunes in spite of all the piracy that still exists out there. Who will be the equivalent of iTunes for virtual hair, skin and clothes?  &lt;br /&gt;
&lt;br /&gt;
== Hypergrid Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Hyperlinks and Agent Transfers ===&lt;br /&gt;
&lt;br /&gt;
When you establish a link between your opensim and another, a message is sent out to that other opensim requesting information about it; the required information includes the network information of that opensim host, and the coordinates of its first region on its local grid in the form of a region handle. For example, suppose you are linking node X.com:9000, placing it in your local map at 900, 900. That opensim runs one or more regions that likely are not in 900, 900 on their own map; suppose the first region of that opensim is at 1100, 1100. From your point of view, it doesn't matter what those other coordinates are, and you don't need to know -- that's the key to being able to decentralize the &amp;quot;world&amp;quot; as given by a 2D map; you want to place it in your map at 900, 900. The &amp;quot;true&amp;quot; position of that simulator only matters for the LL viewer, when there are teleports between your world and that other opensim. This mapping between coordinate systems is the essence of  hyperlinks for opensim; it's one simple but critical thing that the hypergrid implementation does. The mapping happens on the TeleportFinish event; instead of sending the local coordinates to the viewer, the hypergrid teleport wrapper sends the remote coordinates.&lt;br /&gt;
&lt;br /&gt;
When an agent teleports through that hyperlink the following happens. First, before InformRegionOfChildAgent, the local opensim notifies the remote opensim of this foreign user via the &amp;quot;expect_hg_user&amp;quot; method. That message sends along the addresses of all the servers that this user uses, i.e. user, inventory and asset servers. The remote opensim places an entry for that user in its local user profile cache but not in its user database; the foreign user information is non-persistent. After that, the teleport process is exactly the same as the normal teleport process; the only difference is that the region handles are switched between the remote region's hyperlink position on the local grid and its actual position on its grid. &lt;br /&gt;
&lt;br /&gt;
In summary, the two new concepts introduced by the hypergrid are the concept of an hyperlink and the concept of a &amp;quot;local user&amp;quot; vs. &amp;quot;foreign user&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Inventory Access ===&lt;br /&gt;
&lt;br /&gt;
Inventory access from abroad is done by wrapping the existing scene-inventory interactions with additional code that gets or posts inventory assets from/to the user's asset server. When inventory is accessed, the hypergrid wrapper checks if the user is foreign and, if she is, the wrapper simply brings the necessary assets from the user's asset server to the local asset cache and server; from then on, the wrapper passes the control to the existing inventory access functions. When something is added to inventory, the hypergrid wrapper is notified via an event, and posts the assets to the user's asset server. A cache of the exchanged item identifiers is maintained so that they aren't brought back over and over again.&lt;br /&gt;
&lt;br /&gt;
The result is that hypergrided opensim instances end up interacting with several asset servers, instead of just one. That interaction is implemented in a straightforward manner by instantiating several GridAssetClient objects, instead of just one.&lt;br /&gt;
&lt;br /&gt;
=== The Hypergrid Namespace ===&lt;br /&gt;
&lt;br /&gt;
Currently, the hypergrid is implemented outside of the OpenSim namespace, so that there is complete separation between what already exists and this new behavior. It has its own namespace, HyperGrid. In it, there are 4 sub-namespaces that follow directly the software architecture of OpenSim, namely:&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Framework''' extends OpenSim.Framework in the following manner:&lt;br /&gt;
** HGUserProfileData extends UserProfileData by introducing information about the user's &amp;quot;home&amp;quot;, namely the home address, port and remoting port. The user's home is not that user's user service; it's the opensim that the user has defined to be her home. This is necessary for supporting the home jump (Ctrl-Shift-H).&lt;br /&gt;
** HGNetworkServersInfo follows the spirit of NetworkServersInfo, although it neither extends it nor uses it. For now, it's a utility class whose two main functions are to convert domain names of servers to IP addresses, and to uniformly provide the answer to the question bool IsLocalUser(...).&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Environment''' extends OpenSim.Region.Environment.Scenes in the following manner:&lt;br /&gt;
** HGSceneCommunicationService extends SceneCommunicationService, overriding RequestTeleportToLocation. There are two very small but critical changes to the base method: (a) on the TeleportFinish event, we switch the region handles when the destination region is an hyperlink; (b) the connections at the end are always closed for hyperlink TPs.&lt;br /&gt;
** HGScene extends Scene, overriding TeleportClientHome(...). The only change to the base method is to stay away from the user server, for now, because the user service is still not completely wrapped up for foreign users. Once the user service is properly wrapped up, this class will become unnecessary.&lt;br /&gt;
** HGScene.Inventory is a partial class of HGScene, just like what happens in the OpenSim framework. This part of HGScene overrides some inventory-scene interaction methods, so that assets are fetched/posted from/to the user's asset server. Once that extra fetching/posting is done, these methods simply pass the ball to the base methods.&lt;br /&gt;
** HGAssetMapper: this is a new class specific to the hypergrid that manages the fetching and posting of assets between foreign regions where the user is and the user's asset server.&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Protocol''' is a mashup of OpenSim.Region.Communications.*. This is the place where most of the hypergrid extension lies. One of the reasons for this is that the hypergrid communications part is doing one additional thing: it is making standalones network-able.&lt;br /&gt;
** HGCommunicationsStandalone extends CommuniationsLocal. Just as its base, it is a hub for the several network services available in standalone mode. The main difference is that those services are extensions of what's in OpenSim.&lt;br /&gt;
** HGCommunicationsGridMode extends CommunicationsManager directly. Again, it's a hub for the network services available in grid mode, those services being extensions of OpenSim.&lt;br /&gt;
** The cluster HGGridServices (superclass), HGGridServicesStandalone and HGGridServicesGridMode (subclasses) implements the OpenSim interfaces IGridServices and IInterRegionCommunications. The 2 subclasses are wrappers for LocalBackEndServices and OGS1GridServices, respectively. There is one common pattern throughout these classes: check if the region to talk to is an hyperlink; if it's not, simply delegate the work to LocalBackEndServices/OGS1GridServices; if it is, push the work to the base class HGGridServices. HGGridServices, in turn, does the management of hyperlink regions, and defines two additional pieces of inter-region protocol:&lt;br /&gt;
*** region_uuid: for linking regions&lt;br /&gt;
*** expect_hg_user: similar to the existing expect_user interface, but with a lot more information about the user being passed around, namely all the user's servers (inventory, asset, user, home, etc.)&lt;br /&gt;
** HGInventoryService extends LocalInventoryService and implements ISecureInventoryService. This class is the most obvious mashup of the pack, mixing local service access for standalone users and remote inventory access for when users are out and about. Right now, there is a fair amount of selective copy-and-paste, to stay away from the ugliness coming from OGS1InventoryService and OGS1SecureInventoryService. HGInventoryService is always a ISecureInventoryService. Its methods all follow the same pattern: check if the user is a local standalone user; if it is, pass the work to the base method (in LocalInventoryService); if it's not perform secure remote access.&lt;br /&gt;
** HGUserServices wraps OSG1UserServices, but it's not functional yet.&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Modules''' is a collection of 3 region modules:&lt;br /&gt;
** HGWorldMapModule extends WorldMapModule. It reuses almost everything from the base class. The only small change is in RequestMapBlocks, where it tries to send Offline mapblocks to the client.&lt;br /&gt;
** HGStandaloneInventoryService and HGStandaloneAssetService do what their names say. They are region modules that allow access to inventory and assets for standalones, when the standalone user is out and about. In spirit, there is a lot in common between these modules and the REST inventory/asset plugin. Unfortunately, that plugin could not be used because it defines a completely different interface than that used by existing inventory and asset servers, and the access for the hypergrid must use a consistent interface.&lt;br /&gt;
&lt;br /&gt;
=== Class Diagram ===&lt;br /&gt;
&lt;br /&gt;
[[image:HypergridImplementation.jpg|600px|center|(Click on the image to enlarge)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installing and Running Hypergrid ==&lt;br /&gt;
&lt;br /&gt;
=== Installing ===&lt;br /&gt;
&lt;br /&gt;
# Checkout OpenSim, prebuild and build as normal.&lt;br /&gt;
# Make the following changes to your OpenSim.ini:&lt;br /&gt;
#* The map: '''WorldMapModule = &amp;quot;HGWorldMap&amp;quot; ''' If you didn't have this setting in your original OpenSim.ini, make sure you place it under the [Startup] section.&lt;br /&gt;
#* If you're running your opensim in grid mode with the UGAIM servers on other machines, you're done. If you're running in standalone and you want it to be network-able, or if you have your grid on loopback (127.0.0.1) change all the [Network] server addresses to &amp;lt;nowiki&amp;gt;&amp;quot;http://&amp;lt;external_host_name&amp;gt;:&amp;lt;http_port&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;. See below.&lt;br /&gt;
# Run opensim like this: &amp;lt;nowiki&amp;gt;[mono] OpenSim.exe -hypergrid=true&amp;lt;/nowiki&amp;gt;. To make sure the hypergrid is running type this on your console: '''link-region'''. If you don't hear anything back, the hypergrid is not properly installed.&lt;br /&gt;
&lt;br /&gt;
Here is an example of the Network settings for a standalone:&lt;br /&gt;
&lt;br /&gt;
 [Network]&lt;br /&gt;
 http_listener_port = 9300&lt;br /&gt;
 remoting_listener_port = 9895&lt;br /&gt;
 &lt;br /&gt;
 grid_server_url = http://example.com:9300&lt;br /&gt;
 grid_send_key = null&lt;br /&gt;
 grid_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 user_server_url = http://example.com:9300&lt;br /&gt;
 user_send_key = null&lt;br /&gt;
 user_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 asset_server_url = http://example.com:9300&lt;br /&gt;
 inventory_server_url = http://example.com:9300&lt;br /&gt;
&lt;br /&gt;
Here is an example of the Network settings for a grided opensim:&lt;br /&gt;
&lt;br /&gt;
 [Network]&lt;br /&gt;
 http_listener_port = 9300&lt;br /&gt;
 remoting_listener_port = 9895&lt;br /&gt;
 &lt;br /&gt;
 grid_server_url = http://example.com:8001&lt;br /&gt;
 grid_send_key = null&lt;br /&gt;
 grid_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 user_server_url = http://example.com:8002&lt;br /&gt;
 user_send_key = null&lt;br /&gt;
 user_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 asset_server_url = http://example.com:8003&lt;br /&gt;
 inventory_server_url = http://example.com:8004&lt;br /&gt;
&lt;br /&gt;
'''Important Note'''&lt;br /&gt;
&lt;br /&gt;
Make sure you have a 'home' set. If your home region doesn't exist, the hyperlink TPs may not work. To set your home, go to one of your local regions and &amp;quot;Set Home&amp;quot; from the viewer.&lt;br /&gt;
&lt;br /&gt;
=== Linking regions ===&lt;br /&gt;
&lt;br /&gt;
On the console, type for example:&lt;br /&gt;
&lt;br /&gt;
link-region &amp;lt;Xloc&amp;gt; &amp;lt;Yloc&amp;gt; osl2.nac.uci.edu 9006 OSGrid Gateway&lt;br /&gt;
&lt;br /&gt;
* Use Xloc and Yloc that make sense to your world, i.e. close to your regions, but not adjacent.&lt;br /&gt;
* replace osl2.nac.uci.edu and 9006 with the domain name / ip address and the port of the region you want to link to&lt;br /&gt;
&lt;br /&gt;
'''Important Note'''&lt;br /&gt;
&lt;br /&gt;
Due to a viewer [https://jira.secondlife.com/browse/SVC-2941 bug], you can only TP between regions that are no more than 4096 cells apart in any dimension. What this means in practice is that if you want to link to OSGrid, you must have your own regions reachable from the (10,000; 10,000) point on the map, which is where OSGrid is centered. Place your regions somewhere in the 8,000s or the 12,000s.&lt;br /&gt;
&lt;br /&gt;
== Public Hypergrid Nodes ==&lt;br /&gt;
&lt;br /&gt;
The following is a list of hypergrid-ready nodes that you can use for testing your installation and for linking your world. Please add your public node here if you wish to help build a web of opensims!&lt;br /&gt;
&lt;br /&gt;
For the time being, and until the security concerns described above are addressed, we advise you to be careful about who you link to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''osl2.nac.uci.edu 9006'''&lt;br /&gt;
The &amp;quot;UCI Welcome&amp;quot; region connected to OSGrid. It is run by Diva (Crista Lopes) on a machine owned by the University of California, Irvine. You can link to it as a way to link to OSGrid.&lt;br /&gt;
&lt;br /&gt;
* '''ucigrid02.nacs.uci.edu 9000'''&lt;br /&gt;
A region in the UCI Grid. It is run by Diva (Crista Lopes) on a machine owned by the University of California, Irvine.&lt;br /&gt;
&lt;br /&gt;
* '''hypergrid.cyberlandia.net 9000'''&lt;br /&gt;
The &amp;quot;Cyberlandia Gw&amp;quot; region connected to OSGrid.  Search on map &amp;quot;cyberlandia grid&amp;quot; Is link to cyberlandia Italian Opensim grid. You can link to it as a way to link to Cyberlandia.&lt;br /&gt;
&lt;br /&gt;
* '''hypergrid.cyberlandia.net 9300'''&lt;br /&gt;
The &amp;quot;Osgrid Gw&amp;quot; region connected to Cyberlandia grid http://www.cyberlandia.net.  Search on map &amp;quot;Osgrid grid&amp;quot; You can link to it as a way to link to OSGrid.&lt;br /&gt;
&lt;br /&gt;
* '''joomla-italia.net 9000&lt;br /&gt;
The &amp;quot;Accoglienza&amp;quot; region connected to SNI (Social Network Italia) grid http://www.opensim-italia.net. This grid is connected with Osgrid,Collateral World and Francogrid&lt;br /&gt;
&lt;br /&gt;
* '''collateral.opensim-italia.net 9000&lt;br /&gt;
The &amp;quot;Collateral&amp;quot; region connected to Collateral World Grid http://collateral.opensim-italia.net. This grid is connected with Social Network Italia, Osgrid and Francogrid&lt;br /&gt;
&lt;br /&gt;
* '''88.191.79.199 9050'''&lt;br /&gt;
Francogrid node, connected to &amp;quot;City&amp;quot;, behind the welcome land of Francogrid &amp;quot;Orion&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* '''94.23.8.158  9999'''&lt;br /&gt;
Le Monde de Darwin node, The Lost of Darwin&lt;br /&gt;
&lt;br /&gt;
* '''k-grid.net 9000'''&lt;br /&gt;
K-grid,  [http://k-grid.net the Kool grid for the Kool KidZ] . Feel free to visit us. The main Gateway is located at 3700,3700 so take that in account before any HyperJump&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Hypergrid</id>
		<title>Hypergrid</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Hypergrid"/>
				<updated>2008-12-07T10:48:01Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==The OpenSim Hypergrid==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== What is the hypergrid? ===&lt;br /&gt;
&amp;lt;!-- [[image:VWV.jpg|250px|thumb|Web of Virtual Worlds]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The hypergrid is an extension to opensim that allows you to link your opensim to other opensims on the internet, and that supports seamless agent transfers among those opensims. It can be used both in standalone mode and in grid mode. The hypergrid is effectively supporting the emergence of a Web of virtual worlds. &lt;br /&gt;
&lt;br /&gt;
The basic idea for the hypergrid is that region/grid administrations can place hyperlinks on their map to hypergrided regions run by others. Once those hyperlinks are established, users interact with those regions in exactly the same way as they interact with local regions. Specifically, users can choose to teleport there. Once the user reaches the region behind the hyperlink, she is automatically interacting with a different virtual world without having to logout from the world where she came from, and while still having access to her inventory.&lt;br /&gt;
&lt;br /&gt;
The hypergrid started as a GForge project, but it is now included in the standard distribution of OpenSim. To run your OpenSim instance in hypergrid mode, please see [[Hypergrid#Installing_and_Running_Hypergrid|Installing and Running]].&lt;br /&gt;
&lt;br /&gt;
=== Virtual World Hyperlinks ===&lt;br /&gt;
[[image:hghyperlink.jpg|250px|thumb|A Virtual World Hyperlink]]&lt;br /&gt;
&lt;br /&gt;
We're all familiar with hypertext links on the Web. But what is a virtual world hyperlink?&lt;br /&gt;
&lt;br /&gt;
In the hypergrid model, we consider the 2D map of the virtual world as the equivalent of a web page. As such, a VW hyperlink is simply a region on that map. &lt;br /&gt;
&lt;br /&gt;
The default model of opensim-based virtual worlds already supports this concept of hyperlink, to some extent. When you teleport from one region to another via the map, chances are you are migrating your agent into a different opensim server. This migration is a glorified &amp;quot;agent transfer&amp;quot; that also exists, in rudimentary form, on the web when hypertext links are followed. The default model, however, imposes two very strong constraints on these hyperlinks: &lt;br /&gt;
# The entire map of regions is controlled by a central service known as the grid service, whose job is to provide a uniform view of the world to all of its regions.&lt;br /&gt;
# The only agents that can be transferred are those pertaining to users known to another central service, the user service; if the incoming user is not on that service's database, the agent transfer doesn't go through.&lt;br /&gt;
&lt;br /&gt;
The hypergrid simply removes these two constraints. &lt;br /&gt;
&lt;br /&gt;
First, it allows individual opensim instances to add &amp;quot;neighbors&amp;quot; to their local map, shifting the control of the map down from the grid server to individual opensim instances (although hyperlinks can also be served by grid servers if grid admins so wish). In doing so, the world becomes a lot more interesting and varied. The map that you see in one opensim instance may be completely different from the map that you see after you teleport via an hyperlink. As an opensim administrator, you are free to define what other opensims you want to see on your map.&lt;br /&gt;
&lt;br /&gt;
Second, it allows the transfer of agents pertaining to foreigner users, i.e. users who are registered elsewhere. Instead of assuming one central user service, the hypergrid assumes an arbitrarily large number of such services distributed all over the world. As such, when agents are transferred among hypergrided opensims, a lot more information is passed about the corresponding user. That information includes the collection of servers that the transferring user needs.&lt;br /&gt;
&lt;br /&gt;
=== Usage Scenarios ===&lt;br /&gt;
&lt;br /&gt;
The following are some usage scenarios. There isn't a clear separation between these scenarios, there's a large overlap between them. This is also not an exhaustive list. The purpose of these descriptions is to give you some starting ideas for how to use the hypergrid in practice. Please feel free to add other interesting scenarios to this list.&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoA.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Personal Worlds'''&lt;br /&gt;
&lt;br /&gt;
This first scenario pertains to standalone opensims. Normally, standalones are completely disconnected from the internet. However, when run in hypergrid mode, standalones become network-able. As such, you can run your own world in your own computer, and link your world to whoever you want. For example, you can link to your friends' hypergrided opensims and to hypergrid gateways in open grids such as OSGrid. &lt;br /&gt;
&lt;br /&gt;
The great thing about this scenario is that all of your assets are stored on your computer, and not on somebody else's server. You can back them up using ordinary backend tools. The not so great thing about this scenario is that all of your assets are stored on your computer! If your disk goes berserk, you loose them. (so make sure you make external backups regularly)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoB.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Communities'''&lt;br /&gt;
&lt;br /&gt;
This second scenario is about communities, broadly construed. The idea here is that a group of people come together to support a small community grid, i.e. a common world where shared activities take place. But at the same time, the members of the community maintain their own standalone worlds. The standalones link to the community grid, and the community grid may link back to the individual members' worlds and other places of interest.&lt;br /&gt;
&lt;br /&gt;
The members' identities are probably the identities they have on their standalones, and their assets are also probably stored there. The assets present in the community regions, however, are stored on the grid asset server.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoC.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Grid Public Regions'''&lt;br /&gt;
&lt;br /&gt;
Walled-gardens are here to stay, and they serve many useful purposes. There is a hybrid mode for the hypergrid that some walled-garden grid operators may be interested in supporting. In this hybrid mode, most opensim instances on the grid run in normal, wall-garden mode, so no foreign visitors are allowed there - technically it is impossible to reach them. However, a few opensim instances on that grid can run in hypergrid mode, so that foreign visitors are allowed. This way, there is a gateway for grid-local users and arbitrary visitors to meet. This is also a good strategy for attracting new users to the grid, since random users are able to visit those gateway regions without having to sign up for an account upfront.&lt;br /&gt;
&lt;br /&gt;
This hybrid mode is very similar to what happens on the web. For example, anyone can visit Facebook's public pages without having to sign up for a Facebook account. However, only Facebook users can go further inside.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[image:topoD.jpg|400px|left]]&lt;br /&gt;
|&lt;br /&gt;
'''Level Games'''&lt;br /&gt;
&lt;br /&gt;
The normal version of OpenSim enforces a common map for all the regions on a grid. The hypergrid removes that constraint. As such, it becomes easy to design VW games where the world looks different depending of where the player is. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Security Concerns ==&lt;br /&gt;
&lt;br /&gt;
There is a wide-spread assumption that open grids such as OSGrid and new forms of grids such as the hypergrid are inherently insecure, and that it will be impossible to develop a &amp;quot;goods-based&amp;quot; economy on top of them; only walled-gardens can be secured. This is both true and false. While it is true with the current state of things, open grids, whatever their form, can be made as secure as the web. The first step towards that is to define exactly what the security threats are, and how they affect (or not) open and closed grids. So, let's spell them out, and face them head-on. This will help put our feet on the ground so that we start developing appropriate solutions.&lt;br /&gt;
&lt;br /&gt;
=== Malicious Clients ===&lt;br /&gt;
&lt;br /&gt;
==== CopyBots ====&lt;br /&gt;
&lt;br /&gt;
Everyone knows about the infamous [http://en.wikipedia.org/wiki/CopyBot CopyBot]. Using libraries such as [http://www.libsecondlife.org/wiki/Main_Page LibSL] (now known as OpenMetaverse) it is possible to develop clients for opensim servers that do unorthodox things such as bypassing the permissions system to copy people's assets. Bots written by griefers can do lots of other nasty things.&lt;br /&gt;
&lt;br /&gt;
Malicious bots are a problem for all opensim administrators, including walled-garden grids. They can be prevented, to a certain extent, by exo-technical solutions such as Terms of Service and real-world lawsuits. Technically speaking, the only way to keep intruders out is to run opensim inside a firewall, pretty much like all other pieces of client/server software out there. If that's an acceptable solution for your case, you should do it.&lt;br /&gt;
&lt;br /&gt;
Unfortunately firewalls also keep the public out, and most opensim operators, even the ones running walled-garden grids, want to reach out to the public. In this case, opensim operators may develop additional technical obstacles for bots, similar to those we see on the Web. For example, make sure agents are being run by real people by giving them a human-challenge during the login/TP process, etc.&lt;br /&gt;
&lt;br /&gt;
Every obstacle to malicious clients lowers the risk of an intruder attack. However keep this in mind: no matter how many obstacles one builds, a sufficiently skilled and motivated attacker will be able to overcome them to penetrate opensims connected to the public internet. This affects hypergrid nodes as much as walled-garden grids. In fact, it's more pervasive than that: it affects '''all''' servers (opensim, web, etc.) connected to the public internet. Fighting malicious intruders is a fact of a connected world. Fortunately, those attacks don't happen very often, or the Web would have been dead by now.&lt;br /&gt;
&lt;br /&gt;
==== Web Clients ====&lt;br /&gt;
&lt;br /&gt;
CopyBots are the most well-known bots for opensim-based virtual worlds, but these virtual worlds are also susceptible to attacks by regular web clients. With the current state of things, it is actually easier to copy assets with a web-based client than with a libsl-based one. The weakness is that asset servers are connected to the public internet, and the protocol for interacting with them is public. &lt;br /&gt;
&lt;br /&gt;
OpenSim has some minimal guards in place to fence against these kinds of attacks. Specifically, when the inventory server receives a request for an item, it checks the session identifier of the requester. Web clients aren't logged in, so they are refused service. I don't want to expand much more on this, so not to make life easy for attackers, but let's just say that opensim has the necessary mechanisms in place to fence off web-based attackers.&lt;br /&gt;
&lt;br /&gt;
=== Malicious Hosts ===&lt;br /&gt;
&lt;br /&gt;
==== Actively Malicious Hosts ====&lt;br /&gt;
&lt;br /&gt;
The new security threat introduced by openness, one that does not exist in closed grids, is the possibility of a user to visit a region that is running malicious code. In the current state of opensim, a malicious host can do serious damage to the user's assets. Let's see how.&lt;br /&gt;
&lt;br /&gt;
Assume you have your assets in your hypergrided-standalone opensim, and you go visit another opensim that happens to be running malicious code. Here is a non-exhaustive list of vulnerabilities that you are exposed to:&lt;br /&gt;
&lt;br /&gt;
* The host has your session id, so it can request your inventory items on your behalf and store copies in its local asset server. To add insult to injury, a malicious host could simply wipe out your inventory after having copied it.&lt;br /&gt;
* Even if the malicious host doesn't access your items by itself, every time you access items in your inventory while you are in that region, those items are cached in the region's local cache, and can be stored persistently by the malicious host.&lt;br /&gt;
&lt;br /&gt;
Malicious hosts can do a lot more damage, but those two are enough to illustrate this new kind of vulnerability affecting open grids. Note that this affects all open grids, i.e. those where arbitrary people can plug-in their opensims, and not just the hypergrid.&lt;br /&gt;
&lt;br /&gt;
Fortunately, there is a family of simple solutions to this problem that can be summarized as &amp;quot;protecting you from yourself.&amp;quot; That proposal is described [[Hypergrid Inventory Access|here]].&lt;br /&gt;
&lt;br /&gt;
==== Piracy ====&lt;br /&gt;
&lt;br /&gt;
A second new security threat affecting open grids is one pertaining to commerce of virtual goods. Suppose you put something out for sale on your hypergrided opensim. A foreign user comes and buys it. What that really means is that that user will physically get a copy of the assets moved to his/her asset server, which is different from your asset server. The permissions will be whatever you define them to be, and using the regular VW client, that user can only do what you defined he/she should could do with the object, as usual. However, if the user has direct backend access to the asset and inventory servers, that person can simply modify the permissions on his/her copy. This is commonly known as '''piracy'''.&lt;br /&gt;
&lt;br /&gt;
This situation is the kernel of the belief that open grids are hopeless for a virtual-goods economy. DRM discussion aside, maybe they are hopeless. But then, everyone thought the web was hopeless for selling music, and look at the success of iTunes in spite of all the piracy that still exists out there. Who will be the equivalent of iTunes for virtual hair, skin and clothes?  &lt;br /&gt;
&lt;br /&gt;
== Hypergrid Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Hyperlinks and Agent Transfers ===&lt;br /&gt;
&lt;br /&gt;
When you establish a link between your opensim and another, a message is sent out to that other opensim requesting information about it; the required information includes the network information of that opensim host, and the coordinates of its first region on its local grid in the form of a region handle. For example, suppose you are linking node X.com:9000, placing it in your local map at 900, 900. That opensim runs one or more regions that likely are not in 900, 900 on their own map; suppose the first region of that opensim is at 1100, 1100. From your point of view, it doesn't matter what those other coordinates are, and you don't need to know -- that's the key to being able to decentralize the &amp;quot;world&amp;quot; as given by a 2D map; you want to place it in your map at 900, 900. The &amp;quot;true&amp;quot; position of that simulator only matters for the LL viewer, when there are teleports between your world and that other opensim. This mapping between coordinate systems is the essence of  hyperlinks for opensim; it's one simple but critical thing that the hypergrid implementation does. The mapping happens on the TeleportFinish event; instead of sending the local coordinates to the viewer, the hypergrid teleport wrapper sends the remote coordinates.&lt;br /&gt;
&lt;br /&gt;
When an agent teleports through that hyperlink the following happens. First, before InformRegionOfChildAgent, the local opensim notifies the remote opensim of this foreign user via the &amp;quot;expect_hg_user&amp;quot; method. That message sends along the addresses of all the servers that this user uses, i.e. user, inventory and asset servers. The remote opensim places an entry for that user in its local user profile cache but not in its user database; the foreign user information is non-persistent. After that, the teleport process is exactly the same as the normal teleport process; the only difference is that the region handles are switched between the remote region's hyperlink position on the local grid and its actual position on its grid. &lt;br /&gt;
&lt;br /&gt;
In summary, the two new concepts introduced by the hypergrid are the concept of an hyperlink and the concept of a &amp;quot;local user&amp;quot; vs. &amp;quot;foreign user&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Inventory Access ===&lt;br /&gt;
&lt;br /&gt;
Inventory access from abroad is done by wrapping the existing scene-inventory interactions with additional code that gets or posts inventory assets from/to the user's asset server. When inventory is accessed, the hypergrid wrapper checks if the user is foreign and, if she is, the wrapper simply brings the necessary assets from the user's asset server to the local asset cache and server; from then on, the wrapper passes the control to the existing inventory access functions. When something is added to inventory, the hypergrid wrapper is notified via an event, and posts the assets to the user's asset server. A cache of the exchanged item identifiers is maintained so that they aren't brought back over and over again.&lt;br /&gt;
&lt;br /&gt;
The result is that hypergrided opensim instances end up interacting with several asset servers, instead of just one. That interaction is implemented in a straightforward manner by instantiating several GridAssetClient objects, instead of just one.&lt;br /&gt;
&lt;br /&gt;
=== The Hypergrid Namespace ===&lt;br /&gt;
&lt;br /&gt;
Currently, the hypergrid is implemented outside of the OpenSim namespace, so that there is complete separation between what already exists and this new behavior. It has its own namespace, HyperGrid. In it, there are 4 sub-namespaces that follow directly the software architecture of OpenSim, namely:&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Framework''' extends OpenSim.Framework in the following manner:&lt;br /&gt;
** HGUserProfileData extends UserProfileData by introducing information about the user's &amp;quot;home&amp;quot;, namely the home address, port and remoting port. The user's home is not that user's user service; it's the opensim that the user has defined to be her home. This is necessary for supporting the home jump (Ctrl-Shift-H).&lt;br /&gt;
** HGNetworkServersInfo follows the spirit of NetworkServersInfo, although it neither extends it nor uses it. For now, it's a utility class whose two main functions are to convert domain names of servers to IP addresses, and to uniformly provide the answer to the question bool IsLocalUser(...).&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Environment''' extends OpenSim.Region.Environment.Scenes in the following manner:&lt;br /&gt;
** HGSceneCommunicationService extends SceneCommunicationService, overriding RequestTeleportToLocation. There are two very small but critical changes to the base method: (a) on the TeleportFinish event, we switch the region handles when the destination region is an hyperlink; (b) the connections at the end are always closed for hyperlink TPs.&lt;br /&gt;
** HGScene extends Scene, overriding TeleportClientHome(...). The only change to the base method is to stay away from the user server, for now, because the user service is still not completely wrapped up for foreign users. Once the user service is properly wrapped up, this class will become unnecessary.&lt;br /&gt;
** HGScene.Inventory is a partial class of HGScene, just like what happens in the OpenSim framework. This part of HGScene overrides some inventory-scene interaction methods, so that assets are fetched/posted from/to the user's asset server. Once that extra fetching/posting is done, these methods simply pass the ball to the base methods.&lt;br /&gt;
** HGAssetMapper: this is a new class specific to the hypergrid that manages the fetching and posting of assets between foreign regions where the user is and the user's asset server.&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Protocol''' is a mashup of OpenSim.Region.Communications.*. This is the place where most of the hypergrid extension lies. One of the reasons for this is that the hypergrid communications part is doing one additional thing: it is making standalones network-able.&lt;br /&gt;
** HGCommunicationsStandalone extends CommuniationsLocal. Just as its base, it is a hub for the several network services available in standalone mode. The main difference is that those services are extensions of what's in OpenSim.&lt;br /&gt;
** HGCommunicationsGridMode extends CommunicationsManager directly. Again, it's a hub for the network services available in grid mode, those services being extensions of OpenSim.&lt;br /&gt;
** The cluster HGGridServices (superclass), HGGridServicesStandalone and HGGridServicesGridMode (subclasses) implements the OpenSim interfaces IGridServices and IInterRegionCommunications. The 2 subclasses are wrappers for LocalBackEndServices and OGS1GridServices, respectively. There is one common pattern throughout these classes: check if the region to talk to is an hyperlink; if it's not, simply delegate the work to LocalBackEndServices/OGS1GridServices; if it is, push the work to the base class HGGridServices. HGGridServices, in turn, does the management of hyperlink regions, and defines two additional pieces of inter-region protocol:&lt;br /&gt;
*** region_uuid: for linking regions&lt;br /&gt;
*** expect_hg_user: similar to the existing expect_user interface, but with a lot more information about the user being passed around, namely all the user's servers (inventory, asset, user, home, etc.)&lt;br /&gt;
** HGInventoryService extends LocalInventoryService and implements ISecureInventoryService. This class is the most obvious mashup of the pack, mixing local service access for standalone users and remote inventory access for when users are out and about. Right now, there is a fair amount of selective copy-and-paste, to stay away from the ugliness coming from OGS1InventoryService and OGS1SecureInventoryService. HGInventoryService is always a ISecureInventoryService. Its methods all follow the same pattern: check if the user is a local standalone user; if it is, pass the work to the base method (in LocalInventoryService); if it's not perform secure remote access.&lt;br /&gt;
** HGUserServices wraps OSG1UserServices, but it's not functional yet.&lt;br /&gt;
&lt;br /&gt;
* '''HyperGrid.Modules''' is a collection of 3 region modules:&lt;br /&gt;
** HGWorldMapModule extends WorldMapModule. It reuses almost everything from the base class. The only small change is in RequestMapBlocks, where it tries to send Offline mapblocks to the client.&lt;br /&gt;
** HGStandaloneInventoryService and HGStandaloneAssetService do what their names say. They are region modules that allow access to inventory and assets for standalones, when the standalone user is out and about. In spirit, there is a lot in common between these modules and the REST inventory/asset plugin. Unfortunately, that plugin could not be used because it defines a completely different interface than that used by existing inventory and asset servers, and the access for the hypergrid must use a consistent interface.&lt;br /&gt;
&lt;br /&gt;
=== Class Diagram ===&lt;br /&gt;
&lt;br /&gt;
[[image:HypergridImplementation.jpg|600px|center|(Click on the image to enlarge)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installing and Running Hypergrid ==&lt;br /&gt;
&lt;br /&gt;
=== Installing ===&lt;br /&gt;
&lt;br /&gt;
# Checkout OpenSim, prebuild and build as normal.&lt;br /&gt;
# Make the following changes to your OpenSim.ini:&lt;br /&gt;
#* The map: '''WorldMapModule = &amp;quot;HGWorldMap&amp;quot; ''' If you didn't have this setting in your original OpenSim.ini, make sure you place it under the [Startup] section.&lt;br /&gt;
#* If you're running your opensim in grid mode with the UGAIM servers on other machines, you're done. If you're running in standalone and you want it to be network-able, or if you have your grid on loopback (127.0.0.1) change all the [Network] server addresses to &amp;lt;nowiki&amp;gt;&amp;quot;http://&amp;lt;external_host_name&amp;gt;:&amp;lt;http_port&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;. See below.&lt;br /&gt;
# Run opensim like this: &amp;lt;nowiki&amp;gt;[mono] OpenSim.exe -hypergrid=true&amp;lt;/nowiki&amp;gt;. To make sure the hypergrid is running type this on your console: '''link-region'''. If you don't hear anything back, the hypergrid is not properly installed.&lt;br /&gt;
&lt;br /&gt;
Here is an example of the Network settings for a standalone:&lt;br /&gt;
&lt;br /&gt;
 [Network]&lt;br /&gt;
 http_listener_port = 9300&lt;br /&gt;
 remoting_listener_port = 9895&lt;br /&gt;
 &lt;br /&gt;
 grid_server_url = http://example.com:9300&lt;br /&gt;
 grid_send_key = null&lt;br /&gt;
 grid_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 user_server_url = http://example.com:9300&lt;br /&gt;
 user_send_key = null&lt;br /&gt;
 user_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 asset_server_url = http://example.com:9300&lt;br /&gt;
 inventory_server_url = http://example.com:9300&lt;br /&gt;
&lt;br /&gt;
Here is an example of the Network settings for a grided opensim:&lt;br /&gt;
&lt;br /&gt;
 [Network]&lt;br /&gt;
 http_listener_port = 9300&lt;br /&gt;
 remoting_listener_port = 9895&lt;br /&gt;
 &lt;br /&gt;
 grid_server_url = http://example.com:8001&lt;br /&gt;
 grid_send_key = null&lt;br /&gt;
 grid_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 user_server_url = http://example.com:8002&lt;br /&gt;
 user_send_key = null&lt;br /&gt;
 user_recv_key = null&lt;br /&gt;
 &lt;br /&gt;
 asset_server_url = http://example.com:8003&lt;br /&gt;
 inventory_server_url = http://example.com:8004&lt;br /&gt;
&lt;br /&gt;
'''Important Note'''&lt;br /&gt;
&lt;br /&gt;
Make sure you have a 'home' set. If your home region doesn't exist, the hyperlink TPs may not work. To set your home, go to one of your local regions and &amp;quot;Set Home&amp;quot; from the viewer.&lt;br /&gt;
&lt;br /&gt;
=== Linking regions ===&lt;br /&gt;
&lt;br /&gt;
On the console, type for example:&lt;br /&gt;
&lt;br /&gt;
link-region &amp;lt;Xloc&amp;gt; &amp;lt;Yloc&amp;gt; osl2.nac.uci.edu 9006 OSGrid Gateway&lt;br /&gt;
&lt;br /&gt;
* Use Xloc and Yloc that make sense to your world, i.e. close to your regions, but not adjacent.&lt;br /&gt;
* replace osl2.nac.uci.edu and 9006 with the domain name / ip address and the port of the region you want to link to&lt;br /&gt;
&lt;br /&gt;
'''Important Note'''&lt;br /&gt;
&lt;br /&gt;
Due to a viewer [https://jira.secondlife.com/browse/SVC-2941 bug], you can only TP between regions that are no more than 4096 cells apart in any dimension. What this means in practice is that if you want to link to OSGrid, you must have your own regions reachable from the (10,000; 10,000) point on the map, which is where OSGrid is centered. Place your regions somewhere in the 8,000s or the 12,000s.&lt;br /&gt;
&lt;br /&gt;
== Public Hypergrid Nodes ==&lt;br /&gt;
&lt;br /&gt;
The following is a list of hypergrid-ready nodes that you can use for testing your installation and for linking your world. Please add your public node here if you wish to help build a web of opensims!&lt;br /&gt;
&lt;br /&gt;
For the time being, and until the security concerns described above are addressed, we advise you to be careful about who you link to. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''osl2.nac.uci.edu 9006'''&lt;br /&gt;
The &amp;quot;UCI Welcome&amp;quot; region connected to OSGrid. It is run by Diva (Crista Lopes) on a machine owned by the University of California, Irvine. You can link to it as a way to link to OSGrid.&lt;br /&gt;
&lt;br /&gt;
* '''ucigrid02.nacs.uci.edu 9000'''&lt;br /&gt;
A region in the UCI Grid. It is run by Diva (Crista Lopes) on a machine owned by the University of California, Irvine.&lt;br /&gt;
&lt;br /&gt;
* '''hypergrid.cyberlandia.net 9000'''&lt;br /&gt;
The &amp;quot;Cyberlandia Gw&amp;quot; region connected to OSGrid.  Search on map &amp;quot;cyberlandia grid&amp;quot; Is link to cyberlandia Italian Opensim grid. You can link to it as a way to link to Cyberlandia.&lt;br /&gt;
&lt;br /&gt;
* '''hypergrid.cyberlandia.net 9300'''&lt;br /&gt;
The &amp;quot;Osgrid Gw&amp;quot; region connected to Cyberlandia grid http://www.cyberlandia.net.  Search on map &amp;quot;Osgrid grid&amp;quot; You can link to it as a way to link to OSGrid.&lt;br /&gt;
&lt;br /&gt;
* '''joomla-italia.net 9000&lt;br /&gt;
The &amp;quot;Accoglienza&amp;quot; region connected to SNI (Social Network Italia) grid http://www.opensim-italia.net. This grid is connected with Osgrid,Collateral World and Francogrid&lt;br /&gt;
&lt;br /&gt;
* '''collateral.opensim-italia.net 9000&lt;br /&gt;
The &amp;quot;Collateral&amp;quot; region connected to Collateral World Grid http://collateral.opensim-italia.net. This grid is connected with Social Network Italia, Osgrid and Francogrid&lt;br /&gt;
&lt;br /&gt;
* '''88.191.79.199 9050'''&lt;br /&gt;
Francogrid node, connected to &amp;quot;City&amp;quot;, behind the welcome land of Francogrid &amp;quot;Orion&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* '''94.23.8.158  9999'''&lt;br /&gt;
Le Monde de Darwin node, The Lost of Darwin&lt;br /&gt;
&lt;br /&gt;
* '''k-grid.net 9000'''&lt;br /&gt;
K-grid, the Kool grid for the Kool KidZ. Feel free to visit us&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Grid_List/K-grid</id>
		<title>Grid List/K-grid</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Grid_List/K-grid"/>
				<updated>2008-11-05T12:20:58Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: New page: &amp;lt;table border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&amp;gt;   &amp;lt;tr&amp;gt;     &amp;lt;td&amp;gt;Name:&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;K-Grid&amp;lt;/td&amp;gt;   &amp;lt;/tr&amp;gt;   &amp;lt;tr&amp;gt;     &amp;lt;td&amp;gt;Website:&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;http://k-grid.net/ (1)&amp;lt;/td&amp;gt;   &amp;lt;/tr&amp;gt;   &amp;lt;tr&amp;gt;     &amp;lt;td&amp;gt;Login...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Name:&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;K-Grid&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Website:&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;http://k-grid.net/ (1)&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Login URI:&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-loginuri http://k-grid.net:8002 -loginpage http://k-grid.net/loginpage -helperuri http://k-grid.net/ (2)&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Approx # Regions&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tbd&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Approx # Users&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tbd&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;Logins/day&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;tbd&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(1) Sims are all owned by individuals.&lt;br /&gt;
&lt;br /&gt;
There is no charge to connect to the grid. There is no charge for an account. Homestead land is free. This grid hold interops abilities.&lt;br /&gt;
(2) Updates to the Secondlife or other Client&lt;br /&gt;
&lt;br /&gt;
* The -loginpage argument is used to see the k-grid page of regions and news when logging in.&lt;br /&gt;
&lt;br /&gt;
* The -helperuri (with the trailing slash) enables the prototype currency module.&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Linux_Gridserver,_the_ubuntu_way</id>
		<title>Linux Gridserver, the ubuntu way</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Linux_Gridserver,_the_ubuntu_way"/>
				<updated>2008-08-15T19:03:19Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;First, you need to update your sources.list with  theses lines :&lt;br /&gt;
&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy main restricted&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy main restricted&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy-updates main restricted&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-updates main restricted&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy universe&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy universe&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy-updates universe&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-updates universe&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy multiverse&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy multiverse&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy-updates multiverse&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-updates multiverse&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse&lt;br /&gt;
 # deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse&lt;br /&gt;
 deb http://archive.canonical.com/ubuntu hardy partner&lt;br /&gt;
 deb-src http://archive.canonical.com/ubuntu hardy partner&lt;br /&gt;
 deb http://security.ubuntu.com/ubuntu hardy-security main restricted&lt;br /&gt;
 deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted&lt;br /&gt;
 deb http://security.ubuntu.com/ubuntu hardy-security universe&lt;br /&gt;
 deb-src http://security.ubuntu.com/ubuntu hardy-security universe&lt;br /&gt;
 deb http://security.ubuntu.com/ubuntu hardy-security multiverse&lt;br /&gt;
 deb-src http://security.ubuntu.com/ubuntu hardy-security multiverse&lt;br /&gt;
 deb http://ppa.launchpad.net/mono-edge/ubuntu/ hardy main universe multiverse restricted&lt;br /&gt;
&lt;br /&gt;
Don't forget the : &lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade &lt;br /&gt;
&lt;br /&gt;
Then, you need to create a file called mono.pkg that contains thoses lines:&lt;br /&gt;
&lt;br /&gt;
 libmono-accessibility1.0-cil			install&lt;br /&gt;
 libmono-accessibility2.0-cil			install&lt;br /&gt;
 libmono-addins0.2-cil				install&lt;br /&gt;
 libmono-bytefx0.7.6.1-cil			install&lt;br /&gt;
 libmono-bytefx0.7.6.2-cil			install&lt;br /&gt;
 libmono-c5-1.0-cil				install&lt;br /&gt;
 libmono-cecil0.5-cil				install&lt;br /&gt;
 libmono-corlib1.0-cil				install&lt;br /&gt;
 libmono-corlib2.0-cil				install&lt;br /&gt;
 libmono-corlib2.1-cil				install&lt;br /&gt;
 libmono-cscompmgd7.0-cil			install&lt;br /&gt;
 libmono-cscompmgd8.0-cil			install&lt;br /&gt;
 libmono-data-tds1.0-cil				install&lt;br /&gt;
 libmono-data-tds2.0-cil				install&lt;br /&gt;
 libmono-dev					install&lt;br /&gt;
 libmono-i18n2.0-cil				install&lt;br /&gt;
 libmono-microsoft7.0-cil			install&lt;br /&gt;
 libmono-microsoft8.0-cil			install&lt;br /&gt;
 libmono-mozilla0.1-cil				install&lt;br /&gt;
 libmono-mozilla0.2-cil				install&lt;br /&gt;
 libmono-peapi1.0-cil				install&lt;br /&gt;
 libmono-peapi2.0-cil				install&lt;br /&gt;
 libmono-relaxng1.0-cil				install&lt;br /&gt;
 libmono-relaxng2.0-cil				install&lt;br /&gt;
 libmono-security1.0-cil				install&lt;br /&gt;
 libmono-security2.0-cil				install&lt;br /&gt;
 libmono-sharpzip0.84-cil			install&lt;br /&gt;
 libmono-sharpzip2.84-cil			install&lt;br /&gt;
 libmono-sqlite1.0-cil				install&lt;br /&gt;
 libmono-sqlite2.0-cil				install&lt;br /&gt;
 libmono-system-data1.0-cil			install&lt;br /&gt;
 libmono-system-data2.0-cil			install&lt;br /&gt;
 libmono-system-messaging1.0-cil			install&lt;br /&gt;
 libmono-system-messaging2.0-cil			install&lt;br /&gt;
 libmono-system-runtime1.0-cil			install&lt;br /&gt;
 libmono-system-runtime2.0-cil			install&lt;br /&gt;
 libmono-system-web1.0-cil			install&lt;br /&gt;
 libmono-system-web2.0-cil			install&lt;br /&gt;
 libmono-system1.0-cil				install&lt;br /&gt;
 libmono-system2.0-cil				install&lt;br /&gt;
 libmono-system2.1-cil				install&lt;br /&gt;
 libmono-winforms1.0-cil				install&lt;br /&gt;
 libmono0					install&lt;br /&gt;
 libmono0-dbg					install&lt;br /&gt;
 libmono1.0-cil					install&lt;br /&gt;
 libmono2.0-cil					install&lt;br /&gt;
 mono-1.0-devel					install&lt;br /&gt;
 mono-1.0-service				install&lt;br /&gt;
 mono-2.0-devel					install&lt;br /&gt;
 mono-2.0-service				install&lt;br /&gt;
 mono-common					install&lt;br /&gt;
 mono-dbg					install&lt;br /&gt;
 mono-debugger					install&lt;br /&gt;
 mono-gac					install&lt;br /&gt;
 mono-gmcs					install&lt;br /&gt;
 mono-jit					install&lt;br /&gt;
 mono-jit-dbg					install&lt;br /&gt;
 mono-mcs					install&lt;br /&gt;
 mono-mjs					install&lt;br /&gt;
 mono-runtime					install&lt;br /&gt;
 mono-smcs					install&lt;br /&gt;
 mono-tools-devel				install&lt;br /&gt;
 mono-utils					install&lt;br /&gt;
 monodoc-base					install&lt;br /&gt;
 monodoc-manual		                        install&lt;br /&gt;
&lt;br /&gt;
then let the magic do its job :&lt;br /&gt;
&lt;br /&gt;
 sudo dpkg --set-selections &amp;lt; mono.pkg &lt;br /&gt;
 apt-get update &amp;amp;&amp;amp; sudo apt-get dselect-upgrade&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Linux_Gridserver,_the_ubuntu_way</id>
		<title>Linux Gridserver, the ubuntu way</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Linux_Gridserver,_the_ubuntu_way"/>
				<updated>2008-08-15T18:58:59Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;First, you need to update your sources.list with  theses lines :&lt;br /&gt;
&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy main restricted&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy main restricted&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy-updates main restricted&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-updates main restricted&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy universe&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy universe&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy-updates universe&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-updates universe&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy multiverse&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy multiverse&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy-updates multiverse&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-updates multiverse&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse&lt;br /&gt;
 # deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse&lt;br /&gt;
 deb http://archive.canonical.com/ubuntu hardy partner&lt;br /&gt;
 deb-src http://archive.canonical.com/ubuntu hardy partner&lt;br /&gt;
 deb http://security.ubuntu.com/ubuntu hardy-security main restricted&lt;br /&gt;
 deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted&lt;br /&gt;
 deb http://security.ubuntu.com/ubuntu hardy-security universe&lt;br /&gt;
 deb-src http://security.ubuntu.com/ubuntu hardy-security universe&lt;br /&gt;
 deb http://security.ubuntu.com/ubuntu hardy-security multiverse&lt;br /&gt;
 deb-src http://security.ubuntu.com/ubuntu hardy-security multiverse&lt;br /&gt;
 deb http://ppa.launchpad.net/mono-edge/ubuntu/ hardy main universe multiverse restricted&lt;br /&gt;
&lt;br /&gt;
Then, you need to create a file called mono.pkg that contains thoses lines:&lt;br /&gt;
&lt;br /&gt;
 libmono-accessibility1.0-cil			install&lt;br /&gt;
 libmono-accessibility2.0-cil			install&lt;br /&gt;
 libmono-addins0.2-cil				install&lt;br /&gt;
 libmono-bytefx0.7.6.1-cil			install&lt;br /&gt;
 libmono-bytefx0.7.6.2-cil			install&lt;br /&gt;
 libmono-c5-1.0-cil				install&lt;br /&gt;
 libmono-cecil0.5-cil				install&lt;br /&gt;
 libmono-corlib1.0-cil				install&lt;br /&gt;
 libmono-corlib2.0-cil				install&lt;br /&gt;
 libmono-corlib2.1-cil				install&lt;br /&gt;
 libmono-cscompmgd7.0-cil			install&lt;br /&gt;
 libmono-cscompmgd8.0-cil			install&lt;br /&gt;
 libmono-data-tds1.0-cil				install&lt;br /&gt;
 libmono-data-tds2.0-cil				install&lt;br /&gt;
 libmono-dev					install&lt;br /&gt;
 libmono-i18n2.0-cil				install&lt;br /&gt;
 libmono-microsoft7.0-cil			install&lt;br /&gt;
 libmono-microsoft8.0-cil			install&lt;br /&gt;
 libmono-mozilla0.1-cil				install&lt;br /&gt;
 libmono-mozilla0.2-cil				install&lt;br /&gt;
 libmono-peapi1.0-cil				install&lt;br /&gt;
 libmono-peapi2.0-cil				install&lt;br /&gt;
 libmono-relaxng1.0-cil				install&lt;br /&gt;
 libmono-relaxng2.0-cil				install&lt;br /&gt;
 libmono-security1.0-cil				install&lt;br /&gt;
 libmono-security2.0-cil				install&lt;br /&gt;
 libmono-sharpzip0.84-cil			install&lt;br /&gt;
 libmono-sharpzip2.84-cil			install&lt;br /&gt;
 libmono-sqlite1.0-cil				install&lt;br /&gt;
 libmono-sqlite2.0-cil				install&lt;br /&gt;
 libmono-system-data1.0-cil			install&lt;br /&gt;
 libmono-system-data2.0-cil			install&lt;br /&gt;
 libmono-system-messaging1.0-cil			install&lt;br /&gt;
 libmono-system-messaging2.0-cil			install&lt;br /&gt;
 libmono-system-runtime1.0-cil			install&lt;br /&gt;
 libmono-system-runtime2.0-cil			install&lt;br /&gt;
 libmono-system-web1.0-cil			install&lt;br /&gt;
 libmono-system-web2.0-cil			install&lt;br /&gt;
 libmono-system1.0-cil				install&lt;br /&gt;
 libmono-system2.0-cil				install&lt;br /&gt;
 libmono-system2.1-cil				install&lt;br /&gt;
 libmono-winforms1.0-cil				install&lt;br /&gt;
 libmono0					install&lt;br /&gt;
 libmono0-dbg					install&lt;br /&gt;
 libmono1.0-cil					install&lt;br /&gt;
 libmono2.0-cil					install&lt;br /&gt;
 mono-1.0-devel					install&lt;br /&gt;
 mono-1.0-service				install&lt;br /&gt;
 mono-2.0-devel					install&lt;br /&gt;
 mono-2.0-service				install&lt;br /&gt;
 mono-common					install&lt;br /&gt;
 mono-dbg					install&lt;br /&gt;
 mono-debugger					install&lt;br /&gt;
 mono-gac					install&lt;br /&gt;
 mono-gmcs					install&lt;br /&gt;
 mono-jit					install&lt;br /&gt;
 mono-jit-dbg					install&lt;br /&gt;
 mono-mcs					install&lt;br /&gt;
 mono-mjs					install&lt;br /&gt;
 mono-runtime					install&lt;br /&gt;
 mono-smcs					install&lt;br /&gt;
 mono-tools-devel				install&lt;br /&gt;
 mono-utils					install&lt;br /&gt;
 monodoc-base					install&lt;br /&gt;
 monodoc-manual		                        install&lt;br /&gt;
&lt;br /&gt;
then let the magic do its job :&lt;br /&gt;
&lt;br /&gt;
 sudo dpkg --set-selections &amp;lt; mono.pkg &lt;br /&gt;
 apt-get update &amp;amp;&amp;amp; sudo apt-get dselect-upgrade&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Linux_Gridserver,_the_ubuntu_way</id>
		<title>Linux Gridserver, the ubuntu way</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Linux_Gridserver,_the_ubuntu_way"/>
				<updated>2008-08-15T18:56:48Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;First, you need to update your sources.list with  theses lines :&lt;br /&gt;
&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy main restricted&lt;br /&gt;
&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy main restricted&lt;br /&gt;
&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy-updates main restricted&lt;br /&gt;
&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-updates main restricted&lt;br /&gt;
&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy universe&lt;br /&gt;
&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy universe&lt;br /&gt;
&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy-updates universe&lt;br /&gt;
&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-updates universe&lt;br /&gt;
&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy multiverse&lt;br /&gt;
&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy multiverse&lt;br /&gt;
&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy-updates multiverse&lt;br /&gt;
&lt;br /&gt;
 deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-updates multiverse&lt;br /&gt;
&lt;br /&gt;
 deb http://fr.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse&lt;br /&gt;
&lt;br /&gt;
 # deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse&lt;br /&gt;
&lt;br /&gt;
 deb http://archive.canonical.com/ubuntu hardy partner&lt;br /&gt;
&lt;br /&gt;
 deb-src http://archive.canonical.com/ubuntu hardy partner&lt;br /&gt;
&lt;br /&gt;
 deb http://security.ubuntu.com/ubuntu hardy-security main restricted&lt;br /&gt;
 deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted&lt;br /&gt;
&lt;br /&gt;
 deb http://security.ubuntu.com/ubuntu hardy-security universe&lt;br /&gt;
&lt;br /&gt;
 deb-src http://security.ubuntu.com/ubuntu hardy-security universe&lt;br /&gt;
&lt;br /&gt;
 deb http://security.ubuntu.com/ubuntu hardy-security multiverse&lt;br /&gt;
&lt;br /&gt;
 deb-src http://security.ubuntu.com/ubuntu hardy-security multiverse&lt;br /&gt;
&lt;br /&gt;
 deb http://ppa.launchpad.net/mono-edge/ubuntu/ hardy main universe multiverse restricted&lt;br /&gt;
&lt;br /&gt;
Then, you need to create a file called mono.pkg that contains thoses lines:&lt;br /&gt;
&lt;br /&gt;
 libmono-accessibility1.0-cil			install&lt;br /&gt;
 libmono-accessibility2.0-cil			install&lt;br /&gt;
 libmono-addins0.2-cil				install&lt;br /&gt;
 libmono-bytefx0.7.6.1-cil			install&lt;br /&gt;
 libmono-bytefx0.7.6.2-cil			install&lt;br /&gt;
 libmono-c5-1.0-cil				install&lt;br /&gt;
 libmono-cecil0.5-cil				install&lt;br /&gt;
 libmono-corlib1.0-cil				install&lt;br /&gt;
 libmono-corlib2.0-cil				install&lt;br /&gt;
 libmono-corlib2.1-cil				install&lt;br /&gt;
 libmono-cscompmgd7.0-cil			install&lt;br /&gt;
 libmono-cscompmgd8.0-cil			install&lt;br /&gt;
 libmono-data-tds1.0-cil				install&lt;br /&gt;
 libmono-data-tds2.0-cil				install&lt;br /&gt;
 libmono-dev					install&lt;br /&gt;
 libmono-i18n2.0-cil				install&lt;br /&gt;
 libmono-microsoft7.0-cil			install&lt;br /&gt;
 libmono-microsoft8.0-cil			install&lt;br /&gt;
 libmono-mozilla0.1-cil				install&lt;br /&gt;
 libmono-mozilla0.2-cil				install&lt;br /&gt;
 libmono-peapi1.0-cil				install&lt;br /&gt;
 libmono-peapi2.0-cil				install&lt;br /&gt;
 libmono-relaxng1.0-cil				install&lt;br /&gt;
 libmono-relaxng2.0-cil				install&lt;br /&gt;
 libmono-security1.0-cil				install&lt;br /&gt;
 libmono-security2.0-cil				install&lt;br /&gt;
 libmono-sharpzip0.84-cil			install&lt;br /&gt;
 libmono-sharpzip2.84-cil			install&lt;br /&gt;
 libmono-sqlite1.0-cil				install&lt;br /&gt;
 libmono-sqlite2.0-cil				install&lt;br /&gt;
 libmono-system-data1.0-cil			install&lt;br /&gt;
 libmono-system-data2.0-cil			install&lt;br /&gt;
 libmono-system-messaging1.0-cil			install&lt;br /&gt;
 libmono-system-messaging2.0-cil			install&lt;br /&gt;
 libmono-system-runtime1.0-cil			install&lt;br /&gt;
 libmono-system-runtime2.0-cil			install&lt;br /&gt;
 libmono-system-web1.0-cil			install&lt;br /&gt;
 libmono-system-web2.0-cil			install&lt;br /&gt;
 libmono-system1.0-cil				install&lt;br /&gt;
 libmono-system2.0-cil				install&lt;br /&gt;
 libmono-system2.1-cil				install&lt;br /&gt;
 libmono-winforms1.0-cil				install&lt;br /&gt;
 libmono0					install&lt;br /&gt;
 libmono0-dbg					install&lt;br /&gt;
 libmono1.0-cil					install&lt;br /&gt;
 libmono2.0-cil					install&lt;br /&gt;
 mono-1.0-devel					install&lt;br /&gt;
 mono-1.0-service				install&lt;br /&gt;
 mono-2.0-devel					install&lt;br /&gt;
 mono-2.0-service				install&lt;br /&gt;
 mono-common					install&lt;br /&gt;
 mono-dbg					install&lt;br /&gt;
 mono-debugger					install&lt;br /&gt;
 mono-gac					install&lt;br /&gt;
 mono-gmcs					install&lt;br /&gt;
 mono-jit					install&lt;br /&gt;
 mono-jit-dbg					install&lt;br /&gt;
 mono-mcs					install&lt;br /&gt;
 mono-mjs					install&lt;br /&gt;
 mono-runtime					install&lt;br /&gt;
 mono-smcs					install&lt;br /&gt;
 mono-tools-devel				install&lt;br /&gt;
 mono-utils					install&lt;br /&gt;
 monodoc-base					install&lt;br /&gt;
 monodoc-manual		                        install&lt;br /&gt;
&lt;br /&gt;
then let the magic do its job :&lt;br /&gt;
&lt;br /&gt;
 sudo dpkg --set-selections &amp;lt; mono.pkg &lt;br /&gt;
 apt-get update &amp;amp;&amp;amp; sudo apt-get dselect-upgrade&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Linux_Gridserver,_the_ubuntu_way</id>
		<title>Linux Gridserver, the ubuntu way</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Linux_Gridserver,_the_ubuntu_way"/>
				<updated>2008-08-15T18:48:11Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: New page: First, you need to update your sources.list with  theses lines :  deb http://fr.archive.ubuntu.com/ubuntu/ hardy main restricted deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy main res...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;First, you need to update your sources.list with  theses lines :&lt;br /&gt;
&lt;br /&gt;
deb http://fr.archive.ubuntu.com/ubuntu/ hardy main restricted&lt;br /&gt;
deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy main restricted&lt;br /&gt;
deb http://fr.archive.ubuntu.com/ubuntu/ hardy-updates main restricted&lt;br /&gt;
deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-updates main restricted&lt;br /&gt;
deb http://fr.archive.ubuntu.com/ubuntu/ hardy universe&lt;br /&gt;
deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy universe&lt;br /&gt;
deb http://fr.archive.ubuntu.com/ubuntu/ hardy-updates universe&lt;br /&gt;
deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-updates universe&lt;br /&gt;
deb http://fr.archive.ubuntu.com/ubuntu/ hardy multiverse&lt;br /&gt;
deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy multiverse&lt;br /&gt;
deb http://fr.archive.ubuntu.com/ubuntu/ hardy-updates multiverse&lt;br /&gt;
deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-updates multiverse&lt;br /&gt;
deb http://fr.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse&lt;br /&gt;
# deb-src http://fr.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse&lt;br /&gt;
deb http://archive.canonical.com/ubuntu hardy partner&lt;br /&gt;
deb-src http://archive.canonical.com/ubuntu hardy partner&lt;br /&gt;
deb http://security.ubuntu.com/ubuntu hardy-security main restricted&lt;br /&gt;
deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted&lt;br /&gt;
deb http://security.ubuntu.com/ubuntu hardy-security universe&lt;br /&gt;
deb-src http://security.ubuntu.com/ubuntu hardy-security universe&lt;br /&gt;
deb http://security.ubuntu.com/ubuntu hardy-security multiverse&lt;br /&gt;
deb-src http://security.ubuntu.com/ubuntu hardy-security multiverse&lt;br /&gt;
deb http://ppa.launchpad.net/mono-edge/ubuntu/ hardy main universe multiverse restricted&lt;br /&gt;
&lt;br /&gt;
Then, you need to create a file called mono.pkg that contains thoses lines:&lt;br /&gt;
&lt;br /&gt;
libmono-accessibility1.0-cil			install&lt;br /&gt;
libmono-accessibility2.0-cil			install&lt;br /&gt;
libmono-addins0.2-cil				install&lt;br /&gt;
libmono-bytefx0.7.6.1-cil			install&lt;br /&gt;
libmono-bytefx0.7.6.2-cil			install&lt;br /&gt;
libmono-c5-1.0-cil				install&lt;br /&gt;
libmono-cecil0.5-cil				install&lt;br /&gt;
libmono-corlib1.0-cil				install&lt;br /&gt;
libmono-corlib2.0-cil				install&lt;br /&gt;
libmono-corlib2.1-cil				install&lt;br /&gt;
libmono-cscompmgd7.0-cil			install&lt;br /&gt;
libmono-cscompmgd8.0-cil			install&lt;br /&gt;
libmono-data-tds1.0-cil				install&lt;br /&gt;
libmono-data-tds2.0-cil				install&lt;br /&gt;
libmono-dev					install&lt;br /&gt;
libmono-i18n2.0-cil				install&lt;br /&gt;
libmono-microsoft7.0-cil			install&lt;br /&gt;
libmono-microsoft8.0-cil			install&lt;br /&gt;
libmono-mozilla0.1-cil				install&lt;br /&gt;
libmono-mozilla0.2-cil				install&lt;br /&gt;
libmono-peapi1.0-cil				install&lt;br /&gt;
libmono-peapi2.0-cil				install&lt;br /&gt;
libmono-relaxng1.0-cil				install&lt;br /&gt;
libmono-relaxng2.0-cil				install&lt;br /&gt;
libmono-security1.0-cil				install&lt;br /&gt;
libmono-security2.0-cil				install&lt;br /&gt;
libmono-sharpzip0.84-cil			install&lt;br /&gt;
libmono-sharpzip2.84-cil			install&lt;br /&gt;
libmono-sqlite1.0-cil				install&lt;br /&gt;
libmono-sqlite2.0-cil				install&lt;br /&gt;
libmono-system-data1.0-cil			install&lt;br /&gt;
libmono-system-data2.0-cil			install&lt;br /&gt;
libmono-system-messaging1.0-cil			install&lt;br /&gt;
libmono-system-messaging2.0-cil			install&lt;br /&gt;
libmono-system-runtime1.0-cil			install&lt;br /&gt;
libmono-system-runtime2.0-cil			install&lt;br /&gt;
libmono-system-web1.0-cil			install&lt;br /&gt;
libmono-system-web2.0-cil			install&lt;br /&gt;
libmono-system1.0-cil				install&lt;br /&gt;
libmono-system2.0-cil				install&lt;br /&gt;
libmono-system2.1-cil				install&lt;br /&gt;
libmono-winforms1.0-cil				install&lt;br /&gt;
libmono0					install&lt;br /&gt;
libmono0-dbg					install&lt;br /&gt;
libmono1.0-cil					install&lt;br /&gt;
libmono2.0-cil					install&lt;br /&gt;
mono-1.0-devel					install&lt;br /&gt;
mono-1.0-service				install&lt;br /&gt;
mono-2.0-devel					install&lt;br /&gt;
mono-2.0-service				install&lt;br /&gt;
mono-common					install&lt;br /&gt;
mono-dbg					install&lt;br /&gt;
mono-debugger					install&lt;br /&gt;
mono-gac					install&lt;br /&gt;
mono-gmcs					install&lt;br /&gt;
mono-jit					install&lt;br /&gt;
mono-jit-dbg					install&lt;br /&gt;
mono-mcs					install&lt;br /&gt;
mono-mjs					install&lt;br /&gt;
mono-runtime					install&lt;br /&gt;
mono-smcs					install&lt;br /&gt;
mono-tools-devel				install&lt;br /&gt;
mono-utils					install&lt;br /&gt;
monodoc-base					install&lt;br /&gt;
monodoc-manual		                        install&lt;br /&gt;
&lt;br /&gt;
then let the magic do its job :&lt;br /&gt;
&lt;br /&gt;
sudo dpkg --set-selections &amp;lt; mono.pkg&lt;br /&gt;
apt-get update &amp;amp;&amp;amp; sudo apt-get dselect-upgrade&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/User_Documentation</id>
		<title>User Documentation</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/User_Documentation"/>
				<updated>2008-08-15T18:45:53Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: /* Tutorials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Quicklinks}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
==Initial Setup==&lt;br /&gt;
* [[Download]] - Download instructions&lt;br /&gt;
* [[OpenSim Build Instructions|Build Instructions]] - How to build and compile OpenSim from Source&lt;br /&gt;
* [[OpenSim Configuration|Configuration]] - How to get your OpenSim server up and running&lt;br /&gt;
* [[Connecting]] - How to connect a compatible viewer to OpenSim&lt;br /&gt;
* [[Troubleshooting]] - How to trouble shoot your OpenSim installation.&lt;br /&gt;
* [[Tips]] - Useful tips from users like you&lt;br /&gt;
* [[FAQ]] - Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
==Administrator Guide==&lt;br /&gt;
* [[Server Commands]] - Commands to control OpenSim&lt;br /&gt;
* [[OpenSim Database support]] - Dealing with databases&lt;br /&gt;
* [[Custom Libraries]] - Describes how to add custom content to your OpenSim server&lt;br /&gt;
* [[Automating Tasks]] - How to make administrating a walk in the park&lt;br /&gt;
* [[Network Settings]] - NAT, Ports, Services and more...&lt;br /&gt;
* [[Management]] - All about being an effective administrator/moderator&lt;br /&gt;
* [[Performance]] - How to tweak OpenSim's performance&lt;br /&gt;
* [[Console-less OpenSim]] - How to run OpenSim without console&lt;br /&gt;
* [[GridInfo]] - how to provide information about your grid to smart clients&lt;br /&gt;
&lt;br /&gt;
==Facilities==&lt;br /&gt;
* [[OpenSim Archives]] - Loading and saving whole region archives with OpenSim&lt;br /&gt;
&lt;br /&gt;
==Scripting==&lt;br /&gt;
* [[Scripting Documentation]] - Everything you need to know about OpenSim scripting&lt;br /&gt;
* [[Scripting Library]] - A list of example scripts&lt;br /&gt;
&lt;br /&gt;
==Tutorials==&lt;br /&gt;
* [[OSGrid Region Registration]] - Describes how to link your region into OS-Grid&lt;br /&gt;
* [[Hints &amp;amp; Tricks]] - A page for Hints and Tricks&lt;br /&gt;
* [[Using L3DT]] - How to create custom terrains&lt;br /&gt;
* [[Detailed cross-region terrain making]] - A workflow for creating large cross-region custom terrains&lt;br /&gt;
* [[Linux Gridserver]] using 'moo' - How to setup a Gridserver on a Linux machine using 'moo'&lt;br /&gt;
* [[Linux Gridserver, the ubuntu way]] the quick and dirty way to install opensim under ubuntu&lt;br /&gt;
&lt;br /&gt;
==Contribution Policy==&lt;br /&gt;
* [[User_Wiki_Conventions|User Wiki Conventions]] - Read this carefully, before adding content to the wiki&lt;br /&gt;
[[Category:Users]]&lt;br /&gt;
&amp;lt;cleanpage title=hide cats=hide /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Test_Page</id>
		<title>Test Page</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Test_Page"/>
				<updated>2008-08-11T19:31:36Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: /* oswatchdog */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Open Sim Watchdog Script===&lt;br /&gt;
This is a small script to watch for an OpenSim region simulator under screen in Linux. If the process is missing, a new instance will be started. &lt;br /&gt;
&lt;br /&gt;
==oswatchdog==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY&lt;br /&gt;
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED&lt;br /&gt;
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE&lt;br /&gt;
# DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY&lt;br /&gt;
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES&lt;br /&gt;
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;&lt;br /&gt;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND&lt;br /&gt;
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;br /&gt;
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# Adjust To Your System:&lt;br /&gt;
#&lt;br /&gt;
# Sample Cron Entry: Runs Each Minute 24/7/365&lt;br /&gt;
# */1 * * * * exec /opt/opensim/scripts/oswatchdog&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# Where Does Your OpenSim Installation Live?&lt;br /&gt;
BASE=&amp;quot;/opt/opensim&amp;quot;&lt;br /&gt;
# Where Do You Run OpenSim.exe From?&lt;br /&gt;
RUN=&amp;quot;$BASE/production/bin&amp;quot;&lt;br /&gt;
# Where Do You Want To Log Events To?&lt;br /&gt;
LOG=&amp;quot;$BASE/log&amp;quot;&lt;br /&gt;
# Where Is Your Screen Binary?&lt;br /&gt;
SCREEN=&amp;quot;/usr/bin/screen&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#if the file exist, opensim won't be restarted&lt;br /&gt;
# Sacha Magne&lt;br /&gt;
LOCKFILE=&amp;quot;/tmp/norun.opensim&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [ -f &amp;quot;$LOCKFILE&amp;quot; ]; then&lt;br /&gt;
  echo $LOCKFILE &amp;quot;found. no restart&amp;quot;&lt;br /&gt;
  exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Check For For Our Screen Process, Named OSG&lt;br /&gt;
running=`ps ax|grep OSG|grep -v grep`&lt;br /&gt;
&lt;br /&gt;
# If The Process Is Not There...&lt;br /&gt;
if [ -z &amp;quot;$running&amp;quot; ]; then&lt;br /&gt;
				#...We Make A Log Entry And Start A New One&lt;br /&gt;
	# The Log Entry&lt;br /&gt;
	TIME=&amp;quot;Simulator Down, Restarting: `/usr/bin/date +&amp;quot;%A, %B %d - %r&amp;quot;`&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	echo $TIME &amp;gt;&amp;gt;$LOG/OSGReport.txt&lt;br /&gt;
	cd $RUN&lt;br /&gt;
	$SCREEN -S OSG -d -m mono OpenSim.exe&lt;br /&gt;
fi&lt;br /&gt;
# All Done 'Till Next Time&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/A_better_SimCrossing</id>
		<title>A better SimCrossing</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/A_better_SimCrossing"/>
				<updated>2008-07-25T14:06:44Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The idea behind that name is using some technics used in Telecom world (GSM,3G) to perform a better transition between sims.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Concept:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SimCrossing (SC) is based one several messages exchanged between the object (Object), the actual sim (OriginSim) and the next sim (TargetSim). The main exchange are located in the HandOverArea (HOarea) located on the OriginSim. This area is computed by the server for each TargetSim (maximum 4 ).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to have a smooth transition, we need to determine an HandOver area where all the simcrossing messages exchange should happens. This area is computed on the object level regarding the ping latency between the Target and the object velocity. This area contains a RedZone area where all the Simcrossing conditions should be satisfied, otherwise the simcrossing won’t happen.&lt;br /&gt;
&lt;br /&gt;
Phase 1 : Login or rezzing&lt;br /&gt;
&lt;br /&gt;
During the login phase, the object asks the surrounding sims list to its actual simulator. We can call this list the ActiveSet .  The ActiveSet contains the sim data and their “ping” time.&lt;br /&gt;
&lt;br /&gt;
The object compute the SimCrossing boundaries and determine an “HandOver” area with a Redzone area based on the timers (ping + delta). Normaly the Handover should be ready before entering the Redzone. &lt;br /&gt;
&lt;br /&gt;
Phase 2:  Object logged and alive entering in the HandOver Area&lt;br /&gt;
&lt;br /&gt;
On periodic basis, the object send a ping to each simulator on its activeset and update their status  accordingly in order to keep an up to date neighbored simulator list.&lt;br /&gt;
&lt;br /&gt;
When the object enter in the HandOver area, a message “SimCrossing Request” is sent to the Source simulator.  The simulator will relay the message to the next Simulator (Target Sim) and will start downloading the object context. Those data should include all the running code, the values of the code’s variables like a memory dump (heap,stack and such).&lt;br /&gt;
&lt;br /&gt;
more details here http://docs.google.com/Doc?docid=dfcvvffc_3jj3jwgxn&amp;amp;hl=en&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/A_better_SimCrossing</id>
		<title>A better SimCrossing</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/A_better_SimCrossing"/>
				<updated>2008-07-25T13:56:40Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: New page: The idea behind that name is using some technics used in Telecom world (GSM,3G) to perform a better transition between sims.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The idea behind that name is using some technics used in Telecom world (GSM,3G) to perform a better transition between sims.&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Developer_Documentation</id>
		<title>Developer Documentation</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Developer_Documentation"/>
				<updated>2008-07-24T20:02:04Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: /* Developer Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Quicklinks}}&lt;br /&gt;
&lt;br /&gt;
== Developer Documentation ==&lt;br /&gt;
You can view the current [[Top 10 Bugs|top 10 bugs]] blocking forward development.&lt;br /&gt;
&lt;br /&gt;
* [[Hacking OpenSim for fun and profit]] &amp;amp;mdash; A starters guide for programming OpenSim&lt;br /&gt;
* [[Database Documentation]] &amp;amp;mdash; A map of grid and region instances used in OpenSim&lt;br /&gt;
* [[OpenSim: Debugging - profiler dumps]] &amp;amp;mdash; Dumps of OpenSim profiles to aid in tracking memory leaks.&lt;br /&gt;
* [[OpenSim: Testing]] &amp;amp;mdash; What is tested.&lt;br /&gt;
* [[OpenSim: TechRef]] &amp;amp;mdash; A technical description of the simulator operation.&lt;br /&gt;
* [[Opensim: 0.5 Release Target Discussion]]&lt;br /&gt;
* [[Opensim: 0.6 Release Target Discussion]]&lt;br /&gt;
* [[Opensim: Future Release Discussion]]&lt;br /&gt;
* [[OpenSim: Class Diagrams]]&lt;br /&gt;
* [[Grid Architecture Diagram]]&lt;br /&gt;
* [[OpenSim: Scripting]] &amp;amp;mdash; How to use scripts and what limitations apply.&lt;br /&gt;
* [[Webinterface]] &amp;amp;mdash; How to mashup with the web.&lt;br /&gt;
* [[RemoteAdmin]] &amp;amp;mdash; How to use the remote admin plug-in.&lt;br /&gt;
* [[OpenSim: Prim Inventory Persistence]] &amp;amp;mdash; Information on the current state of prim inventory persistence.&lt;br /&gt;
* [[LSL_Status/Functions|LSL Implemented]]   &amp;amp;mdash; A list of LSL-functions that are available in OpenSim.&lt;br /&gt;
* [[PhysicsEngines]]   &amp;amp;mdash; Options for physics engines in OpenSim.&lt;br /&gt;
* [[MonoSqlite]] &amp;amp;mdash; How the database model currently works.&lt;br /&gt;
* [[Monodevelop]] &amp;amp;mdash; How to use the [[monodevelop]] IDE for editing C# solutions.&lt;br /&gt;
* [[Scripting Documentation]] - Everything you need to know about OpenSim scripting&lt;br /&gt;
* [[LSL:PrimitiveParams]] Notes on converting SL Edit GUI values and LSL PrimitiveParams to OpenSim PrimitiveBaseShape fields&lt;br /&gt;
* [[OpenSim.Region.ScriptEngine]] &amp;amp;mdash; How the ScriptEngine looks internally.&lt;br /&gt;
* [[RegionModules]] &amp;amp;mdash; The various modules that are used in the RegionServer and how to write new ones.&lt;br /&gt;
* [[OpenSim: Screenshots]] &amp;amp;mdash; Various OpenSim screenshots.&lt;br /&gt;
* [[OpenSim: Threading strategy]] &amp;amp;mdash; How threading is implemented and handled.&lt;br /&gt;
* [[OpenSim: Permissions]] &amp;amp;mdash; Notes on object permissions &amp;amp; definition of the ObjectFlags variable.&lt;br /&gt;
* [[OpenSim Load Balancing and Region Splitting]] - Instructions for using load balancing and region splitting features.&lt;br /&gt;
* [[Asset Server problems]] - list of known problems with the asset server&lt;br /&gt;
* [[OpenID]] - Proposal for using OpenID in OpenSim&lt;br /&gt;
* [[OpenSim.Region.DataSnapshot]] - Shiny new data gathering/search system&lt;br /&gt;
* [[How to create a dynamic plugin]] - A tutorial for using PluginLoader&lt;br /&gt;
* [[A better SimCrossing]] - A work in progress about implemening a smooth simcrossing&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
&lt;br /&gt;
A good first point of contact is the OpenSim IRC, on irc.freenode.net channels #opensim / #opensim-dev. The OpenSim developers hold [[office hours]] once a week in-world on Tuesdays at &amp;quot;Wright Plaza&amp;quot; on OSGrid. There is a &amp;quot;Test Hour&amp;quot; on Saturdays, also generally on &amp;quot;Wright Plaza&amp;quot;. Both these weekly events are held at 1900UTC. Check on the #opensim IRC channel on Freenode just before each of these events if there is any confusion.&lt;br /&gt;
&lt;br /&gt;
==SVN Access==&lt;br /&gt;
You can browse the source code for OpenSim [http://opensimulator.org/cgi-bin/viewcvs.cgi using a web browser] or via SVN.&lt;br /&gt;
* Anonymous Checkout&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/trunk&lt;br /&gt;
* Developer Checkout&lt;br /&gt;
 svn co svn+ssh://USERNAME@opensimulator.org/var/svn/opensim/trunk&lt;br /&gt;
&lt;br /&gt;
==Recent SVN Commits==&lt;br /&gt;
&amp;lt;rss&amp;gt;http://cia.vc/stats/project/opensim/.rss|max=5|title=none&amp;lt;/rss&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Main]]&lt;br /&gt;
[[Category:Getting Started]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
&amp;lt;cleanpage title=hide cats=hide /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/OSSL_Proposals</id>
		<title>OSSL Proposals</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/OSSL_Proposals"/>
				<updated>2008-06-17T14:08:47Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: /* OSSL Proposal Table */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page dedicated to OpenSim's very own home brew custom scripting language Known as &amp;quot;'''O'''pen '''S'''im '''S'''cripting '''L'''anguage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Please see [[OSSL_Standards|OSSL Standards]] for proposed naming schema'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Please post your osFunction along with a brief description of what it would be for, or do and an example of it. &lt;br /&gt;
* Make sure it begins with os NOT ll.&lt;br /&gt;
* And remember, almost anything within reason can be posted here as an idea, who knows, maybe a variation of your request can be possible.&lt;br /&gt;
* If a function could implemented in standard LSL, there is no reason to make an OS function. LSL code and function code executes at the same speed in OpenSim.&lt;br /&gt;
==OSSL Proposal Table==&lt;br /&gt;
{| class=&amp;quot;sortable&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;width:100%;border:1px solid #000000;border-collapse: collapse; white-space:normal;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#99CCFF;font-size:6pt;font-weight:bold;border-bottom:1px solid;&amp;quot; align=&amp;quot;center&amp;quot; valign=&amp;quot;bottom&amp;quot;&lt;br /&gt;
| osFunction &lt;br /&gt;
| Description &lt;br /&gt;
| Example Usage&lt;br /&gt;
| Signed &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background-color:#CCFFCC;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| int osRestartRegion()&lt;br /&gt;
| Restarts the region the script is currently in.  The script this is run in has to be owned by the master avatar for that region. Returns 1 if the region is restarting, 0 on failure.&lt;br /&gt;
| osRestartRegion();&lt;br /&gt;
| gryc (Implemented by AFrisby)&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background-color:#CCFFCC;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| int osWebTexture()&lt;br /&gt;
| Sets the texture from a web-url&lt;br /&gt;
| osWebTexture(string url,integer maptype);&lt;br /&gt;
| AFrisby?&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| osGroupAdd(key, string Role)&lt;br /&gt;
| Adds user to a group with given role, default role Everyone. Returns 1 if successful 0 if fail.&lt;br /&gt;
| osGroupAdd(87f6e6a0-d884-11dc-95ff-0800200c9a66, &amp;quot;Officer&amp;quot;)&lt;br /&gt;
| Nitrus Nori&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| int osShutdownRegion()&lt;br /&gt;
| Shuts down the region the script is currently in.  The script this is run in has to be owned by the master avatar for that region. Returns 1 if the region is going down, 0 on failure.&lt;br /&gt;
| osShutdownRegion();&lt;br /&gt;
| gryc&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| void osAttachmentSay(integer channel, string msg)&lt;br /&gt;
| Provide a secure, low lag method of communicating between attachments over the chat channels by only sending messages to objects attached to the same avatar. Would fail (or not be heard) if in a non-attached object.&lt;br /&gt;
| osAttachmentSay(-20, &amp;quot;detatch&amp;quot;);&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| void osMessageSecure(string message_key, string str, integer num, key id);&amp;lt;br&amp;gt;secure_message(string message_key, string str, integer num, key id);&lt;br /&gt;
| Provide a method of sending secure, salt encripted messages sim wide. Messages would only be able to be received by scripts with the matching key in the secure_message method.&lt;br /&gt;
| osMessageSecure(&amp;quot;myPassPhrase&amp;quot;, &amp;quot;Hello World&amp;quot;, 0, NULL_KEY);&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| void osSetText( vector color, string text [,vector color, string text]);&lt;br /&gt;
| Allow setting of multiple colors on the prim text&lt;br /&gt;
| osSetText(&amp;lt;1,0,0&amp;gt;,&amp;quot;Red&amp;quot;, &amp;lt;0,1,0&amp;gt;, &amp;quot;\nGreen&amp;quot;, &amp;lt;0,0,1&amp;gt;, &amp;quot;\nBlue&amp;quot;);&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| osSensor&lt;br /&gt;
| Gets ALL the objects in the specified range not just the first 16&lt;br /&gt;
| (same as standard)&lt;br /&gt;
| Sal&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| list lst=osDetectObjectsInSim(key id)&lt;br /&gt;
| given an Agent Key, provide a list of ALL object owned by that agent&lt;br /&gt;
| osDetectObjectsInSim(key id) returning a strided list of [ name, &amp;lt;pos&amp;gt; ]&lt;br /&gt;
| Sal&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer=osDialog([ title, label1, type1, len1, label2, type2, len2]....&lt;br /&gt;
| given title and a listing of fields, builds up a real form where to put structured checked data&lt;br /&gt;
| will return a [ value1, value2, valuen ] corresponding to fields read. Type might be something like (string, text (multiline), integer, float, currency(decimals), options(combobox)&lt;br /&gt;
| Sal&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| key id=osMakeTextureText(string name,integer width, integer height,[posx1,posy1,font1,color1,size1,text1,posx2,posy2,font2,color2,size2,text2....])&lt;br /&gt;
| allow for producing a texture on the fly with desired Font content from a selected font selection. Width, Height in pixels 1024x512 to control how big will be the texture&lt;br /&gt;
| will generate a texture with defined text. (Allow some support for at least ISO-8859-1) texture will be created in the object inventory. posx, posy in the range 0-1 to be pixel independent&lt;br /&gt;
| Sal&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| osMakeNotecard(string name, [ line1, line2, line3, ...])&lt;br /&gt;
| allow creation of new notecards in current object repository&lt;br /&gt;
| generate a new asset id useful for storing modified configuration&lt;br /&gt;
| Sal&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer handler=osReadNotecardKey(string notecard, string key)&lt;br /&gt;
| allows reading notecards (through dataserver) in format key=value in convenient and efficient way&lt;br /&gt;
| ...&lt;br /&gt;
| Sal&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| osWriteNotecardKey(string notecard, string key,string value)&lt;br /&gt;
| allows WRITING notecards in format key=value in convenient and efficient way. Might be optimized having a fixed record length &amp;quot;file&amp;quot; so to avoid rewriting of the entire notecard&lt;br /&gt;
| ...&lt;br /&gt;
| Sal&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer handle=osXMLParser(string xml)&lt;br /&gt;
| will activate a listener xmlparser(integer handler,string parent, string field, string value)&lt;br /&gt;
| to easily parse xml without writing php external code&lt;br /&gt;
| Sal&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer osReturnObjects(key owner, integer type);&lt;br /&gt;
| Provide a scriptable method of returning objects from a sim. type would be OBJECT_SCRIPTED, OBJECT_PASSIVE or OBJECT_ALL. Would return a binary Success/Fail, and work inline with land permissions for the script owner.&lt;br /&gt;
| osReturnObjects( target, OBJECT_ALL);&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer osReturnItem(key item);&lt;br /&gt;
| Provide a scriptable method of returning individual objects from a sim. Would return a binary Success/Fail, and work inline with land permissions for the script owner.&lt;br /&gt;
| osReturnItem(uuid);&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| osSetTimerEvent(integer timer, float rate); &amp;lt;br&amp;gt; (event) timer(integer timer_num)&lt;br /&gt;
| Support for multiple timers in a script.&lt;br /&gt;
| osSetTimerEvent(2, 0.5);&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| osTimerOnce(integer timer, float rate);&lt;br /&gt;
| Allow for a one shot timer event, rather than the normal repeating heartbeat type&lt;br /&gt;
| osTimerOnce(2, 10);&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer osVerifyScripts();&lt;br /&gt;
| Check to see if all scripts in an object are created by the owner of the script calling the function. Return TRUE if they are, FALSE otherwise, to prevent insertion of alien scripts into an object&lt;br /&gt;
| if (!osVerifyScripts()) { llDie(); }&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| void osStopOtherAnimations(list animation_exceptions);&lt;br /&gt;
| Provide a method of stopping all animations on an avatar, except those defined in the list&lt;br /&gt;
| osStopOtherAnimations([&amp;quot;my_sitting_anim&amp;quot;]);&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| void osPutScriptInLinkedSet(string name,integer linknum, integer starting_parm, integer running)&lt;br /&gt;
| Use this to propagate one script to ALL or part of linked set.&lt;br /&gt;
| Useful to have all objects in a linked set sharing a common behaviour&lt;br /&gt;
| Sal&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| osRezObject(string name, string description, integer permissionmask, list setPrimitiveObjectLikeList) will trigger the object_rez object as usual&lt;br /&gt;
| similar to llRezObject, but without the need of having a prim inside the inventory (which produced a lot of problems in deploying and in sl). Newly created object will have the same owner of current object where script is running.&lt;br /&gt;
| In case list is empty or position not specified, suitable defaults should apply like pos being 1 m higher in the z axis&lt;br /&gt;
| Sal&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| string osGetOwnerName();&lt;br /&gt;
| Provide a method of getting the owner name without having to use llKey2Name&lt;br /&gt;
| myName = osGetOwnerName();&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer osXMPPOpen(string server, string username, string password, string resource);&lt;br /&gt;
| Open an XMPP session to a jabber or other XMPP server, returning a handle to be able to manipulate the connection. Incoming messages to be parsed through a xmpp_message(integer handle, string sender, string service, string message) event. Accounts would have to be set up manually by the scripter, or by some other method, to prevent scripted spamming of a server, and to allow users to set up gateways and other services if needed.&lt;br /&gt;
| handle = osXMPPOpen(&amp;quot;jabber.org&amp;quot;, &amp;quot;MyObject&amp;quot;, &amp;quot;MyPassword&amp;quot;, &amp;quot;OpenSim&amp;quot;);&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| list osXMPPGetRosta(integer handle);&lt;br /&gt;
| Get the rosta from the XMPP server, list in the strided form of [username, presence, resource];&lt;br /&gt;
| list presence = osXMPPGetRosta(handle);&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| list osXMPPGetServices(integer handle);&lt;br /&gt;
| Get a list of available services from the XMPP Server.&lt;br /&gt;
| list services = osXMPPGetServices(handle);&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer osXMPPAdd(string username, string service)&lt;br /&gt;
| Add a username to the account rosta. Return boolean success or fail&lt;br /&gt;
| if (osXMPPAdd(&amp;quot;Test User&amp;quot;, &amp;quot;Yahoo&amp;quot;)) { ... }&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer oxXMPPDelete(string username)&lt;br /&gt;
| Remove a username from the account rosta. Return boolean success or fail&lt;br /&gt;
| if (osXMPPDelete(&amp;quot;Test User&amp;quot;)) { ... }&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer osXMPPGetStatus(string username);&lt;br /&gt;
| Poll the server for the status of a specific username on the rosta - returns would be OFFLINE, BUSY, AWAY and ONLINE&lt;br /&gt;
| if (osXMPPGetStatus(&amp;quot;Test User&amp;quot;) &amp;amp; ONLINE) { ... }&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer osXMPPSendMessage(integer handle, string message, string target);&lt;br /&gt;
| Send a message via the open XMPP channel, to the specified target. Return boolean success values&lt;br /&gt;
| if (osXMPPSendMessage(handle, &amp;quot;Hello World&amp;quot;, osGetOwnerName()) { llOwnerSay(&amp;quot;Successfully sent message&amp;quot;);&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| void osXMPPClose(integer handle);&lt;br /&gt;
| Close the XMPP session&lt;br /&gt;
| osXMPPClose();&lt;br /&gt;
| Del M&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| void osRezObjectKey(key object,vector pos,vector vel,rotation rot, int param);&lt;br /&gt;
| Basically llGodLikeRezObject[http://lslwiki.net/lslwiki/wakka.php?wakka=llGodLikeRezObject] with the features of llRezObject[http://lslwiki.net/lslwiki/wakka.php?wakka=llRezObject] but for everyone to use. Calls object_rez.&lt;br /&gt;
| osRezObjectKey(object_key,llGetPos(),ZERO_VECTOR,llGetRot(),0);&lt;br /&gt;
| Tdub&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| osRezFromURL(string url, vector pos, vector vel, rotation rot, integer param) - calls on_rez&lt;br /&gt;
| Fetch a fragment of xml from a web server and rez its contents in-world as in 'load-xml'.  Off or intergrid object repositories, such as objects stored in SVN via websvn, CMS, etc.&lt;br /&gt;
| osRezFromURL(&amp;quot;http://my.objectstore.com/myawesomeprims.xml&amp;quot;, &amp;lt;1, 1, 1&amp;gt;, &amp;lt;0, 0, 0&amp;gt;, &amp;lt;0, 0, 0&amp;gt;, 0)&lt;br /&gt;
| Jimbo2120&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| list osRunCustom(string function, list params)&lt;br /&gt;
| Allow scripts to call external custom routines that are grid-specific without modifying the set of LSL and OSL functions.&lt;br /&gt;
| list results = osRunCustom(&amp;quot;function1&amp;quot;, [...])&lt;br /&gt;
| Ezekiel&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| osSetScriptServer()&lt;br /&gt;
| Create a 'Server' prim that allows for extended scripting capabilities: more memory, higher bandwidth when communicating with external servers, probably some database connectivity, no artificial delays, can receive IMs, etc. Could be limited to one server per prim / parcel or per avatar, could be forced to remain in a fixed position. A server is important for residents that want to set up a virtual business.&lt;br /&gt;
| osSetScriptServer()&lt;br /&gt;
| Ezekiel&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer osRemoteLoadScript(string url, string target)&lt;br /&gt;
| Load a source file in txt format from &amp;quot;URL&amp;quot; and compile it into script &amp;quot;target&amp;quot; in the inventory of the same prim. Requires permission of the object owner (RequestPermission). Returns boolean success value. Replaces an existing script with same name. This function would allow updates to scripted solutions that operate in any grid and sim worldwide, allowing the creator of the solution to distribute code fixes and implement new functions. Since the source code is distributed openly, it can be copied and modified by anyone. A function that would allow for secure code distribution, protecting copyrights and certificates, would also be very interesting but should be far more difficult to implement.&lt;br /&gt;
| integer updatestatus = osRemoteLoadScript(&amp;quot;http://www.xyz.com/updates/script1013.txt&amp;quot;, &amp;quot;betterscript&amp;quot; )&lt;br /&gt;
| Ezekiel&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer osSetCustomPrimitiveAttributes(list params)&lt;br /&gt;
| Set some custom persistent primitive attributes, the same way as llSetPrimitiveParams do. The attribute name has to be specified as a string, then the attribute type using a lSL constant. In the example, we set a &amp;quot;magnet&amp;quot; custom attribute as -0.5, supposing a customized physic engine handles this attribute to provide prim attraction.&lt;br /&gt;
| integer osSetCustomPrimitiveAttributes([&amp;quot;magnet&amp;quot;, TYPE_FLOAT, -0.5])&lt;br /&gt;
| Grumly&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| list osGetCustomPrimitiveAttributes(list paramNames)&lt;br /&gt;
| Return a list values of the specified attributes names, the same way as llGetPrimitiveParams do.&lt;br /&gt;
| list osGetCustomPrimitiveAttributes([&amp;quot;Magnetic&amp;quot;])&lt;br /&gt;
| Grumly&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer osSyncUUID(key oldUUID, key newUUID);&lt;br /&gt;
| Allows to change the UUID of an avatar or item(requires permission from owner). &lt;br /&gt;
| Suppose a terminal in the LL-grid wants to communicate with an OS-Grid terminal. It can only send messages, if the UUID's of avatars match. An OS-Grid script can get the avatar's LL-UUID by calling the dataserver script. Then it calls osSyncUUID(llDetectedKey(0), keyFromHTTPRequest); . Now the two keys are equal, and avatar-avatar communication between grids can take place!&lt;br /&gt;
| Phrearch&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| integer osTeleport(string RegionName, int x, int y, int z);&lt;br /&gt;
| Teleports an avatar to a custom region&lt;br /&gt;
| &lt;br /&gt;
| Phrearch&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| osSetStatus(integer status, integer value);&lt;br /&gt;
| Improved verion of the LSL function llSetStatus. &lt;br /&gt;
| The function works basically the same way as llSetStatus, except that an extra flag is added named STATUS_PHYSICS_ROOT. When this flag is TRUE, physics would be enabled Only for the root prim in a linked set, while the other prims in the set would behave as phantom. This would be useful for bypassing the 32-prim physics limit for vehicles by using only the root prim as a collision mesh.&lt;br /&gt;
| Pesho&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| vector osGetBonePos();&lt;br /&gt;
| When called from an Attachment, retrieves the position of the bone it is attached to, in Region Coordinates. &lt;br /&gt;
| When llGetPos() is called from an attachment, the vector returned is the one of the avatar center, whereas llGetLocalPos() returns the local offset from the bone it is attached to. It would be useful to know where the attachment's location really is in world space.&lt;br /&gt;
| Pesho&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| string osGetOSLLRelease();&lt;br /&gt;
| When called return the actual release of OSSL running on the sim. &lt;br /&gt;
| if osGetOSSLRelease() &amp;gt; 1.1 {llSay(0,&amp;quot;good&amp;quot;);}&lt;br /&gt;
| Sacha Magne&lt;br /&gt;
|- style=&amp;quot;font-size:8pt;border-bottom:1px solid;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| List osGetServerLib();&lt;br /&gt;
| When called return a list of all the additional libraries loaded on the server. it will avoid any scripts using a specific library to crash in case of missing libs.&lt;br /&gt;
| List lib=osGetServerLib();&lt;br /&gt;
| Sacha Magne&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Main]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Users]]&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/wiki/Build_Instructions</id>
		<title>Build Instructions</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/wiki/Build_Instructions"/>
				<updated>2008-06-17T13:37:28Z</updated>
		
		<summary type="html">&lt;p&gt;Sacha Magne: /* MS Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Users]]&lt;br /&gt;
=Installing from source=&lt;br /&gt;
&lt;br /&gt;
==Download from SVN==&lt;br /&gt;
Check out the [[Download]] Section&lt;br /&gt;
&lt;br /&gt;
==MS Windows==&lt;br /&gt;
&lt;br /&gt;
OpenSim requires either the .Net framework version 2.0, or the latest Mono. It supports the following compilers:&lt;br /&gt;
* [http://msdn2.microsoft.com/en-us/express/aa700756.aspx Microsoft Visual C# Express Edition] (note: not Visual C++)&lt;br /&gt;
* [http://www.mono-project.com/ mono]&lt;br /&gt;
&lt;br /&gt;
Note for people who just downloaded the sources from http://dist.opensimulator.org/ (the &amp;quot;Downloads&amp;quot; link on the left) be advised that some important things are missing (like MySQL template scripts). For such features, you must download using svn!&lt;br /&gt;
&lt;br /&gt;
Additional note: any Microsoft C# Express edition should work (2005 or 2008)&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
&lt;br /&gt;
* In the top-level directory, run the '&amp;lt;tt&amp;gt;runprebuild.bat&amp;lt;/tt&amp;gt;' file. This will create both a VS2005 solution file, and a nant build file.&lt;br /&gt;
* Open the resulting sln file with visual studio, and build it there, or if you prefer to use nant, run nant in the same top-level directory. This will build the executables.&lt;br /&gt;
&lt;br /&gt;
If you don't care about physics (walking on prims, etc), ignore the rest of this section.&lt;br /&gt;
&lt;br /&gt;
==== Physics ====&lt;br /&gt;
&lt;br /&gt;
===== Open Dynamics Engine (ODE) =====&lt;br /&gt;
If you want to implement collision-based physics, OpenDynamicsEngine (ODE) is the furthest along at the moment (9/07).  It is not fully supported, but is starting to work somewhat reliably using a small number of regions per sim.&lt;br /&gt;
&lt;br /&gt;
As installed from svn, ODE does not work on all platforms.  If you get an ODE-related crash, and/or an &amp;lt;i&amp;gt;ode.dll not found&amp;lt;/i&amp;gt; type of error (which can occur even though the dll is present!), try to build ode from source, follow the directions on [[PhysicsEngines]].&lt;br /&gt;
&lt;br /&gt;
Be sure you don't already have a system library version of libode.so that's being used instead of the one in the bin folder of your opensimulator distribution&lt;br /&gt;
&lt;br /&gt;
=== Running ===&lt;br /&gt;
&lt;br /&gt;
Recent versions of OpenSim come without an &amp;lt;tt&amp;gt;OpenSim.ini&amp;lt;/tt&amp;gt; file. Copy the &amp;lt;tt&amp;gt;OpenSim.ini.example&amp;lt;/tt&amp;gt; file to &amp;lt;tt&amp;gt;OpenSim.ini&amp;lt;/tt&amp;gt; before making any changes.&lt;br /&gt;
&lt;br /&gt;
Double-click on the &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt; executable file in the &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; directory. This will start up OpenSim in standalone mode.&lt;br /&gt;
&lt;br /&gt;
The debugger in VS2005 C# may be used to step through the code. For those that use a Cygwin shell, you may find that one or more dll's have permissions that cause problems running. Most find that a &amp;quot;&amp;lt;tt&amp;gt;chmod 777 *&amp;lt;/tt&amp;gt;&amp;quot; from the &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; directory solves this.&lt;br /&gt;
&lt;br /&gt;
Physics can be invoked by adding the appropriate line to the [Startup] section of &amp;lt;tt&amp;gt;OpenSim.ini&amp;lt;/tt&amp;gt;.  For ODE, that would be:&lt;br /&gt;
&lt;br /&gt;
 physics = OpenDynamicsEngine&lt;br /&gt;
&lt;br /&gt;
You can also add a command line option to a shortcut, or run from a command prompt with:&lt;br /&gt;
&lt;br /&gt;
 -physics=OpenDynamicsEngine&lt;br /&gt;
&lt;br /&gt;
'''''Windows Vista'''''&lt;br /&gt;
&lt;br /&gt;
To run on Windows Vista, you must first disable Windows Firewall.  Under the new &amp;quot;Start&amp;quot; button of Vista, select &amp;quot;Control panel&amp;quot;.  Then double-click &amp;quot;Windows Firewall&amp;quot;.  In the window that pops up, on the left column, select &amp;quot;Turn Windows Firewall on or off&amp;quot;.  You will have to give permission for this to run, then select the option &amp;quot;Off (not recommended)&amp;quot;.  Click &amp;quot;OK&amp;quot; and exit from the Windows Firewall window.&lt;br /&gt;
&lt;br /&gt;
If you have McAfee SecurityCenter, see the description below.&lt;br /&gt;
&lt;br /&gt;
Once all the security features are disabled, right click on &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt; and select &amp;quot;Run as administrator&amp;quot;.  This will pop up a window asking permission, select &amp;quot;Allow&amp;quot;.  Your OpenSim server should run in a DOS-like window and accept connections.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''McAfee Security'''''&lt;br /&gt;
&lt;br /&gt;
McAfee Security does not allow applications to listen on ports not explicitly specified.  You have two options: 1) disable firewall protection all together, 2) enable &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt; to be able to open ports.&lt;br /&gt;
&lt;br /&gt;
''Disable firewall''&lt;br /&gt;
&lt;br /&gt;
Open McAfee SecurityCenter.  Select &amp;quot;Internet &amp;amp; Network&amp;quot;.  In the lower left corner is a small link to &amp;quot;Configure...&amp;quot;.  Select this.  In the right side of the window, select the bar that says &amp;quot;Firewall protection is enabled&amp;quot;.  Here you can select &amp;quot;Off&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
''Enable &amp;lt;tt&amp;gt;OpenSim.exe&amp;lt;/tt&amp;gt; to open ports''&lt;br /&gt;
&lt;br /&gt;
Open McAfee SecurityCenter.  Select &amp;quot;Internet &amp;amp; Network&amp;quot;.  In the lower left corner is a small link to &amp;quot;Configure...&amp;quot;.  Select this.  In the right side of the window, select the bar that says &amp;quot;Firewall protection is enabled&amp;quot;.  Select the &amp;quot;Advanced...&amp;quot; button.  This will pop up a new window.&lt;br /&gt;
&lt;br /&gt;
In the new window, on the left side, select &amp;quot;Program Permissions.&amp;quot;  In the middle on the right side of the window, select the &amp;quot;Add Allowed Program&amp;quot; button.  Use the browser that pops up to find the OpenSim executable and select it.&lt;br /&gt;
&lt;br /&gt;
Finally, select &amp;quot;OK&amp;quot; and exit the McAfee SecurityCenter window.&lt;br /&gt;
&lt;br /&gt;
==Linux/Mac OS X/FreeBSD==&lt;br /&gt;
&lt;br /&gt;
Please note that the current (as of 2007-11-23) SVN will not work on 64bit linux systems when built. You will need to use the binary build further down the page.&lt;br /&gt;
[[Installing and running on x86-64]]&lt;br /&gt;
&lt;br /&gt;
===Building===&lt;br /&gt;
&lt;br /&gt;
Steps to get packages that are needed to compile the source.&lt;br /&gt;
&lt;br /&gt;
'''FreeBSD 6.2'''&lt;br /&gt;
 su&lt;br /&gt;
 cd /usr/ports/devel/subversion/ &amp;amp;&amp;amp; make install clean (you may also need to rebuild apr-svn if this step fails)&lt;br /&gt;
 cd /usr/ports/lang/mono/ &amp;amp;&amp;amp; make install clean&lt;br /&gt;
 cd /usr/ports/devel/nant/ &amp;amp;&amp;amp; make install clean&lt;br /&gt;
 cd /usr/ports/databases/sqlite3/ &amp;amp;&amp;amp; make install clean&lt;br /&gt;
 cd /usr/ports/x11-toolkits/libgdiplus/ &amp;amp;&amp;amp; make install clean&lt;br /&gt;
 cd /opensim/installation/directory/&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/trunk opensim&lt;br /&gt;
 cd opensim&lt;br /&gt;
 ./runprebuild.sh&lt;br /&gt;
 nant&lt;br /&gt;
&lt;br /&gt;
 Note: [http://opensimulator.org/wiki/OpenSim:FAQ#System.DllNotFoundException:_..2Flibopenjpeg-libsl-2.1.2.0.so|Follow the instructions on the FAQ to fix the]&lt;br /&gt;
 &amp;quot;System.DllNotFoundException: ./libopenjpeg-libsl-2.1.2.0.so&amp;quot; issue, but use &amp;quot;gmake&amp;quot; instead of &amp;quot;make&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For ODE Physics you must do the following:&lt;br /&gt;
 cd /usr/ports/graphics/libGL/ &amp;amp;&amp;amp; make install clean&lt;br /&gt;
 cd /usr/ports/graphics/libGLU/ &amp;amp;&amp;amp; make install clean&lt;br /&gt;
 cd /opensim/installation/directory/&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim-libs/trunk opensim-libs&lt;br /&gt;
 cd opensim-libs/unmanaged/OpenDynamicsEngine2/&lt;br /&gt;
 sh autogen.sh&lt;br /&gt;
 ./configure --enable-shared --enable-release --disable-demos&lt;br /&gt;
 make&lt;br /&gt;
 mv ./ode/src/libode.so /opensim/installation/directory/opensim/bin/&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu 7.10'''&lt;br /&gt;
 sudo aptitude install subversion nant mono mono-gmcs libmono-microsoft8.0-cil libmono-system-runtime2.0-cil&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/trunk opensim&lt;br /&gt;
 cd opensim&lt;br /&gt;
 ./runprebuild.sh&lt;br /&gt;
 nant&lt;br /&gt;
&lt;br /&gt;
* The above steps are  for just running OpenSim. If you want to use MySQL either install during the installation process or install later. For development you'll need to install gcc, gc++, and whatever other modules are needed. &lt;br /&gt;
* The  above steps work on running OpenSim 0.4 on Ubuntu Server 7.10. I  did a new install and everything worked fine for  me. During the installation process I had Ubuntu install MySQL. --[[User:Mokele|Mokele]] 11:41, 9 February 2008 (PST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ubuntu 8.04'''&lt;br /&gt;
&lt;br /&gt;
Basically the same instructions as in Ubuntu 7.10.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install subversion nant mono-gmcs libmono-microsoft8.0-cil libmono-system-runtime2.0-cil libgdiplus&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/trunk opensim&lt;br /&gt;
 cd opensim&lt;br /&gt;
 ./runprebuild.sh&lt;br /&gt;
 nant&lt;br /&gt;
&lt;br /&gt;
* If you get an exception &amp;quot;System.NotSupportedException: CodePage 1252 not supported&amp;quot; running OpenSim with MySql, install also libmono-i18n2.0-cil.&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install libmono-i18n2.0-cil&lt;br /&gt;
&lt;br /&gt;
* The  above steps work on running OpenSim revision 4612 on Ubuntu Server 8.04.&lt;br /&gt;
--[[User:Trains|Trains]] 10 May 2008&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''openSUSE 10.3'''&lt;br /&gt;
&lt;br /&gt;
Install an openSUSE 10.3 with its default options, add the online repositories&lt;br /&gt;
when finished installing do an online update with all the latest packages.&lt;br /&gt;
&lt;br /&gt;
In yast install these packages, for running Opensim in standalone mode.&lt;br /&gt;
 subversion (1.4.4)&lt;br /&gt;
 nant (0.85)&lt;br /&gt;
 mono-jscript&lt;br /&gt;
 - check that mono-core is installed&lt;br /&gt;
&lt;br /&gt;
* optional mysql - for Opensim running in Grid mode:&lt;br /&gt;
Install these mysql packages via yast&lt;br /&gt;
  mysql&lt;br /&gt;
  mysql-client&lt;br /&gt;
  mysql-administrator&lt;br /&gt;
  mysql-gui-tools&lt;br /&gt;
  mysql-query-browser&lt;br /&gt;
&lt;br /&gt;
Before building create the mysql database.&lt;br /&gt;
 /etc/init.d/mysql start&lt;br /&gt;
 mysql -u root -p -h localhost&lt;br /&gt;
 (when asked for password just hit enter)&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; create database opensim;&lt;br /&gt;
 mysql&amp;gt; quit&lt;br /&gt;
&lt;br /&gt;
set the configuration in bin/mysql_connection.ini&lt;br /&gt;
&lt;br /&gt;
Build after installation of above in bash terminal.&lt;br /&gt;
&lt;br /&gt;
 su -&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/trunk opensim&lt;br /&gt;
 cd opensim&lt;br /&gt;
 ./runprebuild.sh&lt;br /&gt;
 nant&lt;br /&gt;
&lt;br /&gt;
After this you should be able to continue on starting the diffrent Servers, look in the mysql-config section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mac OS X 10.5/10.4'''&lt;br /&gt;
* OpenSim is now working on PowerPC Macs! Thanks to DrScofield and those who helped him. Current nightly builds for PowerPC are not working, not sure about Intel so use the 0.5 Build. OpenSim works on Intel Macs. I'm testing on PowerBook G4. Tested these step on 10.5, but not 10.4 but should work --[[User:Mokele|Mokele]] 22:36, 14 February 2008 (PST)&lt;br /&gt;
* Install XCode Developers Tools from DVD/CD Installation Disk or download  from http://developer.apple.com/. You have to create an Apple account to access the downloads if you don't have an Apple account.&lt;br /&gt;
* Install X11 for 10.4 from the Optional Install from the DVD/CD Installation Disk. X11 for 10.5 is installed by default.&lt;br /&gt;
* Install Mono 1.2.5 from http://ftp.novell.com/pub/mono/archive/1.2.5/macos-10-universal/5/MonoFramework-1.2.5_5.macos10.novell.universal.dmg and in Terminal or X11 edit the .profile file  and add the following line:&lt;br /&gt;
 export PKG_CONFIG_PATH=&amp;quot;/Library/Frameworks/Mono.framework/Versions/1.2.5/lib/pkgconfig/:${PKG_CONFIG_PATH}&amp;quot;&lt;br /&gt;
* Compile OpenSim&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim/tags/0.5.0-release opensim&lt;br /&gt;
 cd opensim &lt;br /&gt;
 ./runprebuild.sh&lt;br /&gt;
 nant&lt;br /&gt;
&lt;br /&gt;
* Download and Compile libopenjpeg-libsl-2.1.2.0.dylib and libsecondlife.dll&lt;br /&gt;
* libopenjpeg-libsl-2.1.2.0.dylib:&lt;br /&gt;
 svn co http://opensimulator.org/svn/opensim-libs/libsl1550 opensim-libs&lt;br /&gt;
 cd opensim-libs/openjpeg-libsl&lt;br /&gt;
 make -f Makefile.osx&lt;br /&gt;
 cp libopenjpeg-libsl-2.1.2.0.dylib ../../opensim/bin&lt;br /&gt;
* Note: The Makefile that creates the libopenjpeg-libsl-2.1.2.0.so does not compile on PowerPC, not sure about Intel. Looks like a gcc issue with compile options.&lt;br /&gt;
&lt;br /&gt;
* libsecondlife.dll: (for PowerPC Only, see  details on this step [http://xyzzyxyzzy.net/2008/02/12/installing-opensim-on-powerpcor-of-eggs-and-virtual-worlds installing OpenSim on PowerPC…or: of eggs and virtual worlds])&lt;br /&gt;
 cd .. (back into opensim-libs)&lt;br /&gt;
 nant&lt;br /&gt;
 cp libsecondlife.dll ../../opensim/bin&lt;br /&gt;
&lt;br /&gt;
* Edit the libsecondlife.dll.config (PowerPC Only). Remove the cpu=&amp;quot;x86&amp;quot; tag in the last dllmap line.&lt;br /&gt;
&lt;br /&gt;
'''RedHat'''&lt;br /&gt;
 sudo vi /etc/yum.repos.d/mono.repo&lt;br /&gt;
&lt;br /&gt;
  [mono]&lt;br /&gt;
  name=Mono for rhel-4-i386 (stable)&lt;br /&gt;
  baseurl=http://ftp.novell.com/pub/mono/download-stable/rhel-4-i386/&lt;br /&gt;
  enabled=1&lt;br /&gt;
  gpgcheck=0&lt;br /&gt;
&lt;br /&gt;
 sudo yum install mono-complete monodoc-core nant&lt;br /&gt;
 svn co svn co http://opensimulator.org/svn/opensim/trunk opensim&lt;br /&gt;
 cd opensim&lt;br /&gt;
 ./runprebuild.sh&lt;br /&gt;
 nant&lt;br /&gt;
&lt;br /&gt;
'''Fedora 5'''&lt;br /&gt;
* I needed to build latest mono and nant from sources to build OpenSim successfully, the ones available in yum repository didn't work so I had to uninstall and build and configure the packages.&lt;br /&gt;
&lt;br /&gt;
For detailed instructions go [http://ruakuu.blogspot.com/2008/06/installing-and-configuring-opensim-on.html here]&lt;br /&gt;
&lt;br /&gt;
=== Physics ===&lt;br /&gt;
If you want to implement collision-based physics, OpenDynamicsEngine (ODE) is the furthest along at the moment (9/07).  It is not fully supported, but is starting to work somewhat reliably using a small number of regions per sim.&lt;br /&gt;
&lt;br /&gt;
==== Open Dynamics Engine (ODE) ====&lt;br /&gt;
As installed from svn, ODE does not work on all platforms.  If you get an ODE-related crash, and/or a &amp;lt;i&amp;gt;libode.so not found&amp;lt;/i&amp;gt; type of error, you will need to build libode from source.&lt;br /&gt;
&lt;br /&gt;
Remove &amp;lt;tt&amp;gt;libode.so&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;./bin&amp;lt;/tt&amp;gt; folder.  (Note that subsequent svn updates may replace it again; best fix is to copy your built &amp;lt;tt&amp;gt;libode.so&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt;).  Do NOT remove &amp;lt;tt&amp;gt;ode.net.dll&amp;lt;/tt&amp;gt;!  Download the latest source packages from http://www.ode.org/.  When compiling, make sure to use the following configure options:&lt;br /&gt;
&lt;br /&gt;
 --with-trimesh=gimpact &lt;br /&gt;
 --enable-shared&lt;br /&gt;
&lt;br /&gt;
Make sure the configure script confirms these choices, and always compile with single precision (I believe that's the default).  Try &amp;lt;code&amp;gt; make -k &amp;lt;/code&amp;gt; if you get errors relating to drawstuff, test*, or openGL.  &amp;lt;code&amp;gt; make install &amp;lt;/code&amp;gt; should put &amp;lt;tt&amp;gt;libode.so&amp;lt;/tt&amp;gt; in the proper place (usually &amp;lt;tt&amp;gt;/usr/local/lib&amp;lt;/tt&amp;gt;), and it should be seen by opensim (&amp;lt;tt&amp;gt;ode.net.dll&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
===Running===&lt;br /&gt;
Recent versions of OpenSim come without an &amp;lt;tt&amp;gt;OpenSim.ini&amp;lt;/tt&amp;gt; file. Copy the &amp;lt;tt&amp;gt;OpenSim.ini.example&amp;lt;/tt&amp;gt; file to &amp;lt;tt&amp;gt;OpenSim.ini&amp;lt;/tt&amp;gt; before making any changes.&lt;br /&gt;
 cd bin&lt;br /&gt;
 mono OpenSim.exe&lt;br /&gt;
&lt;br /&gt;
* To invoke ODE, add the option:&lt;br /&gt;
 -physics=OpenDynamicsEngine&lt;br /&gt;
to the &amp;lt;tt&amp;gt;mono OpenSim.exe&amp;lt;/tt&amp;gt; line&lt;br /&gt;
&lt;br /&gt;
or add &amp;lt;code&amp;gt;  physics = OpenDynamicsEngine &amp;lt;/code&amp;gt; to the [Startup] section of &amp;lt;tt&amp;gt;OpenSim.ini&amp;lt;/tt&amp;gt;.  Same deal for other physics engines, when available.&lt;br /&gt;
&lt;br /&gt;
On mono 1.2.6, some distributions may see&lt;br /&gt;
 Unhandled Exception: System.NotSupportedException: CodePage 1252 not supported&lt;br /&gt;
on startup when using mysql.  This can be resolved by installing the package libmono-i18n2.0-cil (see http://bugs.mysql.com/bug.php?id=33938).&lt;br /&gt;
&lt;br /&gt;
===Dependencies===&lt;br /&gt;
The following packages and their dependencies are required to run OpenSim on a default Debian 4 netinstall:&lt;br /&gt;
* mono&lt;br /&gt;
* libmono-corlib2.0-cil&lt;br /&gt;
* libmono-sqlite2.0-cil&lt;br /&gt;
* libmono-system-web2.0-cil&lt;br /&gt;
* libmono-microsoft8.0-cil&lt;br /&gt;
* libmono-system-runtime2.0-cil&lt;br /&gt;
[[Category:Users]]&lt;/div&gt;</summary>
		<author><name>Sacha Magne</name></author>	</entry>

	</feed>