OpenSimulator Internals/Code Map/OpenSim
OpenSimulator Internals/Code Map/OpenSim
Overview
OpenSim.exe is the region simulator process. It loads configuration, initialises the physics and script engines, loads region modules, connects to ROBUST services, and runs one or more regions.
In standalone mode, service implementations run in-process. In grid mode, service connectors make HTTP calls to ROBUST. The same code runs both ways -- only the config differs.
Source repository: https://github.com/opensim/opensim
Entry Point
OpenSim/Region/Application/OpenSim.cs -- Main()
-- to be documented --
Config Loading
OpenSim/Region/Application/OpenSimBase.cs
Same layered config mechanism as ROBUST. Reads OpenSim.ini, then config-include/ files. Architecture is selected via Include-Architecture in OpenSim.ini -- this determines whether the sim runs standalone or connects to a grid.
-- to be documented --
HTTP Server
One HTTP server per simulator instance, default port 9000. Each additional region adds a port (9001, 9002, etc.).
-- to be documented --
Region Module Loading
Region modules are plugins loaded at startup. They provide services to the scene -- asset access, inventory, physics, scripting, estate management, and more.
-- to be documented --
Service Connector Setup
In grid mode, outbound service connectors are loaded as region modules from config-include/GridHypergrid.ini. Each connector makes HTTP calls to ROBUST for grid data.
OpenSim/Region/CoreModules/ServiceConnectorsOut/
See OpenSimulator Internals/Connector Architecture for the full connector pattern.
-- to be documented --
Scene Initialisation
OpenSim/Region/Framework/Scenes/Scene.cs
One Scene instance per region. The Scene holds all in-world state: objects, avatars, physics, scripts, terrain, parcels, and references to all service connectors.
-- to be documented --
Main Loop
-- to be documented --
Shutdown
-- to be documented --