Releases: SceneView/sceneview
Releases · SceneView/sceneview
SceneView 3.2.0 — Physics, Sky, Fog, Lines, Labels, Reflections
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 bytimeOfDay: Float; turbidity controls sunrise/sunset warmthFogNode— reactiveView.fogOptionswrapper (density, height falloff, colour); zero-cost when disabledReflectionProbeNode— overrides scene IBL with a baked cubemap; global or local zone mode (activates withinradiusmetres)LineNode/PathNode— FilamentLINESprimitive; live GPU buffer updates viaupdateGeometry()BillboardNode— camera-facing quad viaonFrame+lookAtTextNode— extendsBillboardNode; Canvas-rendered text bitmap; reactivetext,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 = truehandles pinch-scale + two-finger rotate)
Ecosystem
- MCP
get_node_referencetool —@sceneview/mcpserver parsesllms.txt; exposesget_node_reference { nodeType }andlist_node_typesfor AI assistant integration
Dependencies
- Filament 1.56.0 → 1.70.0
- Kotlin 2.1.21 → 2.3.20
What's Changed
- deps: bump Kotlin 2.1.21 → 2.3.20 by @ThomasGorisse in #664
- feat(samples): model-viewer — model picker + scale 1.0 by @ThomasGorisse in #668
- deps: bump Filament 1.56.0 → 1.70.0 by @ThomasGorisse in #667
- feat(samples): ar-model-viewer — persistent plane mesh + gesture docs by @ThomasGorisse in #672
- feat(samples): post-processing — Bloom, DoF, SSAO, Fog by @ThomasGorisse in #670
- feat(samples): model-viewer — animation playback controls by @ThomasGorisse in #671
- feat: PhysicsNode + physics-demo sample (roadmap 3.2.0) by @ThomasGorisse in #673
- feat: DynamicSkyNode + FogNode + dynamic-sky sample (3.3.0) by @ThomasGorisse in #674
- feat(mcp): add get_node_reference tool by @ThomasGorisse in #676
- feat: LineNode, PathNode, BillboardNode, TextNode + samples (3.4.0) by @ThomasGorisse in #675
- feat: ReflectionProbeNode — zone-based IBL override composable (3.3.0) by @ThomasGorisse in #677
Full Changelog: v3.1.2...v3.2.0
v3.1.2
What's Changed
- Fix build sample on pull request by @hannesa2 in #663
- release: 3.1.2 by @ThomasGorisse in #669
New Contributors
Full Changelog: v3.1.1...v3.1.2
SceneView 3.1.1 — Build compatibility & BrainStem sample
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
ViewNodeunified —ViewNode2merged intoViewNode
Bug fixes
ToneMapper.LinearinARSceneprevents overlit camera backgroundImageNodeSIGABRT on dispose — destroyMaterialInstancebefore texturecameraNoderegistered withSceneNodeManagerso 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-camerasample: animated BrainStem character with futuristic rooftop night environment- Fix
autopilot-demobuild — remove implicitengineparam from SceneScope node calls
MCP server
npx sceneview-mcp@3.1.1Full changelog
See CHANGELOG.md for the complete history.
SceneView 3.0.0 — 3D & AR as Jetpack Compose composables
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 { }andARScene { }composables — full Filament rendering inside ComposeSceneScopeDSL:ModelNode,LightNode,CubeNode,SphereNode,CylinderNode,PlaneNode,ImageNode,ViewNode,MeshNodeARSceneScopeDSL:AnchorNode,PoseNode,HitResultNode,AugmentedImageNode,AugmentedFaceNode,CloudAnchorNoderememberModelInstance— async loading, returnsnullwhile in flightViewNode— embed Compose UI as a 3D surface in the sceneSceneNodeManager— 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
- Reverted kotlin version to 2.20.x for wider compatibility by @kalmanbencze in #656
v2.3.2
- Make keepScreenOn behavior configurable in SceneView by @Antiglobalist in #645
- Updated filament library to version 1.68.2 by @kalmanbencze in #651
- Updated misc dependencies by @kalmanbencze in #652
- Fixed the dokka aggregated docs publishing by @kalmanbencze in #653
v2.3.1
- Upgraded filament to latest version 1.66.0 and regenerated all resources by @kalmanbencze in #640
- Bump Fuel to 3.0.0-alpha04 by @Rimusolamus in #641
- Upgraded gradle build config to use KTS and misc improvements by @kalmanbencze in #642
- Fix destroy calls order in ARCameraStream (fixes #644) by @ThomasGorisse
- Remove the ExpoPlayer release on ExoPlayerNode destroy (fixes #644) by @ThomasGorisse
- Various fixes in AR Augmented Image Sample by @ThomasGorisse
- Fix swapped arguments in the update function of the Cube (fixes #643) by @ThomasGorisse
v2.3.0
- Filament 1.56.0 (#581) - 🙏🏻 @kmayoral
- ARCore 1.48.0 (#581) - 🙏🏻 @kmayoral
- New camera manipulator implementation (#571) - 🙏🏻 @kubax2000
- Fix ViewNode2 rendering (#579) - 🙏🏻 @davidgarciaanton
- glTF Camera Sample
- Media3 ExoPlayer Node sample (#520) - 🙏🏻 @green7night
- Fix crash during animation (#553) - 🙏🏻 @ShafranIvan
- Memory management fixes in ViewNode2 (#597) - 🙏🏻 @davidgarciaanton
- Android API 35 (#581) - 🙏🏻 @kmayoral
- Kotlin 2.0.21 (#581) - 🙏🏻 @kmayoral
- Play all
ModelNodeanimations whenautoAnimate = true - Default camera far to 1000 units
- AGP 8.9.1
- Update dependencies
- Rename Camera Manipulator Sample
- Documentation
v2.2.1
v2.2.0
- Added
ViewNodeto ar-model-viewer sample (#461) Thanks @sameerjj - Added ability to set speed of animations (#464) Thanks @johnwhh
ShapeNodeconstructor from an AndroidPath- 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
lightNodesandcameraNodesparent (#484) Thanks @PMarchenko - Fix
CameraNodedestroy 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