flutter3d
Showcase Changelog 38 packages API reference

flutter3d and Flutter Scene

Flutter Scene is the other engine built on Flutter GPU. It is maintained by the author of Flutter GPU itself, a former core Flutter engine team member who spent four years on Flutter, most of it building Impeller. That gives it a relationship with the underlying API that no third-party package can have: Scene's render tests are where Flutter GPU regressions get caught, because the author of Flutter GPU also writes the engine. flutter3d uses flutter_gpu the way any other package does, through the public surface.

The two projects are not after the same thing. Scene is a complete 3D game engine and toolkit for anyone building on Flutter, pre-1.0 and moving quickly. flutter3d answers a narrower question: whether a HAL, a scene graph and a game layer of this shape can be built by someone with no inside access to Impeller, tested against three complete games of different genres that needed no engine-level code changes between them. The flutter3d half of this page was read against the source tree of 0.8.1 on 2026-09-27. The Scene half describes its README, which was last changed on 2026-09-03, and its repository at the same date was searched for every capability the README does not name.

Quick facts #

flutter3d Flutter Scene
First commit 2026-08-08 2024-02-01
Core package version 0.8.2 0.23.0
Maintainer An independent developer, unaffiliated with the Flutter team The author of Flutter GPU, formerly on the core Flutter engine team
Licence MIT MIT
Web backend WebGL2, and WebGPU behind a flag Built-in WebGL2
Physics Pure Dart, in-tree (flutter3d_physics) Native: flutter_scene_rapier (prebuilt binaries + wasm) or flutter_scene_box3d
Audio flutter_soloud, an FFI binding to the SoLoud engine, behind a pluggable backend interface flutter_scene_soloud, the same SoLoud engine, or flutter_scene_fmod (commercial middleware)
CPU / GPU-less test backend Yes: flutter3d_cpu, a software rasteriser used in CI No backend of its own; CI renders its smoke scenes through Impeller on Mesa's software rasterisers (Linux), SwiftShader (Android emulator), headless Chrome and Windows, and Metal on Codemagic, compared in Argos
Multiplayer Rollback netcode for two peers (flutter3d_net, WebSocket or WebRTC transport), on pub.dev flutter_scene_net, over dashwire: replicated state, client-side prediction, and physics rollback for the entity a client owns
Editor with an MCP server Yes: flutter3d_editor_mcp, published to pub.dev with the rest of the set Yes: the Flutter Scene Editor stack, shipped as a desktop app, not on pub.dev, and explicitly "in active development"

Feature by feature #

A green dot is a capability the engine has; a red one is a capability it does not. For flutter3d that is read from its source. For Flutter Scene it is read from its README and then checked against its repository: a red dot there means neither names it in the engine's packages. Where Scene has something close in another form, the row is worded to the difference, and here is the form: an XPBD cloth solver in its example app rather than in the engine, physics rollback for the one entity a client owns against a server rather than every player's input between peers, a pure-Dart physics backend for queries and triggers with no dynamics, and occlusion culling through planes an application supplies rather than a depth pyramid. Each row is one capability, so where both engines have something in different depths (physics, global illumination, the editor) the sections below say how they differ.

Capabilityflutter3dFlutter Scene
Rendering
Physically based materials with clearcoat, sheen, anisotropy and transmissionyesyes
Rectangle area lightsyesyes
Clustered lights, so a scene can hold manyyesyes
Cascaded sun shadows with soft penumbrae and contact shadowsyesyes
Exponential variance shadow maps (EVSM) for the sunyesno
Irradiance probe field with a visibility test per probeyesyes
Horizon-based ambient occlusion and screen-space bounced lightyesyes
Screen-space reflections, depth of field, bloom, automatic exposureyesyes
Volumetric fogyesno
Order-independent transparencyyesno
Motion bluryesno
Local exposure, and HDR output (WebGPU only)yesno
Temporal anti-aliasing and FXAAyesyes
SMAAnoyes
Lens flares and radial lens distortionnoyes
Projected decalsnoyes
Gaussian splatsyesyes
Octahedral impostors for distant modelsyesno
Automatic occlusion culling (Hi-Z)yesno
Assets and animation
Skinning, morph targets and blended animationyesyes
glTF material variantsyesyes
glTF animation pointers (a clip moves a material or a light)yesno
Retargeting a clip onto another skeletonyesno
Models converted at build time by a build hookyesyes
Hot reload for models and texturesnoyes
Backends
Impeller through Flutter GPUyesyes
WebGL2 in the browseryesyes
WebGPU in the browseryesno
A software rasteriser in Dart, so rendering tests run without a GPUyesno
Games
Rigid-body dynamics in pure Dart, with no native binariesyesno
Native physics through Rapier or box3dnoyes
Rigid bodies that rotatenoyes
Cloth in the engine's packagesyesno
Particlesyesyes
Audio through SoLoudyesyes
Multiplayeryesyes
Peer-to-peer rollback of every player's inputyesno
Genre packages: shooter, platformer, racing, strategyyesno
A bridge to the Flame 2D engineyesno
Tools and app integration
A scene editor with an MCP server for coding agentsyesyes
A declarative widget API for the scenenoyes
The scene described to a screen readeryesyes

What Scene has that flutter3d doesn't #

Reading its README against flutter3d's own feature table:

Global illumination was on this list until 0.8. Both engines now read a world-space irradiance probe field with a visibility test per probe and add horizon-based ambient occlusion and screen-space indirect light. Scene bakes its field offline or progressively; flutter3d traces it with the CPU raycaster and can update it on the GPU. Temporal anti-aliasing moved off the list the same way.

What flutter3d has that Scene doesn't #

These are different bets on where a young engine spends its first year, not a scoreboard. Scene put that time into rendering depth, native-grade physics and audio, and a widget-level API, with more than two and a half years behind it and a maintainer who wrote Flutter GPU. flutter3d put it into proving the architecture across three shipped games and keeping physics, cloth and rig retargeting in pure Dart, plus a software rendering backend of its own, written in Dart, so rendering tests need no GPU and no graphics driver at all. Both are pre-1.0, both MIT, both sit on the same `flutter_gpu` foundation.

Picking one #

If a project needs decals, a mature physics backend with joints and rotating bodies, asset hot reload, or a declarative widget API today, Scene already has it. If a project's constraints run the other way (no native physics binaries in the build, rendering tests that have to run with no GPU or graphics driver, inside flutter test, or an interest in how the genre-package split holds up across three real games), flutter3d is built to show exactly that.