glgrid
Reference · omnisim against OpenSim

What is covered, what is still missing

omnisim is the newly written grid server beneath glgrid. This page shows, item by item, what it covers of the OpenSim original today and what is still open. It is generated from the measurement data and not maintained by hand.

Loading measurement data …
Automatically from the ledgers

Recently evidenced

Per day, the functions whose behaviour was newly evidenced against the original. The list is built on every measurement run from the history of both ledgers, every ten minutes.

The living measurement

Behaviour per function, measured against the original

Since 15 October 2026 every function of the original is put through a paired probe against omnisim, one by one; since 1 November also the permission check of every extension function. The curve shows the counter per day, from the workshop ledgers.

By area

Behaviour per function: where the work is

What is happening now

Workshop: the work after the ceiling

The ceiling has been reached. Since then the backlog outside the ceiling is worked off tranche by tranche, partly in a separate cloud session. A delivery is only taken over when an independent counter-probe shows a deviation before and equality with the original after.

    More: script sandbox, source code, method, achieved, glossary
    Scripts under control

    Script sandbox: ten items, against a target list

    What a script in omnisim may do at most: time, memory, stack, queue, console. The target list was built on 2 November 2026; every item carries its status from the workshop’s target document. What is stricter than the original is listed under “Deliberately different”.

    What is on the forge

    The source code: glgrid/omnisim

    The server is published as a curated export on the glgrid forge. Each export is a cleaned cut from the workshop: without the old history, internal addresses and names replaced, and behind a hard gate that aborts the export on any finding. The figures in this section are read by the page directly from the repository, file by file; they are not estimates.

    Areas

    Verification tools and exports
    Check it yourself · deliberately different from the original

    Check it yourself

    1. Build. In the folder crates/omnisim-server with cargo build; stable Rust is enough.
    2. Test. cargo test runs the test functions above; the library tests read the original's inventory folder.
    3. Put the original alongside. compat/cloud_setup.sh prepares a fresh machine, builds OpenSim at the reference state with the oracle patches and builds omnisim.
    4. Run paired probes. The same action against both servers, replies compared. The repository holds a selection of the probes; the full set will follow.

    Deliberately different from the original

    • Remote administration (RemoteAdmin) is off as long as no password is set. There is no built-in default password.
    • A default account is created only if the operator explicitly sets it up.
    • Hypergrid groups can be granted across grids; the original has no path for this.
    • Own physics instead of ubODE: movement of avatars and objects is close to the original, but not identical.
    • Since 2 November 2026 the script runtime is stricter than the original: every event gets a time budget and runs in time slices; stack, memory and event queue are capped per script. A script that exceeds its budget is halted and its owner is notified; the original has no such budget.
    • Error texts of refused OSSL calls can be delivered to the owner only, by switch. Parcel owner and parcel group can be enabled as roles as in the original's configuration; delays and the 10-metre limit of the script functions are scalable.
    • The console shows runs, computing time and budget hits per script and can halt and resume individual scripts. The script runtime has no system interface (WASI); a script reaches only the script functions. The server console is never reachable from scripts.
    • Images for dynamic textures from the net are fetched in the background and capped in size (default 8 MiB); the original loads the image without a size limit and only afterwards scales it down to at most 1024×1024 pixels. The address filter for outgoing requests applies as in the original.

    Source: the repository README. Licence MIT, third-party notices in NOTICE. omnisim is not a project of the OpenSimulator developers.

    How it is measured

    Three questions, three different answers

    1. Is every item present?

    Every message, every field, every script function and every interface of the original is an item. An item counts as covered when omnisim reads, sends or provides it. That does not yet say it behaves the same. The first tile above answers this question.

    2. Does it behave the same?

    For that there are paired probes: the same action on the original and on omnisim, reply against reply. Today individual behaviour axes are proven this way (below). Since 15 October a counter per function runs as well (proof per function, below). Since 1 November the permission check is added for the extension functions: whether a call without release or without a role is denied the same way on both sides (permission check per function, below). Only when it covers every function is equal behaviour shown for every function.

    3. Does it work day to day?

    Use decides that: those who live, build and travel here find what no count sees. The residents make that judgement, not the measurement.

    Completed, with date

    Achieved: parity and the stock outside the ceiling

    The first question, whether every item of the original is present, has been answered since 23 October 2026; the stock outside the ceiling is settled except for single items. These numbers remain checkable here, but they no longer move.

    Show axes, coverage over time and paired-probe axes

    Since June 2026

    Coverage over time

    The last measurement run of each day: the target of all axes and the covered items; from 8 October also the items built outside the ceiling (state of the list at the end of the day). The target grows when new axes are added or enumerated more precisely.

    Item by item

    The axes of the measurement

    Each row is an axis of the original. Click a row to open the list of its items with status. Or search for a name directly.

    Axis Target Covered Outside the ceiling Share

    Second question

    Behaviour, checked against the original

    Terms

    Glossary

    Item
    A single named unit of the original: a field, a message, a function, a constant, an interface method.
    Target
    All items of an axis, generated from the original's source code, not written down by hand.
    Covered
    omnisim reads, sends or provides the item. Present does not yet mean equal in behaviour.
    Ceiling
    The items omnisim can actually reach. What lies outside is either internal to the original only, deliberately solved differently, or without a counterpart in the original itself. Each of these items is tracked individually and gets a status.
    Outside the ceiling
    built behind a switch, off by default so the original behaviour remains · to build decided, not yet implemented · unchecked not yet assessed · rejected not built, with a stated reason.
    Paired probe
    The same action on the original and on omnisim, the replies are compared. Only this proves equal behaviour.
    Reference
    A pinned state of the OpenSim source code against which measurement is done. The distance to the current original is tracked.
    Forge
    The place where the source code lives (glgrid/omnisim). Private, access for invited operators.
    Export
    A cleaned cut from the workshop that goes onto the forge. The workshop may be a few commits ahead.
    Oracle patch
    A small, openly declared fix to the original without which a paired probe could not run there.
    Permission check
    In the original every extension function (os*) has a threat level and a release per function. The check counts as proven only when three paths match the original: allowed, denied (without release) and roles (owner, estate manager, parcel).
    Time budget
    The computing time a script gets per event. If it exceeds it, the script is halted and the owner notified. A rule of omnisim; the original does not have it.