Febris delivers training to headsets and desktops, and records what actually happened during the session as xAPI. One node owns everything it needs: identity and accounts, cohorts, curricula and modules, a statement store, usage analytics, and the artifact store that distributes the client software to devices. There is no Febris account, no licence key, and no service the maintainer operates.
Three pieces. A server you run, clients that deliver the training, and an SDK for the people building the simulations.
An ASP.NET Core server you host. It holds your accounts and curricula, ingests xAPI statements from devices, and hands out the client software those devices run.
A Windows suite for desktop simulation, and an Android pair where a Mobile Server distributes modules to headsets over a direct WiFi link and relays their records back.
Drop it into your own simulation to emit conformant statements. C# and C++ produce byte-identical output at the same version, so a mixed estate stays consistent.
All of this is code in the repository rather than a roadmap. Where something is a seam rather than a finished feature, the project says so in its own README.
A Docker Compose stack: Postgres 16, Valkey 8, the API, the portal, and a Caddy reverse proxy that issues its own certificate for local use.
git clone https://github.com/Febris-XR/Febris_Node.git febris-node && cd febris-node ./selfhost/generate-env.sh docker compose up -d --build
The generated environment file prints your first login. Everything else, including backups, upgrades, TLS and going to production, is in SELF_HOSTING.md.
| Component | Platform | Status |
|---|---|---|
| PC Client Suite | Windows 10 or later, x64 | Published |
| Mobile Server | Android 10 or later, sideloaded | Published |
| Mobile Companion | Android 8 or later, installed onto the headset | Published |
| Simulation SDK for C# | .NET Standard 2.0 | Published |
| Simulation SDK for C++ | Windows x64, MSVC v143, C++17 | Published |
Guides for each piece, carried over from the node's own documentation. Where a guide is unwritten or known to be incomplete, it says so on the page rather than pretending otherwise.
The PC suite runs the simulation on a Windows machine. You install it once, register that PC on your node's Hardware page, and paste in the credential the node issues. From then on the Launcher pulls the modules the learner is assigned, starts the session, and the Statement Manager sends the resulting xAPI records back to your node on its own.
The Mobile Server is the Android app that manages your headsets. You register it the same way, then use it to discover a headset over Bluetooth, pair with it by confirming a six digit code shown on both screens, and install the Mobile Companion onto it. From then on it distributes module archives over a direct WiFi link and relays the resulting records back to your node, so the headsets never need your network credentials.
Registering a PC with your node, entering the credential it issues, and pointing the launcher at your node.
Registering the server, pairing headsets over Bluetooth, and adding or removing devices.
The headset app: how it gets installed, what it records, and how records reach your node.
Integrating the SDK into a Unity or C# simulation: initialisation, timekeeping, stage restarts, scoring and pass conditions.
Consuming the native SDK through its flat C ABI: installing it, the calling conventions, and a minimal session.
Every version, size and checksum below is read straight from the distribution feed, so this page describes exactly what the feed serves and nothing else. 5 of 5 components are published today, and the rest say so plainly rather than being hidden.
Windows 10 or later, x64
The Windows desktop suite: launcher, module manager, screen recorder, statement manager and progress bar. Runs the simulation session on the learner's machine and reports back to your node.
Android 10 or later, sideloaded
The Android MDM server. Pairs with headsets over WiFi Direct, distributes module archives, and relays learning records back to your node.
Android 8 or later, installed onto the headset
The headset companion. Captures the session on-device and hands statements to the Mobile Server over a direct peer link.
Not a browser download. The Companion is delivered to the headset by your Mobile Server over a direct link, so it installs itself once the Server is paired and pointed at your node.
.NET Standard 2.0
Author conformant xAPI statements from a .NET simulation. Byte-identical output to the C++ SDK at the same minor version.
Add it to a project
dotnet add package Febris.Simulation.XApiSdk --version 0.1.0
Windows x64, MSVC v143, C++17
The native twin of the C# SDK, with a flat C ABI for engines and hosts that cannot consume managed code. Verified byte-identical on every release.
Register the vcpkg registry
vcpkg-configuration.json -> registries -> https://github.com/Febris-XR/Febris_VcpkgRegistry
Then install
vcpkg install febris-simulation-sdk