The 3D & AR SDK that AI gets right on the first try

SceneView is designed so any AI coding assistant can produce correct 3D & AR code on the first try — for Jetpack Compose, SwiftUI, the Web, and beyond. It opens glTF/GLB, 3MF, STL, OBJ and PLY on Android and USDZ on Apple, and shows them at real size in AR.

Try the demo: Get it on Google Play Download on the App Store Web Playground
Android
iOS
Web
visionOS
macOS
TV
Flutter
React Native
3D Scene Preview
Loading 3D engine…
Rendered live by SceneView Web (Filament.js WASM)
9
Platforms
26+
3D node types
5
Lines for 3D
60fps
PBR on mobile
1
MCP server
~3MB
APK overhead

Get started in seconds

Pick your platform, paste one line, and you are running 3D.

// build.gradle.kts
dependencies {
    // 3D only
    implementation("io.github.sceneview:sceneview:4.37.0")
    // 3D + AR
    implementation("io.github.sceneview:arsceneview:4.37.0")
}
// Swift Package Manager
// Add in Xcode: File → Add Package Dependencies

"https://github.com/sceneview/sceneview"
// Version: 4.37.0

import SceneViewSwift
// One line in your HTML:
<script src="https://cdn.jsdelivr.net/npm/sceneview-web@4/sceneview-web.js"></script>

// Then use the API:
SceneView.modelViewer("canvas", "model.glb")
# pubspec.yaml (coming soon on pub.dev)
dependencies:
  sceneview_flutter:
    git:
      url: https://github.com/sceneview/sceneview
      path: flutter
// package.json
"dependencies": {
  "react-native-sceneview": "github:sceneview/sceneview#react-native"
}

// Then run:
npm install
npx pod-install // iOS only
// Compose Desktop: wireframe placeholder only
// (no 3D renderer yet — Filament JVM pending)
git clone https://github.com/sceneview/sceneview
cd sceneview/samples/desktop-demo
./gradlew run
AI-first SDK

Built for AI assistants

One MCP server, and your assistant stops guessing at the SceneView API. It compile-checks the Kotlin or Swift it just wrote, looks up the exact node API instead of inventing one, and starts you from a sample that already builds — plus AR setup, gestures, and troubleshooting when you get stuck. The repository ships as a ChatGPT and Codex plugin too, so the same API contract travels wherever you work.

Claude Code Cline Codex Cursor Gemini in Android Studio GitHub Copilot JetBrains AI Assistant Any MCP client
AI assistant — SceneView Project
You Build me a 3D product viewer with AR try-on for shoes
Assistant

Using SceneView MCP to generate your app…

// MainActivity.kt

ARScene(

  planeRenderer = true,

  onTapAR = { hitResult ->

    AnchorNode(hitResult) {

      ModelNode("shoe.glb")

    }

  }

)

✓ Compiles on first try. Tap the floor to place the shoe.

You Add a hotspot on the laces that opens a size selector
Assistant

Reading SceneView hotspot & gesture docs via MCP…

✓ Hotspot added. Preview updated in Android emulator.

Use SceneView with your AI coding assistant

One MCP server, every assistant. Pick yours, copy one line, and it can read the full SceneView API reference, the samples and the best practices before it writes a line of 3D code.

Locally, over stdio
npx -y sceneview-mcp
Remotely, over Streamable HTTP — already hosted, nothing to run
https://mcp.sceneview.dev/mcp

Config shapes differ across the ecosystem, the command and its arguments never do. The common one is mcpServers; VS Code uses servers with "type": "stdio", Codex a [mcp_servers.*] TOML table, Copilot CLI "type": "local", and Kilo Code a mcp key in kilo.jsonc where command is an array and the environment block is called environment. When in doubt, paste the command above into whatever field your client offers.

Also works with Antigravity, Continue, Devin Desktop, Goose, Kilo Code, Kiro, OpenCode, OpenHands, Qwen Code, Windsurf, Zed — and any MCP-compatible client.

Write once, render everywhere

Native performance with a unified API philosophy.

Kotlin (Jetpack Compose)
Scene(
    modifier = Modifier.fillMaxSize(),
    nodes = listOf(
        ModelNode(
            model = "models/drone.glb",
            autoAnimate = true,
            scale = 0.5f
        )
    ),
    environment = Environment(
        hdr = "skybox.hdr"
    )
)
Swift (SwiftUI)
SceneView {
    Model(named: "drone")
        .rotation(x: .pi/4)
        .scale(0.5)
        .onTap {
            print("Drone selected")
        }
}
.environment(named: "outdoor")
.edgesIgnoringSafeArea(.all)
JavaScript (Web)
// One line in your HTML:
<script src="sceneview.js"></script>

// Render a 3D model:
SceneView.modelViewer("canvas", "model.glb", {
  backgroundColor: [0.05, 0.05, 0.08, 1],
  lightIntensity: 150000,
  fov: 35
})
AI assistant (MCP)
// Ask your AI assistant, with SceneView MCP:

"Build me an AR app that lets users
 place 3D furniture in their room"

// It generates correct, working SceneView
// code on the first try.

// Setup, in any MCP client:
npx -y sceneview-mcp

What you can build

48+ node types, full ARCore + ARKit coverage, physics, post-processing, and Compose UI inside a 3D scene.

view_in_ar

46+ Node Types

Models, primitives (cube, sphere, cone, torus, capsule), curves, shapes, text, video, billboard sprites, lights, reflection probes, dynamic sky, fog, physics, and more — every one a Composable / SwiftUI view.

