Skip to content

Samples

15 working sample apps ship with the repository. Clone and run them to see SceneView in action.

git clone https://github.com/SceneView/sceneview-android.git

Open in Android Studio, select a sample module, and run on a device or emulator.


3D samples

Model Viewer

Model Viewer

Load a glTF/GLB model with HDR environment lighting, orbit camera, and animation playback controls.

Scene(
    modifier = Modifier.fillMaxSize(),
    cameraManipulator = rememberCameraManipulator(),
    environment = environment
) {
    rememberModelInstance(modelLoader, "models/helmet.glb")?.let {
        ModelNode(modelInstance = it, scaleToUnits = 1.0f, autoAnimate = true)
    }
}

Demonstrates: ModelNode, rememberModelInstance, rememberCameraManipulator, HDR environments, animation controls


Camera Manipulator

Camera Manipulator

Orbit, pan, and zoom with gesture hints.

Demonstrates: CameraManipulator, one-finger orbit, pinch-zoom, two-finger pan


glTF Camera

glTF Camera

Use cameras defined inside a glTF file. The scene animates between camera viewpoints imported from Blender.

Demonstrates: CameraNode, glTF-embedded cameras, animated transitions


Dynamic Sky

Time-of-day sun positioning with turbidity and fog controls. Sunrise, noon, sunset — all driven by a Compose slider.

Demonstrates: DynamicSkyNode, FogNode, reactive lighting from Compose state


Reflection Probe

Metallic surfaces with local cubemap reflections that override the global environment.

Demonstrates: ReflectionProbeNode, IBL override, metallic materials


Physics Demo

Tap the screen to throw balls. They bounce off the floor and each other with rigid body physics.

Demonstrates: PhysicsNode, gravity, collision detection, tap-to-throw interaction


Post-Processing

Toggle visual effects: bloom, depth-of-field, SSAO, and fog. See the difference each makes.

Demonstrates: Filament post-processing pipeline, View options, composable toggles


Line & Path

3D line drawing, axis gizmos, spiral curves, and animated sine-wave paths.

Demonstrates: LineNode, PathNode, updateGeometry(), GPU line primitives


Text Labels

Camera-facing text labels floating above 3D spheres. Tap to cycle text.

Demonstrates: TextNode, BillboardNode, Canvas-rendered text in 3D space


Autopilot Demo

A fully autonomous 3D scene — no user interaction needed. Compose state drives everything.

Autopilot Demo

Demonstrates: Pure state-driven 3D, rememberInfiniteTransition, automatic animation


AR samples

AR Model Viewer

AR Model Viewer

Tap to place a 3D model on a detected plane. Pinch to scale, drag to move, two-finger rotate. Multiple models supported.

ARScene(
    planeRenderer = true,
    onSessionUpdated = { _, frame ->
        // Detect planes and create anchors
    }
) {
    anchor?.let { a ->
        AnchorNode(anchor = a) {
            ModelNode(modelInstance = model, scaleToUnits = 0.5f)
        }
    }
}

Demonstrates: ARScene, AnchorNode, ModelNode gestures, plane detection, persistent plane mesh


AR Augmented Image

AR Augmented Image

Detect a real-world image and overlay 3D content on it.

Demonstrates: AugmentedImageNode, AugmentedImageDatabase, image tracking, video overlay


AR Cloud Anchor

Host an anchor to Google Cloud and resolve it on another device. Cross-device AR persistence.

Demonstrates: CloudAnchorNode, anchor hosting/resolving, CloudAnchorState


AR Point Cloud

AR Point Cloud

Visualize ARCore's feature points as a real-time point cloud.

Demonstrates: ARCore feature points, point cloud rendering, onSessionUpdated


Running AR samples

AR samples require:

  • A physical device with ARCore support
  • ARCore (Google Play Services for AR) installed from Play Store
  • Camera permission granted

Tip

For best AR tracking, use a well-lit environment with textured surfaces (wood tables, carpet — not glass or plain white surfaces).