Magic Leap Spectator is a mobile application that makes it easy for anyone to capture and share high quality mixed reality content streamed from a Magic Leap 2 device. This powerful application supports a wide variety of use cases, for example:
- Creating video documentation of your Magic Leap 2 applications.
- Creating second-screen experiences for demos.
- Filming “how-to” videos for your ML2 applications.
- Broadcasting your ML2 application content live to audiences at events.
ML Spectator allows you to record your digital content as videos or photos so you can share and/or process them later on.
Installing Magic Leap Spectator
The Beta of Magic Leap Spectator mobile app for iOS will be available in Q1 of 2024.
Installing on iOS
Joining the Beta
The Magic Leap Spectator beta is managed through Apple TestFlight. In order to be added to the beta and obtain a download link for the app, follow these steps:
- Installations of ML Spectator on iPhone are managed through TestFlight, which can be found in the App Store.
- Download Magic Leap Spectator from this link: [Download Link available in Q1 2024]
- The beta of ML Spectator will be available for download up to 90 days after it’s initial release. After the beta phase, any further updates will be released via the Apple App Store.
Note - All app screens and illustrations within this guide may not reflect the current or final build of ML Spectator during this beta phase.
Launch Magic Leap Spectator
Open the Magic Leap Spectator App
Once the app has been downloaded, navigate to your iOS device’s home screen and click on the app to launch it. On launch, a splash screen will load before the app asks for necessary permissions in order to begin. Click “Allow” on these permissions to enter and use the app.
Note - permissions are needed for ML Spectator to work properly and provide a complete experience. For more information on why these permissions are necessary, see: Device Requirements.
Using Magic Leap Spectator
Setting Up - Your Environment
Setting Up Your Surroundings
As ML Spectator is designed to stream spatial content, it's likely that a sizable space is required to position and view your content in. To start with, make sure you are in an environment that has enough space to view the scale of your AR project on both devices, and that also allows you to walk around freely.
An uncluttered space will not only allow you to move around your content uninhibited, but will also minimize the risk of the real-world environment drawing over your digital content. For more best practices on setting up your space, see: General Setup & Recording Best Practices.
Setting Up - Print ML Spectator Marker
Print A Marker
In order to align the world-view of your Magic Leap 2 headset and your mobile device, you will need to place a physical marker in your space and have both devices scan it. You can print and/or download the marker within the ML Spectator app (go to “Help” or “Settings” and select “Print Marker”), or by opening this link - Spectator_Marker.pdf.
When printing, use a “no margins” setup and print at 100% scale. The black square of the marker should be 15cm wide as it fits on the printout.
Connect to a Magic Leap 2 Device
Connect Devices to Wi-Fi
To begin, you must ensure that both of your devices (your mobile phone and Magic Leap 2) are connected to the same Wi-Fi network. To create a stable, performance-optimized connection, it is highly recommended to use a 5Ghz network in an area that has strong Wi-Fi connectivity for both devices. Interference, and/or distance from your Wi-Fi router can lead to a drop in performance and/or functionality.
Connect ML Spectator to a Magic Leap 2
There are two primary methods to connect to a Magic Leap 2 device - auto-detect device and manual IP address search.
Note - in order to connect to a Magic Leap 2 device, it must be running an ML Spectator-compatible ML2 app. Otherwise, your ML2 will not be found in the ML Spectator app and it won’t be able to be connected-to manually. For more information see: Making Your ML2 Apps Magic Leap Spectator Compatible.
ML Spectator’s main screen on launch is the “Connect to a Magic Leap 2 device” screen. Whenever launching this screen, the app will always try to detect Magic Leap 2 devices that are “online”. Online means ML Spectator can detect an ML2 device that’s:
- On the same Wi-Fi network as your mobile device, and
- Is running an ML Spectator-compatible app (that’s not running in the background)
- ML Spectator access has been enabled in the App settings (For some app where this applies).
The app will try to auto-detect a device (or devices) as indicated by the “Searching for devices” status. If a device(s) is found, then it will appear in the “Online Devices” list.
Online Magic Leap 2 devices will be identified in the list by a unique identifier (If one has been set) or the app that is running on the headset. (see: Permissions)
To connect to an online device in the list, simply click on its IP address to connect.
If ML Spectator cannot automatically detect a device, then a “Devices not found” indicator will be displayed. You can try to auto-detect again by pressing Refresh, or, try manually searching for an ML2 using its IP address.
Manual IP Address Search
The manual IP address search function can be accessed by clicking the “Manual IP Search” button at the bottom of the screen. This will bring up an overlay to input an IP address.
On this screen users can:
- Enter a device IP address - clicking the input field will allow users to manually input a numerical IP address which they can then try and connect to.
- See recent IP connections - a list of recently successful connections will appear here in order of how recently the connection was made. Clicking an IP address here will attempt to connect to that address.
- Clear all recent connections - pressing the trash icon will clear the list of recent connections.
Note - if your devices change the Wi-Fi network they are connected to, then their IP addresses will change also. This means you will have to enter the new IP address for your Magic Leap 2 in order to find this same device again on a new network.
Where To Find Your Magic Leap 2 IP Address
You can find your Magic Leap 2 IP address on your ML2 headset by going to “Settings” > “About” and then scrolling down to the “IP Address” section.
Magic Leap Spectator Settings for Compatible Applications
Some Magic Leap 2 applications may need you to enable an “Allow Magic Leap Spectator Connectivity” setting found within the Magic Leap 2 application’s settings page. Two such applications are Magic Leap Workshop and Assist. You can find this setting within the About Workshop/About Assist settings page. However, this setting will differ from application to application, therefore it’s best to check within the application itself or review developer documentation to clarify whether or not your specific app will require this permission to be allowed.
Unique Device Identifier
Some applications may also allow the user to input an optional, unique identifier that will make discovering the app easier in ML Spectator. This unique identifier will appear on the “Connecting to a Magic Leap 2 device” screen in ML Spectator instead of the IP address for easier identification. This is particularly useful if you have multiple ML2 devices running ML Spectator-compatible applications all on the same network. If a unique identifier is not applied, ML Spectator will display the app name.
Note - For more information, see Compatible Magic Leap 2 Apps.
By clicking an IP address in the “Online Devices” list, or connecting to an IP address manually, ML Spectator will try to establish a connection between your mobile device and your selected, online ML2. In the event of establishing a successful connection, the app will move onto the “Scan Marker” screen, or, if the connection fails, users will be brought to the “Couldn’t establish a connection” screen.
Here you can check key troubleshooting information, visit the “Help” section of the app or try the connection again. You will also find other information here in order to help diagnose connection issues such as a version mismatch between the mobile app and the ML2 app.
Synchronizing Device Locations
Scan Marker - Magic Leap Spectator App
On successfully connecting ML Spectator to a Magic Leap 2 device, the next step is to align the real-world positions of your two devices. This will ensure that the AR content seen on both devices appears in exactly the same position relative to the real world.
The Scan Marker process will begin on the mobile device running ML Spectator. Start by placing your printed marker in your immediate environment, either on the floor or on a raised surface (such as a table). The marker can be placed anywhere in your environment (it does not need to be in the “center” of your AR content) as it is merely used to sync the location of the two devices (not the location of the content itself). To scan the marker, hold your mobile device so that the marker is within the on screen scanning reticle.
Note - ensure that the marker is in a well lit environment to allow both your mobile device and ML2 to scan it successfully. The marker does not need to be scanned from directly above. In fact scanning at a shallow angle can help improve accuracy. It is also suggested that the marker not be placed on a blank, featureless surface.
Scan Marker - Magic Leap 2 Device
Once the ML Spectator app has successfully scanned the marker, the Magic Leap 2 device app will need to do so next (as will be indicated on the Scan Marker screen in ML Spectator). The same process will be followed on the Magic Leap 2 device, as you will be prompted to place and scan the marker inside the headset.
Once this step has been completed, the two devices will be synchronized and the connection process completed. The ML2 device user will receive a notification saying “ML Spectator is Active”. The AR content streaming to ML Spectator from the ML2 device will now begin.
Note: The marker must stay in place for both scans. If the marker is moved between when the mobile device and the headset scan it, then the alignment may be off significantly. Once both devices have scanned the marker it may be moved / removed from the scene entirely.
The Camera View
Once a successful connection is established, the Camera View will be displayed in the ML Spectator app. From this view, you’ll be able to view the streamed AR content from the Magic Leap 2 device, as well as access all controls for navigating, recording and adjusting image settings.
- Disconnect - ends the current device connection. Users will be asked to confirm if they want to end the current ML Spectator session or not.
- Scan Marker - will re-initiate the Scan Marker flow. This can be used to re-synchronize the device locations, should the AR content appear to be out-of-position at any point (see “Synchronizing Device Locations”). The marker does not need to be in the original scan position for this utility, however the marker still needs to not be moved between when the mobile device and headset perform their scans.
- Hide UI - this function hides all UI elements / buttons from the camera view. This is particularly useful when broadcasting to a larger screen to create a clean view of your content without having the UI buttons also appear on the second screen. If Hide UI is enabled, tap the screen once to get access to all buttons to disable it again.
- Auto Focus - will toggle the ability to auto focus on or off. When toggled off, the camera will have a fixed focus at infinity.
- Image Settings - switches between the main UI view and the Image Settings view. In Image Settings, you can manually adjust a range of Visual Settings to change how your video feed and AR content look (see “Image Settings”).
- Settings - will open the App Settings overlay (see “App Settings”).
- Capture - will capture a photo or start recording a video (depending on which Capture Mode is currently selected)
- Capture Mode - toggles between capturing a photo or taking a video
Capturing A Photo
To take a photo, ensure that Photo Mode is selected in the Capture Mode toggle, and press the Capture button to take it. A notification will display at the top of the screen indicating that the photo is saved to your device’s Photos app.
Capturing A Video
To take a video, ensure that Video Mode is selected in the Capture Mode toggle, and press the Capture button to start recording. While a recording is active, the UI will hide and the recording duration will be displayed at the top of the screen. To stop the video recording, press the Capture button again. Videos will also be saved to your device’s Photos app, and a notification will indicate this on screen at the end of the recording.
When recording video you can zoom and pan the image on screen. To zoom, pinch the screen with two fingers to zoom out, or pull them together to zoom in. To pan, drag one finger across the screen.
Image Settings allows you to customize how your photos and videos will look, before capturing them, giving you control over a variety of visual aspects of the video feed and AR content, separately.
Image Settings Controls
Image Settings Controls include:
- Content Mode - switches between Camera Feed Mode and AR Content Mode, allowing you to control visual settings for each part of the feed, separately.
- Reset Image Settings - will reset all image settings to their defaults. Users will be asked to confirm if they want to reset all settings or not.
- Histogram - will toggle a visual histogram on or off that appears at the bottom of the Camera View behind the Setting Slider. The histogram provides a graphical view of the distribution of colors present in the screen. Peaks and spikes describe an abundance of a given color. This information can be used to adjust the color correction for a scene. A plain white reference (like a wall or large white piece of paper) can be used to adjust optimal settings.
- Image Settings - toggles Image Setting on and off.
- Visual Settings - different image setting options will appear in the camera view as a list. Clicking on the different Visual Settings will give access to control that setting, which can be done via the Setting Slider at the bottom of the screen. Different Content Modes have different Visual Settings that can be adjusted.
- Setting Slider - the main adjustment control for each Visual Setting, this can be slid to the left or right to adjust each individual Visual Setting.
Visual Settings - Camera Feed
The different Visual Settings that can be adjusted for the Camera Feed Mode are:
- Brightness - adjusts the overall brightness of the camera feed between +/- 100.
- Contrast - adjusts the overall contrast of the camera feed between +/- 100.
- Saturation - changes the overall color saturation of the camera feed between fully saturated color and black-and-white.
- Black Point - adjusts the contrast level of the darkest pixels within the camera feed to affect the overall contrast of the image.
- White Point - adjusts the contrast level of the lightest pixels within the camera feed to affect the overall contrast of the image.
- Color Temperature - changes the overall temperature of the image between cool (more blue in appearance) and warm (more red / orange in appearance).
- Color Tint - will adjust the overall hue perceived across the entire image, cycling through all tints across the color spectrum.
Note - in Camera Feed Mode, only the camera feed will be adjusted, and none of the streamed AR content.
Visual Settings - AR Content
The different Visual Settings that can be adjusted for the AR Content Mode are:
- Brightness - adjusts the overall brightness of the AR content between +/- 100.
- Contrast - adjusts the overall contrast of the AR content between +/- 100.
- Anti-aliasing - toggles between on and off. Anti-aliasing reduces the appearance of jagged edges on AR content, thus providing a higher quality appearance. Note - Enabling this option may impact performance depending on the content being rendered. Also, this setting is found under “General Settings” in the beta version of the app. Comment end
- Global Opacity - Effects how “solid” AR content appears in a scene. If set to 100 content is fully opaque, 0 will remove all AR content, and values in between will have the content be various levels of transparency.
- Dark Strength - Controls the relative transparency of dark content based on the max RGB of the color.
- Dark Cutoff - Cutoff value for how transparent dark content can be.
Note - in AR Content Mode, only the AR content will be adjusted, and none of the camera feed footage.
Clicking the Settings button in the Camera View will bring up the App Settings overlay. Within App Settings you can access:
- General Settings - contains a variety of app settings relating to the overall functionality of the app.
- Audio Settings - contains audio-specific app settings, and allows you to select different device input sources to record audio.
- Print Marker - allows you to print and / or download the ML Spectator Marker.
- About ML Spectator - displays information about the current app version and links to legal, terms & conditions and third-party licenses documentation.
- How to Connect - provides a step-by-step guide on how to connect ML Spectator and get up and running.
- Online User Guide - provides a link out to this web page!
Select Audio Device
In the Audio Settings you can choose different audio devices to record audio during a video recording. The drop down menu will list all available microphones.
You can change the Input Volume level for any selected audio device.
Advanced Audio Settings
These settings provide more nuanced control over the input audio source:
- Gain - this will digitally increase the volume of the incoming audio source after it is routed to the Input Volume. This can help when creating video recordings at a distance from a subject where audio is hard to hear, but using this settings can lead to an overall loss in audio quality and/or may cause distortion.
- Magic Leap 2 Device Input - this toggle setting allows you to record just the audio input on your mobile device, or mix that input with the streamed audio from the Magic Leap App on the Magic Leap 2.
Magic Leap 2 Device Input
ML Spectator will mix virtual audio from AR Content with recorded audio from the device microphone by default. Turn this setting off if you do not wish to record virtual audio.
The Help section of the app provides useful at-a-glance guidance on how to set up an ML Spectator connection, info about permission and about / legal information.
The Help section can be accessed in various places throughout the app, either by clicking the “?” icon or going to Settings via the Camera View screen.
A key use-case for ML Spectator is to be able to broadcast your Magic Leap 2 application’s content to a larger screen, which is particularly useful at events, demonstrations or when using your Magic Leap 2 app to educate.
How To Broadcast
Currently, ML Spectator allows 2 primary modes of broadcasting functionality:
- Apple Airplay / Screen Mirroring - you can screen mirror what’s viewable in ML Spectator via Apple Airplay, and this will create a mirrored view of your mobile device screen onto a larger screen. This can be done with an Apple TV, or other Airplay-compatible devices
- HDMI - connecting your mobile device via HDMI to a larger monitor or TV will also mirror your mobile device’s screen
Note - mirroring your device screen will show all content, including all UI elements in ML Spectator. Use the Hide UI button on the Camera View to temporarily hide all buttons so they do not appear in your broadcast
Troubleshooting & Best Practices
Mobile Device Requirements
- Apple iPhones running iOS 17 or later
- ML Spectator ver 1.3.0 or later
ML Spectator requires a number of app permissions to be granted in order for the application to function and provide a complete experience.
- Access to Photos - granting access to Photos is required to record or take photos.
- Find and connect to devices on the local network - ML Spectator requires network search permissions to connect with your Magic Leap 2.
- Access to Camera - access to your device’s camera is needed in order to view the streamed AR content.
- Access to Microphone - microphone access is required to record audio if recording a video of the ML Spectator session.
Magic Leap 2 Requirements
- Minimum required Hardware: Magic Leap 2
- Minimum required OS version: 1.4.0-dev2
If you’re having trouble connecting ML Spectator to your Magic Leap 2 device, try these troubleshooting solutions, below. If you’re still having trouble, reach out to us at at email@example.com for further assistance.
1. Ensure that your devices are on the same network
Both devices need to be connected to the same Wi-Fi network. A 5Ghz network is recommended to provide optimal performance. Check what network your devices are using by navigating to your phone’s Wi-Fi settings and the Magic Leap 2’s main settings page.
2. Ensure you are using a ML Spectator compatible Magic Leap 2 application
ML Spectator will only be able to connect to applications on the Magic Leap 2 that are compatible - meaning they have a special ML Spectator app package installed as part of their Unity project. For more information on creating ML Spectator-compatible apps, see “Making Your ML2 Apps ML Spectator Compatible”
3. Keep your Magic Leap 2 application running
In order for ML Spectator to find and connect to your Magic Leap 2 headset, the ML Spectator-compatible app on your headset needs to be open and running in the foreground at all times. For Magic Leap Workshop and Assist, the “Allow Magic Leap Spectator Connectivity” option must be enabled. Once a connection has been established the application can be navigated away from without dropping the connection, however the AR content will freeze in place until the application is brought into focus again.
4. Ensure you have entered the correct IP address
The IP address for your Magic Leap 2 can be found by going to Settings > About > IP address. This is the address you will need to type into the IP address field in the ML Spectator app if you are trying to connect manually. Note, your IP address will change if you change the network your Magic Leap 2 is connected to and thus you would need to enter a new IP address in this instance.
5. Confirm if ML Spectator connectivity is enabled in your ML2 application
Some applications (Like Assist and Workshop) may include settings that need to be enabled in order to allow ML Spectator to search for and connect to that device / application. Please check your Magic Leap 2 application’s settings to see if there are anything additional you need to enable.
General Setup & Recording Best Practices
To create high quality recordings you can follow these best practices to get the most out of ML Spectator:
Lining up your AR Content in the Real World
When planning to record a session with ML Spectator, be aware of AR over-draw when staging your AR content within the real world. All AR content will draw on top of everything physically seen in the environment, whether it be walls, furniture or people (as in this example).
Keeping your recordings steady
To increase the professionalism of your recordings, use a handheld Gimbal to improve the overall stability and movement of your shots (such as the DJI OSMO).
Prepare the Environment
In order to ensure the best possible tracking and recording during the ML Spectator session make sure that the environment is free from clutter and is well lit. Proper lighting and reducing visual noise from clutter and objects will help display the AR content properly and avoid losing tracking.
Keep your Wi-Fi Signal Strong
Select a filming environment that has a strong Wi-Fi signal. If you are recording and trying to sync an ML Spectator session in an area with low signal strength and reliability it will impact your ability to remain connected to the ML2 headset and reduce streaming quality.
Compatible Magic Leap 2 Apps
Compatible Apps from Magic Leap
To test out ML Spectator, you can download current ML Spectator-compatible ML2 apps from Magic Leap:
Magic Leap Assist
Assist is a cross-platform peer-to-peer app that leverages AR-enabled remote assistance to increase the efficiency and accuracy of complex tasks across enterprise.
Magic Leap Workshop
Workshop is a multi-participant tool that brings people together to get things done. It allows teams to collaboratively ideate, prototype and solve problems in a shared working session.
Making Your ML2 Apps Magic Leap Spectator Compatible
How To Install The Magic Leap Spectator Unity Package
This section is for anyone adding Magic Leap Spectator functionality to their ML2 application. Adding the ML Spectator package to your Unity project will allow anyone running the ML Spectator app on their mobile device to stream the content from your application. This can help in unlocking new use-cases and support the showcasing of your application as a whole.
In order to import and utilize the ML Spectator Unity Package in your project the following minimum project requirements must be met:
- MLSDK ver 1.3.0 or later
- Universal Render Pipeline ver 12.0.0 or later
- Unity 2022.2.5 or later
Download the latest Unity Package
- The ML Spectator Unity Package will be available to download via Magic Leap Developer resources, expected during Q1
- For inquiries on inclusion into the current Beta and access to the Unity Package please email firstname.lastname@example.org
Integrate into a Unity Project
Add the ML Spectator package to your Unity project following these steps:
- Open the Unity Package Manager (Window > Package Manager).
- Click the “+” icon and select “Add package from tarball”.
- Locate the ML Spectator Unity package in the file browser and click open.
- Add the ML Spectator plugin by selecting Magic Leap > Add ML Spectator to Project. This will add the basic ML Spectator utilities to your project. If you would like to have the ML Spectator notifications added as well, select Add ML Spectator with Notifications to Project. You do not need to add both. Either option will incorporate the required utilities, the notification option will simply also add the notification functionality.
- This will automatically include the ML Spectator prefab into the first or currently open Unity Scene and set the com.magicleap.permission.MARKER_TRACKING and com.magicleap.permission.RECORD_AUDIO permissions in your build settings as they are required for ML Spectator to function
- [Optional] Change the product name and package name in Edit > Project Settings… > Player to indicate that this version has the ML Spectator plugin enabled
Build & Run On Magic Leap 2 Headset
Before building the project, check that the Auto Enable setting is checked in the ML Spectator prefab. This will ensure that the utilities will run when the project loads. For security purposes it is suggested that in final builds the Auto Enable setting is not selected and that a UI opt-in option is presented. See: Enabling ML Spectator Utilities for more information. Then open the build menu and double check the Scenes in Build to ensure the correct scene that contains the ML Spectator utilities is included and is first in the list if multiple scenes exist in your project. Build the ML2 application as usual and run the app on the ML2 headset.
Best Practices and Troubleshooting
Including ML Spectator Prefabs in Scenes
The ML Spectator prefab only needs to be included once in your project. Even if your project has multiple scenes, you only need one instance of the prefab, however in order to ensure that the ML Spectator utilities function from launch the prefab must be included in the first scene that is loaded when your application starts up. Once the prefab has been called it will keep running until the application is closed. There is no need to include the prefab in every scene loaded as the utilities are inherited between scenes and not destroyed when changing scenes or application states.
Enabling ML Spectator Utilities
By default the ML Spectator utilities are not enabled. Within the inspector, on the ML Spectator prefab there is an option for Auto Enable. It is suggested that this option not be selected for public builds. To enable ML Spectator at runtime include a toggleable UI element to call MLSpectator.Instance.Enable() and MLSpectator.Instance.Disable(). There is also a toggle function available MLSpectator.lnstance.Toggle(). If Auto Enable is used you should include a privacy notification that ML Spectator is active and that a session could be joined and recorded.
Special Lighting Modes
If the scene uses a single light attached to the Main Camera prefab in order to light the scene then ML Spectator may display the AR content with inconsistent lighting. In this case enable the Control Scene Lights option in the ML Spectator prefab. However, if your application lights the scene globally or with baked-in lights as a part of the scene then ML Spectator will function and display the AR content as expected.
ML Spectator viewer lens prefab when controlling special scene lighting
Inside of the ML Spectator prefab is an option for a “lens” prefab which represents the lens of the camera of the mobile device which is connected in a session. This can be used via the ML2 headset user to diagnose how well the synchronization is when connected. It is very small and otherwise unneeded and does not need to be disabled or changed. However, if the option Control Scene Lights is enabled this prefab is required as the prefab includes a light which takes the place of the Main Camera light when rendering AR content to display on the mobile device.
In Editor Preview
There is an option to preview the ML Spectator view from within the Unity editor for debug purposes. Normally this will not cause any interactions with a built project when running. However, if your project is designed to be controlled via the editor when running on the ML2 headset this option will interrupt the displayed scene when entering Play mode. In order to avoid this interaction, disable this option in the prefab settings.
Render and Quality Options
It is recommended that you use the Performant Quality setting in your project settings to reduce visual artifacts. Whatever quality settings are selected, ensure that the URP is the render pipeline selected.
Can the ML Spectator utility work in the editor?
Yes, the ML Spectator plugin is functional in the editor on Windows and Mac computers. For best experience make sure that the editor can run in the background. This can be done by checking Edit > Project Settings… > Player > Settings for Windows, Mac, Linux > Resolution and Presentation > Run In Background.
Which iPhone devices are supported?
Any iPhone device capable of running iOS 17.
I receive the message: "Network Error": "Connection is not strong enough to support the application.". What does this mean?
There seems to have been a significant delay in the network that was hindering the experience. It is recommended to use a 5GHz Wi-Fi connection, preferably with a dedicated router in line of sight of both devices. If the problem persists, it is possible your phone model or version are unsupported.
The virtual content does not line up well with the ML2 headset wearer
Try the marker detection again. Place the marker as close to the location of the ML2 user as possible (the marker can be moved after colocation is succeeded). Make sure the marker size is 15cm ( 5.91 inch ) wide. Hold the phone and ML2 at a shallow angle to the marker, when scanning it for the best detection. For better tracking also avoid scanning the marker too closely, scanning from a distance with more features visible and on a non-blank surface is better.
T’s & C’s
- Open source software notices: https://www.magicleap.com/ml2-open-source-software-notices
- Software license agreement: https://www.magicleap.com/software-license-agreement-ml2