Samples¶
One unified showcase app per platform. Clone the repo and run:
Platform Demos¶
Android Demo¶
samples/android-demo/ — Play Store ready, Material 3 Expressive
4-tab showcase (Explore / AR View / Samples / About) backed by an append-only demo registry of 59 demos (30 non-AR + 29 AR):
- Explore tab: Featured 3D & AR demos and Sketchfab model streaming
- AR View tab: Live
ARSceneViewcamera with plane detection and tap-to-place - Samples tab: The full demo catalog, grouped into six categories — 3D Basics, Lighting & Environment, Content, Interaction, Advanced, Augmented Reality
- About tab: Platform info, version, and GitHub links
Each demo is one append-only *Fragment.kt under
samples/android-demo/src/main/java/io/github/sceneview/demo/fragments/ and is
deep-link addressable as sceneview://demo/<id>. The collator
(samples/android-demo/scripts/collate-demos.sh) generates the demo registry
and the llms.txt demo list from those fragments, so the catalog never drifts.
In-app feedback
The Android demo includes an opt-in feedback button for reporting a bug or sharing an idea. When used, it records the screen and microphone and uploads them to the SceneView feedback service, which transcribes the audio and opens a pre-filled GitHub issue. The feature is consent-gated, the raw recording stays private and is deleted after 90 days, and only the transcript + device context appear on the public issue. See the Privacy Policy for the full data flow.
iOS Demo¶
samples/ios-demo/ — App Store ready, SwiftUI
3-tab SwiftUI app:
- 3D tab: RealityKit model viewer with environment controls
- AR tab: ARKit surface detection and model placement
- Samples tab: Feature gallery
Open samples/ios-demo/ in Xcode and run.
Web Demo¶
samples/web-demo/ — Filament.js + WebXR
Browser 3D viewer with:
- Filament.js WASM rendering (same engine as Android)
- WebXR AR/VR support ("Enter AR" / "Enter VR" buttons)
- Orbit camera, auto-resize
A plain static site (HTML + inline JS + a self-hosted sceneview.js) —
not a Gradle module. Open samples/web-demo/site/index.html directly, or
serve the folder:
Desktop Demo¶
samples/desktop-demo/ — Compose Desktop (Software Wireframe Placeholder)
Note: This demo does not use SceneView or Filament. It is a Compose Canvas wireframe renderer that serves as a UI placeholder for a future Filament JNI integration.
- Rotating wireframe cube, octahedron, diamond (Canvas 2D drawing, not GPU-accelerated)
- Manual perspective projection with basic trigonometry
- Material 3 dark theme
Android TV Demo¶
samples/android-tv-demo/ — Compose TV
D-pad controlled 3D viewer:
- Model cycling with directional buttons
- Auto-rotation
- Lean-back UI
Flutter Demo¶
samples/flutter-demo/ — PlatformView bridge
Native SceneView rendering inside Flutter:
- Android: ComposeView + Scene composable
- iOS: UIHostingController + SceneViewSwift
React Native Demo¶
samples/react-native-demo/ — Fabric bridge
Native SceneView rendering inside React Native:
- Android: ViewManager + Scene composable
- iOS: RCTViewManager + SceneViewSwift
Code Recipes¶
Markdown recipes with side-by-side Kotlin and Swift code:
| Recipe | File | Topics |
|---|---|---|
| Model Viewer | samples/recipes/model-viewer.md |
Load glTF, HDR environment, orbit camera |
| AR Tap-to-Place | samples/recipes/ar-tap-to-place.md |
Plane detection, anchor placement |
| Physics | samples/recipes/physics.md |
Rigid body, gravity, collision, bounce |
| Procedural Geometry | samples/recipes/procedural-geometry.md |
Cubes, spheres, custom shapes |
| Text Labels | samples/recipes/text-labels.md |
3D text, billboards, tap interaction |
Looking for Apple-specific samples?
See Samples — Apple Platforms for SwiftUI + RealityKit examples on iOS, macOS, and visionOS.