Flutter Gaussian Splatter

Powered by Mason lints by lintervention


🚧 Early Developer Preview 🚧

This package is an early developer preview and is not yet intended for production use.


Flutter Gaussian Splatter showcases the use of Gaussian Splatting techniques within the Flutter framework. It leverages the power of ANGLE (Almost Native Graphics Layer Engine) by Google, via the flutter_angle package, to bring high-performance 3D rendering to Flutter applications.

Overview

This project aims to provide a Flutter widget for rendering 3D scenes using Gaussian Splatting. It's a demonstration of what's possible when combining Flutter's ease of use with low-level graphics capabilities.

Demo of Flutter Gaussian Splatter

Compatibility

The renderer has been tested on the following devices:

  • Silicon Mac
  • iPhone 13
  • Pixel 4
  • Pixel 5
  • Pixel 7

Due to the low-level nature of the graphics interface, you might encounter issues on other hardware configurations. If you experience any problems, please open an issue on our GitHub repository.

Known Issues

  • Memory Leak: A memory leak may occur when resizing the application window.
  • Windows Rendering: There are known rendering problems on the Windows platform.

Basic Usage Example

To use the GaussianSplatterWidget, import the package and add the widget to your Flutter application. You'll need to provide the path to your .ply asset.

import 'package:flutter/material.dart';
import 'package:flutter_gaussian_splatter/widgets/gaussian_splatter_widget.dart';

class MyAwesomeApp extends StatelessWidget {
  const MyAwesomeApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Gaussian Splatter Demo'),
        ),
        body: const GaussianSplatterWidget(
          assetPath: 'assets/your_model.ply', // Replace with your asset path
          // Optional: showStats: true,
        ),
      ),
    );
  }
}

Make sure to add your .ply file to your pubspec.yaml assets:

flutter:
  assets:
    - assets/your_model.ply # Or your specific asset path

Call for Contribution

This is an open-source project, and we welcome contributions from the community! Whether it's bug fixes, feature enhancements, or documentation improvements, your help is valuable. Feel free to fork the repository, make your changes, and submit a pull request.

Installation 💻

❗ In order to start using Flutter Gaussian Splatter you must have the Flutter SDK installed on your machine.

Install via flutter pub add:

flutter pub add flutter_gaussian_splatter

Acknowledgements

This project is highly inspired by the work done on antimatter15/splat.

License

This project is licensed under the MIT License - see the LICENSE file for details.