Core concepts
A handful of types appear in almost every Flutter Scene program. This page introduces them so the guides can go deeper without re-explaining the basics.
A Scene is the root of the scene graph and the thing that renders. It owns a root Node, the lighting environment, tone mapping, post-processing, and the render targets. Most programs construct one Scene, add content to it, and render it through a SceneView.
A Node is a transform in the scene graph. A node may carry a Mesh, hold child nodes, and run behavior through attached Components. Child transforms compose with their parent, so moving a parent moves its whole subtree.
Mesh, Geometry, and Material
Section titled “Mesh, Geometry, and Material”A Mesh is a Geometry paired with a Material. The geometry is the shape (vertices and indices), and the material is the shading. Built-in geometry includes primitives such as CuboidGeometry and SphereGeometry, and built-in materials include PhysicallyBasedMaterial, UnlitMaterial, and custom ShaderMaterial.
Camera
Section titled “Camera”A Camera, usually a PerspectiveCamera, describes the viewpoint. With SceneView you supply a fixed camera, a cameraBuilder that returns a camera each frame (handy for animating the view), or nothing at all, in which case the view uses the scene’s primary camera or a default. The Cameras guide covers all of these.
The render loop
Section titled “The render loop”SceneView drives the loop. Each frame it advances any Components attached to nodes, builds a camera, and renders the scene. Constructing a Scene starts loading the engine’s shared resources, and rendering is gated on that finishing, so the view simply skips frames until the engine is ready. You can also render a Scene directly onto a dart:ui Canvas from a CustomPainter when you need full control.
Where to go next
Section titled “Where to go next”The Guides cover each subsystem in depth, each with a live demo.