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.
What is SceneView?
SceneView is an open‑source, declarative framework for building 3D graphics and Augmented Reality (AR) experiences across many platforms – Android, iOS/macOS/visionOS, Web, Desktop, TV, Flutter and React Native. It wraps Google’s Filament renderer (Android/Web) and Apple’s RealityKit (iOS) behind the familiar UI toolkits you already use (Jetpack Compose, SwiftUI, Kotlin/JS, Flutter, React Native). The goal is to let you describe a scene with composable UI code instead of writing low‑level OpenGL/Metal boilerplate.
Core ideas
| Idea | How it works |
|---|---|
| Composable scene graph | A SceneView (or ARSceneView) is a composable container. Inside you place node composables such as ModelNode, CubeNode, LightNode, etc. State changes (e.g., a Kotlin MutableState variable) automatically trigger recomposition, updating the 3‑D scene without manual scene‑graph manipulation. |
| Single‑engine runtime | Android uses Filament (real‑time production‑grade engine). iOS uses RealityKit. The same high‑level API is exposed on each platform, so the same code can run on Android, iOS, Web, Desktop, TV, Flutter, React Native, etc. |
| AR integration | On Android the AR variant (ARSceneView) builds on ARCore; on iOS it builds on RealityKit‑AR. All ARCore features – plane detection, depth, geospatial anchors, cloud anchors, face tracking, image tracking – are exposed as simple composable nodes (AnchorNode, AugmentedFaceNode, StreetscapeGeometryNode, …). |
| AI‑first tooling | A dedicated MCP server (sceneview-mcp) ships with dozens of AI‑friendly commands (e.g., generate_scene, debug_issue). It lets large‑language‑model assistants like Claude produce ready‑to‑compile SceneView code in one shot. |
| Cross‑platform packaging | The project publishes Maven artifacts for Android, an npm package for the web, a Swift Package for Apple platforms, and sample projects for Flutter and React Native. |
Main capabilities
| Category | Examples |
|---|---|
| Model rendering | Load glTF/GLB (ModelNode), skeletal or morph animations, editable gestures (isEditable). |
| Primitives & custom geometry | CubeNode, SphereNode, CylinderNode, GeometryNode, MeshNode (direct Filament buffers). |
| Materials & post‑processing | Load Filament .filamat materials, built‑in lit/unlit shaders, bloom, SSAO, depth‑of‑field, tone‑mapping. |
| Lighting & environment | LightNode (point, directional, spot), IBL HDR environments, DynamicSkyNode, FogNode, ReflectionProbeNode. |
| Physics | Simple rigid‑body simulation (PhysicsNode) – gravity, collisions, impulses – pure Kotlin‑Multiplatform, no native JNI. |
| Interaction | Per‑node gestures (drag, pinch, rotate), hit‑testing, ray‑casting, NodeGestureDelegate. |
| Compose‑in‑3D | ViewNode renders any Jetpack Compose UI (or SwiftUI view) onto a textured plane that remains fully interactive (buttons, scrolling, animations). |
| Multiple cameras | Main camera + picture‑in‑picture (SecondaryCamera). |
| AR‑specific | Plane/Depth/Instant‑Placement, Geospatial anchors (Streetscape, Terrain, Rooftop), Cloud Anchors, Augmented Images/Faces, AR recording & playback, Rerun.io live debug bridge. |
Platform support
| Platform | Renderer | UI framework | Maturity |
|---|---|---|---|
| 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 |
| Compose Multiplatform | Filament / RealityKit per platform | sceneview‑compose |
Alpha |
| Claude / AI MCP | — | MCP Server | Stable |
Getting started (install snippets from the README)
Android (3D + AR)
implementation("io.github.sceneview:sceneview:4.33.0") // 3‑D only
implementation("io.github.sceneview:arsceneview:4.33.0") // AR (includes 3‑D)
iOS / macOS / visionOS (Swift Package Manager)
https://github.com/sceneview/sceneview.git (from tag 4.33.0)
Web – script tag (quick demo)
<script src="https://cdn.jsdelivr.net/gh/sceneview/sceneview@v4.33.0/website-static/js/filament/filament.js"></script>
<script src="https://cdn.jsdelivr.net/gh/sceneview/sceneview@v4.33.0/website-static/js/sceneview.js"></script>
<script>SceneView.modelViewer("canvas", "model.glb")</script>
Web – Kotlin/JS (Gradle)
dependencies {
implementation("io.github.sceneview:sceneview-web:4.33.0")
}
AI‑assisted development (Claude MCP)
claude mcp add sceneview -- npx sceneview-mcp
Minimal example (Android Jetpack Compose)
SceneView(modifier = Modifier.fillMaxSize()) {
rememberModelInstance(modelLoader, "models/helmet.glb")?.let {
ModelNode(modelInstance = it, scaleToUnits = 1.0f, autoAnimate = true)
}
}
The same idea works on iOS (SwiftUI) and on the web with a one‑line DSL.
Who might use it?
- App developers who want AR/3‑D features without learning OpenGL/Metal or managing a scene graph manually.
- Cross‑platform product teams building the same visual experience on Android, iOS, and the web.
- Rapid prototypers – the demo apps can be installed from a QR code, and the AI‑first MCP server lets LLM assistants generate full AR screens in seconds.
- Educators & makers – the declarative API mirrors normal UI code, making 3‑D concepts easier to teach.
Where to learn more
- Samples –
samples/folder contains ready‑to‑run projects for every supported platform. - Documentation site – https://sceneview.github.io/ (includes migration guide from Google’s archived Sceneform).
- Discord community – linked in the badge bar for questions and showcase.
- Rerun.io integration – live debugging of AR state via the
RerunBridgetool.
In short: SceneView is a production‑ready, multi‑platform library that lets you write 3‑D and AR apps with the same declarative UI code you already know, backed by high‑performance renderers and a suite of AI‑friendly tooling.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트