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

  • Samplessamples/ folder contains ready‑to‑run projects for every supported platform.
  • Documentation sitehttps://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 RerunBridge tool.

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.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트