What is Home?
Home is the main OS focal point for the Magic Leap 2 device. It’s where users launch, quit, or switch apps, view quick device status and high-level controls, and where a device session starts and ends. It utilizes multimodal inputs, including controller input, voice, hand tracking, and peripherals, and moves with the user as they traverse their physical environment.
Responsibility:
UX Design Lead
Results:
Four years after the ML2 product launch, Home has stood the test of time with very few changes. Users found it easy to understand and navigate, and it continued to function well as new input options (gesture and eye gaze) came online. The designs and patterns created during its development helped answer larger platform questions such as z-depth hierarchy, UI behaviors and micro-interactions, art pipelines and asset creation, headpose and Controller inputs, and brand color and icon treatments.
Home is a quick-access UI system where users spawn Home, launch an app or check WiFi status, then exit Home to enter an application. It can be accessed by users anywhere and at any time. Users can “carry” Home wherever they go for instant access, anywhere. It allows users to move between sitting and standing, walk forward or back up, and switch between Controller, gesture, eye gaze, or voice inputs.
Home Essentials
Dedicated Controller button and hand gesture for easy access
Not reliant on environmental coordinates
Content behaviors based on user position
Efficiency in launching apps, adjusting quick controls, and at-a-glance device status
Scalable from one-to-many apps
Multi-user devices
Multi-modal inputs
Compute-efficient
Limited app management (no install, delete, or favorites)
Run on our native Lumin platform (later moved to Unity)
60601-b medical compliant
Home Components
Home consists of four major components:
App list
Capture
Device status
Quick settings
App List
The app list includes a list view of up to seven apps at a time. If >7 apps are available, the scrollbar becomes available. Apps can be sorted using a simple drop-down filter list for recents, ascending, and descending order.
Capture
For easy discovery, the Capture button starts the Capture service. It can also be accessed through voice commands, gestures, and a Controller chord if capturing within an application.
Device status
Device status is a quick-view component that shows time, compute pack, Controller, and external power bank battery percentages.
Quick settings
Quick settings are top-level preferences that users can easily access without opening up Settings. The left-side settings buttons show quick-view status, such as WiFi on and volume level. Selecting a button pushes the app list back 5cm, applies 20% opacity to enhance workflow feedback focus, and opens the quick settings modal.
Behaviors & sub-behaviors
Home utilizes a body-relative behavior with lazy follow, variable distances, user follow, height-adjusted, and billboard sub-behaviors. See Behaviors for more info.
Micro-movement buffers
Users are always moving, even when they are trying to stand still. To mitigate user micro-movements such as swaying, leaning in or out, fidgeting, and input movement, we designed macro-movement buffers. The depth buffer accounts for a 15 - 20cm lean-in before pushing Home away, and 10 - 15cm lean-out before attracting Home in z-depth. Angle rotation allowed for 12° user rotation around Home before billboarding to the user.
Macro-movements
Users need the ability to stand up, sit down, move across a room, or turn their head while Home is present. Interpreting how Home should react in these instances was tricky since we had to interpret user intent. Height-adjusted buffers were added to accommodate large-scale user height movement. When users walk in the direction of Home we added friction so Home stays in front of them until a 4°path rotation occurs, at which time Home slides to the side and then behind the user. For head rotation, we kept Home in place without tethering Home to allow users to look to the side.
Home app states
Home interactions
Home behaviors