SceneView Demo: 3D & AR SDK
SwiftUI & RealityKit samples
Free
Nearly 50 live 3D and AR screens for SwiftUI, each linked to the code that draws it. Start with Cosmos, a galaxy in real time, and Rerun, an AR session replayed.
See what the SceneView SDK can do, on your own iPhone or iPad, before you write a line of code.
SceneView is an open-source 3D and augmented reality SDK for SwiftUI, built on RealityKit. This app is its demo: nearly 50 screens, each one a working sample of a feature you can put in your own app. Every screen links to the source code that draws it, and most of them are only a few lines long.
START HERE
- Cosmos — a galaxy, a star with a ringed planet, and particle storms that glow in real time. Tap the planet and the camera flies there.
- 3D Scan — move around a space and watch it take shape in 3D.
WHAT THE SAMPLES SHOW
- 3D models — load USDZ and Reality files, play their animations, and orbit, pinch and zoom the camera.
- Augmented reality — place a model on a table, hang it on a wall, track images and faces, or place it instantly without waiting for a plane.
- Real-world blending — real furniture and passing people stay in front of virtual objects, and the light around you lights the model.
- Lighting and materials — swap HDR environments and watch reflections and shadows change in real time.
- Scene mesh, depth, physics, geometry, spatial audio and more.
- Your own files — open a USDZ, Reality, STL, OBJ or PLY file and see how the SDK renders it.
FOR DEVELOPERS
A 3D model on screen is one view, and AR placement is one call. Find the screen that looks like what you want to build, open its code, and copy it into your project. The SDK, the samples and this app are free and open source: SceneView has more than 1,300 stars on GitHub, and over 500 public repositories declare it as a dependency.
github.com/sceneview/sceneview
PRIVACY
No account, no ads, no cross-app tracking. Your models and the camera feed stay on your device — the camera is used only for AR, and nothing it sees is stored or uploaded. The app sends usage statistics and crash reports (Firebase), never linked to your identity, to decide what to improve next — you can turn them off in Settings. Beyond that, the one feature that reaches the network is the online model gallery, and only while you are searching it.
Open source under the Apache License 2.0.
https://github.com/sceneview/sceneview
more This update keeps the app in step with the latest SceneView release. Nothing changes in how you use it.
4.62.0 6d ago
This update keeps the app in step with the latest SceneView release. Nothing changes in how you use it.
4.60.0 Oct 22
This update keeps the app in step with the latest SceneView release. Nothing changes in how you use it.
4.58.0 Oct 19
This update keeps the app in step with the latest SceneView release. Nothing changes in how you use it.
4.57.0 Oct 17
Turn your phone and your zoom stays: the camera keeps the distance you chose, and returns to it when you turn back.
In Model Viewer, a model you pick lands at the right size, even while the picker is still closing.
The Cosmos loading hint stays readable over the lit star.
4.56.0 Oct 14
Turn your phone and your zoom stays: the camera keeps the distance you chose, and returns to it when you turn back.
In Model Viewer, a model you pick lands at the right size, even while the picker is still closing.
The Cosmos loading hint stays readable over the lit star.
4.54.0 Oct 11
Turn your phone and your zoom stays: the camera keeps the distance you chose, and returns to it when you turn back.
In Model Viewer, a model you pick lands at the right size, even while the picker is still closing.
The Cosmos loading hint stays readable over the lit star.
4.53.0 Oct 9
Cosmos gains a ringed world: a planet with translucent rings orbits the blue star, lit by it. Tap the planet or the star and the camera flies there.
Home shows every demo's picture edge to edge, and opens on its most striking demos: Cosmos first, then Rerun AR Replay.
Controls over the 3D scene use Liquid Glass, so the model shows through. The About tab shows the SceneView mark in 3D.
Animation opens on a fox on a studio stage, Lighting Lab has a real stage, Video Texture plays again, and Spatial Audio fades with distance.
4.52.0 Oct 6
Explore now searches the online model gallery as you type. Results narrow after two characters, and the screen always tells you which state it is in — searching, nothing found, or offline with a Retry that actually retries.
Every bundled model in the viewer list now shows its thumbnail, Cyberpunk Hovercar included.
Plus the usual round of rendering and stability fixes across the 3D and AR screens.
4.51.0 Oct 1
Explore now searches the online model gallery as you type. Results narrow after two characters, and the screen always tells you which state it is in — searching, nothing found, or offline with a Retry that actually retries.
Every bundled model in the viewer list now shows its thumbnail, Cyberpunk Hovercar included.
Plus the usual round of rendering and stability fixes across the 3D and AR screens.
4.50.0 Sep 30
Explore now searches the online model gallery as you type. Results narrow after two characters, and the screen always tells you which state it is in — searching, nothing found, or offline with a Retry that actually retries.
Every bundled model in the viewer list now shows its thumbnail, Cyberpunk Hovercar included.
Plus the usual round of rendering and stability fixes across the 3D and AR screens.
4.40.0 Sep 26
Explore now searches the online model gallery as you type. Results narrow after two characters, and the screen always tells you which state it is in — searching, nothing found, or offline with a Retry that actually retries.
Every bundled model in the viewer list now shows its thumbnail, Cyberpunk Hovercar included.
Plus the usual round of rendering and stability fixes across the 3D and AR screens.
4.39.0 Sep 23
Explore now searches the online model gallery as you type. Results narrow after two characters, and the screen always tells you which state it is in — searching, nothing found, or offline with a Retry that actually retries.
Every bundled model in the viewer list now shows its thumbnail, Cyberpunk Hovercar included.
Plus the usual round of rendering and stability fixes across the 3D and AR screens.
4.38.0 Sep 20
Explore now searches the online model gallery as you type. Results narrow after two characters, and the screen always tells you which state it is in — searching, nothing found, or offline with a Retry that actually retries.
Every bundled model in the viewer list now shows its thumbnail, Cyberpunk Hovercar included.
Plus the usual round of rendering and stability fixes across the 3D and AR screens.
4.37.0 Sep 17
This update polishes the 3D and AR demos with rendering refinements and stability fixes. Explore SceneView's declarative building blocks for 3D and augmented reality on iOS.
4.35.0 Sep 11
This update polishes the 3D and AR demos with rendering refinements and stability fixes. Explore SceneView's declarative building blocks for 3D and augmented reality on iOS.
4.34.0 Sep 10
This update polishes the 3D and AR demos with rendering refinements and stability fixes. Explore SceneView's declarative building blocks for 3D and augmented reality on iOS.
4.33.0 Aug 26
This update polishes the 3D and AR demos with rendering refinements and stability fixes. Explore SceneView's declarative building blocks for 3D and augmented reality on iOS.
4.31.0 Aug 18
This update polishes the 3D and AR demos with rendering refinements and stability fixes. Explore SceneView's declarative building blocks for 3D and augmented reality on iOS.
4.30.0 Aug 17
This update polishes the 3D and AR demos with rendering refinements and stability fixes. Explore SceneView's declarative building blocks for 3D and augmented reality on iOS.
4.29.0 Aug 12
This update polishes the 3D and AR demos with rendering refinements and stability fixes. Explore SceneView's declarative building blocks for 3D and augmented reality on iOS.
4.27.0 Aug 10
This update polishes the 3D and AR demos with rendering refinements and stability fixes. Explore SceneView's declarative building blocks for 3D and augmented reality on iOS.
4.26.0 Aug 4
This update polishes the 3D and AR demos with rendering refinements and stability fixes. Explore SceneView's declarative building blocks for 3D and augmented reality on iOS.
4.25.0 Jul 28
Added
- Public Surface mirroring — clean in-app video recording without MediaProjection (#2626). SurfaceMirrorer (io.github.sceneview.utils) is now public and wired into both composables via the new surfaceMirrorer parameter on SceneView and ARSceneView (+ rememberSurfaceMirrorer()). Attach a MediaRecorder input surface with startMirroring(surface) / stopMirroring(surface) and get an MP4 of exactly what the scene renders — in AR, camera feed + virtual content composited. No system consent dialog, no mediaProjection foreground service, no overlay UI in the frame. Multi-surface capable, letterboxed, startMirroring thread-safe/JNI-free, both calls idempotent. New video-recording demo + llms.txt "Record the scene to MP4" section.
- Binary-compatibility note — recompile required: adding the surfaceMirrorer parameter changes the JVM method descriptor of the @Composable SceneView and ARSceneView functions, so this release is binary-incompatible — code compiled against an earlier SceneView keeps calling the old descriptor and must be recompiled against this version. It is source-compatible (the parameter defaults to null), so no call site needs to change — a recompile is enough. Shipped under a minor version bump.
- sceneview-mcp: new generate_3d_model tool — Tripo BYOK text/image→GLB (#2647). Closes the agentic asset loop next to search_models: when no existing asset fits, the assistant generates a brand-new GLB from a text prompt (text→3D) or a source image (image→3D) via the Tripo AI API and gets back a direct GLB download URL (expires ~5 min — the result tells the assistant to download and self-host immediately) plus license/attribution metadata, ready for rememberModelInstance and AR placement. Two quality tiers: "fast" (default, Tripo P1 low-poly — AR-ready, ~25–30 s) and "hd" (Tripo H3.1 quad topology + detailed geometry/textures, up to ~100 s). BYOK via TRIPO_API_KEY, mirroring the SKETCHFAB_API_KEY pattern — no server-side key custody, generations are billed to the user's own Tripo account; a missing key returns actionable setup instructions. Bounded polling (2 min fast / 4 min hd) with structured errors for task failure, rate limiting, and timeout. Ships with a new llms.txt recipe ("generate → rememberModelInstance → place in AR"). The npm publish is a separate follow-up on the MCP's independent version track (#1705).
Changed
- Reworded the AssetSourceChip "Bundled fallback" label to plain-language "Offline model" (demo apps only — tap-to-place unification plan item 4, #2482).
Fixed
- samples/ios-demo (Sketchfab streaming): the live Sketchfab → USDZ → RealityKit stream never actually reached the user. SketchfabService's URLSessionDownloadDelegate resumed its continuation with the delegate's temporary location URL, but only moved the file into the cache after the delegate method returned — by which point URLSession had already deleted that temp file (Apple's documented contract). Every streamed model download therefore fully transferred from the S3 CDN and was then discarded, so SketchfabAssetResolver silently fell back to the bundled asset and the Explore / streamed demos (SceneGallery, Materials, ModelViewer "Surprise me", etc.) only ever rendered offline copies — never the live-streamed model. The temp file is now moved to a caller-owned staged URL inside the delegate callback, before it returns. Uncovered by the #2356 keyed-QA mechanism (keyed sim run: 0 streamed / 4 fallback before, 4 streamed / 0 fallback after).
- Restored the Maestro 3D zoom-QA coverage that had silently stopped running (#2633). The reusable flows/demo.yaml subflow declared its own env: CAMERA_DISTANCE: "" default which — contrary to its comment — *masked* the value the caller passes via runFlow → env: (verified on-emulator under Maestro 2.6.1/GraalJS), so the optional near/far zoom screenshots (#1571) were always skipped while the flow stayed green. The masking default is removed and the gate is now typeof-guarded, so the zoom section runs…
4.22.0 Jul 17
- Smoother, more accurate camera controls in the 3D model viewer
- Refreshed demo catalog with improved AR onboarding and clearer guidance
- Depth-of-field, lighting and material rendering fixes
- Performance improvements across rendering and AR tracking
- Many stability and quality fixes
4.18.0 Jun 16
This update keeps the app in step with the latest SceneView release. Nothing changes in how you use it.
more Version 4.62.0 6d ago
Data Not Linked to You The following data may be collected but it is not linked to your identity:
Location Search History Identifiers Usage Data Diagnostics