Skip to content

Releases: SceneView/sceneview

SceneView 3.2.0 — Physics, Sky, Fog, Lines, Labels, Reflections

20 Mar 19:35

Choose a tag to compare

3.2.0 — New node types: Physics, Sky, Fog, Reflections, Lines, Labels

New SDK nodes

  • PhysicsNode — rigid body simulation; gravity, floor collision, sleep detection; physics-demo sample (tap-to-throw)
  • DynamicSkyNode — time-of-day sun light (direction, colour, intensity) driven by timeOfDay: Float; turbidity controls sunrise/sunset warmth
  • FogNode — reactive View.fogOptions wrapper (density, height falloff, colour); zero-cost when disabled
  • ReflectionProbeNode — overrides scene IBL with a baked cubemap; global or local zone mode (activates within radius metres)
  • LineNode / PathNode — Filament LINES primitive; live GPU buffer updates via updateGeometry()
  • BillboardNode — camera-facing quad via onFrame + lookAt
  • TextNode — extends BillboardNode; Canvas-rendered text bitmap; reactive text, fontSize, textColor, backgroundColor

New SceneScope DSL composables

PhysicsNode {}, DynamicSkyNode {}, FogNode {}, ReflectionProbeNode {}, LineNode {}, PathNode {}, BillboardNode {}, TextNode {}

New samples

Sample Demonstrates
samples/physics-demo Tap-to-throw balls, floor collision, sleep
samples/post-processing Bloom, DoF, SSAO, Fog toggles
samples/dynamic-sky Time-of-day + turbidity + fog controls
samples/line-path 3-axis gizmo, spiral, animated sine-wave PathNode
samples/text-labels Camera-facing labels on 3D spheres; tap to cycle
samples/reflection-probe Metallic sphere with IBL override

Sample improvements

  • model-viewer: animation playback controls (play/pause, next, name label)
  • ar-model-viewer: persistent plane mesh; gesture docs (isEditable = true handles pinch-scale + two-finger rotate)

Ecosystem

  • MCP get_node_reference tool@sceneview/mcp server parses llms.txt; exposes get_node_reference { nodeType } and list_node_types for AI assistant integration

Dependencies

  • Filament 1.56.0 → 1.70.0
  • Kotlin 2.1.21 → 2.3.20

What's Changed

Full Changelog: v3.1.2...v3.2.0

v3.1.2

20 Mar 14:38
6f99a1e

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v3.1.1...v3.1.2

SceneView 3.1.1 — Build compatibility & BrainStem sample

19 Mar 22:25

Choose a tag to compare

SceneView 3.1.1

Patch release fixing Android Studio compatibility and polishing the gltf-camera sample. This release also bundles all of the 3.1.0 feature work (VideoNode, reactive animation API) which was never tagged.

Get started

implementation("io.github.sceneview:sceneview:3.1.1")
implementation("io.github.sceneview:arsceneview:3.1.1")

What's new in 3.1.x

New features

  • VideoNode — render a video stream (MediaPlayer / ExoPlayer) as a textured 3D surface
  • Reactive animation API — drive node animations directly from Compose state
  • ViewNode unified — ViewNode2 merged into ViewNode

Bug fixes

  • ToneMapper.Linear in ARScene prevents overlit camera background
  • ImageNode SIGABRT on dispose — destroy MaterialInstance before texture
  • cameraNode registered with SceneNodeManager so HUD-parented nodes render correctly
  • Entities removed from scene before destroy to prevent SIGABRT on Filament 1.56.0

MCP & AI tooling

  • MCP tools: validate_code, list_samples, get_migration_guide
  • Live GitHub Issues resource in MCP server
  • 89 unit tests for MCP validator, samples, migration guide, and issues modules

Build & samples (3.1.1 patch)

  • Downgrade AGP 8.13.2 → 8.11.1 for Android Studio compatibility
  • gltf-camera sample: animated BrainStem character with futuristic rooftop night environment
  • Fix autopilot-demo build — remove implicit engine param from SceneScope node calls

MCP server

npx sceneview-mcp@3.1.1

Full changelog

See CHANGELOG.md for the complete history.

SceneView 3.0.0 — 3D & AR as Jetpack Compose composables

15 Mar 22:07

Choose a tag to compare

SceneView 3.0.0

