Jetpack XR SDK beta: migrate the names before you trust the stability label

Jetpack XR SDK beta stabilizes SceneCore, ARCore for Jetpack XR, and XR Runtime. Audit renamed spaces, suspend sessions, tests, devices, and rollout evidence.

Jetpack XR SDK beta: Android XR team moving a SceneCore build from emulator to a headset test lane
Beta narrows API churn; the migration still ends in a known build on a known device.

A project compiles after replacing a class name and moving session startup into a coroutine. The emulator opens. A headset still loses its anchor after tracking interruption because the migration stopped at source compatibility.

Jetpack XR SDK beta is the right moment to replace preview assumptions with a testable platform contract. Beta signals stabilizing APIs, not a guarantee that old behavior, every device path, or Compose for XR has reached the same state.

Map the Jetpack XR SDK beta by library

Google’s beta announcement names SceneCore, ARCore for Jetpack XR, and XR Runtime as beta. Compose for XR was scheduled to follow, so a single “XR SDK beta” label can overstate the maturity of a mixed project.

List every XR dependency with version, status, owner, and feature use. Keep Compose UI, scene graph, perception, and runtime changes in separate rows even when one screen touches all four.

Four tracks, four questions

Library Primary job Migration proof
SceneCore Entities, spaces, models, spatial audio Scene behavior and renamed types
ARCore for Jetpack XR Planes, depth, anchors, hit tests Physical-space recovery
XR Runtime Session and device lifecycle Coroutine, configuration, restart
Compose for XR Spatial UI Track its own release status

Resolve renamed spaces as a model change

Google renamed AnchorEntity to AnchorSpace, while ActivitySpace and AnchorSpace now share SpaceEntity. The names express a more consistent space model, so a mechanical search-and-replace is not the whole review.

Trace creation, ownership, persistence, transforms, disposal, and references across session restart. Compile errors show missing symbols; behavior tests show whether the new abstraction still represents the same product intent.

Move session creation into a real coroutine boundary

Session.create is now a suspend function. Decide which lifecycle owns the call, how cancellation propagates, where errors surface, and whether a second request can race the first during configuration change or app resume.

Keep session state explicit: absent, creating, ready, interrupted, closing, and failed. Disable commands that require a ready session instead of letting them queue against a stale reference.

Use the expanded test surface before the headset

The beta adds testing support for spatial audio, XR devices, and session configuration. The current SceneCore release notes and XR Runtime notes should drive the exact migration checklist.

Add focused tests for the renamed space model, session creation and cancellation, supported device capabilities, and configuration variants. Keep the emulator as a fast lane, then hand the same build identifier to device QA.

Bind anchors to a physical recovery path

A renamed AnchorSpace still has to survive session recreation, tracking loss, and a return to the same physical plane. Test creation, temporary occlusion, app background, session restart, relocalization, and cleanup.

Jetpack XR SDK beta: technician verifying an AnchorSpace marker against a physical plane in an XR headset lab
Original Neyrotex editorial photograph. Anchor persistence needs a physical-space test, not only a successful rename in source.

Record the build, device, firmware, room marker, lighting, tracking state, expected pose, observed pose, recovery time, and cleanup result. A screenshot of the object in place does not prove persistence.

Keep the device matrix narrow enough to finish

Start with the Android XR Emulator plus one suitable supported headset. Add another form factor only when a feature depends on it, such as wired glasses, depth behavior, controller input, or display geometry.

The migration is complete only when the renamed scene graph, suspend session startup, and device path belong to the same tested build. Do not combine evidence from different revisions.

Freeze dependency versions during evidence collection

Do not let a dynamic beta range move between emulator and headset runs. Record the resolved dependency graph and upgrade in a separate acceptance unit.

Plan rollout around evidence, not the beta badge

Use an internal or opt-in lane first. Monitor session failures, anchor recovery, device capability mismatches, frame stability, thermal behavior, and user escape paths. Keep a rollback build with the last known dependency set.

Beta lowers the probability of breaking API churn. It does not replace comfort, accessibility, boundary awareness, or performance checks inside a physical headset.

Package one reproducible device handoff

Give device QA the commit, dependency lockfile, app build, headset model, runtime version, environment setup, and one numbered user path. Include the expected spatial placement, recovery action after tracking loss, and visible state after exit.

Collect one screen recording or external camera view, structured logs, and the anchor or session identifiers required to connect a failure to that run. A tester should be able to name the failed step without translating it into an implementation guess.

When emulator and headset disagree, keep both results and investigate capability, lifecycle, sensor, or runtime differences. Do not overwrite the device failure with a green emulator run; both lanes must point to the same source build.

Retest the same handoff after every beta dependency bump before widening the rollout.

Our Android XR quality checklist covers store and interaction gates. The Unity CLI XR workflow connects build identity to device traces, while the Meta XR Operator guide shows a repeatable headset path. Return to the Virtual Reality hub for adjacent work.

The remaining question sits on the device

After the migration compiles, can the same build create a session, place content, lose tracking, recover the anchor, and exit cleanly on the headset your users will wear? Keep the rollout small until that answer is repeatable.