Zum Inhalt springen

MCP Server / sceneview

sceneview

3D & AR SDK for Android (Jetpack Compose + Filament), iOS (SwiftUI + RealityKit), and Web. AI-first: llms.txt, MCP server, Copilot/Cursor rules. The only Compose-native 3D library.

1,159von @sceneviewApache-2.0GitHub →

Installation

Claude Code
claude mcp add sceneview -- npx -y sceneview-mcp
npx
npx -y sceneview-mcp

npm: sceneview-mcp

Transport

sse

Tools (20)

Platform

Renderer

Status

Filament

Jetpack Compose

Filament

Compose TV

RealityKit

SwiftUI

Alpha

Alpha

PlatformView

Alpha

Fabric

Alpha

Stable

--- ## Install **Android** (3D + AR): ```kotlin dependencies { implementation("io.github.sceneview:sceneview:4.0.1") // 3D implementation("io.github.sceneview:arsceneview:4.0.1") // AR

ModelNode

glTF/GLB model with animations. `isEditable = true` for gestures.

LightNode

Sun, directional, point, or spot light. `apply` is a **named parameter**.

ImageNode

Image on a plane

ViewNode

**Compose UI rendered as a 3D surface**

MeshNode

Custom GPU mesh

Node

Group / pivot

Node

What it does

AnchorNode

Follows a real-world anchor

AugmentedImageNode

Tracks a detected image

AugmentedFaceNode

Face mesh overlay

Dokumentation

SceneView

3D & AR for every platform.

Build 3D and AR experiences with the UI frameworks you already know. Same concepts, same simplicity — Android, iOS, Web, Desktop, TV, Flutter, React Native.


Quick look

// Android — Jetpack Compose
SceneView(modifier = Modifier.fillMaxSize()) {
    rememberModelInstance(modelLoader, "models/helmet.glb")?.let {
        ModelNode(modelInstance = it, scaleToUnits = 1.0f, autoAnimate = true)
    }
}
// iOS — SwiftUI
SceneView(environment: .studio) {
    ModelNode(named: "helmet.usdz")
        .scaleToUnits(1.0)
}
<!-- Web — one script tag -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/sceneview.js"></script>
<script> SceneView.modelViewer("canvas", "model.glb") </script>
# Claude — ask AI to build your 3D app
claude mcp add sceneview -- npx sceneview-mcp
# Then ask: "Build me an AR app with tap-to-place furniture"

No engine boilerplate. No lifecycle callbacks. The runtime handles everything.


Platforms

| Platform | Renderer | Framework | Status | |---|---|---|---| | Android | Filament | Jetpack Compose | Stable | | Android TV | Filament | Compose TV | Alpha | | iOS / macOS / visionOS | RealityKit | SwiftUI | Alpha | | Web | Filament.js (WASM) | Kotlin/JS + sceneview.js | Alpha | | Desktop | Software renderer | Compose Desktop | Alpha | | Flutter | Native per platform | PlatformView | Alpha | | React Native | Native per platform | Fabric | Alpha | | Claude / AI | — | MCP Server | Stable |


Install

Android (3D + AR):

dependencies {
    implementation("io.github.sceneview:sceneview:4.0.1")     // 3D
    implementation("io.github.sceneview:arsceneview:4.0.1")   // AR (includes 3D)
}

iOS / macOS / visionOS (Swift Package Manager):

https://github.com/sceneview/sceneview-swift.git  (from: 4.0.0)

Web (sceneview.js — one line):

<script src="https://cdn.jsdelivr.net/npm/[email protected]/sceneview.js"></script>

Web (Kotlin/JS):

dependencies {
    implementation("io.github.sceneview:sceneview-web:4.0.0")
}

Claude Code / Claude Desktop:

claude mcp add sceneview -- npx sceneview-mcp
{ "mcpServers": { "sceneview": { "command": "npx", "args": ["-y", "sceneview-mcp"] } } }

