Brandon DeRosier

Brandon DeRosier

@bdero.bsky.social

Building Flutter GPU and http://fscene.dev. Expanding what you can create using Flutter & Dart. Prev Lead Eng @ Shorebird Prev Built Impeller @ Flutter / Google

54 followers105 following72 posts

View full thread

Flutter Scene is a complete 3D game engine for Flutter. It's powered by Impeller and Flutter GPU, and it runs on mobile, desktop, and web using nothing but Flutter's built-in SDK features. It's built to help you make any interaction you can imagine for your app real.

IMO this is what Flutter is particularly good at. You can control literally everything about how your widgets render and behave. Material and Cupertino are there if you want them, but nothing forces you into a boring native look.

View full thread
View full thread

The map uses real OpenStreetMap buildings in downtown Boston and a live route from OSRM. The x-ray chassis uses a custom material, and the brake discs glow as the car brakes. The parking screen is a mockup of a 360 surround camera view.

The car is a glTF model with working doors, hood, hatch, headlights, and paint options. The app is 14,000 lines of Dart, with a center screen, a driver cluster, and a panoramic view of both.

No embedded engine, no native map SDK, no platform views, just vanilla Flutter with Impeller and built-in SDK features: Flutter GPU. 3D rendered by Flutter Scene, a complete 3D game engine for Flutter.

A clip from when I was working on culling and transmissive material performance. Just dragging the sun around the Amazon Lumberyard Bistro scene in Flutter Scene. :D

Bistro is full of glass. Transmissive materials are expensive since they sample the scene behind them, so Bistro tests often swap the windows for something opaque or invisible. Here they render as actual transmissive glass. fscene.dev

View full thread

It runs on macOS, Linux, Windows, iOS, Android, web, and custom embedders. It scales down to a single model in a widget and up to full games, and dozens of contributors landed work in it this year. A scene is a widget, and hot reload works on it. Change a light in Dart, it updates in place.

No platform views, no native textures piped in from another engine, no custom fork. It runs on Impeller and Flutter GPU. Graphics, physics, audio, networking, an editor, and tools for AI coding agents, in one open source project.

Godot's Third Person Shooter demo, ported to Flutter Scene as a fun stress test. Running on Flutter GPU and Impeller, Flutter's built-in graphics stack.

617 MiB of cooked content. 1,795,763 unique vertices, 659,079 unique triangles, 320 collision meshes, 23 punctual lights. All converted to Scene's own scene description format for AOT baking.

The lighting isn't as moody as the original yet, with way too much light spilling in from the environment map... but a pretty decent port! Credit to the Godot project for a great demo to throw at a young engine. fscene.dev

Was a fun surprise finding this in my yt feed today. :)

GameFromScratch@gamefromscratch.bsky.social

An exciting new free & open source 3D game engine for Flutter has appeared! Check out Flutter Scene, it's a shockingly robust and feature complete engine... and unlike Flourite, you can download it today! gamefromscratch.com/flutter-scen... #gamedev #indiedev #Flutter

Build something real with Flutter 3.47. Scene is powered by Flutter's own graphics stack, Flutter GPU and Impeller. No forks, no platform views, no secondary rendering context. macOS, Linux, Windows, iOS, Android, web, and custom embedders.

Clearcoat, refraction, volume, rough transmission, chromatic dispersion, iridescence, sheen, anisotropy, specular, and much more. Every ratified glTF material extension.

A little cinematic I made with Flutter Scene, based on Alix Ollivier's Amano Nature Aquarium. :) Rendered in real time and recorded live at 60 fps on my MacBook. The control panel on the cabinet is a Flutter widget running inside the 3D scene.

I had an agent port the original web demo, then built the rest on top. The camera moves, the controller, the flake food, the dust, day to night lighting, and a surface that mirrors the tank from under water.

141,000 instances in 42 draw calls, caustics from 217,818 rays through the waves. It pushed lighting hooks for custom materials, planar mirrors, and debug view wipes into the engine, all landing in Flutter Scene 0.24. https://fscene.dev

This is rendered by Flutter 3.47 stable, using Flutter GPU through Flutter Scene. No forks, no platform views, no external renderers, no secondary graphics context. It's vanilla Flutter. :)

The effect is three passes over one glTF model. A wireframe, then flying glass shards, then the finished PBR surface behind a glowing seam. Each pass is a custom material over geometry derived from the mesh at load time, so it works on any model.

View full thread

No image assets anywhere. The stripes, the cards, the pips, and the wood and marble textures are painted or baked at startup. Recorded in debug mode.

The dice are Rapier physics bodies drawn by the engine in a transparent layer on top. An invisible shadow catcher material stands in for the screen, so the only thing the 3D layer draws is the dice and the shadows they leave on the UI.

Land a die hard enough on a card and it cracks. The shards are the card's own pixels, captured and thrown as physics bodies, and they cast shadows on the widgets like everything else.

I loved the aesthetic of Sakura Crossing, a cel-shaded explorable Japanese town from GMI Cloud, and kept thinking about it... so I had an agent port it to Flutter Scene for fun. :) All runtime procedural generation. Just vanilla Flutter, AOT-compiled Dart, no external renderers.

This campfire is 100% procedurally generated at runtime with Flutter Scene. No model files, no image assets. Recorded in debug mode. A full 3D engine built entirely on Flutter's built-in graphics API, Flutter GPU. No forks, no native renderer integrations.

The fire is an interpolated flipbook baked at startup from domain-warped fbm noise, run through a blackbody color ramp. The logs, stones, grass, and trees are generated meshes. The same noise drives the light flicker, the embers, and the fireflies.

The gamepad name entry was a bit hard to use, so there are a lot of "A" names in there, plus many hundreds of runs people chose to discard. I should have added a run counter!

This endless runner was playable at flutterCon, and it's a vanilla Flutter app. :) Dashsurfers (...name subject to change) is a little 3D game built with Flutter Scene, running in real time at 120 fps on macOS. The rendering, the particles, the UI, all Flutter.

It started as a stress test for the engine and turned into a playable showcase. Dynamic obstacles, coin pickups, shadowed outdoor lighting, a full gameplay loop, and Dash ragdolling. The capture tops out at 60 fps, the game runs at 120. fscene.dev

Antigravity built a samurai cat slicing game with Flutter Scene :) Catana Dojo came out of my Bootstrap Forge agent harness, where every piece of the game has to pass its own test or image check before it lands.

View full thread

Concept art from Gemini 3.1 Flash Image, rigged 3D characters from Meshy, audio from ElevenLabs (including the cat meow when you get hit). The dojo is all engine primitives, built in code.

Antigravity built a samurai cat slicing game with Flutter Scene :) Catana Dojo came out of my Bootstrap Forge agent harness, where every piece of the game has to pass its own test or image check before it lands.

The slicing is exact. Your swipe becomes a plane through the camera, animated enemies are posed on the CPU the same way the shader poses them, and the mesh splits right where you drew. The pieces become Rapier physics bodies.