StillLive · SceneView Web
A toy car rendered by SceneView, on a draped red cloth: clear-coated paint, glass windows and fabric seats.

Toy Car · Guido Odendahl · CC0

Open source · Apache 2.0 · latest release

3D and AR, written like UI.

Declarative 3D and AR for Jetpack Compose, SwiftUI and the web. A scene is a view; a model is a node.

implementation("io.github.sceneview:sceneview:4.56.0")
Quickstart · Android
  1. Clear-coat paintKHR_materials_clearcoat
  2. GlassKHR_materials_transmission
  3. Fabric seatsKHR_materials_sheen

Declarative

The code is the scene.

Pick a model: the string in the code and the scene beside it change together. In the Compose tab, drag the value of scaleToUnits and watch the model follow.

// Android · Jetpack Compose
@Composable
fun ModelScreen() {
    SceneView(modifier = Modifier.fillMaxSize()) {
        rememberModelInstance(modelLoader, "models/sheen_chair.glb")
            ?.let { instance ->
                ModelNode(
                    modelInstance = instance,
                    scaleToUnits = 1.0f,

                )
            }
    }
}

Drag 1.0f sideways, or focus it and use the arrow keys.

Android · Stable Quickstart · Compose →
StillLive · same renderer as the code
A velvet armchair with sheen fabric, rendered by SceneView.

Sheen Chair · © 2020 Wayfair LLC · CC0

What you can build

From a product viewer to a galaxy.

AR

Place it in the room, at real size.

Plane detection, anchors, depth occlusion and real-world scale: ARCore on Android, ARKit on iOS, written as composables and views.

Open the AR demo
Formats

Bring the files you already have.

glTF and GLB on Filament, USDZ on RealityKit. STL, OBJ, PLY and 3MF are converted on load.

glTFGLBUSDZSTLOBJPLY3MF
Formats guide
Compose in 3D

Your UI, inside the scene.

ViewNode renders real Compose content on a node: labels, cards and controls placed in 3D space.

Open the ViewNode demo

Try every demo on your phone: Google Play · App Store · Web demo

Platforms

Stable on Android. Alpha everywhere else, and labelled that way.

Native renderers underneath: Filament on Android, desktop and the web, RealityKit on Apple.

  • AndroidJetpack Compose · Filament · ARCoreStable
  • AppleiOS, macOS, visionOS · one SwiftUI package · RealityKit · AR on iOS · USDZ, no glTFAlpha
  • WebFilament WASM · WebGL2 · glTFAlpha
  • DesktopCompose Desktop · Filament · JDK 22+Alpha
  • Android TVSame artifact as Android · D-pad inputAlpha
  • FlutterPlatform view over the native SDKsAlpha
  • React NativeFabric view over the native SDKsAlpha
  • Android XRJetpack XR SceneCorePlanned

Compose Multiplatform: one SceneViewer for Android, iOS and desktop — a viewer subset, without AR. Feature matrix per platform

AI-ready

Works with the assistant you already use.

SceneView ships an MCP server and an llms.txt, so any assistant that speaks MCP reads the real API instead of guessing it.

Any MCP client · pick your assistant above for its exact setup

$ npx -y sceneview-mcp

Ordered by the share of professional developers who use each tool at work, from the JetBrains Developer Ecosystem Survey 2026 (published Aug 18, 2026). Gemini is placed using the Stack Overflow pulse survey of April 2026, since JetBrains does not report it. Any MCP client works; names belong to their owners.

In the open

Public numbers anyone can re-check.

public repositories declare SceneView or its Sceneform predecessor
700+
stars on GitHub
1.3K
contributors
48
releases
159
npm downloads, web, 30 days
3.1K

Found in public code and posts from teams at

    All teams and their evidence

    Each name links to that team’s own public code or post; a name here is not an endorsement. Repository count from GitHub code search, owners sceneview and ThomasGorisse excluded, checked on September 26, 2026. Stars, contributors, releases and web downloads are refreshed weekly by an automated job.

    Questions

    Where SceneView fits.

    Compare SceneView with
    SceneView compared with Unity, Filament used directly, Three.js and RealityKit
    SceneViewUnityFilament, directThree.jsRealityKit
    Declarative UICompose, SwiftUINo — editor and C#No — imperativeNo — imperativeSwiftUI
    SetupOne Gradle or SwiftPM dependencySeparate engine, embedded as a libraryEngine, materials and loaders wired by handOne npm packagePart of the Apple SDKs
    PlatformsAndroid stable; Apple, web, desktop, Flutter, React Native alphaMost platformsAndroid, Apple, desktop, webWebApple only
    ARARCore, ARKitAR FoundationBring your ownWebXRARKit
    RendererFilament, RealityKitUnityFilamentWebGL, WebGPURealityKit
    Is SceneView the successor of Sceneform?

    Yes. When Google archived Sceneform, the community kept it going as com.gorisse.thomas.sceneform, and SceneView grew out of that line with a Compose-first API on Filament. The migration guide covers the move from Sceneform.

    How is SceneView different from Unity or a game engine?

    SceneView is a UI library, not an engine you embed. A 3D scene is a composable or a SwiftUI view inside your existing app, with the same state, navigation and build. A game engine fits full games and editor-driven content; SceneView fits product viewers, AR placement and 3D inside an app’s own UI.

    Which 3D formats does SceneView support?

    glTF and GLB, rendered by Filament on Android, desktop and the web. USDZ, rendered by RealityKit on Apple platforms. STL, OBJ, PLY and 3MF files are converted on load.

    Can AI coding assistants use SceneView?

    Yes. SceneView publishes an MCP server (sceneview-mcp) and an llms.txt file, so any assistant that supports the Model Context Protocol can read the current API instead of guessing it. The docs give the setup for each client.

    What is SceneView’s license?

    Apache 2.0. The sample 3D models keep their own licenses, listed on the credits page.

    Your first scene is ten lines away.

    Follow the quickstart for your platform, or open the playground and edit a live scene in the browser.