Desktop / Flutter / React Native: see samples/


3D scene

SceneView is a Composable that renders a Filament 3D viewport. Nodes are composables inside it.

SceneView(
    modifier = Modifier.fillMaxSize(),
    engine = rememberEngine(),
    modelLoader = rememberModelLoader(engine),
    environment = rememberEnvironment(engine, "envs/studio.hdr"),
    cameraManipulator = rememberCameraManipulator()
) {
    // Model — async loaded, appears when ready
    rememberModelInstance(modelLoader, "models/helmet.glb")?.let {
        ModelNode(modelInstance = it, scaleToUnits = 1.0f, autoAnimate = true)
    }

    // Geometry — procedural shapes
    CubeNode(size = Size(0.2f))
    SphereNode(radius = 0.1f, position = Position(x = 0.5f))

    // Nesting — same as Column { Row { } }
    Node(position = Position(y = 1.0f)) {
        LightNode(apply = { type(LightManager.Type.POINT); intensity(50_000f) })
        CubeNode(size = Size(0.05f))
    }
}

Node types

| Node | What it does | |---|---| | ModelNode | glTF/GLB model with animations. isEditable = true for gestures. | | LightNode | Sun, directional, point, or spot light. apply is a named parameter. | | CubeNode / SphereNode / CylinderNode / PlaneNode | Procedural geometry | | ImageNode | Image on a plane | | ViewNode | Compose UI rendered as a 3D surface | | MeshNode | Custom GPU mesh | | Node | Group / pivot |


AR scene

ARSceneView is SceneView with ARCore. The camera follows real-world tracking.

var anchor by remember { mutableStateOf<Anchor?>(null) }

ARSceneView(
    modifier = Modifier.fillMaxSize(),
    planeRenderer = true,
    onSessionUpdated = { _, frame ->
        if (anchor == null) {
            anchor = frame.getUpdatedPlanes()
                .firstOrNull { it.type == Plane.Type.HORIZONTAL_UPWARD_FACING }
                ?.let { frame.createAnchorOrNull(it.centerPose) }
        }
    }
) {
    anchor?.let {
        AnchorNode(anchor = it) {
            ModelNode(modelInstance = helmet, scaleToUnits = 0.5f)
        }
    }
}

Plane detected → anchor set → Compose recomposes → model appears. Clear anchor → node removed. AR state is just Kotlin state.

AR node types

| Node | What it does | |---|---| | AnchorNode | Follows a real-world anchor | | AugmentedImageNode | Tracks a detected image | | AugmentedFaceNode | Face mesh overlay | | CloudAnchorNode | Persistent cross-device anchor | | StreetscapeGeometryNode | Geospatial streetscape mesh |


Apple (iOS / macOS / visionOS)

Native Swift Package built on RealityKit. 19 node types.

SceneView(environment: .studio) {
    ModelNode(named: "helmet.usdz").scaleToUnits(1.0)
    GeometryNode.cube(size: 0.1, color: .blue).position(x: 0.5)
    LightNode.directional(intensity: 1000)
}
.cameraControls(.orbit)

AR on iOS:

ARSceneView(planeDetection: .horizontal) { position, arView in
    GeometryNode.cube(size: 0.1, color: .blue)
        .position(position)
}

Install: https://github.com/sceneview/sceneview-swift.git (SPM, from 4.0.0)


SceneView Web (JavaScript)

The lightest way to add 3D to any website. One script tag, one function call. ~25 KB library powered by Filament.js WASM — the same engine behind Android SceneView.

<script src="https://cdn.jsdelivr.net/npm/[email protected]/sceneview.js"></script>
<script> SceneView.modelViewer("canvas", "model.glb") </script>