Ground-up rewrite. 3D and AR are now Jetpack Compose composables — nodes are declared, not managed.

Get started

implementation("io.github.sceneview:sceneview:3.0.0")   // 3D only
implementation("io.github.sceneview:arsceneview:3.0.0") // AR (includes sceneview)

New API

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

// AR — tap to place
ARScene(planeRenderer = true, onSessionUpdated = { _, frame ->
    anchor = frame.getUpdatedPlanes().firstOrNull()
        ?.let { frame.createAnchorOrNull(it.centerPose) }
}) {
    anchor?.let { AnchorNode(anchor = it) {
        ModelNode(modelInstance = helmet, scaleToUnits = 0.3f)
    }}
}

Highlights

  • Scene { } and ARScene { } composables — full Filament rendering inside Compose
  • SceneScope DSL: ModelNode, LightNode, CubeNode, SphereNode, CylinderNode, PlaneNode, ImageNode, ViewNode, MeshNode
  • ARSceneScope DSL: AnchorNode, PoseNode, HitResultNode, AugmentedImageNode, AugmentedFaceNode, CloudAnchorNode
  • rememberModelInstance — async loading, returns null while in flight
  • ViewNode — embed Compose UI as a 3D surface in the scene
  • SceneNodeManager — reactive bridge between Compose snapshot state and Filament scene graph
  • MCP server (@sceneview/mcp) — give Claude the full SDK so it writes correct Kotlin

Breaking changes

No source-compatible upgrade path from 2.x. See the Migration Guide for a step-by-step walkthrough.

Samples

Sample What it shows
model-viewer 3D model, HDR environment, orbit camera
ar-model-viewer Tap-to-place, plane detection, pinch/rotate
gltf-camera Cameras imported from a glTF scene
camera-manipulator Orbit / pan / zoom camera control
ar-augmented-image Real-world image detection + 3D overlay
ar-cloud-anchor Persistent cross-device anchors
ar-point-cloud ARCore feature point visualisation
autopilot-demo Autonomous animated AR scene

Full changelog

See CHANGELOG.md for the complete history.

v2.3.3

13 Jan 10:13

Choose a tag to compare

v2.3.2

18 Jan 12:53

Choose a tag to compare

v2.3.1

18 Jan 13:37

Choose a tag to compare

v2.3.0

19 Apr 16:17

Choose a tag to compare

v2.2.1

12 Jun 13:06

Choose a tag to compare

  • Fix model viewer sample dependency
  • Cleanup and update dependencies
  • Handle ModelNode duplicate children names
  • Fixed possible null pointer on node move (#431) Thanks @hshapley
  • Change VideoMaterial structure

v2.2.0

29 May 17:07

Choose a tag to compare

  • Added ViewNode to ar-model-viewer sample (#461) Thanks @sameerjj
  • Added ability to set speed of animations (#464) Thanks @johnwhh
  • ShapeNode constructor from an Android Path
  • Customizable rememberNode
  • Fixed camera manipulator transform conflict with camera node's one (#473) Thanks @wilfredbtan and @jacobmattsson
  • Model Viewer Compose sample: Changed default camera position
  • AR Model Viewer Compose sample: Add editable scale range
  • AR Model Viewer Compose sample: Simplified model loading
  • ARCore v1.43.0
  • Filament v1.52.0
  • Update Android dependencies
  • Kotlin v1.9.24
  • AGP v8.4.0
  • Gradle v8.6
  • Model Viewer Compose Sample: Scale x 2 on model double tap
  • Model Viewer Compose Sample: Scale down default model size
  • Fix World to Screen calculation (#499) Thanks @jacobmattsson
  • Fix World to View calculation
  • Fix View to World calculation (#400, #483) Thanks @dzivko1, @kubax2000, @den59k and @grassydragon
  • Fix lightNodes and cameraNodes parent (#484) Thanks @PMarchenko
  • Fix CameraNode destroy order (#475) Thanks @perunvolodymyr, @Denis-Makovskyi-ImproveIT, @jacobmattsson and @andytriboletti
  • Upgrade Gradle version to 8.2
  • Upgrade AGP dependency from 8.1.4 to 8.2.1
  • Removed flatbuffers and code related to loading models in Sceneform format (#477) Thanks @grassydragon