Anchor value generated in a fixed space through localization is not constant

Give us as much detail as possible regarding the issue you're experiencing.

Unity Editor version: 22.3.7f
ML2 OS version: Version 1.3.1
MLSDK version:1.9
Host OS: (MacOS)

Error messages from logs (syntax-highlighting is supported via Markdown):
I successfully scanned the real space through the Space app. I activated localization and ran an app that generates anchor in that state.
However, if you turn off the app, turn off and off the Magic Leaf 2 device, or if you are localizing with another space and return to the existing space, the location of the anchor changes and comes out. It's not displayed in a very different position, but it's just a certain amount of angle and x, y, and z position values that go wrong.

Can I know why this is happening?

And I was able to check the SpaceOrigin value on MLAnchors, but the value changes depending on where the app starts. Is this supposed to be right? (position : 0,0,0 / -0.1, -0.3 , - 0.24 / etc

I'm leaving another question because I don't understand perfectly and I'm using it in the wrong way.
Does the anchor itself or the number of anchor affect spatial perception?

The Spatial Anchors update their position to guarantee they are located in the correct space in the real world. This happens because at any point your headpose origin can change if you put the device to sleep, reboot, or lose headpose. The algorithm under the hood updates the anchor transform relative to your world coordinate frame so that it shows up where the user expects in the real world environment. Does that make sense to why the transform can update over time?

1 Like

I see, I understand that

So how we create digital content depending on the anchor, if the anchor's values of position and pose always change depending on where the device booted? The anchor is almost always on the right spot but the values of position and pose are change and the direction of x,y,z also change. Can we "retrive" its position, pose and the direction of x,y,z regarding to space and not regarging to where the device booted?

The device’s origin is relative to either:

  1. The point where the application starts.
  2. The point where the device establishes or regains head pose.

While the anchor's position may appear different each time, it consistently represents the same physical location in the real world.


A useful way to think about anchors is to imagine them as landmarks. For example, if you're meeting friends in an art gallery, you want to ensure everyone meets at the same spot. You have two options:

  1. Provide unique directions or coordinates for each friend.
  2. Describe the meeting spot relative to a specific artwork, like saying, "Let's meet 1 foot in front of the Magic Leap poster."

In this scenario, the Magic Leap poster serves as an anchor—a shared reference point that everyone can use.


I hope this analogy helps clarify things!

Additionally, you can retrieve the origin of a space using the Localization Map API. The Unity documentation explains how to query the origin (this requires OS 1.8.0 and Unity SDK 2.3.0).

That said, I would like to ask you to create a new topic if you have additional questions regarding our Spatial Anchors.