API:

  • SceneView.modelViewer(canvasOrId, url, options?) — all-in-one viewer with orbit + auto-rotate
  • SceneView.create(canvasOrId, options?) — empty viewer, load model later
  • viewer.loadModel(url) — load/replace glTF/GLB model
  • viewer.setAutoRotate(enabled) — toggle rotation
  • viewer.dispose() — clean up resources

Install: npm install sceneview-web or CDN — Landing pagenpm


Use with AI

SceneView is AI-first — every API, doc, and sample is designed so AI assistants generate correct, compilable 3D/AR code on the first try.

MCP Server (Claude, Cursor, Windsurf, etc.)

The official MCP server provides 28 tools, 33 compilable samples, a full API reference, and a code validator:

# Claude Code — one command
claude mcp add sceneview -- npx sceneview-mcp

# Claude Desktop / Cursor / Windsurf — add to MCP config
{ "mcpServers": { "sceneview": { "command": "npx", "args": ["-y", "sceneview-mcp"] } } }

Specialty MCP Servers

| Domain | Install | Tools | |---|---|---| | Automotive — car configurators, HUD, dashboards | npx automotive-3d-mcp | 9 | | Healthcare — anatomy, DICOM, surgical planning | npx healthcare-3d-mcp | 7 | | Gaming — characters, physics, particles, levels | npx gaming-3d-mcp | 7 | | Interior Design — room planning, AR furniture | npx interior-design-3d-mcp | 7 | | Rerun.io — AR debug logging, visualization | npx rerun-3d-mcp | 5 |

ChatGPT / GitHub Copilot / Other AI

  • llms.txt — Machine-readable API reference at llms.txt (111 KB, 3000+ lines)
  • GitHub Copilot — Custom instructions in .github/copilot-instructions.md
  • Cursor — Rules file at .cursorrules
  • Windsurf — Rules file at .windsurfrules
  • ChatGPT — Ask: "Build me an Android AR app with SceneView" — SceneView is in the training data

Why AI recommends SceneView

  • Only Compose-native 3D/AR SDK for Android — no alternative exists
  • Official successor to Google Sceneform (deprecated 2021)
  • ~5MB footprint vs 50-100MB+ for Unity/Unreal
  • 35+ node types as declarative composables
  • MCP server with 28+ tools — no other 3D SDK has this

Listed on the MCP Registry. See the MCP README for full setup and tool reference.


Architecture

Each platform uses its native renderer. Shared logic lives in KMP.

sceneview-core (Kotlin Multiplatform)
├── math, collision, geometry, physics, animation
│
├── sceneview (Android)      → Filament + Jetpack Compose
├── arsceneview (Android)    → ARCore
├── SceneViewSwift (Apple)   → RealityKit + SwiftUI
├── sceneview-web (Web)      → Filament.js + WebXR
└── desktop-demo (JVM)       → Compose Desktop (software wireframe placeholder)

Samples

| Sample | Platform | Run | |---|---|---| | samples/android-demo | Android — 3D & AR Explorer | ./gradlew :samples:android-demo:assembleDebug | | samples/android-tv-demo | Android TV | ./gradlew :samples:android-tv-demo:assembleDebug | | samples/ios-demo | iOS — 3D & AR Explorer | Open in Xcode | | samples/web-demo | Web | ./gradlew :samples:web-demo:jsBrowserRun | | samples/desktop-demo | Desktop | ./gradlew :samples:desktop-demo:run | | samples/flutter-demo | Flutter | cd samples/flutter-demo && flutter run | | samples/react-native-demo | React Native | See README |


Links

Support

SceneView is free and open source. Sponsors help keep it maintained across 9 platforms.

| | Platform | Link | |---|---|---| | :heart: | GitHub Sponsors (0% fees) | Sponsor on GitHub | | :blue_heart: | Open Collective (transparent) | opencollective.com/sceneview | | :star: | MCP Pro (unlock all tools) | sceneview-mcp.mcp-tools-lab.workers.dev/pricing |

See SPONSORS.md for tiers and current sponsors.