Scene: 3D library for Flutter
Scene is a general purpose realtime 3D rendering library for Flutter. It started life as a C++ component of the Impeller rendering backend in Flutter Engine, and is currently being actively developed as a pure Dart package powered by the Flutter GPU API.
The primary goal of this project is to make performant cross platform 3D easy in Flutter.
Examples App — Example Game — Docs — FAQ
Early preview! ⚠️
- This package is in an early preview state. Things may break!
- Relies on Flutter GPU for rendering, which is also in preview state.
- This package currently only works when Impeller is enabled.
- This package uses the experimental Dart "Native Assets" feature to automate some build tasks.
- Given the reliance on non-production features, switching to the master channel is recommended when using Flutter Scene.
Features
- glTF (.glb) asset import.
- PBR materials.
- Environment maps/image-based lighting.
- Blended animation system.
FAQ
Q: What platforms does this package support?
flutter_scene
supports all platforms that Impeller currently supports.
On iOS and Android, Impeller is Flutter's default production renderer. So on these platforms, flutter_scene
works without any additional project configuration.
On MacOS, Windows, and Linux, Impeller is able to run, but is not on by default and must be enabled. When invoking flutter run
, Impeller can be enabled by passing the --enable-impeller
flag.
Platform | Status |
---|---|
iOS | 🟢 Supported |
Android | 🟢 Supported |
MacOS | 🟡 Preview |
Windows | 🟡 Preview |
Linux | 🟡 Preview |
Web | 🔴 Not Supported |
Custom embedders | 🟢 Supported |
Q: When will web be supported?
Although there has been some very promising experimentation with porting Impeller to web, there is currently no ETA on web platform support.
Web is an important platform, and both flutter_gpu
and flutter_scene
will eventually support Flutter web.
Q: I'm seeing errors when running the importer: ProcessException: No such file or directory
. How do I fix it?
Install CMake.