This came about when I needed a 3D renderer for a Flutter app[0] I was building. At the time, the only off-the-shelf option was to embed Unity, which wasn't ideal for a few reasons - unstable build process, compositing and transparency issues, and licensing uncertainty, just to name a few. In any event, frankensteining Unity (C#) together with Flutter (Dart) didn't seem like a great solution.
After browsing for alternative renderers, I discovered Filament[1], an open-source, cross-platform Physically Based Rendering engine from Google. I initially only wrote some simple bindings to embed Filament inside a Flutter Android/iOS app, but have since added more functionality, and have expanded this to cover Windows, MacOS and Web (there was Linux support at one point, too, but I haven't been keeping up with it I'm afraid).
Last week I published the first Thermion release to pub.dev[2], and with that milestone it seemed a good time to share with HN. This is also a call for contributors if anyone wants to help[3].
Some examples:
- A live DartPad playground so you can try the Dart-only (i.e. non-Flutter version) of Thermion in browser (Chrome only for now). https://dartpad.thermion.dev
- My personal website, where I added an interactive clone of myself https://nick-fisher.com
- Prouder (a Flutter app from one of the Thermion contributors) https://apps.apple.com/us/app/prouder/id6498891289 https://play.google.com/store/apps/details?id=se.prouder.app https://prouder.se/
Happy to share more details if anyone is interested!
[1] https://github.com/google/filament