83 lines
3.3 KiB
Markdown
83 lines
3.3 KiB
Markdown

|
|
|
|
<p align="center">
|
|
<a href="https://thermion.dev/quickstart">Quickstart (Flutter)</a> •
|
|
<a href="https://thermion.dev/">Documentation</a> •
|
|
<a href="https://thermion.dev/showcase">Showcase</a> •
|
|
<a href="https://dartpad.thermion.dev/">Playground</a> •
|
|
<a href="https://discord.gg/h2VdDK3EAQ">Discord</a>
|
|
</p>
|
|
|
|
## Cross-platform 3D toolkit for Dart and Flutter.
|
|
|
|
<a href="https://pub.dev/packages/thermion_dart"><img src="https://img.shields.io/pub/v/thermion_dart?label=pub.dev&labelColor=333940&logo=dart&color=00589B" alt="pub"></a>
|
|
<a href="https://github.com/nmfisher/thermion"><img src="https://img.shields.io/github/stars/nmfisher/flutter_filament?style=flat&label=stars&labelColor=333940&color=8957e5&logo=github" alt="github"></a>
|
|
<a href="https://discord.gg/h2VdDK3EAQ"><img src="https://img.shields.io/discord/993167615587520602?logo=discord&logoColor=fff&labelColor=333940" alt="discord"></a>
|
|
<a href="https://github.com/nmfisher/thermion"><img src="https://img.shields.io/github/contributors/nmfisher/flutter_filament?logo=github&labelColor=333940" alt="contributors"></a>
|
|
|
|
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:
|
|
|
|
```bash
|
|
flutter channel master
|
|
flutter upgrade
|
|
flutter config --enable-native-assets
|
|
```
|
|
|
|
In your Flutter app:
|
|
|
|
```dart
|
|
@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](https://github.com/google/filament) Physically Based Rendering engine under the hood.
|
|
|
|
Special thanks to [odd-io](https://github.com/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
|
|
- @chenriji for testing and bug fixes
|