-
Notifications
You must be signed in to change notification settings - Fork 29
Description
Hi! First, thanks for the amazing work on flutter_scene.
I'm currently building a map editor application (desktop) where users import 3D models dynamically at runtime. Ideally, users should be able to select a .glb file and see it immediately in the 3D viewport.
I’ve learned that flutter_scene currently works like this:
.glb → .model conversion is handled by the native importer tool
Flutter can only load .model files via flatbuffers at runtime
The GLB importer logic is not exposed as a runtime API
This means runtime GLB import is not currently possible inside a Flutter app without shipping and managing external platform-specific binaries.
❗ Issue
The helper utilities in flutter_scene_importer (such as importGltf) rely on:
Isolate.resolvePackageUriSync
build-time directory layout (e.g. /build/_deps/...)
Flutter/Dart toolchain being installed
So they cannot safely be called in a production runtime environment, because:
The build/ directory isn't included in release builds
Package URIs may not resolve in release/AOT
Toolchain dependencies won't exist on user machines
This makes it difficult to build applications that allow dynamic model import, which is a common requirement for editors and content-creation tools.
💡 Feature request
It would be extremely useful to have one of the following:
Official runtime-safe GLB import support
(even if desktop-only at first)
or
A documented/runtime-safe API for accessing the importer, such as:
a stable executable distributed with the package
or an embeddable Dart API
or a recommended integration pattern
👍 Why this matters
Enables real-world 3D tooling (editors, content apps, etc.)
Matches what engines like Unity/Godot provide
Keeps .glb as a universal format while using .model internally
🙏 Thanks
Totally understand this is early-preview software and priorities are evolving, this is just feedback from someone trying to use Scene in a production-style workflow.
If runtime import is explicitly out-of-scope right now, clarification in docs would also help a lot.
Thanks again for the awesome work!