On October 21, 2026 the core of the Jetpack XR SDK left preview: androidx.xr.arcore and androidx.xr.scenecore both shipped 1.0.0. The release notes for 1.0.0 itself are short, so this post covers what stable commits you to, the sibling XR Compose beta02 you will actually hit in a build, and the 1.1.0-alpha01 line that opened the same day. If you followed the 1.0.0-beta01 breaking changes, this is the follow-through.
1. What 1.0.0 Stable Covers
Per the AndroidX release notes, ARCore for Jetpack XR 1.0.0 lists these capabilities: motion tracking, persistent anchors, hit testing, plane identification with semantic labeling (floor, walls, tabletops) and geospatial poses using Google's Visual Positioning System. SceneCore 1.0.0 is described as the library for placing and arranging 3D content as entities: 2D panels and 3D models in virtual and mixed-reality scenes, spatial environments and spatial audio sources, and anchoring virtual content to the real world.
No itemized API list: neither 1.0.0 entry enumerates API changes. The practical meaning of stable is that these surfaces are now what the release process treats as compatible going forward; diff against your last beta build rather than expecting a changelog to tell you.
2. XR Compose Is Not Stable Yet
The UI layer, androidx.xr.compose:compose, was at 1.0.0-beta02 the same day, and the page showed no stable section. It is the library most app code touches, so its notes matter most. Changes in beta02:
- Libraries now target Kotlin 2.2 and require kotlinc 2.2.
FollowMode.soft()parameters changed as the algorithm moved from smoothStep to exponentialDecay;halfLifeMsis renamedhalfLifeMillis. The changelog is inconsistent here, so check the API reference for the final signature.PitchLimitsis now an@JvmInline value classpacking two floats into aLong.- The deprecated
SpatialActivityPaneloverload is removed; use the one taking aSpatialActivityPanelController. - Deprecated movable modifiers are removed. Use the modifier taking a
MovePolicy.DragPolicyis gone; useSubspaceModifier.movable(). - Stateless
SliderandRangeSlideroverloads are deprecated in favor of stateful ones;RangeSliderState.activeRangeStart/activeRangeEndbecamestartValue/endValue. - You can transition between 3D and 2D composable content within one Activity, gated by
SpatialComposeFlags.isMainPanelResetOnSubspaceDisposeEnabled.
dependencies {
implementation("androidx.xr.compose:compose:1.0.0-beta02")
testImplementation("androidx.xr.compose:compose-testing:1.0.0-beta02")
}
3. The SceneCore Leak Workaround
This one is easy to miss. XR Compose 1.0.0-beta02 depends on androidx.xr.scenecore:1.0.0-rc01, which has a known memory leak. The release notes say to explicitly override the SceneCore dependency to 1.0.0, which includes the fix. In Gradle that is a direct declaration:
dependencies {
implementation("androidx.xr.compose:compose:1.0.0-beta02")
// beta02 pulls scenecore 1.0.0-rc01 (known leak); pin the stable fix
implementation("androidx.xr.scenecore:scenecore:1.0.0")
}
The notes do not give the exact coordinates, so I used the same scenecore artifact name that the 1.1.0-alpha01 dependency block uses. Confirm in your dependency report that the resolved version is 1.0.0.
4. What 1.1.0-alpha01 Adds
Both libraries opened a 1.1 line on October 21. These are alpha APIs and may change.
ARCore 1.1.0-alpha01
- New
SpatialAnnotationAPI for tracking 3D physical geometries and objects, withSpatialAnnotationTrackingOptions(builder pattern) to configure tracking through camera image buffers, andSpatialAnnotationTrackingModefor bounded quadrilateral (Quad) geometries. TestSpatialAnnotationfor simulating annotations in automated tests.- More Geospatial state:
geospatialPose,horizontalAccuracy,verticalAccuracyandorientationYawAccuracy. The notes do not name the owning class, so check the reference. - Configuring
AugmentedImagewith a max image count of 0 now throwsUnsupportedOperationException.
SceneCore 1.1.0-alpha01
- Dynamic meshes:
MeshBuffer.createDynamic,MeshBuffer.updateVertexData,MeshBuffer.updateIndexDataand a dynamicCustomMesh.BuilderFromMeshDataconstructor.CustomMesh.boundsis now avar. - glTF animation simplified:
GltfAnimation.start()takes no parameters, with newloopandspeedproperties andGltfModelEntity.stopAllAnimations().GltfAnimationStartOptions,start(options)andseekTo(Duration)are deprecated. GltfModelEntityAPIs now document that they throwIllegalStateException(Entity.DisposedException) on disposed entities.
// before (deprecated in 1.1.0-alpha01)
animation.start(GltfAnimationStartOptions(/* ... */))
// after
animation.loop = true
animation.speed = 1.0f
animation.start()
The exact property types are my reading of the notes, which list the names but not signatures, so verify against the reference before copying.
What I'd Do
If you are shipping on the stable libraries, pin ARCore and SceneCore to 1.0.0 and treat the 1.1 alphas as a place to prototype, not depend on. If you use XR Compose, expect one more round of source changes before it goes stable, and fix the SceneCore override now. Migrate off the deprecated movable modifiers and DragPolicy today; they are already removed in beta02.
Sources: AndroidX release notes for ARCore for Jetpack XR, XR SceneCore and Jetpack Compose for XR on developer.android.com, all dated October 21, 2026.
No comments yet. Be the first to leave one!