sceneview-mcp
OfficialProvides 3D and AR capabilities for Android applications using Jetpack Compose with Filament renderer, supporting both 3D scenes and ARCore integration.
Provides 3D and AR capabilities for iOS, macOS, and visionOS applications using SwiftUI with RealityKit renderer, including AR scene functionality.
Provides community support and discussion channels for SceneView developers and users through Discord integration.
Provides 3D and AR capabilities for Flutter applications using native platform views for cross-platform 3D rendering.
Provides repository hosting, issue tracking, and community collaboration for SceneView development and distribution.
Provides AI-assisted code generation for 3D and AR development through custom instructions and API references optimized for GitHub Copilot.
Provides funding and sponsorship opportunities for SceneView development through GitHub Sponsors integration.
Provides support for glTF/GLB 3D model formats with animation capabilities across all supported platforms.
Provides 3D and AR capabilities for iOS applications using SwiftUI with RealityKit renderer, including AR scene functionality.
Provides 3D capabilities for web applications through sceneview.js library powered by Filament.js WASM renderer.
Provides 3D and AR UI components for Android applications using Jetpack Compose framework with declarative 3D scene composition.
Provides CDN distribution for SceneView web library enabling easy integration with one script tag.
Provides 3D and AR development capabilities for Android and web platforms using Kotlin language with declarative UI patterns.
Provides 3D capabilities for macOS applications using SwiftUI with RealityKit renderer.
Provides package distribution for SceneView MCP server and web library through npm registry.
Provides funding and sponsorship opportunities for SceneView development through Open Collective platform.
Provides 3D and AR capabilities for React Native applications using native platform views for cross-platform 3D rendering.
Provides Maven Central repository distribution for Android SceneView libraries and dependencies.
Provides 3D and AR development capabilities for Apple platforms using Swift language with SwiftUI framework.
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.
Try the demo apps
See SceneView capabilities in action — install the live demos in one tap:
Browse all sample sources in samples/ — Android · iOS · Web · Desktop · TV · Flutter · React Native.
Tip — every demo opens directly via
https://sceneview.github.io/open?demo=<id>. For example,…/open?demo=ar-rerunlands straight on the AR Rerun debug screen with a single tap from any QR code or link.
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 — friendly DSL (Filament.js engine + SceneView wrapper) -->
<script src="https://cdn.jsdelivr.net/gh/sceneview/sceneview@v4.0.9/website-static/js/filament/filament.js"></script>
<script src="https://cdn.jsdelivr.net/gh/sceneview/sceneview@v4.0.9/website-static/js/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.1.1") // 3D
implementation("io.github.sceneview:arsceneview:4.1.1") // AR (includes 3D)
}iOS / macOS / visionOS (Swift Package Manager):
https://github.com/sceneview/sceneview.git (from: 4.1.0)Web (sceneview.js — friendly DSL, two <script> tags):
<!-- 1. Filament.js engine (WASM) -->
<script src="https://cdn.jsdelivr.net/gh/sceneview/sceneview@v4.0.9/website-static/js/filament/filament.js"></script>
<!-- 2. SceneView wrapper (exposes SceneView.modelViewer / .create / .startAR) -->
<script src="https://cdn.jsdelivr.net/gh/sceneview/sceneview@v4.0.9/website-static/js/sceneview.js"></script>Web (Kotlin/JS):
dependencies {
implementation("io.github.sceneview:sceneview-web:4.0.9")
}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 — 26+ composables
Category | Nodes | What they do |
Models |
| glTF/GLB with skeletal/morph animations. |
Primitives |
| Procedural geometry, parametric size/segments |
Curves & shapes |
| Single segments, polylines, extruded 2D polygons |
Custom geometry |
| Direct Filament |
Surfaces |
| PNG/JPG plane, video plane (MediaPlayer), camera-facing sprite |
3D text |
| World-space text label that always faces the camera |
Compose-in-3D |
| Any Compose UI rendered as a 3D surface — buttons, lists, animations |
Lighting |
| Sun/dir/point/spot lights, local IBL, time-of-day sky, atmospheric fog |
Physics |
| Simple rigid-body simulation (gravity, collisions) |
Cameras |
| Main and picture-in-picture cameras |
Group |
| Empty pivot for nesting and transform inheritance |
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 |
| Pin a node to a real-world ARCore |
| Live surface cursor — pose comes from each frame's hit-test |
| Position a node at any ARCore |
| Generic wrapper for any |
| Image tracking — pose + 2D extent of a detected image |
| Face mesh overlay (front camera) |
| Persistent cross-device anchor (host + resolve) |
| Geospatial — semantic city mesh (buildings, terrain) |
| Geospatial — anchor pinned to ground at a lat/lng |
| Geospatial — anchor pinned to a building rooftop |
AR features
Every ARCore feature surfaced as a Compose-friendly API:
Feature | API surface |
Plane / depth / instant placement |
|
Geospatial (VPS) |
|
Cloud Anchors |
|
Augmented Faces & Images |
|
Image Stabilization (EIS) |
|
Camera exposure & focus |
|
Record & Replay |
|
Rerun.io live debug |
|
Permission flow |
|
See docs/docs/ar-recording.md, RECORDING_PLAYBACK.md, and the AR Debug — Rerun.io section in llms.txt.
Capabilities
What you can do across all 3D and AR scenes — beyond placing nodes.
Capability | What it gives you | Where it lives |
Gestures | Drag, pinch-to-scale, two-finger rotate, elevate, tap. Per-node opt-in via |
|
Animations | Skeletal/morph from glTF, plus per-node spring/property/smooth-transform. |
|
Physics | Rigid-body dynamics — gravity, collisions, impulses. Pure-KMP simulation (no JNI). |
|
Collision & raycasting | Ray vs Box / Sphere intersections, hit-testing, frustum culling. |
|
Procedural geometry | Generators for cube/sphere/cylinder/cone/torus/capsule, plus extrusion from 2D shapes (Earcut + Delaunator). |
|
HDR environment | IBL lighting + skybox from |
|
Custom materials | Filament |
|
Post-processing | Bloom, depth of field, SSAO, vignette, color grading, tone mapping. |
|
Compose UI in 3D | Render any |
|
Multiple cameras | Picture-in-picture, mini-map, security-camera views. |
|
Reactive scene graph | Compose-driven recomposition: change state → tree updates. No imperative |
|
Apple (iOS / macOS / visionOS)
Native Swift Package built on RealityKit. 19 node types mirroring the Android API.
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)
}Nodes available — ModelNode · GeometryNode (cube/sphere/cylinder/cone/torus/capsule/plane) · LightNode · ImageNode · VideoNode · TextNode · ViewNode · BillboardNode · MeshNode · LineNode · PathNode · ShapeNode · PhysicsNode · ReflectionProbeNode · DynamicSkyNode · FogNode · CameraNode · AugmentedImageNode · SceneReconstructionNode (visionOS scene mesh).
Plus the iOS RerunBridge with the same wire format as Android, and a NodeBuilder DSL for declarative composition outside SwiftUI.
Install: https://github.com/sceneview/sceneview.git (SPM, from 4.1.0)
SceneView Web (JavaScript + Kotlin/JS)
The lightest way to add 3D to any website. Two <script> tags, one function call.
Friendly DSL (~25 KB) powered by Filament.js WASM (~210 KB) — the same engine behind Android SceneView.
<!-- 1. Filament.js engine (WASM) -->
<script src="https://cdn.jsdelivr.net/gh/sceneview/sceneview@v4.0.9/website-static/js/filament/filament.js"></script>
<!-- 2. SceneView wrapper -->
<script src="https://cdn.jsdelivr.net/gh/sceneview/sceneview@v4.0.9/website-static/js/sceneview.js"></script>
<script> SceneView.modelViewer("canvas", "model.glb") </script>Note: the
sceneview-webnpm package is the lower-level Kotlin/JS UMD bundle — it expects aFilamentglobal and does not include the friendlySceneView.modelViewerDSL. Use the snippet above for vanilla-JS sites. The npm package is intended for Kotlin/JS or webpack-based projects.
JavaScript API (script-tag):
SceneView.modelViewer(canvasOrId, url, options?)— all-in-one viewer with orbit + auto-rotateSceneView.create(canvasOrId, options?)— empty viewer, load model laterviewer.loadModel(url)— load/replace glTF/GLB modelviewer.setAutoRotate(enabled)— toggle rotationviewer.dispose()— clean up resources
WebXR — AR & VR in the browser
const ar = await SceneView.startAR("canvas", { hitTest: true }) // immersive-ar
const vr = await SceneView.startVR("canvas") // immersive-vrClass | Mode | Use |
|
| Phone passthrough AR with hit-test, anchors, light estimation |
|
| Headset VR with controller input, reference spaces |
| both | Low-level frame loop, |
Kotlin/JS power-user API
For Kotlin Multiplatform projects, the same engine is exposed as a Kotlin/JS class with an OrbitCameraController, a geometry DSL, and reactive node updates:
implementation("io.github.sceneview:sceneview-web:4.0.0")Install: npm install sceneview-web or CDN — Landing page — Playground — npm
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"] } } }Highlights: generate_scene, debug_issue, search_models (Sketchfab BYOK), analyze_project (audit existing app), validate_code (compile-check before sending), plus per-platform recipes for AR, physics, geometry, and Compose-in-3D.
Claude Code plugin (MCP + slash commands + hooks)
Want the MCP server plus the full SceneView contributor toolkit (one-shot release, review, cross-platform sync, version-bump, etc.) in a single install? Use the SceneView Claude Code marketplace:
/plugin marketplace add sceneview/claude-marketplace
/plugin install sceneview@sceneviewYou get:
sceneview-mcpserver — same as above, started automatically11 namespaced slash commands —
/sceneview:contribute,/sceneview:release,/sceneview:review,/sceneview:test,/sceneview:document,/sceneview:quality-gate,/sceneview:publish-check,/sceneview:sync-check,/sceneview:version-bump,/sceneview:evaluate,/sceneview:maintainCross-platform reminder hooks — gentle nudges when you edit Android, iOS, Web, or KMP-core APIs to keep the other platforms in sync
Specialty MCP Servers
Domain | Install | Tools |
Automotive — car configurators, HUD, dashboards |
| 9 |
Healthcare — anatomy, DICOM, surgical planning |
| 7 |
Gaming — characters, physics, particles, levels |
| 7 |
Interior Design — room planning, AR furniture |
| 7 |
Rerun.io — AR debug logging, visualization |
| 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.mdCursor — Rules file at
.cursorrulesWindsurf — Rules file at
.windsurfrulesChatGPT — 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.
Developer tools
AR Debug — hosted Rerun viewer
Tap Save & Share in the AR Rerun demo to flush a .rrd recording on
your dev machine, then re-host it on any public URL (Cloudflare R2,
GitHub release, gist) and open:
…in any browser to scrub the AR session frame-by-frame. No install, no
Rerun viewer needed locally — perfect for attaching a fully-replayable
session to a bug report. Powered by @rerun-io/web-viewer under SceneView branding.
See the AR Debug — Rerun.io section in llms.txt for the
full architecture (live mode + save mode + control protocol) and the
Kotlin API surface (RerunBridge.requestSaveAndShare).
Record & Replay AR sessions
Record & Replay AR sessions — capture an outdoor ARCore session once with
ARRecorder, replay it 1:1 at the desk viaARSceneView(playbackDataset = file). Pair with the Rerun bridge for record-replay-inspect debugging. Seedocs/docs/ar-recording.mdand theRecord & Playbackdemo.
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 |
| Android — 3D & AR Explorer |
|
| Android TV |
|
| iOS — 3D & AR Explorer | Open in Xcode |
| Web |
|
| Desktop |
|
| Flutter |
|
| 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) | |
:blue_heart: | Open Collective (transparent) | |
:star: | MCP Pro (unlock all tools) |
See SPONSORS.md for tiers and current sponsors.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sceneview/sceneview'
If you have feedback or need assistance with the MCP directory API, please join our Discord server