flutter_scene 0.14.1 copy "flutter_scene: ^0.14.1" to clipboard
flutter_scene: ^0.14.1 copied to clipboard

A general-purpose realtime 3D rendering library for Flutter.

example/README.md

Flutter Scene example #

A minimal scene: load a glTF model and draw it with a PerspectiveCamera inside a CustomPainter.

import 'package:flutter/material.dart';
import 'package:flutter_scene/scene.dart';
import 'package:vector_math/vector_math.dart' as vm;

class ModelView extends StatefulWidget {
  const ModelView({super.key});
  @override
  State<ModelView> createState() => _ModelViewState();
}

class _ModelViewState extends State<ModelView> {
  final Scene scene = Scene();
  bool ready = false;

  @override
  void initState() {
    super.initState();
    // Static resources (shader bundle, BRDF LUT) load asynchronously.
    Scene.initializeStaticResources().then((_) async {
      final model = await Node.fromAsset('assets/model.glb');
      scene.add(model);
      if (mounted) setState(() => ready = true);
    });
  }

  @override
  Widget build(BuildContext context) {
    if (!ready) return const Center(child: CircularProgressIndicator());
    return CustomPaint(painter: _ScenePainter(scene), child: const SizedBox.expand());
  }
}

class _ScenePainter extends CustomPainter {
  _ScenePainter(this.scene);
  final Scene scene;

  @override
  void paint(Canvas canvas, Size size) {
    final camera = PerspectiveCamera(
      position: vm.Vector3(0, 2, 5),
      target: vm.Vector3(0, 0, 0),
    );
    scene.render(camera, canvas, viewport: Offset.zero & size);
  }

  @override
  bool shouldRepaint(covariant _ScenePainter oldDelegate) => true;
}

For a full, runnable app exercising materials, skinning/animation, custom shaders, and more, see examples/flutter_app.

197
likes
0
points
1.23k
downloads

Publisher

verified publisherbdero.dev

Weekly Downloads

A general-purpose realtime 3D rendering library for Flutter.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

args, collection, flat_buffers, flutter, flutter_gpu, flutter_gpu_shaders, hooks, image, logging, vector_math, web

More

Packages that depend on flutter_scene