StillLive · SceneView Web
A red sports car on the wet start grid of a circuit at night, in the rain under floodlights, rendered by SceneView Web.

Car Concept · Eric Chadwick, Darmstadt Graphics Group · CC BY 4.0, adapted

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.62.0")
Quickstart · Android
  1. Clear-coat paintKHR_materials_clearcoat
  2. Reflections on a wet tracksetScreenSpaceReflections()
  3. Floodlights, bloom and fogaddLight() · setBloom() · setFog()

For companies shipping SceneView

SceneView runs in commercial products. Sponsor it or buy support.

Commercial products ship SceneView. Almost nobody contributes back, in code or in funding, while the maintainers carry every fix and every release. If SceneView is part of your product, sponsor it or buy support, now.

Sponsor

Funds the fixes, Filament upgrades and releases your product depends on. Open Source Collective issues the invoice and the receipt; your company is listed nowhere unless you ask.

Commercial support

  • Incident · $600One reproducible problem. Within 3 business days: a minimal reproduction, the cause, and a workaround or a costed fix.
  • 2.3 LTS · $1,800 for 90 daysOne identified integration. Answers within 2 business days and up to 1 day of work a month; more work is quoted. The $600 of an Incident already bought is deducted.

Contracted and invoiced through Open Source Collective, the fiscal host; the money goes to the collective’s budget. Payment comes before any work. Every version stays under Apache 2.0.

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 21+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 it as a dependency
Over 500
stars on GitHub
1.3K
contributors
48
releases
159
npm downloads, web, 30 days
3.1K

Repository count from GitHub code search, owners sceneview and ThomasGorisse excluded, checked on October 28, 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.