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.
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
Build. In the folder crates/omnisim-server with cargo build; stable Rust is enough.
Test.cargo test runs the test functions above; the library tests read the original's inventory folder.
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.
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.