Flutter-native 3D engine

Flutter, meet your
third dimension.

Glint is an open 3D engine for Flutter. Build games, interactive products, immersive worlds, and anything else that belongs in three dimensions—using Dart.

flutter pub add glint_engine
A real scene, rendered live
GLINT / LIVE SCENE loading
IMPORTED / TEXTURED / LITGame character
DRAG TO ORBIT · SCROLL TO ZOOM
Drag to look around · choose an object
Built on flutter_gpuPure Dart runtimev0.1 on pub.dev · iOS · Android · macOS

Why Glint

Flutter already makes the whole screen yours. Glint makes the world behind it yours too.

Not a model viewer or a thin wrapper. A scene runtime, renderer, asset pipeline, interaction system, and game loop designed to feel at home in Flutter.

What you can build

One engine.
Many possible worlds.

Glint is being built as a general 3D layer for Flutter—not around one narrow demo.

01

Playable worlds

Build real-time 3D games with frame loops, moving instances, cameras, collisions, touch input, and a Flutter HUD.

Games · simulations · play
02

Interactive products

Create configurators, spatial catalogs, viewers, digital twins, and product stories that live inside a normal app.

Commerce · industry · stories
03

Immersive scenes

Shape explorable spaces, learning tools, data environments, and experiences that need more than a flat canvas.

Worlds · education · data
04

Tools we have not seen yet

Use Flutter’s interface system around a real 3D runtime to invent editors, creative tools, and entirely new interaction models.

Editors · interfaces · unknowns

Inside Glint

A real engine,
with Flutter left intact.

Glint owns the 3D world. Flutter keeps layout, text, navigation, accessibility, state, and everything it already does brilliantly.

Explore the documentation
01

Renderer

PBR materials, HDR environments, depth, blending, culling, and GPU diagnostics.

02

Scene graph

Nodes, transforms, cameras, hierarchy, world bounds, and reusable composition.

03

Assets

glTF / GLB meshes, textures, materials, remote loading, and actionable errors.

04

Interaction

Ray picking, orbit, pan, zoom, touch routing, and node-to-screen projection.

05

Game runtime

Frame clock, dynamic instances, free cameras, simulation updates, and real-time loops.

06

Flutter layer

Widget overlays, navigation, HUD, labels, sheets, and hot reload without a bridge.

Composition

Your 3D world is still a Flutter app.

Put a scene anywhere a widget can go. Layer Flutter above it, beside it, or through it. Keep the navigation, gestures, state, and hot reload you already know.

Read the quick start
scene.dartFlutter + Glint
Stack(children: [
  Scene3D(
    scene: World(
      camera: chaseCamera,
      nodes: gameObjects,
    ),
  ),
  const GameHud(),
]);
One tree. 2D and 3D together.

Proof, not promises

See Glint hold up
when the scene moves.

These are working examples testing different parts of the engine. Switch between real device footage, a game loop, and 3D composed inside a scrolling Flutter interface.

Running example
Real device · 60 fps

Duck Dash, in your hand.

Unedited device footage with imported multi-material glTF models, animation playback, fog, blob shadows, and a Flutter HUD.

60 fpsAnimationGame loop

Where Glint is now

V0.1 is shipped.
The ambition stays large.

glint_engine is live on pub.dev. The core covers scene graphs, glTF with per-material batches, PBR rendering, HDR lighting, fog, animation playback, cameras, picking, labels, instancing, game loops, and Flutter composition—validated at 60 fps on iPhone.

Next come skeletal skinning, shadows, physics, particles, audio, and the systems real projects prove they need.

iOSmacOSAndroid · physical deviceMore to come

Build beyond the flat screen

Make anything.
Make it 3D.
Make it Flutter.