Loading video...

Video Failed to Load

Go Home

This is rendered by Flutter 3.47 Stable using Flutter GPU via the flutter_scene package. macOS, Linux, Windows, iOS, Android, Web, and custom embedders. Today. :) No forks, no platform views, no external renderers, no secondary graphics context. It's vanilla Flutter. Each pass is a custom material over geometry derived...

29,906 views • 3 months ago •via X (Twitter)

26 Comments

Brandon DeRosier's profile picture
Brandon DeRosier3 months ago

This is the "materialize" example in the repository.

Clément's profile picture
Clément3 months ago

Long time ago, I wanted to render 3d charts. Would it be possible to render a 3d scatter plot?

Brandon DeRosier's profile picture
Brandon DeRosier3 months ago

Definitely. You can render arbitrary things with Flutter GPU

MemoriasIT 💙's profile picture
MemoriasIT 💙3 months ago

Finally some competition for @jezell's demos 😄

AI Mastery Guide's profile picture
AI Mastery Guide3 months ago

Vanilla Flutter pulling this off with no forks is impressive

Allan - App Developer's profile picture
Allan - App Developer3 months ago

would be cool to see how far you could take realistic lighting effects

Paul Thomas 💙's profile picture
Paul Thomas 💙3 months ago

Looks great! Amazed at the level of support for all kinds of stuff, it's a proper AAA framework. Do you think we will be able to use custom vertex and fragment shaders at this level, or should we be looking at Flutter GPU for that?

Brandon DeRosier's profile picture
Brandon DeRosier3 months ago

Yes, Flutter Scene's material system supports custom vertex and fragment shaders. And you can arbitrarily extend a model's vertex data with new attributes. That's how the glass shards work in this demo. :) This is the managed material format: There's also a fully "unmanaged" material type that lets you write raw engine shaders directly without any codegen, but it's much harder to use and almost no one should ever need it, as the managed material system is already quite flexible.

Paul Thomas 💙's profile picture
Paul Thomas 💙3 months ago

Agree the managed material is really nice. Anything to keep things at a high level, but was just wondering how to get the effect of glPolygonOffset, adjust a transformed z coordinate to be slightly closer without changing x and y? Is gl_FragDepth supported in a custom material?

Brandon DeRosier's profile picture
Brandon DeRosier3 months ago

What kind of effect are you trying to achieve? You do have access to gl_FragDepth yes. But in the vertex stage you also have access to camera properties and could e.g. interpolate vertices towards the camera if that's what you're trying to do.

Paul Thomas 💙's profile picture
Paul Thomas 💙3 months ago

I'd like to port my line renderer from cpu to gpu, at the moment it clips lines against every face on a 2D canvas. I could draw faces on the gpu in the bg colour and draw lines on top with z offset, using the z buffer in the usual way to sort depth...

Paul Thomas 💙's profile picture
Paul Thomas 💙3 months ago

...which from what you are saying should be already possible with fscene. Very much looking forward to giving it a try 👍

Emmanuel Onyeji🧑‍💻🫰🔥's profile picture
Emmanuel Onyeji🧑‍💻🫰🔥3 months ago

Now to just recreate the body like halo and create a crazy kick ass shooter platformer game Well done btw 🔥🔥🔥

FlutterFlow's profile picture
FlutterFlow3 months ago

LETS GOOO FLUTTER

Jason Holt's profile picture
Jason Holt3 months ago

3.47 stable you say?!

Brandon DeRosier's profile picture
Brandon DeRosier3 months ago

Yes!

Marcus ₿urelius's profile picture
Marcus ₿urelius3 months ago

That's sick. Great work.

Abraham 🖥️☕'s profile picture
Abraham 🖥️☕3 months ago

Cool

wordfreak's profile picture
wordfreak3 months ago

would have been much easier using this gpu to make this?

Simon 🦊💙's profile picture
Simon 🦊💙3 months ago

Have you tried with Impeller on Asahi Linux (running on Apple Silicon)? I'd love to see if it's running well there.

Lars Vogel's profile picture
Lars Vogel3 months ago

Your docs say otherwise: "Rendering is built on Flutter GPU, which hasn't shipped to the stable channel yet, so Flutter Scene requires the Flutter master channel."

sofie s's profile picture
sofie s3 months ago

"Vanilla Flutter" but it depends on flutter_scene and experimental GPU APIs? How does it handle WebGL-only browsers or older devices?

Vitaliy Podolskiy's profile picture
Vitaliy Podolskiy3 months ago

The portability test is not “does it render once?” It’s: same scene graph, golden output per backend, input-latency budget, and a deliberate escape hatch for platform-specific rendering when the abstraction starts lying.

Luis Gamas's profile picture
Luis Gamas3 months ago

Seeing the same rendering path across desktop, mobile, web, and custom embedders is genuinely exciting. Flutter GPU is starting to unlock some very different kinds of apps

Tom Vogel's profile picture
Tom Vogel3 months ago

Feels unreal that this is Flutter for me

Sivaram SS's profile picture
Sivaram SS3 months ago

Looks great. Are the glows HDR ?

Related Videos