Nick Fisher fe11479b08 remove relativeResourcePath from gltf resource loading;
all external resources should be added on the Dart side, Filament should never attempt to load these directly from the filesystem.
relativeResourcePath (called gltfPath on the Filament side) is only used for desktop loading, so this is now irrelevant.
Note that Filament must be compiled with GLTFIO_USE_FILESYSTEM=0
2025-05-17 21:48:18 +08:00
2024-11-02 16:41:14 +11:00
2025-05-08 16:48:01 +08:00
2025-04-16 17:23:56 +08:00
2025-03-28 15:55:34 +08:00
2025-03-01 11:50:41 +08:00
2024-06-24 08:28:42 +02:00
2025-05-12 10:14:51 +08:00
2024-06-19 15:47:00 +02:00
2025-04-19 12:38:22 +08:00

Thermion Logo

Quickstart (Flutter)DocumentationShowcasePlaygroundDiscord

Cross-platform 3D toolkit for Dart and Flutter.

pub github discord contributors

https://github.com/user-attachments/assets/b0c07b5a-6156-4e42-a09b-5f9bd85fbf32

Features

  • Supports iOS (arm64), MacOS (arm64/x64), Android (arm64), Windows (x64) (>= 10), Web/WASM
  • glTF, KTX, PNG & JPEG texture support
  • camera/entity manipulation with mouse (desktop) and gestures (mobile)
  • skinning + morph animations

Uses the Filament PBR engine (currently v1.56.4).

Quickstart (Flutter)

From the command line:

flutter channel master
flutter upgrade
flutter config --enable-native-assets  

In your Flutter app:

@override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Stack(children: [
        Positioned.fill(
            child: ViewerWidget(
          assetPath: "assets/cube.glb",
          skyboxPath: "assets/default_env_skybox.ktx",
          iblPath: "assets/default_env_ibl.ktx",
          transformToUnitCube: true,
          initialCameraPosition: Vector3(0, 0, 6),
          background: Colors.blue,
          manipulatorType: ManipulatorType.ORBIT,
          onViewerAvailable: (viewer) async {
            await Future.delayed(const Duration(seconds: 5));
            await viewer.removeSkybox();
          },
          initial: Container(
            color: Colors.red,
          ),
        ))]));
  }

the first time you build an app that consumes this package, the Dart native-assets build system will download static binaries from Cloudflare. This may take a few minutes (depending on which platform you are compiling for). These will be cached, so subsequent builds will be much faster.

Sponsors, Contributors & Acknowledgments

Thermion uses the Filament Physically Based Rendering engine under the hood.

Special thanks to odd-io for sponsoring work on supporting Windows, raycasting, testing and documentation.

Thank you to the following people:

  • @Hannnes1 for help migrating to native-assets
  • @jarrodcolburn for documentation contributions
  • @daverin for MacOS library contributions
  • @LukasPoque for CI/refactoring work
  • @alexmercerind for his work on integrating ANGLE textures on Flutter Windows
  • @BrutalCoding for documentation fixes
Description
No description provided
Readme Apache-2.0 458 MiB
Languages
C++ 48.3%
C 45.1%
Dart 5.8%
Objective-C 0.2%
CMake 0.2%
Other 0.2%