Orbis Engine - a Dart-first 3D game engine: Flutter for game logic and UI, a C++ ECS core, and Filament for PBR rendering.
Dart
3
532 commits
updated Sep 20, 2026
A 3D game engine you write in Dart
Game logic and interface in Flutter. An archetype entity-component core in C++. Google’s Filament doing the rendering. The viewport is a widget, so the menu over it is an ordinary Column.
Website · Docs · Install · Gallery · Examples · Showcases · Discord
OrblitView sits in the same widget tree as everything else, takes part in the same layout, and is composited by the same compositor. On Apple platforms the renderer draws into an IOSurface-backed buffer Flutter adopts as it is — no readback, no copy through the CPU. A panel can overlap the viewport, and the inventory screen has a widget test..oscene scene document with migrations and diffs, KTX2 compressed textures, HDR and EXR environments, and .ply, .spz and .osplat splat captures.Every one of these is a page in the gallery app, running on a real machine. The showcases page carries the lines that do it, lifted from each example's own source.
| Showcase | What it is |
|---|---|
| Blocks | A landscape of sixty thousand cubes you can walk around and dig into, generated and sent once. |
| Runner | A runner you can play — dodge, jump, slide and pick up coins — with an autopilot that plays it well enough to prove the game is fair. |
| Bistro exterior | Somebody else's street, lit by this engine. A hundred lights at night. |
| Bistro interior | The room, and the one place the absence of bounced light shows. |
To open the gallery on one:
ORBLIT_EXAMPLE='runner' flutter run -d macos
Running the examples covers getting there from a clean checkout.
The packages are not on pub.dev yet, so they resolve from git:
dependencies:
flutter:
sdk: flutter
# Vectors and matrices. Orblit takes and returns these types rather than
# defining its own, so it is a direct dependency of yours too.
vector_math: ^2.1.4
orblit_filament:
git:
url: https://github.com/ChxisB/orblit.git
path: packages/orblit_filament
The renderer's native side needs one setup step per platform, which downloads Google's Filament SDK and compiles the materials. Installing has what each machine needs and which machine can build for what; your first scene is the shortest path to a frame.
./tool/check.sh # analyze and test everything that needs no window
| Package | What it is |
|---|---|
orblit_core | Archetype entity-component store in C++ behind a C ABI, with a transform hierarchy. Component data reaches Dart as views, not copies. |
orblit_codegen | Turns annotated component classes into registration and a manifest other front ends read without compiling this package. |
orblit_filament | Filament rendering composited by Flutter's texture registry. |
Those are the three the rest is built on. The other eighteen — geometry, rigging, agents, cameras, lighting, sprites, scene files, UI, weather and the rest — are listed in the package reference.
| Repository | What it is |
|---|---|
orblit-net | Multiplayer. Replicates component columns, with ownership rules and interpolation. |
orblit-script | TypeScript scripting on QuickJS, as a peer of Dart over the same core. |
orblit-examples | Worked examples of what the engine does, and how. |
Design notes live outside these repositories, as Claude artifacts, so a checkout carries what it needs to build and run and nothing else.
Pre-alpha. Nothing here is stable.
The documentation at orblitengine.com is also
served as Markdown for language models, starting from
llms.txt. For Claude Code, this
repository is a plugin marketplace holding one skill,
skills/orblit, which carries the engine's model and its
traps, and has the assistant check names against the source before it writes
them. In Claude Code:
/plugin marketplace add ChxisB/orblit
/plugin install orblit@orblit
Working with AI assistants has the rest.
It is early enough that what you try first is likely to be the thing nobody has tried yet. Both of those are useful. The Discord is where that conversation happens, and CONTRIBUTING has what to run before a pull request.
MPL-2.0, © 2026 Chris Beckett — the Mozilla Public License, and open source. Fork it, change it, and ship games made with it, commercial ones included: your game is your own and the licence does not reach into it. What it asks is that changes to Orblit's own files ship under the same licence, with source available to whoever you hand the result to, so engine work stays in the open.
Builds link Filament, which carries its own Apache 2.0 licence, and a prebuilt Filament.xcframework is committed here — so a full copy of that licence travels with it. See LICENSE and NOTICE.
532 commits
Dart
41.3%
C
31.8%
C++
20.8%
Shell
2.3%
Orbis Engine - a Dart-first 3D game engine: Flutter for game logic and UI, a C++ ECS core, and Filament for PBR rendering.
Dart
3
532 commits
updated Sep 20, 2026
A 3D game engine you write in Dart
Game logic and interface in Flutter. An archetype entity-component core in C++. Google’s Filament doing the rendering. The viewport is a widget, so the menu over it is an ordinary Column.
Website · Docs · Install · Gallery · Examples · Showcases · Discord
OrblitView sits in the same widget tree as everything else, takes part in the same layout, and is composited by the same compositor. On Apple platforms the renderer draws into an IOSurface-backed buffer Flutter adopts as it is — no readback, no copy through the CPU. A panel can overlap the viewport, and the inventory screen has a widget test..oscene scene document with migrations and diffs, KTX2 compressed textures, HDR and EXR environments, and .ply, .spz and .osplat splat captures.Every one of these is a page in the gallery app, running on a real machine. The showcases page carries the lines that do it, lifted from each example's own source.
| Showcase | What it is |
|---|---|
| Blocks | A landscape of sixty thousand cubes you can walk around and dig into, generated and sent once. |
| Runner | A runner you can play — dodge, jump, slide and pick up coins — with an autopilot that plays it well enough to prove the game is fair. |
| Bistro exterior | Somebody else's street, lit by this engine. A hundred lights at night. |
| Bistro interior | The room, and the one place the absence of bounced light shows. |
To open the gallery on one:
ORBLIT_EXAMPLE='runner' flutter run -d macos
Running the examples covers getting there from a clean checkout.
The packages are not on pub.dev yet, so they resolve from git:
dependencies:
flutter:
sdk: flutter
# Vectors and matrices. Orblit takes and returns these types rather than
# defining its own, so it is a direct dependency of yours too.
vector_math: ^2.1.4
orblit_filament:
git:
url: https://github.com/ChxisB/orblit.git
path: packages/orblit_filament
The renderer's native side needs one setup step per platform, which downloads Google's Filament SDK and compiles the materials. Installing has what each machine needs and which machine can build for what; your first scene is the shortest path to a frame.
./tool/check.sh # analyze and test everything that needs no window
| Package | What it is |
|---|---|
orblit_core | Archetype entity-component store in C++ behind a C ABI, with a transform hierarchy. Component data reaches Dart as views, not copies. |
orblit_codegen | Turns annotated component classes into registration and a manifest other front ends read without compiling this package. |
orblit_filament | Filament rendering composited by Flutter's texture registry. |
Those are the three the rest is built on. The other eighteen — geometry, rigging, agents, cameras, lighting, sprites, scene files, UI, weather and the rest — are listed in the package reference.
| Repository | What it is |
|---|---|
orblit-net | Multiplayer. Replicates component columns, with ownership rules and interpolation. |
orblit-script | TypeScript scripting on QuickJS, as a peer of Dart over the same core. |
orblit-examples | Worked examples of what the engine does, and how. |
Design notes live outside these repositories, as Claude artifacts, so a checkout carries what it needs to build and run and nothing else.
Pre-alpha. Nothing here is stable.
The documentation at orblitengine.com is also
served as Markdown for language models, starting from
llms.txt. For Claude Code, this
repository is a plugin marketplace holding one skill,
skills/orblit, which carries the engine's model and its
traps, and has the assistant check names against the source before it writes
them. In Claude Code:
/plugin marketplace add ChxisB/orblit
/plugin install orblit@orblit
Working with AI assistants has the rest.
It is early enough that what you try first is likely to be the thing nobody has tried yet. Both of those are useful. The Discord is where that conversation happens, and CONTRIBUTING has what to run before a pull request.
MPL-2.0, © 2026 Chris Beckett — the Mozilla Public License, and open source. Fork it, change it, and ship games made with it, commercial ones included: your game is your own and the licence does not reach into it. What it asks is that changes to Orblit's own files ship under the same licence, with source available to whoever you hand the result to, so engine work stays in the open.
Builds link Filament, which carries its own Apache 2.0 licence, and a prebuilt Filament.xcframework is committed here — so a full copy of that licence travels with it. See LICENSE and NOTICE.
532 commits
Dart
41.3%
C
31.8%
C++
20.8%
Shell
2.3%