Skip to content

nmfisher/thermion

Repository files navigation

Thermion Logo

Quickstart (Flutter)DocumentationShowcasePlaygroundDiscord

Cross-platform 3D toolkit for Dart and Flutter.

pub github discord contributors

launcher.mp4

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

About

3D rendering toolkit for Dart and/or Flutter

Resources

License

Stars

Watchers

Forks

Packages

No packages published