START HERE · GLINT 0.2

Build your first
Glint world.

Glint is a Flutter-first 3D engine built on Flutter GPU. Start with one rendered model, then add only the systems your product or game needs.

Install the engine

Add the core package first. Optional packages appear later in this guide and can be omitted completely.

TerminalSHELL
flutter pub add glint_engine
pubspec.yamlYAML
dependencies:
  glint_engine: ^0.2.0
SDK

Glint 0.2 targets Dart 3.12.1 and Flutter 3.44.1 or newer on iOS, macOS, and physical Android devices.

Enable Flutter GPU once

Glint renders through Flutter GPU and Impeller. Put the flags in the host app manifests so IDE runs, tests with fallbacks, and release builds all agree.

iOS

ios/Runner/Info.plistXML
<key>FLTEnableFlutterGPU</key>
<true/>

macOS

macos/Runner/Info.plistXML
<key>FLTEnableImpeller</key>
<true/>
<key>FLTEnableFlutterGPU</key>
<true/>

Android

android/app/src/main/AndroidManifest.xmlXML
<application ...>
  <meta-data
      android:name="io.flutter.embedding.android.EnableFlutterGPU"
      android:value="true" />
</application>

For a temporary local run, use flutter run --enable-impeller --enable-flutter-gpu. The platform guide explains device limits and fallbacks.

Render one model

Declare the GLB in your Flutter assets, then place a Scene3D anywhere a normal widget can go.

pubspec.yamlYAML
flutter:
  assets:
    - assets/models/product.glb
    - assets/environments/studio.hdr
lib/showroom.dartDART
import 'package:flutter/material.dart';
import 'package:glint_engine/glint_engine.dart';

class Showroom extends StatelessWidget {
  const Showroom({super.key});

  @override
  Widget build(BuildContext context) {
    return Stack(children: [
      Scene3D(
        children: const [
          Node3D(
            name: 'product',
            model: Model.asset('assets/models/product.glb'),
          ),
        ],
        lights: const [
          EnvironmentLight(asset: 'assets/environments/studio.hdr'),
          DirectionalLight(),
        ],
        autoRotate: true,
        gpuFallback: const Center(child: Text('3D unavailable')),
      ),
      const ProductControls(),
    ]);
  }
}

Choose the right runtime

Scene3D

Declarative Flutter pages, product viewers, configurators, orbit controls, picking, and anchored widgets.

GlintGameView

Ticker-driven games and simulations that return cameras, instances, particles, and animated poses every frame.

GlintPhysicsWorld

A renderer-independent fixed-step simulation contract. Use it with or without a Glint viewport.

RULE

Use Scene3D when Flutter state describes the scene. Use GlintGameView when a simulation produces the scene every frame.

Learn one system at a time

Each guide starts with the smallest working setup, then adds production behavior, limits, and troubleshooting.

Package map

glint_engine

Core renderer, assets, animation, particles, audio contract, physics contract, gameplay helpers, replay, and diagnostics.

glint_box3d

Optional native 3D rigid-body backend for the portable physics contract.

glint_basis

Optional official Basis Universal transcoder for Basis/KTX2 payloads.

glint_soloud

Optional SoLoud/miniaudio implementation of the portable audio contract.