Jump to content

Main Page: Difference between revisions

From Open Simulator Technical Help
Jwbshaw (talk | contribs)
No edit summary
Jwbshaw (talk | contribs)
missing some top level stuff
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
CopyPublish= OpenSimulator Internals =
= OpenSimulator Internals =
 
This wiki documents the internal architecture of OpenSimulator for developers and contributors. It covers the database schema, service architecture, connector design, and code structure. Written from code and verified against developer discussion -- where the wiki and the code disagree, the code takes priority.
This wiki documents the internal architecture of OpenSimulator for developers and contributors. It covers the database schema, service architecture, connector design, and code structure. Written from code and verified against developer discussion -- where the wiki and the code disagree, the code takes priority.
Maintained by Jagga Meredith. Contributions welcome.
Maintained by Jagga Meredith. Contributions welcome.
----
== Source Repository ==
https://github.com/opensim/opensim
Only the '''master''' branch is active. All other branches are dead.
----


== Overview ==
== Overview ==
OpenSimulator has two main components:
OpenSimulator has two main components:


'''ROBUST.exe''' -- handles grid-wide services: user accounts, inventory, assets, presence, and region registration. Multiple simulators connect to a single ROBUST instance.
'''ROBUST.exe''' -- handles grid-wide services: user accounts, inventory, assets, presence, and region registration. Multiple simulators connect to a single ROBUST instance.
'''OpenSim.exe''' -- runs one or more regions. Handles objects, avatars, physics, scripting, and terrain. In standalone mode both processes are combined into OpenSim.exe.
'''OpenSim.exe''' -- runs one or more regions. Handles objects, avatars, physics, scripting, and terrain. In standalone mode both processes are combined into OpenSim.exe.


The database layer is split to match: ROBUST owns the grid database, each simulator owns its own region database. Both live in the same database server instance as separate databases.
The database layer is split to match: ROBUST owns the grid database, each simulator owns its own region database. Both live in the same database server instance as separate databases.
In standalone mode the connector calls the service directly in-process. In grid mode it makes an HTTP call to ROBUST. Same interface either way.
In standalone mode the connector calls the service directly in-process. In grid mode it makes an HTTP call to ROBUST. Same interface either way.
----


== Contents ==
== Contents ==


[[OpenSimulator Internals/Architecture Overview|Architecture Overview]]
* [[OpenSimulator Internals/Architecture Overview]]
[[OpenSimulator Internals/Reading the Code|Reading the Code -- What to Skip]]
* [[OpenSimulator Internals/Reading the Code]]
[[OpenSimulator Internals/ROBUST Services|ROBUST Services]]
* [[OpenSimulator Internals/Package Overview]]
[[OpenSimulator Internals/Data Dictionaries|Data Dictionaries]]
* [[OpenSimulator Internals/ROBUST Services]]
[[OpenSimulator Internals/Connector Architecture|Connector Architecture]]
* [[OpenSimulator Internals/Simulator Services]]
[[OpenSimulator Internals/GridService|GridService]]
* [[OpenSimulator Internals/Connector Architecture]]
[[OpenSimulator Internals/AuthorizationService|AuthorizationService]]
* [[OpenSimulator Internals/Databases]]
[[OpenSimulator Internals/GroupsService|GroupsService]]
* [[OpenSimulator Internals/Data Dictionaries]]
[[OpenSimulator Internals/Code Map|Code Map]]
* [[OpenSimulator Internals/Useful Queries]]
* [[OpenSimulator Internals/Code Map]]
* [[OpenSimulator Internals/Walkthroughs]]


----


== Status ==
== Status ==
This document is a work in progress developed from code review and developer meeting notes. Where the existing wiki disagrees with the source code, the source code takes priority. Discrepancies are noted.
This document is a work in progress developed from code review and developer meeting notes. Where the existing wiki disagrees with the source code, the source code takes priority. Discrepancies are noted.
Contributors: Jagga Meredith
Contributors: Jagga Meredith

Latest revision as of 21:23, 8 July 2026

OpenSimulator Internals

[edit]

This wiki documents the internal architecture of OpenSimulator for developers and contributors. It covers the database schema, service architecture, connector design, and code structure. Written from code and verified against developer discussion -- where the wiki and the code disagree, the code takes priority.

Maintained by Jagga Meredith. Contributions welcome.


Source Repository

[edit]
https://github.com/opensim/opensim

Only the master branch is active. All other branches are dead.


Overview

[edit]

OpenSimulator has two main components:

ROBUST.exe -- handles grid-wide services: user accounts, inventory, assets, presence, and region registration. Multiple simulators connect to a single ROBUST instance.

OpenSim.exe -- runs one or more regions. Handles objects, avatars, physics, scripting, and terrain. In standalone mode both processes are combined into OpenSim.exe.

The database layer is split to match: ROBUST owns the grid database, each simulator owns its own region database. Both live in the same database server instance as separate databases.

In standalone mode the connector calls the service directly in-process. In grid mode it makes an HTTP call to ROBUST. Same interface either way.


Contents

[edit]

Status

[edit]

This document is a work in progress developed from code review and developer meeting notes. Where the existing wiki disagrees with the source code, the source code takes priority. Discrepancies are noted.

Contributors: Jagga Meredith