Loading video...
Video Failed to Load
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... show more
29,831 views • 1 month ago •via X (Twitter)
26 Comments

This is the "materialize" example in the repository.

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

Definitely. You can render arbitrary things with Flutter GPU

Finally some competition for @jezell's demos 😄

Vanilla Flutter pulling this off with no forks is impressive

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

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?

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.

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?

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.

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...

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

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

LETS GOOO FLUTTER

3.47 stable you say?!

Yes!

That's sick. Great work.

Cool

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

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

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."

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

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.

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

Feels unreal that this is Flutter for me

Looks great. Are the glows HDR ?