Android iOS Web
layers

Compose UI in 3D

ViewNode renders any @Composable as a textured plane in world space. Buttons, lists, animations — all interactive, all reactive. The same trick exists in SwiftUI on iOS.

Android iOS
public

AR Geospatial

Streetscape city mesh, terrain anchors, rooftop anchors, Cloud Anchors for cross-device persistence. Build navigation, geofenced experiences, and scavenger hunts at planet scale.

Android ARCore VPS
face

Augmented Faces & Images

Face mesh overlay (front camera) with custom materials. Image tracking for posters, business cards, museum exhibits — with runtime image database building.

Android iOS
videocam

AR Record & Replay

Capture an outdoor ARCore session once with ARRecorder, replay it 1:1 at the desk via ARSceneView(playbackDataset = file). Debug AR scenes without a phone in your hand.

Android EIS — image stabilization
animation

Physics & Gestures

Rigid-body physics (gravity, collisions, impulses), ray vs box/sphere collision, drag-rotate-scale-elevate gestures — all opt-in per node via isEditable.

All platforms
brightness_high

PBR Lighting & Post-FX

Image-based lighting from .hdr / .ktx, dynamic time-of-day sky, atmospheric fog, reflection probes, plus bloom, depth of field, SSAO, vignette, color grading, and tone mapping.

Filament RealityKit
vrpano

WebXR — AR & VR

Same engine on the web. SceneView.startAR(canvas) for phone passthrough AR with hit-test, anchors, light estimation. startVR(canvas) for headset VR with controllers and reference spaces.

Web immersive-ar immersive-vr
smart_toy

AI-First MCP Server

validate_code compile-checks what your assistant wrote, get_node_reference resolves the exact node API, get_setup and get_ar_setup wire up the project, and list_samples starts you from code that builds. 38 compilable samples + full llms.txt reference.

Claude Code Cline Codex Cursor Gemini in Android Studio GitHub Copilot JetBrains AI Assistant Any MCP client
deployed_code

Opens the .3mf AI makes

Ask a chat assistant for a 3D print and it hands back a .3mf — a file nothing else on Android views in 3D, let alone in AR. SceneView reads it with no new API: the payload is detected by its ZIP magic and converted to GLB in memory, scaled from millimetres to metres and rotated upright, so a 60 mm print is life-size on a real table. The Android demo registers for the type, so a shared file opens straight from the chooser.

3MF glTF / GLB USDZ

How SceneView compares

The lightweight alternative to heavy game engines for 3D in native apps.

SceneView Unity Filament (direct) Three.js Babylon.js RealityKit SDK
Setup time 2 min (1 dep) 30+ min 15 min (C++ build) 5 min (npm) 5 min (npm) 10 min (Xcode)
Binary overhead ~3 MB ~30 MB+ ~2 MB ~600 KB (JS) ~800 KB (JS) Built-in
Compose / SwiftUI Native (first-class) None None (imperative C++) N/A (web only) N/A (web only) SwiftUI native
Platforms 9 (mobile + web + XR) 20+ (game focus) Android, web, desktop Web only Web only Apple only
Learning curve Low (Compose/SwiftUI) High (C#, ECS) High (C++/JNI) Medium (JS) Medium (JS) Medium (Swift)
AI code gen MCP server No MCP No MCP No MCP No MCP No MCP
Renderer Filament + RealityKit Custom (proprietary) Filament WebGL/WebGPU WebGL/WebGPU Metal

Filament is SceneView's rendering engine on Android and Web. SceneView adds the declarative API, scene graph, AR integration, and cross-platform abstractions on top.

Developer tools

Debug, inspect, and replay your 3D and AR scenes in real time.

bug_report New in v4

AR Debug — Rerun.io

Stream ARCore and ARKit frame data to the Rerun viewer. Inspect camera poses, tracked planes, point clouds, and anchors — then scrub the timeline to replay any moment. Hit Save & Share in the demo to attach a fully-replayable session to a bug report.

Android iOS Python sidecar
Open hosted viewer → Open AR Rerun in the demo app →
videocam v4

AR Record & Replay

Capture an outdoor ARCore session once with rememberARRecorder(). Replay it 1:1 at the desk via ARSceneView(playbackDataset = file). Iterate on AR demos without leaving your chair.

Android 21 unit tests
straighten v4

Image Stabilization (EIS)

One-line opt-in to ARCore Electronic Image Stabilization for shake-free AR previews on supported devices. ARSceneView(imageStabilizationMode = EIS).

Android
cloud_sync

Cloud Anchors

Persistent AR experiences across devices, sessions, and OSes. CloudAnchorNode.host(ttlDays = N) and .resolve(id). Build multi-user AR by passing a string.

Android iOS
analytics

Anonymous telemetry

Usage analytics for MCP tool calls. No PII — just tool names, versions, and timestamps. Fully opt-out via SCENEVIEW_TELEMETRY=off.

MCP server Cloudflare Workers D1 + KV
View live worker health →
visibility

Render tests

Pixel-perfect golden-image regression suite. Filament render goldens plus Compose snapshot tests catch UI and rendering drift on every PR.

Android iOS Web (Playwright)
Browse golden suite →
bash — 80x24
$ npm install sceneview-mcp
+ sceneview-mcp@4.0.13
added 12 packages from 8 contributors and audited 42 packages in 1.2s

Success! Ready to use SceneView in your project.