# Looking Glass User Guide

Everything you need to know about Looking Glass displays and software.

{% hint style="info" %}

### <mark style="color:$danger;">Looking for the guides on Hololuminescent displays?</mark>

<mark style="color:$primary;">This user guide is to help you get set up with Looking Glass Light Field displays. Documentation for</mark> [<mark style="color:$primary;">**Hololuminescent™ displays is available here.**</mark>](https://hlddocs.lookingglassfactory.com)
{% endhint %}

<figure><img src="/files/jXl6DdHerIfJ9qnpVgWa" alt="User interacting with the Looking Glass display - The Looking Glass User Guide"><figcaption></figcaption></figure>

## Looking Glass Light Field Displays

<table data-card-size="large" data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th><th data-type="files"></th></tr></thead><tbody><tr><td><a href="/pages/QStrCxw8w1UE04DelTGp">/pages/QStrCxw8w1UE04DelTGp</a></td><td>A portable holographic display that brings 3D holograms into the real world.</td><td></td></tr><tr><td><a href="/pages/5pbESTgzxmKOeq0lhNqD">/pages/5pbESTgzxmKOeq0lhNqD</a></td><td>The 3D desktop companion for innovators.</td><td></td></tr><tr><td><a href="/pages/Ir6wfXSvq1xKsnKtxjzG">/pages/Ir6wfXSvq1xKsnKtxjzG</a></td><td>The next generation of light field displays.</td><td></td></tr><tr><td><a href="/pages/GHeU1vHsnYwHZ1wMgPPy">/pages/GHeU1vHsnYwHZ1wMgPPy</a></td><td>Holograms that are larger than life.</td><td></td></tr><tr><td><a href="/pages/-MWj8zzjQI5qQHfrShgI">/pages/-MWj8zzjQI5qQHfrShgI</a></td><td>Your first personal holographic display.</td><td></td></tr><tr><td></td><td></td><td></td></tr></tbody></table>

## Software

<table data-card-size="large" data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th></tr></thead><tbody><tr><td><a href="/pages/-MWj9-3frKdoBC_pKjOq">/pages/-MWj9-3frKdoBC_pKjOq</a></td><td>Required software for connecting your Looking Glass to your computer.</td></tr><tr><td><a href="/pages/-MWj8zxnNsjm8ORMiDtO">/pages/-MWj8zxnNsjm8ORMiDtO</a></td><td>Develop interactive apps with our Unity plugin.</td></tr><tr><td><a href="/pages/b6mocjpWUammxgkmXo7o">/pages/b6mocjpWUammxgkmXo7o</a></td><td>Develop custom integrations for the Looking Glass with the Bridge SDK.</td></tr><tr><td><a href="/pages/-MWj9-1mH0PoShMHhwRk">/pages/-MWj9-1mH0PoShMHhwRk</a></td><td>A holographic media player for Looking Glass Portrait and legacy displays.</td></tr><tr><td><a href="/pages/ke4WjTE4G5LSI6i0YyWF">/pages/ke4WjTE4G5LSI6i0YyWF</a></td><td>Load and view your own 3D models with our easy-to-use app.</td></tr></tbody></table>

## Key Concepts

This section contains documentation for some of the key concepts you'll want to learn about in order to design content or experiences for Looking Glass displays.

<table data-card-size="large" data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th></tr></thead><tbody><tr><td><a href="/pages/-MWj9--EbQbGTtEZYi0v">/pages/-MWj9--EbQbGTtEZYi0v</a></td><td>Learn how the Looking Glass display brings 3D and holograms into reality.</td></tr><tr><td><a href="/pages/-MWj8zydpd_ix67Qkk7v">/pages/-MWj8zydpd_ix67Qkk7v</a></td><td>Learn about quilts, the go-to hologram format for creating and sharing holograms.</td></tr><tr><td><a href="/pages/-MfKEcDZGIlpaNPUgnKR">/pages/-MfKEcDZGIlpaNPUgnKR</a></td><td>Learn how to capture holograms in any scenario, be it real-world or synthetic.</td></tr><tr><td><a href="/pages/-MWj8zyvgK75HMBeb3Cs">/pages/-MWj8zyvgK75HMBeb3Cs</a></td><td>Learn how to set up custom camera rigs in 3D tools.</td></tr></tbody></table>

## Tutorials

Check out our community-made tutorials!

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/za0e7iQegDeVFIvHNear">Maya</a></td><td>Capturing Light Fields in Maya.</td><td></td><td><a href="/pages/za0e7iQegDeVFIvHNear">/pages/za0e7iQegDeVFIvHNear</a></td></tr><tr><td><a href="/pages/8PFAn9iht05DkUEWLrXg">ShaderToy</a></td><td>Using ShaderToy with Looking Glass.</td><td></td><td><a href="/pages/8PFAn9iht05DkUEWLrXg">/pages/8PFAn9iht05DkUEWLrXg</a></td></tr><tr><td><a href="/pages/0qkNBsoDsqZKC65BVayh">Adobe Medium</a></td><td>Sculpting with Adobe Medium and Looking Glass.</td><td></td><td></td></tr><tr><td><a href="/pages/wMO5Lyg3jGIATktPl1Fh">Holographic </a>Video Games</td><td>Bring existing video games into holographic 3D with Refract and Reglass.</td><td></td><td></td></tr></tbody></table>

## Legacy Hardware

For first generation Looking Glass devices like Looking Glass 8.9", Looking Glass 15.6", Looking Glass 16", and the original Looking Glass 8K Gen1, see the [Legacy Hardware](/legacy/legacy-hardware) section.

## Need help?

If you have any questions at all, feel free to reach out.

We're here to help you at any stage of your holographic journey!

You can provide us with feedback or feature requests [**on our Discord server**](http://look.glass/discord)!

If you're having issues with your Looking Glass or some of our software, head to our [**troubleshooting page**](/software/looking-glass-studio/troubleshooting)**.**

If those resources don't help solve your issue, email us directly at `developer@lookingglassfactory.com`


# Looking Glass Go

Learn everything you need to know about how to use your Looking Glass Go.

Looking Glass Go is the world's first portable holographic display, ideal for anyone who wants to view, create, and experience true-to-life, 3D holographic images, video, and applications right out of their pocket and on their desktop.

{% embed url="<https://youtu.be/wefvzabaxvY>" %}

{% content-ref url="/pages/HyFFQundQfyZm4MXHcaL" %}
[Get Started with Looking Glass Go](/getting-started/looking-glass-go/get-started-with-looking-glass-go)
{% endcontent-ref %}

{% content-ref url="/pages/bq2vOlNt8BvUauD4IX1b" %}
[Default Playlist](/getting-started/looking-glass-go/demo-holograms)
{% endcontent-ref %}

<table data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/-MWj8zz_SFq9At7co952">/pages/-MWj8zz_SFq9At7co952</a></td><td>Learn all you need to know about holograms</td><td><a href="/pages/-MWj8zz_SFq9At7co952">/pages/-MWj8zz_SFq9At7co952</a></td></tr><tr><td><a href="/pages/uzTiej3OippIQZrjMaxD">/pages/uzTiej3OippIQZrjMaxD</a></td><td>Find out how holograms are taking over the web.</td><td><a href="/pages/uzTiej3OippIQZrjMaxD">/pages/uzTiej3OippIQZrjMaxD</a></td></tr><tr><td><a href="/pages/ke4WjTE4G5LSI6i0YyWF">/pages/ke4WjTE4G5LSI6i0YyWF</a></td><td>View your 3D models on a Looking Glass.</td><td><a href="/pages/WUgTB5nAdvQfHNTy4jl6">/pages/WUgTB5nAdvQfHNTy4jl6</a></td></tr></tbody></table>

## Creator Tools

<table data-card-size="large" data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th></tr></thead><tbody><tr><td><a href="/pages/-MWj8zxnNsjm8ORMiDtO">/pages/-MWj8zxnNsjm8ORMiDtO</a></td><td>Make realtime interactive holographic apps for your Looking Glass with Unity</td></tr><tr><td><a href="/pages/b6mocjpWUammxgkmXo7o">/pages/b6mocjpWUammxgkmXo7o</a></td><td>Integrate custom renderers and applications with Looking Glass devices.</td></tr><tr><td><a href="/pages/-MWj9-1QDiLVMyndrEi6">/pages/-MWj9-1QDiLVMyndrEi6</a></td><td>Learn how to use the popular open-source 3D modeling software with Looking Glass</td></tr><tr><td><a href="/pages/-MWj9-07OczrYgMQEcO0">/pages/-MWj9-07OczrYgMQEcO0</a></td><td>Make cinematic holographic experiences and films with Unreal Engine 5.</td></tr><tr><td><a href="/pages/KCiJPVuIHoG460Q6v6zU">/pages/KCiJPVuIHoG460Q6v6zU</a></td><td>Build holographic experiences on the web with Three.JS, PlayCanvas, Spline and more.</td></tr></tbody></table>

## Software Requirements

<table data-view="cards" data-full-width="false"><thead><tr><th data-type="content-ref"></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/-MWj9-3frKdoBC_pKjOq">/pages/-MWj9-3frKdoBC_pKjOq</a></td><td>The connection between your computer and your Looking Glass</td><td><a href="/files/QMEOJdKOOc7Ue0hRJ0Va">/files/QMEOJdKOOc7Ue0hRJ0Va</a></td><td><a href="https://lookingglassfactory.com/software/looking-glass-bridge">https://lookingglassfactory.com/software/looking-glass-bridge</a></td></tr><tr><td></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="1f34e">🍎</span> iOS Mobile App</p><p>For iPhone and iPad users</p></td><td><a href="/files/BPUncTiWIiTMkIKeBdR6">/files/BPUncTiWIiTMkIKeBdR6</a></td><td></td></tr><tr><td></td><td><p><span data-gb-custom-inline data-tag="emoji" data-code="1f916">🤖</span> Android Mobile App</p><p>For Android users</p></td><td><a href="/files/ssvN1jAyVJgHMCgubtiw">/files/ssvN1jAyVJgHMCgubtiw</a></td><td></td></tr></tbody></table>


# Get Started with Looking Glass Go

This page will guide you through all the steps needed to get started with your Looking Glass Go.

## First Steps :footprints:

Looking Glass Go can be used in two different ways:

* [**Liteforms**](#route-a-use-liteforms): talk with a holographic AI character on your Go. This requires **Desktop Mode** and Looking Glass Bridge.
* [**Go Mobile App + Blocks**](#route-b-use-the-mobile-app): upload, convert, manage, and sync holograms over WiFi. This uses **Standalone Mode**.

If this is your first time setting up the Go, complete the first-time setup below before choosing a route.

***

## What's in the Box? 📦

When you unbox your Looking Glass, you'll find a few extra items along with the Go itself.

These include:

* 1x USB-C Power Adapter
* 1x USB-C Cable
* 1x Microfiber Cleaning Cloth
* 1x Holographic Sticker Sheet ✨

***

## Switching on your Go :electric\_plug:

<figure><img src="/files/x19tI11F9omWGZNgMngO" alt=""><figcaption></figcaption></figure>

On the first setup, connect your Looking Glass Go to power by using the provided power adapter and USB-C cable and connecting the power adapter to a wall outlet. Press the power button to turn on your Go.

This will activate **Standalone Mode** (the power indicator will light up Breathing White).

To see more power and LED indicator states, see [Power and LED States](/getting-started/looking-glass-go/power-and-led-states)

{% hint style="info" %}
Do not connect your Go to your computer the first time you power it on.<br>

Instead, connect it to wall power using the provided cable and power adapter, then connect it to WiFi using the mobile app.\
\
This will ensure the first firmware update processes properly.
{% endhint %}

### Enjoy the Demo Reel :star:

We've curated over a dozen incredible holograms for you to enjoy once you first switch on your Go!

A full list of what you see can be found here → [Default Playlist](/getting-started/looking-glass-go/demo-holograms)

### Download the Looking Glass Mobile App :mobile\_phone:

<figure><img src="/files/jXymjIYAeKs3tIF3gAvW" alt=""><figcaption></figcaption></figure>

Once you're ready to use your Go, you should connect it to WiFi so it is fully configured and can update its firmware.

First, download the Looking Glass mobile app for iOS or Android.

{% hint style="warning" %}
**Android availability (August 12, 2026):** The Looking Glass Go app is temporarily unavailable on Google Play. While the Play listing is unavailable, Android users can download the official Looking Glass Go APK (version 1.5.3, build 73) below. If the app is already installed and working, no action is needed.

Android may ask you to allow your browser or Files app to install unknown apps. See [Using the Go Mobile App](/getting-started/looking-glass-go/using-the-mobile-app#install-the-android-apk) for installation steps.
{% endhint %}

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><a href="https://apps.apple.com/us/app/looking-glass-go/id6479449767">Download the Looking Glass Go App for iOS</a></td><td></td><td></td><td><a href="/files/BPUncTiWIiTMkIKeBdR6">/files/BPUncTiWIiTMkIKeBdR6</a></td></tr><tr><td><a href="https://s3.us-east-1.amazonaws.com/static-files.lookingglassfactory.com/LookingGlassGoMobileApp/Android/LKGGoMobileApp-1.5.3-73.apk">Download the Looking Glass Go App for Android (APK)</a></td><td></td><td></td><td><a href="/files/ssvN1jAyVJgHMCgubtiw">/files/ssvN1jAyVJgHMCgubtiw</a></td></tr></tbody></table>

Once you've downloaded the Mobile App, follow the on-screen instructions to connect your Looking Glass Go to WiFi.

### Connecting to WiFi :signal\_strength:

{% hint style="info" %}
The Looking Glass Go is designed to work exclusively with 2.4GHz WiFi networks.\
It cannot connect to 5GHz networks.\
\
Most modern routers offer both 2.4GHz and 5GHz bands, often under the same network name.<br>

For more details on how to check your network's specifics, see [Common Troubleshooting Issues](/getting-started/looking-glass-go/troubleshooting)
{% endhint %}

To connect your Looking Glass Go to a WiFi network, hold down the Next button (:track\_next:) for 5 seconds to enter **Pairing Mode.**

<figure><img src="/files/e3dfhajMj6Z9i0sGi333" alt=""><figcaption><p>When in <strong>Pairing Mode</strong>, the Go will be discoverable through the app.</p></figcaption></figure>

#### Here's what you'll see on the mobile app while connecting to WiFi:

<figure><img src="/files/XmrIgtriigbmguUQaJTG" alt=""><figcaption><p>Looking Glass Go will only connect to 2.4Ghz WiFi bands</p></figcaption></figure>

1. Sign up / login to your [Looking Glass account](https://blocks.glass).
2. Connect to a Go device by following the instructions on screen.
3. Ensure that the Bluetooth connection on your phone is on and ready to pair with new devices.
4. Your Go device will show up when ready to connect.

{% hint style="warning" %}
If you run into any issues connecting to WiFi, see our [Common Troubleshooting Issues](/getting-started/looking-glass-go/troubleshooting) page
{% endhint %}

To confirm that the serial number matches the one on your device, check the sticker on the bottom of your Looking Glass Go.

<figure><img src="/files/PchJ7s9mImOFOYyyAvcf" alt=""><figcaption><p>Looking Glass Go will only connect to 2.4Ghz WiFi bands</p></figcaption></figure>

5. Once you hit `Connect` , a list of available WiFi networks will appear.\
   Make sure you're close to the source of your WiFi connection for the best results.\
   \
   Connect to your WiFi network and enter its password.

{% hint style="info" %}
When you connect your Go to WiFi for the very first time, you will be notified that your Go is performing a firmware update.\
\
Do not touch your device during this process.
{% endhint %}

<figure><img src="/files/cgdU8J3twq21Oy2qjYxI" alt=""><figcaption><p>Your app screen will show the image above while updating</p></figcaption></figure>

After setup is complete, choose your path — chat with an AI character using [Liteforms](#route-a-use-liteforms-web) or create a holographic slideshow with [the Go Mobile app and Blocks](#route-b-use-the-mobile-app-and-blocks).

***

## Route A: Use Liteforms

Use this route if you want to talk with a holographic AI character on your Looking Glass Go.

{% hint style="info" %}
Liteforms requires the Go to be in **Desktop Mode**, not Standalone Mode.
{% endhint %}

<figure><img src="/files/e5tYsHmosrgQopk5vGjF" alt=""><figcaption></figcaption></figure>

### What You Need

* A Looking Glass Go
* A Mac, Windows, or supported Linux computer
* [Looking Glass Bridge](https://look.glass/bridge) installed and running
* A Chromium-based browser recommended for local models and audio
* Microphone access
* Optional: Node.js 20+ and npm if running Liteforms locally [from source](https://github.com/Looking-Glass/liteforms-web)
* Optional: Provider credentials if using external LLM, speech-to-text, or text-to-speech providers

### Connect the Go in Desktop Mode

1. Connect the Go to your computer with the included USB-C cable.
2. Your computer must support USB-C DisplayPort Alt Mode. If it does not, use a compatible HDMI-to-USB-C adapter.
3. Install and open [Looking Glass Bridge](https://lfdocs.lookingglassfactory.com/software/looking-glass-bridge).
4. Confirm the Go is in Desktop Mode. The status LED should be blue.
5. Run the [Bridge test](https://codesandbox.io/embed/hardcore-butterfly-l5o9d?fontsize=14\&hidenavigation=1\&theme=dark\&view=preview) if needed. A successful test shows a hologram on the Go.

### Open Liteforms

You can use [Liteforms from your browser](https://liteforms.lookingglassfactory.com/).

If running [from source](https://github.com/Looking-Glass/liteforms-web), which is required for OpenClaw configurations, run:

```bash
npm install
npm run dev
```

Open the local URL printed by Next.js, usually:

```
http://localhost:3000
```

If port 3000 is already in use, Next.js may choose another port.

### Configure Liteforms

On first launch, Liteforms lets you configure:

* **LLM**: the character's brain, using browser-local models or an external provider.
* **Text-to-speech**: the character's voice, using local Kokoro or an external speech provider.
* **Speech-to-text**: microphone input, using local Distil-Whisper (English only) or an external provider.

Provider keys entered in Liteforms are stored locally in the browser and are not shared with us.

{% hint style="info" %}
If you choose **OpenClaw Gateway** as your LLM provider, open your OpenClaw terminal and run:\
\
`openclaw config set gateway.http.endpoints.chatCompletions.enabled true --strict-json`\
\
Then restart the Gateway. Liteforms will use the default local endpoint, `http://127.0.0.1:18789/v1`, and the default model, `openclaw/default`. If Gateway auth is enabled, paste your `gateway.auth.token` or `OPENCLAW_GATEWAY_TOKEN` into the **OpenClaw Gateway token** field.
{% endhint %}

Allow microphone access when prompted. Local models may download on first use, which can take a few minutes depending on your network and hardware.

If Liteforms shows a Bridge setup banner, make sure Bridge is installed, running, and the Go is connected in Desktop Mode.

### Start Talking

Use the chat panel to type or speak to the character. You can also edit the character's name, pronouns, personality, and VRM avatar settings.

Press the "Hologram-iphy" button with a connected device to view your character on the Go. For best rendering results, double-click the browser window that opens on your Go device to enter fullscreen mode.

For full instructions, see our [user guide](/software/liteforms-tm).

***

## Route B: Use the Mobile App

Use this route if you want to upload photos, convert them into holograms, manage playlists, and sync content to the Go over WiFi.

{% hint style="info" %}
The mobile app sync workflow uses **Standalone Mode**. If the app cannot see your Go, confirm the Go is not in Desktop Mode.
{% endhint %}

### Uploading your first hologram

Once you are connected to your Looking Glass account and WiFi, you can start uploading new holograms to your Looking Glass Go using the mobile app.

<figure><img src="/files/on9b3GntsqL6mt60ie4X" alt=""><figcaption></figcaption></figure>

1. To upload your first photo, hit `Select photos to convert`
2. If you are using an iPhone, `Allow Access to All Photos` or `Select Photo...`
3. Choose an image that you want to upload and convert
4. Once your photo has been uploaded, hit `Focus holograms` to start the editing process. The output of our AI depth generation may vary, so you may want or need to edit the resulting hologram

{% hint style="info" %}
Syncing and updating holograms on your device may take some time depending on how many holograms you are syncing.
{% endhint %}

### Editing Holograms

{% tabs %}
{% tab title="Focus" %}

<figure><img src="/files/yXHUG42PI9ahfeOp5IA4" alt=""><figcaption></figcaption></figure>

To select the point of focus of your hologram, tap or click on the subject you wish to be most in focus and our AI algorithm will adjust the focal point of the hologram.\
\
This is something that will take a bit of practice over time, but for most portrait photos of people, we recommend determining the subject of the photo and making sure that you tap to focus on focal points like eyes.
{% endtab %}

{% tab title="Depth" %}

<figure><img src="/files/vIbgP6qZtAxZPd6EVKxj" alt=""><figcaption></figcaption></figure>

The depth slider changes how far forward from the display you want your photo to stretch.\
\
To change the depth of your hologram, use the slider to indicate whether you want the hologram to have more or less depth.
{% endtab %}

{% tab title="Zoom" %}

<figure><img src="/files/5hZnl48PCwMZ3RPqpCUi" alt=""><figcaption></figcaption></figure>

The Zoom slider controls how cropped in your image is.\
\
The Looking Glass Go has a screen resolution of 9:16, so if your photos are in a 3:4 ratio, you might want to zoom in your images a little bit to eliminate the black bars at the top and bottom of the screen.

<figure><img src="/files/WZ5dpFXo8ouUpJiqprgD" alt=""><figcaption></figcaption></figure>

Use the slider to indicate whether you want the hologram to be zoomed in (which will crop the image) or zoomed out.
{% endtab %}
{% endtabs %}

This covers the first steps for getting started with your Looking Glass Go!<br>

To dive deeper into what's possible with your Looking Glass Go and the mobile app, check out this guide:

{% content-ref url="/pages/Qe6RSg7Ymp7qVeWORQHY" %}
[Using the Go Mobile App](/getting-started/looking-glass-go/using-the-mobile-app)
{% endcontent-ref %}

***

## Firmware Updates

<figure><img src="/files/VBL8564NGXyalPBp2KSX" alt=""><figcaption><p>Be sure not to interrupt the firmware update process!</p></figcaption></figure>

Looking Glass Go will periodically receive OTA (over-the-air) updates via its WiFi connection.

{% hint style="warning" %}
When connecting your Looking Glass Go to WiFi for the first time, it will need to be updated to the latest firmware. This can take anywhere from 5 minutes to 1 hour depending on your WiFi connection speed.

Follow the instructions on your mobile app and **do not** touch your Looking Glass Go as the firmware is being updated. During the update, the screen might look like it's switched off and the LED might switch off temporarily.

When updating, the LED on your Looking Glass will be breathing purple when the firmware has been downloaded successfully and is updated.\
\
Note: If more than 1 hour has passed and your Looking Glass Go has not fully completed the firmware update process, please reach out to <support@lookingglassfactory.com> with the subject line "Firmware Update" and provide us with your serial number (which appears on the bottom of your device and on the app and looks like: LKG-E#####)
{% endhint %}

### Firmware Version

<figure><img src="/files/CmNgGlLwzQxQF7BVqVsX" alt=""><figcaption><p>You can find your device's firmware version in your Library, next to your Go's serial number</p></figcaption></figure>

***

To see and experience holographic projects and experiments from creators around the world and find live updates on all things Looking Glass, [join our community](https://look.glass/community)!


# Using the Go Mobile App

You will need the Looking Glass mobile app if you intend to use your Looking Glass Go untethered from a computer and for syncing holograms to your device over WiFi.

<figure><img src="/files/jXymjIYAeKs3tIF3gAvW" alt=""><figcaption></figcaption></figure>

To start, download the Looking Glass mobile app for iOS or Android using the options below.

{% hint style="warning" %}
**Android availability (August 12, 2026):** The Looking Glass Go app is temporarily unavailable on Google Play. While the Play listing is unavailable, Android users can download the official Looking Glass Go APK (version 1.5.3, build 73) below. If the app is already installed and working, no action is needed.
{% endhint %}

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><a href="https://apps.apple.com/us/app/looking-glass-go/id6479449767">Download the Looking Glass Go App for iOS</a></td><td></td><td></td><td><a href="/files/BPUncTiWIiTMkIKeBdR6">/files/BPUncTiWIiTMkIKeBdR6</a></td></tr><tr><td><a href="https://s3.us-east-1.amazonaws.com/static-files.lookingglassfactory.com/LookingGlassGoMobileApp/Android/LKGGoMobileApp-1.5.3-73.apk">Download the Looking Glass Go app for Android (APK)</a></td><td></td><td></td><td><a href="/files/ssvN1jAyVJgHMCgubtiw">/files/ssvN1jAyVJgHMCgubtiw</a></td></tr></tbody></table>

### Install the Android APK

1. Select **Download the Looking Glass Go app for Android (APK)** above.
2. Open the downloaded APK from your browser's downloads or the Files app.
3. If Android blocks the installation, open the prompt's settings and temporarily allow that browser or Files app to **Install unknown apps**.
4. Return to the APK and complete the installation.
5. Turn **Install unknown apps** off again for that browser or Files app.

For optional file verification, the APK's SHA-256 checksum is `3FC69E5CA81E64288D16FFAF5449ED15AC5D2BD6D4732B98296358EFB8A85A9F`.

Once you've downloaded the Mobile App, follow the on-screen instructions to connect your Go to WiFi.

### Connecting your Looking Glass Go to WiFi

<figure><img src="/files/XmrIgtriigbmguUQaJTG" alt=""><figcaption></figcaption></figure>

1. Sign up / login to your [Looking Glass account](https://blocks.glass).
2. Connect to a Go device by following the instructions on the screen.
3. Ensure that the Bluetooth connection on your phone is on and ready to pair with new devices.
4. Your Go device will show up when ready to connect.\
   \
   To confirm that the serial number matches the ones to your device, check the sticker on the bottom of your Looking Glass Go.

<figure><img src="/files/PchJ7s9mImOFOYyyAvcf" alt=""><figcaption></figcaption></figure>

5. Once you hit `Connect` , a list of your WiFi networks will show up. Connect to your WiFi network and enter its password.

{% hint style="info" %}
When you connect your Go to WiFi for the very first time, you will be notified that your Go is performing a firmware update. Do not touch your device during this update.
{% endhint %}

<figure><img src="/files/cgdU8J3twq21Oy2qjYxI" alt=""><figcaption></figcaption></figure>

### Firmware Updates

<figure><img src="/files/VBL8564NGXyalPBp2KSX" alt=""><figcaption></figcaption></figure>

Looking Glass Go will periodically receive OTA (over-the-air) updates via its WiFi connection.

{% hint style="warning" %}
When connecting your Looking Glass Go to WiFi for the first time, it will need to be updated to the latest firmware. This can take anywhere from 5 minutes to 1 hour depending on your WiFi connection speed.

Follow the instructions on your mobile app and **do not** touch your Looking Glass Go as the firmware is being updated. During the update, the screen might look like it's switched off and the LED might switch off temporarily.

When updating, the LED on your Looking Glass will be breathing purple when the firmware has been downloaded successfully and is updated.\
\
Note: If more than 1 hour has passed and your Looking Glass Go has not fully completed the firmware update process, please reach out to <support@lookingglassfactory.com> with the subject line "Firmware Update" and provide us with your serial number (which appears on the bottom of your device and on the app and looks like: LKG-E#####)
{% endhint %}

### Firmware Version

<figure><img src="/files/CmNgGlLwzQxQF7BVqVsX" alt=""><figcaption><p>You can find your device's firmware version in your Library, next to your Go's serial number</p></figcaption></figure>

***

## Uploading Holograms onto your Looking Glass Go

### Uploading your first hologram

Once you are connected to your Looking Glass account and WiFi, you can start uploading new holograms to your Looking Glass Go using the mobile app.

<figure><img src="/files/on9b3GntsqL6mt60ie4X" alt=""><figcaption></figcaption></figure>

1. To upload your first photo, hit `Select photos to convert`
2. If you are using an iPhone, `Allow Access to All Photos` or `Select Photo...`
3. Choose an image that you want to upload and convert
4. Once your photo has been uploaded, hit `Focus holograms` to start the editing process. The output of our AI depth generation may vary, so you may want or need to edit the resulting hologram

### Editing Holograms

{% tabs %}
{% tab title="Focus" %}

<figure><img src="/files/yXHUG42PI9ahfeOp5IA4" alt=""><figcaption></figcaption></figure>

To select the point of focus of your hologram, tap or click on the subject you wish to be most in focus and our AI algorithm will adjust the focal point of the hologram.\
\
This is something that will take a bit of practice over time, but for most portrait photos of people, we recommend determining the subject of the photo and making sure that you tap to focus on focal points like eyes.
{% endtab %}

{% tab title="Depth" %}

<figure><img src="/files/vIbgP6qZtAxZPd6EVKxj" alt=""><figcaption></figcaption></figure>

The depth slider changes how far forward from the display you want your photo to stretch.\
\
To change the depth of your hologram, use the slider to indicate whether you want the hologram to have more or less depth.
{% endtab %}

{% tab title="Zoom" %}

<figure><img src="/files/5hZnl48PCwMZ3RPqpCUi" alt=""><figcaption></figcaption></figure>

The Zoom slider controls how cropped in your image is.\
\
The Looking Glass Go has a screen resolution of 9:16, so if your photos are in a 3:4 ratio, you might want to zoom in your images a little bit to eliminate the black bars at the top and bottom of the screen.

<figure><img src="/files/WZ5dpFXo8ouUpJiqprgD" alt=""><figcaption></figcaption></figure>

Use the slider to indicate whether you want the hologram to be zoomed in (which will crop the image) or zoomed out.
{% endtab %}
{% endtabs %}

### Managing Playlists

Now that you've made your first holograms, it's time to create a playlist! To do so, you'll first need to head over to Looking Glass Blocks — our holographic sharing platform.

The Go app is directly tied to your Blocks account, so with the same username and password, you'll now have two places to create and edit your playlists: in-app and via desktop.

{% tabs %}
{% tab title="Creating Playlists" %}

<figure><img src="/files/w5wh3QesuRr9g1i7i1a0" alt=""><figcaption></figcaption></figure>

To create hologram playlists for your Looking Glass Go, sign into your [Blocks account ](https://blocks.glass)and under the `Library` menu, select `Create Playlist`. Give your playlist a title and a description, and select `Create` to finish creating your playlist.

You can now add any of your existing holograms to this playlist by selecting them from the `Add to Playlist` button, which will show you a list of all of the holograms on your own account.

\
To add holograms from the Discover page (or anywhere else on Blocks), hover over the hologram preview, and click on the `...` button to select `Add to playlist` to add the hologram to your desired playlist.

<figure><img src="/files/XRd58PTf3ySsHMi6o44n" alt=""><figcaption><p>When adding holograms to your playlist, you should note that you will not be able to edit the focus, depth, or zoom values for holograms that aren't your own.</p></figcaption></figure>
{% endtab %}

{% tab title="Sharing Playlists" %}

<figure><img src="/files/xJBz6au4Ko3iUpGBIVqH" alt=""><figcaption></figcaption></figure>

To share a playlist, head to the playlist's page in your `Library` and press or click on the :link: symbol. This will copy your playlist's link to your clipboard for sharing.

<figure><img src="/files/XmZotq4Ht7bUVA9AOuU4" alt=""><figcaption><p>Check out <a href="https://blocks.glass/playlists/5e30fc4d-a1f0-4cf7-8048-b37fcb128647">this example playlist</a> made by our own Missy Senteio!</p></figcaption></figure>
{% endtab %}

{% tab title="Syncing Playlists" %}
\[Illustration]

To sync your playlist to your Looking Glass Go, you must first register and connect your Go to your [Looking Glass account](https://blocks.glass).\
\
Then, from within the `Library` page, under `Devices`, select your Looking Glass Go and `Choose Playlist to Sync`.\
\
After selecting the playlist you wish to sync, you will see an indication of the syncing process on the Playlists page and the changes reflected on your Looking Glass Go.
{% endtab %}
{% endtabs %}

Any changes you make to your playlists on the mobile app or on the web will be synced to your Blocks account. Any changes you make to the playlist synced to your Looking Glass Go will be reflected on your Go as long as the device is connected to WiFi.<br>

<figure><img src="/files/Cv7PbulY2ZAeCQ9KOiW9" alt=""><figcaption><p>Playlists are a way of curating a looping series of holograms that can be displayed and stored on your Looking Glass Go.</p></figcaption></figure>

{% hint style="info" %}
Syncing and updating hologram playlists on your device may take some time depending on how many holograms you are syncing.
{% endhint %}


# Standalone and Desktop Modes

{% hint style="info" %}
If you have trouble getting your Go to power on, check out our [troubleshooting guide](/getting-started/looking-glass-go/troubleshooting).
{% endhint %}

{% hint style="info" %}
The Looking Glass Go will **not** work with USB-A to USB-C cables. We **strongly** recommend using the included USB-C cable with the Go.
{% endhint %}

The Looking Glass Go can be used in two different modes, Standalone Mode and Desktop Mode.\
\
In Standalone Mode the display only requires power. The Looking Glass Go can be powered by the included power adapter, a capable USB-C port on your computer, or the battery accessory.

### Standalone Mode

<figure><img src="/files/x19tI11F9omWGZNgMngO" alt=""><figcaption></figcaption></figure>

Once you've got the Go plugged into power, tap the power button to boot into Standalone Mode.

If your Looking Glass Go is connected to a computer, you'll need to tap the power button again to switch the Go from Desktop Mode to Standalone Mode. In this mode you can connect the Go to Wi-Fi using the [**Looking Glass Go mobile app**](/getting-started/looking-glass-go/using-the-mobile-app) and load content from [**Blocks**](https://blocks.glass).

### Desktop Mode

Desktop Mode allows you to use your Looking Glass with your Mac, Windows, or Linux computer and use software like [Liteforms](/legacy/legacy-software/liteforms) and [Blocks](/software/looking-glass-blocks), as well as create your own applications using our integrations with tools like [Blender](/software/creator-tools/index-1), [Unity](/software/index), [Unreal Engine](/software/creator-tools/index), [WebXR](/software/creator-tools/webxr) and[ ](broken://pages/-MX37dkFZEv9vlTCEAbL)more.

<figure><img src="/files/HTeBvH0Mn4MXJkyYxUuO" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
In order to use Desktop Mode, your computer must be able output a 4K video signal via USB-C. If you do not have a USB-C port with Display Port Alt Mode and need to connect your Go using an HDMI cable, we recommend using [this adapter](https://checkout.lookingglassfactory.com/products/looking-glass-go-hdmi-cable).
{% endhint %}

### Adjusting Display Settings

Follow the guides below to ensure that your display settings are correct.

{% content-ref url="/pages/SqewUHfu4KKIY6xsYo1z" %}
[Display Settings on Windows](/software/looking-glass-bridge/display-settings-on-windows)
{% endcontent-ref %}

{% content-ref url="/pages/ypLgTeSrQP71utINd55a" %}
[Display Settings on macOS](/software/looking-glass-bridge/display-settings-on-macos)
{% endcontent-ref %}

{% content-ref url="/pages/yapPbuHzpWTgdZDY4lZm" %}
[Display Settings on Linux](/software/looking-glass-bridge/display-settings-on-linux)
{% endcontent-ref %}

## Software Requirements

In order to use your Looking Glass in Desktop Mode, you'll first need to install Looking Glass Bridge. You can download Looking Glass Bridge [here](/software/looking-glass-bridge).

Once Looking Glass Bridge is installed, run the test below and you should see a hologram appear on your display. That means it's working!

For more information about Looking Glass Bridge, visit the Bridge documentation [here](/software/looking-glass-bridge/using-looking-glass-bridge).

{% embed url="<https://codesandbox.io/embed/hardcore-butterfly-l5o9d?fontsize=14&hidenavigation=1&theme=dark&view=preview>" %}


# Power and LED States

## Power States

<figure><img src="/files/qHcYbGSQFbHMohoesEO5" alt=""><figcaption></figcaption></figure>

{% tabs %}
{% tab title="Powering On 🟢 " %}
There are two ways to power on your Looking Glass Go:

1. Connect one end of the cable to the USB-C port on the back of the display, and one end of the cable to a power outlet using the included power adapter.\
   This will activate **Standalone Mode (Solid White)**.
2. Alternatively, connect one end of the cable to the USB-C port on the back of the display, and one end of the cable to a computer.\
   When connected to a computer, your Go will effectively have **two** modes to operate on:\
   **Standalone Mode (Solid White)** or **Desktop Mode (Solid Blue)**.

Press the power button once to turn your Looking Glass Go on.
{% endtab %}

{% tab title="Powering Off 🔴 " %}
To power off your Looking Glass Go, hold down the power button until the light indicator is breathing white/blue.
{% endtab %}
{% endtabs %}

### Status LED Key

The Looking Glass Go has a status LED on the side of the device near the power button.

The status LED is helpful to determine what state the Looking Glass is in.

<table><thead><tr><th width="214">Color</th><th>Status</th></tr></thead><tbody><tr><td>⚪️ Solid White</td><td>Powered on and in Standalone Mode.</td></tr><tr><td>⚪️ Breathing White</td><td>On standby, ready to be used in Standalone Mode.</td></tr><tr><td>⚪️ Blinking White</td><td>Switching to Standalone Mode.</td></tr><tr><td>🔵 Solid Blue</td><td>Looking Glass Go is running in Desktop Mode.</td></tr><tr><td>🔵 Blinking Blue</td><td>Switching to Desktop Mode.</td></tr><tr><td>🔵 Breathing Blue</td><td>On standby, ready to be used in Desktop Mode / DP Alt Mode available.</td></tr><tr><td>🔵 Breathing Blue (while connected to phone)</td><td>On standby, ready to be used with compatible phone.</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f7e3">🟣</span> Breathing Purple</td><td>Updating Firmware.</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f7e2">🟢</span> Solid Green</td><td>Connected to WiFi in Standalone Mode.</td></tr><tr><td>🟡 Flashing Yellow</td><td>Insufficient power to switch to Standalone Mode from Desktop Mode, no DP Alt Mode available.<br>To troubleshoot, disconnect from power and reconnect cables.</td></tr><tr><td>🔴 Flashing Red</td><td>Insufficient power for Standalone Mode.</td></tr></tbody></table>


# Default Playlist

Find a list of all the holograms that come pre-loaded on your Looking Glass Go.

## Demo Holograms

[Sync the V1 Looking Glass Go Playlist](https://look.glass/go/demo-playlist)

:new: [**Sync the Real and Imagined Playlist**](https://blocks.glass/playlists/5e30fc4d-a1f0-4cf7-8048-b37fcb128647)

***

### Default Cube

The first thing a lot of 3D artists see, by Arturo J. Real

![](/files/612nglsoFauFeldOoVbf)<br>

### Iridescent Triangles

A true display of iridiscence and reflections, by Ben Domogala

![](/files/6PtP7XL5w3hfp3YLYwKg)<br>

### Magic Hands

As magical as it gets, by Steven Scott

<div align="left"><figure><img src="/files/V8k5ptdjrXwf18zYYLo5" alt="" width="375"><figcaption></figcaption></figure></div>

### Golden Ticket

A quintessential hologram (and delicious snack!), by Jay Howse

![](/files/QBknsBga4wa1xpUebpaR)<br>

### Lightfield Missy

Light fields in style, by Michelle Senteio

![](/files/8rUsQCv9FDmn5Uc7KyJI)<br>

### Baby Missy Polaroid

Bringing 90s nostalgia to the future, by Michelle Senteio

![](/files/AAqbUzyKV3Tsay2HVmIA)<br>

### Sleeping Baby

Don't sleep on this 2D to 3D conversion

![](/files/KQL9OOc1JxjSrzP96TvE)<br>

### Lightfield Shawn

To the future

<div align="left"><figure><img src="/files/l4Do5a1UapC5o0waURfG" alt="" width="275"><figcaption></figcaption></figure></div>

### Trench Run

An iconic scene by Aurelio Puerta Marin

![](/files/tIuALpeLCDg1EC7CnJMj)<br>

### Sashimi GSplat

A delicious gaussian splat made using Luma AI by Nikki Chan

![](/files/F2Lo0MOJAFQF2NGh7Wby)<br>

### Hotpot GSplat

Hotpot and holograms are better with friends made using Luma AI by Michelle Senteio

![](/files/puwJ192eLf8Z3ic27QRG)<br>

### Still Life

A beautiful Blender render, by Erindale Woodford

![](/files/p6aq9awMndL3Gd4HobaG)<br>

### Toy Shelf

A glimpse into a toy story, by Jay Howse

![](/files/tgokgmkY4MWGgX6OXJ1K)<br>

### Winter Robin

Fogging up your pane, by Nael Brun

![](/files/TSCBXU8641xc5ZxKkGSK)<br>

### Mona the Cat GSplat

Zzz, by Nikki Chan

![](/files/ilkjlrVQb1ygOObFtgLE)<br>

### Clark Kent Dog

Im-paws-ible to recognize, by Michelle Senteio

<div align="left"><figure><img src="/files/3bjlEtVMo9J5J8hEEq2v" alt="" width="375"><figcaption></figcaption></figure></div>

### To the Moon

An out-of-this-world pup, by Arturo J. Real

![](/files/BS1YuRIvxTW20xt5lIch)<br>

### Mt. St. Helens

A beautiful landscape, by Sean Conway

![](/files/D3ehMLnPxW65eacClYyt)<br>

### Molecule

Straight out of Maestro

![](/files/Qe8g0pl1O151EdppCWb3)<br>

### Protein

Straight out of Maestro

![](/files/86OL1PiZGHKDwrLiTNNd)<br>

### Anime Girl Prompt, Midjourney

Lo-fi hip hop girl walked so lo-fi hologram girl could run, by Michelle Senteio

![](/files/Z6ImMljhbd8yixW0fCef)<br>

### Sailor Man

Shiver me timbers!, by Eric3dee

![](/files/7BOe7DpGW3HWjI3I3Jb3)<br>

### Hikari Thinking

A pensive pose, by Michelle Senteio. Avatar made with HoloModels by Gugenka.

![](/files/5RWDp6d3M5i4DkozGkhD)<br>

### Hikari Happy

Happy as can be, by Michelle Senteio. Avatar made with HoloModels by Gugenka.

<div align="left"><figure><img src="/files/qTd3lKsuxQrAh8tNxFWa" alt="" width="375"><figcaption></figcaption></figure></div>


# What's Next?

A comprehensive list of other things you can do with your Looking Glass Go.

Want to learn more about holograms?

Check out Holograms 101, a comprehensive guide on all the different kinds of holograms you can make:

{% content-ref url="/pages/-MWj8zz\_SFq9At7co952" %}
[Hologram 101](/keyconcepts/key-concepts)
{% endcontent-ref %}

Want to discover some holograms created by our community members?

Check out [Blocks](https://blocks.glass) and see what happens when holograms meet the internet!:

{% content-ref url="/pages/uzTiej3OippIQZrjMaxD" %}
[Looking Glass Blocks](/software/looking-glass-blocks)
{% endcontent-ref %}

Have a favorite 3D tool you want to use with your Looking Glass?\
You can get started right away:

{% content-ref url="/pages/-MWj8zxnNsjm8ORMiDtO" %}
[Unity](/software/index)
{% endcontent-ref %}

{% content-ref url="/pages/-MWj9-1QDiLVMyndrEi6" %}
[Blender](/software/creator-tools/index-1)
{% endcontent-ref %}

{% content-ref url="/pages/-MWj9-07OczrYgMQEcO0" %}
[Unreal Engine](/software/creator-tools/index)
{% endcontent-ref %}

{% content-ref url="/pages/KCiJPVuIHoG460Q6v6zU" %}
[WebXR](/software/creator-tools/webxr)
{% endcontent-ref %}

Learn more about the holograms that ship with your Looking Glass Go below:

{% content-ref url="/spaces/-MWj8g-jOrSs315lrZFz/pages/bq2vOlNt8BvUauD4IX1b" %}
[Default Playlist](https://docs.lookingglassfactory.com/getting-started/looking-glass-go/demo-holograms)
{% endcontent-ref %}

Interested in experiments and other community-made tools? Check out

{% content-ref url="/pages/jnYFGSxoR2sPFDBd1Gju" %}
[Community Made Tools & Projects](/software/third-party-apps-and-tools/community-made-tools-and-projects)
{% endcontent-ref %}


# Accessories

## [Looking Glass Go Battery Pack](https://checkout.lookingglassfactory.com/products/go-battery-pack)

An optional (but recommended!) battery pack designed to fit perfectly with your Looking Glass Go and allows it to run untethered on Standalone Mode for up to two hours.

* **Only ships with Looking Glass Go, not sold separately**
* Portable USB-C output. (Also compatible with other USB-C powered devices)
* Lithium-ion 18650 3500mAh, 12.95Wh
* 80mm x 30mm x 21mm
* Time to charge to 100%: 1 hour
* CE, UKCA, FCC, UL, PSE certification
* Does not come with charging cable - charges with USB-C cable
* Does not allow for passthrough charging of devices other than Looking Glass Go\
  \
  \&#xNAN;*Battery Button functions:*
  * **Single short press**: turn on battery pack (useful when battery bank is asleep after Go is in standby for 30s)
  * **Double short press**: turn off battery pack
  * **Long press (5 seconds)**: constant battery output mode (disables battery pack auto-sleep feature and device insert detection, the battery pack indicators will blink in a cycle animation)

<figure><img src="/files/YsVjLq1OJGxlAECSFwLS" alt=""><figcaption></figcaption></figure>

## [Looking Glass Go Frame](https://checkout.lookingglassfactory.com/products/go-frame?pr_prod_strat=pinned\&pr_rec_id=3105afe6f\&pr_rec_pid=7477650096217\&pr_ref_pid=7477648064601\&pr_seq=uniform)

Turn your Looking Glass Go into a holographic photo frame with this snap-on photo frame.\
No assembly required. This can be used as as frame for your shelf/desk or can be wall-mounted.

<figure><img src="/files/JEIxeog2DjwSOasNSeLL" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/nD2u781Od4fMQVLVl1GD" alt=""><figcaption></figcaption></figure>

## Looking Glass Go HDMI to USB C Adapter Cable

{% hint style="warning" %}
We no longer sell our own adapter cable. If you need an alternate solution, we recommend the WJESOG adapter cable available on Amazon [here](https://www.amazon.com/dp/B0BNX61QNV).
{% endhint %}

Looking Glass Go is designed to connect to your computer in Desktop Mode through a single USB-C cable using DisplayPort Alt Mode (DP Alt Mode). This is an optional accessory that enables Desktop Mode if your computer does not natively support it.

Check [this article](https://docs.lookingglassfactory.com/faq-and-troubleshooting) for compatibility requirements.

To see the difference between Standalone and Desktop Modes, see our docs for those modes [here](/getting-started/looking-glass-go/standalone-and-desktop-modes).

<figure><img src="/files/IaP1IGc5uxJ3i41Eafm5" alt=""><figcaption></figcaption></figure>


# Advanced Playlist Creation

This page describes the steps necessary to create a custom playlist on the Looking Glass Go.

{% hint style="warning" %}
The Go can only play Quilt images in stand-alone mode currently.
{% endhint %}

The Go is designed around playing playlists from the user-accessible mass storage.

These playlists can come in three forms:

1. `currentlyPlaying.json`
2. `.m3u` files
3. loose files

The Go searches for content in the order listed above.

First, it looks for a `currentlyPlaying.json` file.

If none is found, it searches for a `.m3u` file on the root directory.

If it still finds nothing, it searches for any `.jpg` or `.png` files on the root directory.

You may notice that the image files come with a .json file with the exact same name, like this:

```
image.png
image.png.json
```

We call these “sidecar” files, and they are used to set the settings for the quilt images.

These sidecar files are a legacy file format from Looking Glass Studio, but the Go still supports *some* of the settings.

These are the settings that are still supported:

```json
{
    "mediaType": "quilt",
    "quilt_settings": {
        "viewX": 8,
        "viewY": 6,
        "viewTotal": 48,
        "aspect": 0.5625,
        "invertViews": false
    },
    "focus": 0.0,
    "zoom": 1,
    "duration": 10.0
}
```

You can also set some of the settings in the filename of the image (to avoid having to make a JSON file), like this:

```
image_qs5x9a1.77z1.2f0.0.jpg
```

This will set the following settings:

* `qs5x9` : tells the Go the quilt is 5x9
* `a1.77` : tells the Go the aspect is 1.77 (16:9)
* `z1.2` : tells the Go to zoom in slightly, 1.0 is the default zoom
* `f0.0` : tells the Go to focus on the center volume (for quilts you make you probably don't need this)

### For more details about the playlist formats see below:

The currentlyPlaying.json looks like this:

```json
{
    "model": "toolkit",
    "schema": "0.1",
    "playlists": [
        {
            "title": "Go Playlist",
            "path": "/LKG/Content/608/playlist.m3u"
        }
    ]
}
```

The Playlists array points to a set of playlists which will get played one after another.

This example above points to the synced playlist from Blocks, which is stored in the Content folder.

The `.m3u` file is just a list of files relative to the root directory, in the order that they need to be played:


# Manual Firmware Update

This guide will walk you through how to manually update the firmware of your Looking Glass Go for cases with poor WiFi connectivity.

Under normal WiFi conditions your Looking Glass Go will automatically download firmware updates, these include improvements to media playback, Desktop Mode and other features, like loading a custom playlist via the Go's USB-A port.\
\
In cases where you're unable to update over WiFi due to poor connectivity, firewalls, or other network issues, it's possible to update the Looking Glass Go manually by copying the firmware update directly to the Go's onboard storage.

Unlike normal USB drives, the Go uses media transfer protocol (MTP).

Windows and Linux both have built in support for MTP, while MacOS requires custom software to access the Go's file storage.

Due to the limitation above, we highly recommend using either a Windows or Linux computer to manually update firmware.

***

## Firmware Update Process

### Factory Reset

Before you begin this process, you should factory reset your Looking Glass Go to wipe any existing WiFi credentials from the device as these could interfere with the manual update process.

To factory reset your Go, follow the procedure below:

* Unplug the Go from USB-C power.
* Hold down the power button.
* While holding down the power button, connect the Go to power with the included wall adapter via the included USB-C cable.
* Continue holding the power button for 10 seconds.
* Release the power button after 10 seconds.
* The Go's LED should flash yellow if you’ve successfully activated the factory reset.
* Leave the Go running until the LED stops flashing yellow. The LED will flash yellow for approximately 1 minute.

### Firmware Download

Please download [Firmware v1.0.76](https://drive.google.com/file/d/1z1pfJU8X-4yiXmJ46BBEygGinbxu2QDe/view?usp=sharing) (Dec 8, 2025)

### Windows/Linux (Recommended)

​Plug the Go into your computer and turn it on, from there you should see the Go show up under "This PC".

​ ![](/files/uJY9uxdS3AnCm2wKqsAa)

* Copy and paste the `rootfs.raucb` file to the Go's root storage folder.
* Turn the Looking Glass Go off by holding down the power button. ​ ​
* Reconnect the Go to wall power and turn it on by tapping the power button.

This will start the firmware update, please wait until the Go's LED changes from Purple :purple\_circle: to White :white\_circle:.\
\
This can take about 1-5 minutes. ​ ​Once the Go's status LED changes from Purple :purple\_circle: to White :white\_circle:, the firmware update is complete.

Do not unplug the Go during this process.

**​​**

### MacOS

If you are on a Mac, you'll need to install [OpenMTP](https://openmtp.ganeshrvel.com/) to access the Go's storage.

{% hint style="warning" %}
MTP (Media Transfer Protocol) on MacOS is a bit finicky and can be interrupted by other programs like Google Drive, Dropbox and even Google Chrome. Make sure these are properly closed during this process to avoid disruptions.
{% endhint %}

Once you have OpenMTP running,

* Connect your Go to your Mac via the provided USB-C cable and turn the Go on.\
  The Go should show up as a storage drive in OpenMTP.
* From there, you can drag the firmware update linked above onto the Go.
* Once the firmware files have copied over completely, you'll need to unplug the Go and connect it to wall power via the included adapter and USB-C cable.
* Turn on the Go and wait for the light to change from Purple :purple\_circle: to White :white\_circle:, this will take about 1-5 minutes.

Do not unplug the Go during this process.


# Recovery Mode

This page describes the workflow for recovering a Go that no longer boots.

{% hint style="info" %}
**Recovery Mode** is only intended to be used when a Looking Glass Go becomes completely unresponsive. To clear settings like Wi-Fi credentials, and account linking, please use a [<mark style="color:purple;">factory reset</mark>](/getting-started/looking-glass-go/troubleshooting#how-do-i-perform-a-factory-reset) instead.
{% endhint %}

## Using Recovery Mode

To use recovery mode, you'll need the Go's USB-C cable and a computer with a USB-C cable. We recommend Windows for this process. MacOS will also work, however you will need a third-party application called [OpenMTP](https://openmtp.ganeshrvel.com/) to access the Go's storage drive.

### Preparing your Looking Glass Go

To prepare your Looking Glass Go for recovery mode, please find a paper clip or SIM card ejection tool to press the hidden `reset` button located to the left of the power button.

<div align="center" data-with-frame="true"><figure><img src="/files/u82ISVm7iihVFjORacqx" alt="" width="188"><figcaption></figcaption></figure></div>

**Keep the `reset` button pressed** and follow these four steps, in order:

1. Plug your USB-C cable into your computer — do not plug in the Go yet
2. Plug the other end of the USB-C cable into the Go
3. Press and release the power button
4. Wait five seconds, then release the reset button

{% hint style="warning" %}
**When connected to some computers (those with DisplayPort Alt Mode), the Go will boot it into Desktop Mode at Step 3 — the indicated light will be blue. If this happens, press the power button again to trigger Standalone Mode.**
{% endhint %}

This should trigger the Go to boot into recovery mode. In this mode the **screen will be off**, and the LED on the side will be **solid yellow**.

### Accessing the Go's Storage Drive

{% tabs %}
{% tab title="Windows" %}
You should be able to access the Go's storage drive via MTP. On Windows, this will show as `Looking Glass Go`

<figure><img src="/files/HJp1z1bkQxLwtGVRdumb" alt=""><figcaption></figcaption></figure>

Choose `Looking Glass Go` then choose `Card Storage`, download and place the latest [Looking Glass Go firmware](https://drive.google.com/file/d/1c2BeN92BUj5pogy6waoA_J6wnOnNIM2O/view?usp=sharing) into the `Card Storage` folder.

<figure><img src="/files/o6CgBNU60jc9pziutv83" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="MacOS" %}
On MacOS you'll need to install [OpenMTP](https://openmtp.ganeshrvel.com/) to access the Go's storage.

You should see your Go's storage drive immediately upon opening OpenMTP.

{% hint style="info" %}
If you don't see your Go's storage drive, it's possible that another program has claimed the storage. Please make sure that applications like photos, google drive, dropbox, and google chrome are closed. This should allow OpenMTP to function normally.
{% endhint %}

Once you see your Go's storage download and place the latest [Looking Glass Go firmware](https://drive.google.com/file/d/1c2BeN92BUj5pogy6waoA_J6wnOnNIM2O/view?usp=sharing) into the `Card Storage` folder. You can drag this directly from finder into OpenMTP.

<figure><img src="/files/cbz3MhPs7X2gHFahhFLq" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

### Resetting the Go's firmware

Upon placing the firmware on the Go, the device should start updating. The LED will begin breathing purple. **Do not unplug the Go during this process.**

After a few minutes, the Go should trigger a reboot and stand-alone functionality should resume.

If you encounter any issues with this process, please email **<developer@lookingglassfactory.com>**, and include your device's serial number.


# Common Troubleshooting Issues

Being at the cutting edge of technology isn't always easy, luckily you're not alone! We've put together this guide here to help you if you hit any stumbling blocks on your path to the future.

## Status LED Key

The Looking Glass Go has a status LED on the side of the device near the power button. The status LED is helpful to determine what state the Looking Glass is in if you're running into issues.

<table><thead><tr><th width="214">Color</th><th>Status</th></tr></thead><tbody><tr><td>⚪️ Solid White</td><td>Looking Glass Go is running in Standalone Mode.</td></tr><tr><td>⚪️ Breathing White</td><td>Looking Glass Go is in standby, ready to be used in Standalone Mode.</td></tr><tr><td>🔵 Solid Blue</td><td>Looking Glass Go is running in Desktop Mode.</td></tr><tr><td>🔵 Breathing Blue</td><td>Looking Glass Go is in standby, ready to be used in Desktop Mode.</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f7e3">🟣</span> Breathing Purple</td><td>Updating Firmware</td></tr><tr><td><span data-gb-custom-inline data-tag="emoji" data-code="1f7e2">🟢</span> Blinking Green</td><td>Connected to WiFi in Standalone Mode.</td></tr><tr><td>🟡 Blinking Yellow</td><td>Insufficient power to switch to Standalone Mode from Desktop Mode. To troubleshoot, disconnect from power and and reconnect cables.</td></tr><tr><td>🔴 Blinking Red</td><td>Insufficient power for Standalone Mode.</td></tr></tbody></table>

***

## Entering Standalone Mode

To enter **Standalone Mode**, ensure that your Looking Glass Go is connected to a power source via USB-C either using the included power adapter or to a computer with USB-C Alt Mode.

{% hint style="warning" %}
USB-A to USB-C cables will not work with the Looking Glass Go. You should use the included USB-C Cable that comes with the Go.
{% endhint %}

Once you've checked to confirm your USB-C cable is properly connected on both ends, take a look at the status LED on the side of the Looking Glass.\
\
If it's connected to power properly you should see the LED breathing white. If this is the case, awesome!\
\
Tap the power button on the Looking Glass and you should see the device boot up into **Standalone Mode** and display your holograms.

If the Looking Glass boots up but doesn't show any holograms, check the status LED to see if it's running in **Standalone Mode** properly. Once it's booted up the LED should be solid white.

***

## Entering Desktop Mode

To enter **Desktop Mode** connect the included USB-C Cables to your computer's USB-C Port. If your computer does support USB-C Alt Mode, you will need to utilize a HDMI ↔ USB-C Adapter.

Once you are connected, download the latest version of [Looking Glass Bridge](/software/looking-glass-bridge).

To ensure that your Looking Glass and related software are working properly, try the web test below.

If successful, your display should show a test image of the Looking Glass logo on your Go. To close this image, move your mouse over and click anywhere on the image. The image should appear 3D.

If the image doesn't appear, or you get an error, ensure that the latest version of [Looking Glass Bridge](https://look.glass/bridge) is installed and that your USB-C cable is properly plugged in.

{% embed url="<https://codesandbox.io/embed/hardcore-butterfly-l5o9d?fontsize=14&hidenavigation=1&theme=dark&view=preview>" %}

***

## Get Go Logs

The Go can generate logs from its Standalone mode sessions.

Press the previous ⏮️ button (the one closest to the front of the device) for five seconds. The log file will save on the Go's storage. To access it you'll need to plug it into a Windows or Mac computer.

Windows: Open File Explorer and navigate to the Go. It will show up as two drives — the log file is in the larger of the two.

macOS: You'll need a utility called [OpenMTP](https://github.com/ganeshrvel/openmtp/releases/tag/v3.2.25), since macOS doesn't support the Go's storage format.

***

## Reset macOS Display Detection

On some versions of macOS, selecting **Stop Mirroring**, **Stop Extending**, or disconnecting the Go can leave it hidden in macOS’s saved display configuration.

This may be the issue if:

* The Go previously worked in Desktop Mode.
* The Go now has a black screen with a solid blue status LED.
* The Go appears under **System Information > USB**, but not under **Graphics/Displays**.
* Looking Glass Bridge does not detect the Go.
* The same Go and cable still work on another computer.

First, confirm that you are using a USB-C port with DisplayPort Alt Mode and that the Go is in Desktop Mode. If those checks pass, reset the saved macOS display configuration:

1. Disconnect the Go and quit Looking Glass Bridge.
2. Open **Terminal**.
3. Run these commands to check for the two saved display-preference files:

```
ls ~/Library/Preferences/ByHost | grep com.apple.windowserver.displays
ls /Library/Preferences | grep com.apple.windowserver.displays
```

The first command normally returns a filename resembling:

```
com.apple.windowserver.displays.CDD6BCE3-4FE5-5529-B4DA-4F644D465369.plist
```

The second normally returns:

```
com.apple.windowserver.displays.plist
```

4. If both files are present, remove them with:

```
rm -f "$HOME"/Library/Preferences/ByHost/com.apple.windowserver.displays.*.plist
sudo rm -f /Library/Preferences/com.apple.windowserver.displays.plist
```

Enter your macOS administrator password if prompted. Terminal will not display the password as you type.

5. Reconnect the Go, place it in Desktop Mode, and reopen Looking Glass Bridge. If it is still not detected, restart your Mac and try again.

{% hint style="warning" %}
This process resets macOS’s saved display arrangements, resolutions, scaling, and mirroring preferences for external displays. It does not factory-reset the Go or delete its standalone content. Only remove the two `com.apple.windowserver.displays` files shown above.
{% endhint %}

If the Go is still missing, contact support and include:

* Your Go’s serial number
* Your Mac model and macOS version
* Your Looking Glass Bridge version
* A screenshot of **System Information > USB**
* A screenshot of **System Information > Graphics/Displays**

***

## Frequently Asked Questions

<details>

<summary>I can't see my Go in the mobile app</summary>

Check to ensure that your Looking Glass Go is on Standalone Mode (LED should be white :white\_circle:) and not Desktop Mode.

This is an easy mistake to make if you are powering your Looking Glass Go with your computer and not with the wall adapter.\
\
To switch modes, simply double tap the power button or disconnect to your computer and plug in using the included power adapater.

</details>

<details>

<summary>I can't connect to Bluetooth</summary>

Double check that your Bluetooth connection is on and ready to pair with new devices.

Starting in iOS 13, a user must give permission to the app in order for it to use Bluetooth functionality.\
\
If you see a prompt that asks you to allow our app to use Bluetooth, tap OK to allow Bluetooth access.

</details>

<details>

<summary>I can't connect to my WiFi network</summary>

There are a few reasons why this might be the case.\
\
First, ensure that you are connected to a 2.4GHz network. Most networks are 2.4GHz unless otherwise stated. Second, ensure that you are close to a WiFi connection.

Second, the WiFi module on the Looking Glass Go is not as strong as some of your other devices (like phones) so get as close as you can to your signal when connecting.

Third, the Looking Glass Go can only connect to broadcast SSIDs. It will not be able to connect to hidden networks. Ensure that your router is set to broadcast the SSID.

If you still have issues connecting to your home WiFi network, try with your personal hotspot. If you are using an iPhone, make sure you have "Maximize Compatibility" turned on.

If you are still having issues after following these steps, contact us with your serial # that can be found at the bottom of your Looking Glass Go.

</details>

<details>

<summary>How can I check whether my network is 2.4GHz or 5GHz?</summary>

To ensure a smooth connection process, you'll need to verify that you're connecting to a 2.4GHz network. Here's a simple guide to help you check:

1. **Check your router settings**: Many routers use different names for 2.4GHz and 5GHz networks. Look for network names ending in "2G" or "2.4GHz".
2. **Use your smartphone**:
   * On Android: Go to Settings > Network & Internet > WiFi > Select your network > View network details. Look for "Frequency" or "Band".
   * On iOS: You'll need to use a third-party app like "Airport Utility" or "WiFi Analyzer" to check the band.
3. **Use a computer**:
   * On Windows: Right-click the WiFi icon > Open Network and Internet settings > Properties (under the current network) > Look for "Network band".
   * On Mac: Hold Option and click the WiFi icon in the menu bar. Look for "Channel" - if it's between 1-11, it's 2.4GHz.
4. **Ask your internet service provider**: If you're unsure, contact your ISP. They can guide you on how to connect to the 2.4GHz band of your specific router.

### Troubleshooting Tips

* If you can't find a 2.4GHz network, check your router settings. You may need to enable the 2.4GHz band.
* Some routers combine both bands under one name. In this case, try disconnecting from 5GHz on your mobile device before setting up the Looking Glass Go.
* If you're still having trouble, consider using a WiFi analyzer app to identify available 2.4GHz networks in your area.

</details>

<details>

<summary>I can't connect the Go to my computer with the included USB-C Cable</summary>

Looking Glass Go is designed to connect to your computer through a single USB-C cable using DisplayPort Alt Mode (DP Alt Mode).

### Understanding DisplayPort Alt Mode

DisplayPort Alt Mode (DP Alt Mode) is a feature of the USB-C specification that allows a USB-C port to output DisplayPort video signals directly. This enables you to connect a display, like the Looking Glass Go, to a compatible USB-C port without needing a separate video cable.

### Checking Your Computer's Compatibility

#### Windows Laptops

* Look for the Thunderbolt (lightning bolt) or DisplayPort (DP) logo next to your laptop's USB-C ports. If present, the port supports DP Alt Mode.
* If there are no logos, find your laptop's model number in Settings > System > About. Search for the model online and check the manufacturer's specifications to confirm if the USB-C ports support DP Alt Mode or DisplayPort output.

#### MacBooks

* MacBooks don't have port capability logos. Find your MacBook's model identifier by clicking the Apple menu > About This Mac.
* Check the specifications for your model on Apple's website. Look for "Native DisplayPort output over USB-C" under Display Support to confirm DP Alt Mode compatibility.

#### Desktop PCs

* Check if your PC's motherboard has a USB-C port that supports DP Alt Mode. Refer to the motherboard manual or manufacturer's website for specifications.
* If your graphics card has a USB-C port, check the card's specifications to see if it supports DP Alt Mode.

### Using an Adapter for Computers without DP Alt Mode

If your computer doesn't have a USB-C port with DP Alt Mode, you can [use an adapter cable ](https://checkout.lookingglassfactory.com/products/looking-glass-go-hdmi-cable)to connect its HDMI or DisplayPort output to the Looking Glass Go's USB-C input. Currently, you can purchase a HDMI adapter directly from Looking Glass or any compatible equivalent.

</details>

<details>

<summary>I have issues switching between Standalone Mode and Desktop Mode</summary>

If you are having issues switching between **Standalone** and **Desk Mode**, it's likely one of the following issues:

1. **Loose cables:** ensure that the USB-C cable is properly connected on both ends.\
   If you try to switch between Standalone and Desktop Modes without the cable connected properly, the Looking Glass may not be able to switch between modes properly.
2. **Correct Cables:** Standalone Mode requires a USB-C to USB-C power source. It will not work with a USB-A to USB-C cable. If you're trying to switch between Standalone and Desktop Modes with a USB-A to USB-C cable, the Go's status LED will blink yellow, as it tries to switch modes, then will remain in Desktop Mode.

</details>

<details>

<summary>How do I reset my Go with the original default playlist?</summary>

Easy! You can factory reset your Go by following these simple steps:

1. Unplug the Go from USB-C power.
2. Hold the power button.
3. Plug in the USB-C power to the Go.
4. Continue holding the power button for 10 seconds.
5. Release the power button after 10 seconds.
6. Your LED should flash yellow if you’ve successfully activated the factory reset.
7. Leave the Go running until the LED stops flashing yellow. The LED will flash yellow for approximately 1 minute.

Do note that if you factory reset your Go, you will lose connection to your WiFi network and your uploaded holograms will be removed from your playlist until you next connect to WiFi.

</details>

<details>

<summary>How do I perform a factory reset?</summary>

A factory reset will reset your Go to its original factory settings, with the original demo reel included.

Here's what you need to do:

* Unplug the Go from USB-C power.
* Hold the power button.
* Plug in the USB-C power to the Go.
* Continue holding the power button for 10 seconds.
* Release the power button after 10 seconds.
* Your LED should flash yellow if you’ve successfully activated the factory reset.
* Leave the Go running until the LED stops flashing yellow. The LED will flash yellow for approximately 1 minute.

</details>


# Looking Glass 16" Light Field Displays

Our Looking Glass 16" Light Field displays are the latest part of our lineup.

With stunning contrast and incredibly vivid colors, your holograms will look better than ever before.\
\
The Looking Glass 16" Light Field displays come in portrait and landscape orientations.\
\
Choose the guide below that suits your model to set up your display!

<figure><img src="/files/Bu3jM6JDqRuqDZLWzoS8" alt=""><figcaption></figcaption></figure>

{% content-ref url="/pages/ju8YultToxdpCGBDPcGc" %}
[Looking Glass 16" Light Field Display (Landscape)](/getting-started/16/landscape)
{% endcontent-ref %}

<figure><img src="/files/TVWHPyvxlLsHJ8J7LNRk" alt=""><figcaption></figcaption></figure>

{% content-ref url="/pages/EKT1KhBhjXReD2lSpVHX" %}
[Looking Glass 16" Light Field Display (Portrait)](/getting-started/16/portrait)
{% endcontent-ref %}


# Looking Glass 16" Light Field Display (Landscape)

Set up your Looking Glass 16" Light Field display.

## 1. Set up your Looking Glass 16"

Download the latest version of the Set up, Safety & Wall Installation Guide below :arrow\_heading\_down: to set up your Looking Glass 16" (Landscape)

{% file src="/files/18GqJ67lI2mSnqy6MpVz" %}

## 2. Plug in and power on your Looking Glass 16"

<figure><img src="/files/HmMQgMBfjuqQFx1J2Ryd" alt=""><figcaption></figcaption></figure>

**USB-C Alt-Mode**

Use this mode if your connected computer has a USB-C port that supports USB-C Alt Mode.\
When using USB-C Alt-Mode, the LED indicator will blink green.

1. Plug in the first USB-C cable (to deliver power) connected to a wall adapter. Use the provided power adapters only.
2. Plug in the second USB-C cable to your computer through a port that supports Alt-Mode.
3. Your display should switch on automatically. If not, press the ON/OFF switch on the right-hand side of your display.

**HDMI-Mode**

Use this mode if your connected computer does not support USB-C Alt Mode.\
In this configuration, you will be using the included HDMI cable in addition to the USB-C cables.\
When using HDMI-Mode, the LED indicator will blink blue.

1. Plug in the first USB-C cable (to deliver power) connected to a wall adapter. Use the provided power adapters only.
2. Plug in the second USB-C cable into the Looking Glass 16” and the other end to your computer.
3. Plug in the HDMI cable into the Looking Glass 16” and the other end to your computer.
4. Your display should switch on automatically. If not, press the ON/OFF switch.

## 3. Setting up your computer

{% tabs %}
{% tab title="With a Mac (Apple Silicon only) " %}

* Under `Settings` > `Displays` , change the Looking Glass display resolution to 3840 x 2160

<figure><img src="/files/FkjGD3iJt5mOEDb0JUBu" alt=""><figcaption></figcaption></figure>

* Ensure True Tone is toggled `off`
  {% endtab %}

{% tab title="With a PC" %}

* The display mode should be in `Extend these displays`.\
  \
  If a second display is not detected at first, hold down the `Windows Key + P` and select `Extend` in the side window. A display with the number 2 should automatically appear (as shown below).\
  \
  Select your Looking Glass display.

<figure><img src="/files/SVJKqvloxlXzVtv2bFLh" alt=""><figcaption></figcaption></figure>

* `Night Light` should be off (optional, as it will impact the color performance of our displays)
* Scale should be set to 100%
* Display orientation should be set manually to Landscape
* Confirm the resolution is 3840 x 2160 (after setting the orientation)

<figure><img src="/files/QdLZEJO1H97J5IkdRhEn" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## **4.** Download software (for Mac and PC only)

In order to use your displays with a Mac or PC, you will need to download Looking Glass software to run 3D content. You need to:

* Download Looking Glass Bridge from our website [here](https://look.glass/bridge).
* Download and install the latest version of Looking Glass Studio [here](https://lookingglassfactory.com/software/looking-glass-studio).

Once you've got Looking Glass Bridge installed, run this test below and you should see a hologram appear on your display! For more information about Bridge check out our documentation [here](/software/looking-glass-bridge/using-looking-glass-bridge).

{% embed url="<https://codesandbox.io/embed/hardcore-butterfly-l5o9d?fontsize=14&hidenavigation=1&theme=dark&view=preview>" %}

## 5. Run your demo reel in Looking Glass Studio

* Download a demo reel for your Looking Glass 16" Light Field Display (Landscape) [here](https://drive.google.com/open?id=1RNh6HNJY6K5IwtCFzGEvcVIdqgBFDn0g\&usp=drive_fs).
* Import all the `.hop` files into Looking Glass Studio

{% hint style="danger" %}
OLED Image Retention or Burn-In:\
Burn-in and image retention are possible on virtually any display.\
\
Most cases of burn-in in OLED displays are a result of static images or on-screen elements displaying on the screen uninterrupted for many hours or days at a time – with brightness typically at peak levels.\
\
To mitigate this, we would recommend not to have your Looking Glass 16" display connected to your computer if you are not showing any moving content for hours at a time.
{% endhint %}

## 6. Download plug-ins & software to create your own applications

* Download Looking Glass Model Viewer [here](/software/looking-glass-model-viewer) to easily load your own 3D models onto the display.
* Download the latest Looking Glass Unity plug-in [here](https://lookingglassfactory.com/software/looking-glass-unity-plugin) to create your own interactive applications.
* Access our native SDK [here](/software/looking-glass-bridge-sdk) to integrate your custom OpenGL, DX, or Metal renderer.
* See our other creator tools for more content possibilities [here](/software/creator-tools).


# Looking Glass 16" Light Field Display (Portrait)

Setup your Looking Glass 16" Light Field display.

## 1. Set up your Looking Glass 16"

Download the latest version of the Set up, Safety & Wall Installation Guide below :arrow\_heading\_down: to set up your Looking Glass 16" (Portrait).

{% file src="/files/zslTRUQG130WhFuZOf0k" %}

## 2. Plug in and power on your Looking Glass 16"

<figure><img src="/files/9Dl828vGA0M3gLVMqQhk" alt=""><figcaption></figcaption></figure>

**USB-C Alt-Mode**

Use this mode if your connected computer has a USB-C port that supports USB-C Alt Mode.\
When using USB-C Alt-Mode, the LED indicator will blink green.

1. Plug in the first USB-C cable (to deliver power) connected to a wall adapter. Use the provided power adapters only.
2. Plug in the second USB-C cable to your computer through a port that supports Alt-Mode.
3. Your display should switch on automatically. If not, press the ON/OFF switch.

**HDMI-Mode**

Use this mode if your connected computer does not support USB-C Alt Mode.\
In this configuration, you will be using the included HDMI cable in addition to the USB-C cables.\
When using HDMI-Mode, the LED indicator will blink blue.

1. Plug in the first USB-C Cable (to deliver power) connected to a wall adapter. Use the provided power adapters only.
2. Plug in the second USB-C Cable into the Looking Glass 16” and the other end to your computer.
3. Plug in the HDMI cable into the Looking Glass 16” and the other end to your computer.
4. Your display should switch on automatically. If not, press the ON/OFF switch.

## 3. Setting up your computer

{% tabs %}
{% tab title="With a Mac (Apple Silicon only) " %}

* Under `Settings` > `Displays` , change the Looking Glass display resolution to 2160 x 3840, and the rotation to 270°.

<figure><img src="/files/FoCRzLHPLTaO3bMTO32U" alt=""><figcaption></figcaption></figure>

* Ensure True Tone is toggled `Off`

<figure><img src="/files/oxJpmz9oTCGmsTmSMbD0" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="With a PC" %}

* The display mode should be in `Extend these displays`. Looking Glass display should be selected\
  \
  If a second display is not detected at first, hold down the `Windows Key + P` and select `Extend` in the side window. A display with the number 2 should automatically appear (as shown below).\
  \
  Select your Looking Glass display.<br>
* `Night Light` should be off (optional, as it will impact the color performance of our displays)
* Scale should be set to 100%
* Display orientation should be set manually to Portrait (flipped)
* Confirm the resolution is 2160 x 3840 (after setting the orientation)

<figure><img src="/files/OSDaZiYiJthLIpEFN8qs" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## 4. Download software (for Mac and PC only)

In order to use your displays with a Mac or PC, you will need to download Looking Glass software to run 3D content. You need to:

* Download Looking Glass Bridge from our website [here](https://look.glass/bridge).
* Download and install the latest version of Looking Glass Studio [here](https://lookingglassfactory.com/software/looking-glass-studio).

Once you've got Looking Glass Bridge installed, run this test below and you should see a hologram appear on your display! For more information about Bridge check out our documentation [here](/software/looking-glass-bridge/using-looking-glass-bridge).

{% embed url="<https://codesandbox.io/embed/hardcore-butterfly-l5o9d?fontsize=14&hidenavigation=1&theme=dark&view=preview>" %}

## 5. Run your demo reel in Looking Glass Studio

* Download a demo reel for your Looking Glass 16" Light Field Display (Portrait) [here](https://drive.google.com/open?id=1_ho1RPhH1v8qAZPSKCurAvoKcgjNO8M9\&usp=drive_fs).
* Import all the `.hop` files into Looking Glass Studio.

{% hint style="danger" %}
OLED Image Retention or Burn-In:\
\
Burn-in and image retention are possible on virtually any display.\
\
Most cases of burn-in in OLED displays are a result of static images or on-screen elements displaying on the screen uninterrupted for many hours or days at a time – with brightness typically at peak levels.\
\
To mitigate this, we would recommend not to have your Looking Glass 16" display connected to your computer if you are not showing any moving content for hours at a time.
{% endhint %}

## 6. Download plug-ins & software to create your own applications

* Download Looking Glass Model Viewer [here](/software/looking-glass-model-viewer) to easily load your own 3D models onto the display.
* Download the latest Looking Glass Unity plug-in [here](https://lookingglassfactory.com/software/looking-glass-unity-plugin) to create your own interactive applications.
* Access our native SDK [here](/software/looking-glass-bridge-sdk) to integrate your custom OpenGL, DX, or Metal renderer.
* See our other creator tools for more content possibilities [here](/software/creator-tools).


# Common Troubleshooting Issues

<table><thead><tr><th>Issue</th><th width="135.4000244140625">LED Indicator</th><th>Solution</th></tr></thead><tbody><tr><td>Looking Glass 16" is not powering on</td><td><span data-gb-custom-inline data-tag="emoji" data-code="26ab">⚫</span> Off</td><td>Please check the power adapter 16” comes with is plugged in and uses the cable the unit is supplied with. Re-plug / Reconnect if necessary.</td></tr><tr><td>Looking Glass 16” screen stays black</td><td><span data-gb-custom-inline data-tag="emoji" data-code="1f534">🔴</span> Solid Red</td><td>First, check that the HDMI cable or the USB-C DP alt mode cable is connected securely.<br><br>Also check to see if the computer's USB-C port supports USB-C DP alt mode display output, if 16” is not connected via HDMI</td></tr><tr><td>If you are seeing some rainbow artifacts (i.e. chromatic aberration) on your Looking Glass display</td><td><span data-gb-custom-inline data-tag="emoji" data-code="1f535">🔵</span> Solid Blue</td><td>This will happen when you are plugged into HDMI mode and you do not have either the HDMI or one of your USB-C cables plugged in.<br><br>Ensure that all the cables in your display configuration are plugged in correctly.</td></tr><tr><td>If you notice that some media or applications are running at a slow frame rate.</td><td></td><td><p>First, ensure that your PC or Mac meets the minimum specification requirements for running the Looking Glass 16" Spatial Display content.<br><br>Then, if you're on Windows, ensure that you have Vertical Sync enabled -></p><ol><li>Click the <strong>Start</strong> button or <strong>Windows icon</strong></li><li>Type <strong>NVIDIA Control Panel</strong> into the search bar</li><li>Press <strong>Enter</strong> on your keyboard</li><li>Click <strong>Manage 3D Settings</strong></li><li>Under <strong>"I would like to use the following 3D settings"</strong>, scroll down until you see <strong>Vertical Sync</strong></li><li>Select <strong>Vertical Sync</strong> to choose <strong>Force</strong> on from the dropdown menu</li></ol><p>Lastly, ensure that the graphics card is targeting all the applications that you've installed including the web browser you're using (we recommend Chrome).<br><br>For a detailed breakdown of how to set this for your PC, follow this guide <a href="https://support.ntopology.com/hc/en-us/articles/360043607974-How-to-enable-high-performance-Graphics-Card-settings">here</a>.</p></td></tr></tbody></table>


# Looking Glass 27" Light Field Display

Our Looking Glass 27" Light Field Displays are the newest addition to the Looking Glass lineup.  Below, find the downloadable getting started guides for setting up the hardware displays.

<figure><img src="/files/MM4UPfROBe2BZZSQxUJO" alt=""><figcaption></figcaption></figure>

{% content-ref url="/pages/bTkG6LDpBQTCeZdb7nWT" %}
[Looking Glass 27" Light Field Display (Landscape)](/getting-started/looking-glass-27-light-field-display/looking-glass-27-light-field-display-landscape)
{% endcontent-ref %}

<figure><img src="/files/t6tUzF6xuW4WcNNHQXEb" alt=""><figcaption></figcaption></figure>

{% content-ref url="/pages/vv1mC7rcsqGUtY0vW4jJ" %}
[Looking Glass 27" Light Field Display (Portrait)](/getting-started/looking-glass-27-light-field-display/looking-glass-27-light-field-display-portrait)
{% endcontent-ref %}


# Looking Glass 27" Light Field Display (Landscape)

Set up your Looking Glass 27" Light Field Display.

### **1. Set up your Looking Glass 27"**

Download the latest version of the Setup, Safety & Wall Installation Guide below ⤵️ to setup your Looking Glass 27" (Landscape)

{% file src="/files/gWc57Ud2bcihO7VHnsWZ" %}

### 2. Plug in and power on your Looking Glass 27"

<figure><img src="/files/buvapgVVK8mSKofb0UYO" alt=""><figcaption></figcaption></figure>

*There are 3 ways to connect the display to your computer: (Please make sure to use Looking Glass power adapters, power cords and cables only)*

1. **USB-C DP Alt Mode**
   1. Plug in the power adapter with power cord to a wall socket to deliver power to the display.
   2. Plug in the included USB-C Cable to your computer through a USB-C port that supports USB-C DP Alt Mode.
   3. Your display should turn on automatically. If not, press the On/Off Button

{% hint style="info" %}
Use this mode if your connected computer has a USB-C port that supports USB-C DP Alt Mode. When using USB-C DP Alt-Mode, the LED indicator will be solid green.
{% endhint %}

2. **DP Mode**
   1. Plug in the power adapter with power cord to a wall socket to deliver power to the display.
   2. Plug in the DP Cable into the Looking Glass 27” and the other end into your computer.
   3. Plug in the USB-C Cable into Looking Glass 27” and the other end into your computer USB-C port.
   4. Your display should turn on automatically. If not, press the On/Off Button

{% hint style="info" %}
Use this mode if your connected computer has a DP port. In this configuration, you will be using the included DP cable in addition to the USB-C cable. When using DP Mode, the LED indicator will be solid cyan.
{% endhint %}

3. **HDMI Mode**
   1. Plug in the power adapter with power cord to a wall socket to deliver power to the display.
   2. Plug in the HDMI 2.1 Cable into the Looking Glass 27” and the other end into your computer.
   3. Plug in the USB-C Cable into Looking Glass 27” and the other end into your computer USB-C port.
   4. Your display should turn on automatically. If not, press the On/Off Button

{% hint style="info" %}
Use this mode if your connected computer has an HDMI 2.1 Port. In this configuration, you will be using the included HDMI cable in addition to the USB-C cables. When using HDMI Mode, the LED indicator will be solid blue.
{% endhint %}

### 3a. Setting Up Your Computer

To ensure your displays works seamlessly with your supporting devices, make sure they are calibrated to the following settings on your computer:

{% tabs %}
{% tab title="With a Mac (Apple Silicon only) " %}

1. Open up `Settings` > `Displays`

<figure><img src="/files/fEyEcuLIbq6SFvYUSy9M" alt=""><figcaption></figcaption></figure>

2. Change the Looking Glass display resolution to (5120 x 2880). You do **not** need to change the rotation for Landscape.

<figure><img src="/files/Iwh0tzEIkcfffBlQSBvK" alt=""><figcaption></figcaption></figure>

* Ensure True Tone is toggled `off`
  {% endtab %}

{% tab title="With a PC" %}

<figure><img src="/files/hp3jNe08QdPXXdvtp5u6" alt=""><figcaption></figcaption></figure>

1. The display mode should be in `Extend these Displays`. Looking Glass display should be selected
2. `Night Light` should be off (optional, as it will impact the color performance of our displays)
3. Scale should be set to 100%
4. Display orientation should be set manually to Landscape
5. Confirm the resolution is 5120 x 2880
   {% endtab %}
   {% endtabs %}

### 3b. Setting Up Your iPad

You can also use an iPad Pro (M4 chip or newer) to display content onto your displays.

<figure><img src="/files/29547KUNEvBFmzGeNSgO" alt=""><figcaption></figcaption></figure>

For optional optimization purposes, you can find the additional setting changes for the iPad [here](/getting-started/running-looking-glass-displays-with-ios-devices).

You must first select the calibration file for your Looking Glass device to run any application. When you run your app, you will be prompted to:

<figure><img src="/files/PtUfdehpg90NO2dwp2jT" alt=""><figcaption></figcaption></figure>

* Connect your device via USB-C
* Load a calibration file via the file browser. Calibration files are under Locations -> LKG-XXXXXX *(your device serial number)* -> `LKG_calibration` -> `visual.json`. Select the `visual.json` file
* Your calibration is now loaded — applications will store this for future use

### **4.** Download Software (Mac and PC only)

In order to use your displays with a Mac or PC, you will need to download Looking Glass software to run 3D content. You will require:

{% tabs %}
{% tab title="Looking Glass Bridge (v2.6.0+)" %}
Looking Glass Bridge facilitates communication between your computer and any connected Looking Glass devices. It is required for Looking Glass applications, web apps and development tools.

Looking Glass Bridge is available for Windows, MacOS and Linux-based systems.

Download Looking Glass Bridge (v2.6.0 or later) [here](https://drive.google.com/file/d/1krbTQ7viAWD05Y1See4NjHl92VtGRMuJ/view?usp=drive_link).
{% endtab %}

{% tab title="Looking Glass Studio" %}
Looking Glass Studio is the offline playlist management application for your Looking Glass display.

With it, you can import holograms from a variety of sources, make minor edits to any hologram you create, and sync to your Looking Glass Portrait for Standalone Mode.

Download and install the latest version of Looking Glass Studio [here](https://lookingglassfactory.com/software/looking-glass-studio).
{% endtab %}
{% endtabs %}

Once you've got Looking Glass Bridge installed, run this test below and you should see a hologram appear on your display! For more information about Bridge check out our documentation [here](/software/looking-glass-bridge/using-looking-glass-bridge).

{% embed url="<https://codesandbox.io/embed/hardcore-butterfly-l5o9d?fontsize=14&hidenavigation=1&theme=dark&view=preview>" %}

### **5. Download demos & plugins to test your display**

Once your computer and/or iPad has been set up, it’s ready to use! You can test your display with the following demos via iPad/PC, or directly upload your own creations with our new Unity plugin.

You can download a demo demo reel for your Looking Glass 27" Light Field Display (Landscape) [here](https://drive.google.com/drive/folders/1DpYtzNcJ_N0oONjtMY8ns1qO81iE4YEc?usp=sharing). These images and videos can be played using [Looking Glass Studio](https://lookingglassfactory.com/software/looking-glass-studio).

Or, you can download demo apps for your Looking Glass 27" Light Field Display here:

**iPad:**

* [Replicas](https://testflight.apple.com/join/z1wt4ZWa)
* [Shoecase](https://testflight.apple.com/join/nFqASptz)

*Note: You will need to download and use the* [*TestFlight*](https://apps.apple.com/us/app/testflight/id899247664) *app in order to test the above demo apps*

**Windows and MacOS:**

* [Unity Plugin](https://drive.google.com/file/d/1GyEr_-93bVbOv6qMlMlzdBkSZtOoZcBJ/view?usp=drive_link) (NEW - v3.2.8)

*Note: Existing demos found on Looking Glass’ User Guides cannot be used for the 27” Light Field Display*

### 6. Download plug-ins & software to create your own applications <a href="#id-6.-download-plug-ins-and-software-to-create-your-own-applications" id="id-6.-download-plug-ins-and-software-to-create-your-own-applications"></a>

* Download Looking Glass Model Viewer [here](/software/looking-glass-model-viewer) to easily load your own 3D models onto the display.
* Download the latest Looking Glass Unity plug-in [here](https://lookingglassfactory.com/software/looking-glass-unity-plugin) to create your own interactive applications.
* Access our native SDK [here](/software/looking-glass-bridge-sdk) to integrate your custom OpenGL, DX, or Metal renderer.
* See our other creator tools for more content possibilities [here](/software/creator-tools).

{% hint style="warning" %}

### Important Note for Light Field Display iPad Stand Users

Due to a component communication glitch between the iPad and the iPad Stand, users **must** connect the 27" Display to the iPad first before laying it onto the stand. This will allow the iPad to project onto the display and remain charged simultaneously. Reversing the process will create a miscommunication between the iPad and the display.\
\
If the iPad was laid onto the stand first before plugging into the display, simply lift the iPad (whilst connected to the display) and place it back onto the stand again. The display should then operate normally.
{% endhint %}


# Looking Glass 27" Light Field Display (Portrait)

Set up your Looking Glass 27" Light Field Display.

### **1. Set up your Looking Glass 27"**

Download the latest version of the Setup, Safety & Wall Installation Guide below ⤵️ to setup your Looking Glass 27" (Portrait)

{% file src="/files/4PLDx8NHUojbRA9TKhrO" %}

### 2. Plug in and power on your Looking Glass 27"

<figure><img src="/files/buvapgVVK8mSKofb0UYO" alt=""><figcaption></figcaption></figure>

*There are 3 ways to connect the display to your computer: (Please make sure to use Looking Glass power adapters, power cords and cables only)*

1. **USB-C DP Alt Mode**
   1. Plug in the power adapter with power cord to a wall socket to deliver power to the display.
   2. Plug in the included USB-C Cable to your computer through a USB-C port that supports USB-C DP Alt Mode.
   3. Your display should turn on automatically. If not, press the On/Off Button

{% hint style="info" %}
Use this mode if your connected computer has a USB-C port that supports USB-C DP Alt Mode. When using USB-C DP Alt-Mode, the LED indicator will be solid green.
{% endhint %}

2. **DP Mode**
   1. Plug in the power adapter with power cord to a wall socket to deliver power to the display.
   2. Plug in the DP Cable into the Looking Glass 27” and the other end into your computer.
   3. Plug in the USB-C Cable into Looking Glass 27” and the other end into your computer USB-C port.
   4. Your display should turn on automatically. If not, press the On/Off Button

{% hint style="info" %}
Use this mode if your connected computer has a DP port. In this configuration, you will be using the included DP cable in addition to the USB-C cable. When using DP Mode, the LED indicator will be solid cyan.
{% endhint %}

3. **HDMI Mode**
   1. Plug in the power adapter with power cord to a wall socket to deliver power to the display.
   2. Plug in the HDMI 2.1 Cable into the Looking Glass 27” and the other end into your computer.
   3. Plug in the USB-C Cable into Looking Glass 27” and the other end into your computer HDMI 2.1 output port.
   4. Your display should turn on automatically. If not, press the On/Off Button

{% hint style="info" %}
Use this mode if your connected computer has an HDMI 2.1 Port. In this configuration, you will be using the included HDMI cable in addition to the USB-C cables. When using HDMI Mode, the LED indicator will be solid blue.
{% endhint %}

### 3a. Setting Up Your Computer

To ensure your displays works seamlessly with your supporting devices, make sure they are calibrated to the following settings on your computer:

{% tabs %}
{% tab title="With a Mac (Apple Silicon only) " %}

1. Open up `Settings` > `Displays`

<figure><img src="/files/fEyEcuLIbq6SFvYUSy9M" alt=""><figcaption></figcaption></figure>

2. Change the Looking Glass display resolution to 2880 x 5120 and the rotation to 270°

<figure><img src="/files/Iwh0tzEIkcfffBlQSBvK" alt=""><figcaption></figcaption></figure>

* Ensure True Tone is toggled `off`
  {% endtab %}

{% tab title="With a PC" %}

<figure><img src="/files/hp3jNe08QdPXXdvtp5u6" alt=""><figcaption></figcaption></figure>

1. The display mode should be in `Extend these Displays`. Looking Glass display should be selected
2. `Night Light` should be off (optional, as it will impact the color performance of our displays)
3. Scale should be set to 100%
4. Display orientation should be set manually to Portrait (flipped)
5. Confirm the resolution is 2880 x 5120
   {% endtab %}
   {% endtabs %}

### 3b. Setting Up Your iPad

You can also use an iPad Pro (M4 chip or newer) to display content onto your displays.

<figure><img src="/files/29547KUNEvBFmzGeNSgO" alt=""><figcaption></figcaption></figure>

For optional optimization purposes, you can find the additional setting changes for the iPad [here](/getting-started/running-looking-glass-displays-with-ios-devices).

You must first select the calibration file for your Looking Glass device to run any application. When you run your app, you will be prompted to:

<figure><img src="/files/PtUfdehpg90NO2dwp2jT" alt=""><figcaption></figcaption></figure>

* Connect your device via USB-C
* Load a calibration file via the file browser. Calibration files are under Locations -> LKG-XXXXXX *(your device serial number)* -> `LKG_calibration` -> `visual.json`. Select the `visual.json` file
* Your calibration is now loaded — applications will store this for future use

### **4.** Download Software (Mac and PC only)

In order to use your displays with a PC, you will need to download Looking Glass software to run 3D content. You will require:

{% tabs %}
{% tab title="Looking Glass Bridge (V.2.6.0+)" %}
Looking Glass Bridge facilitates communication between your computer and any connected Looking Glass devices. It is required for Looking Glass applications, web apps and development tools.

Looking Glass Bridge is available for Windows, MacOS and Linux-based systems.

Download Looking Glass Bridge (V.2.6.0 or later) [here](https://drive.google.com/file/d/1krbTQ7viAWD05Y1See4NjHl92VtGRMuJ/view?usp=drive_link).
{% endtab %}

{% tab title="Looking Glass Studio" %}
Looking Glass Studio is the offline playlist management application for your Looking Glass display.

With it, you can import holograms from a variety of sources, make minor edits to any hologram you create, and sync to your Looking Glass Portrait for Standalone Mode.

Download and install the latest version of Looking Glass Studio [here](https://lookingglassfactory.com/software/looking-glass-studio).
{% endtab %}
{% endtabs %}

Once you've got Looking Glass Bridge installed, run this test below and you should see a hologram appear on your display! For more information about Bridge check out our documentation [here](/software/looking-glass-bridge/using-looking-glass-bridge).

{% embed url="<https://codesandbox.io/embed/hardcore-butterfly-l5o9d?fontsize=14&hidenavigation=1&theme=dark&view=preview>" %}

### **5. Download demos & plugins to test your display**

Once your computer and/or iPad has been set up, it’s ready to use! You can test your display with the following demos via iPad/PC, or directly upload your own creations with our new Unity plugin.

You can download a demo demo reel for your Looking Glass 27" Light Field Display (Portrait) [here](https://drive.google.com/drive/folders/1DpYtzNcJ_N0oONjtMY8ns1qO81iE4YEc?usp=sharing). These images and videos can be played using [Looking Glass Studio](https://lookingglassfactory.com/software/looking-glass-studio).

Or, you can download demo apps for your Looking Glass 27" Light Field Display here:

**iPad:**

* [Replicas](https://testflight.apple.com/join/z1wt4ZWa)
* [Shoecase](https://testflight.apple.com/join/nFqASptz)

*Note: You will need to download and use the* [*TestFlight*](https://apps.apple.com/us/app/testflight/id899247664) *app in order to test the above demo apps*

**Windows and MacOS:**

* [Unity Plugin](https://drive.google.com/file/d/1GyEr_-93bVbOv6qMlMlzdBkSZtOoZcBJ/view?usp=drive_link) (NEW - V.3.2.7)

*Note: Existing demos found on Looking Glass’ User Guides cannot be used for the 27” Light Field Display*

### 6. Download plug-ins & software to create your own applications <a href="#id-6.-download-plug-ins-and-software-to-create-your-own-applications" id="id-6.-download-plug-ins-and-software-to-create-your-own-applications"></a>

* Download Looking Glass Model Viewer [here](/software/looking-glass-model-viewer) to easily load your own 3D models onto the display.
* Download the latest Looking Glass Unity plug-in [here](https://lookingglassfactory.com/software/looking-glass-unity-plugin) to create your own interactive applications.
* Access our native SDK [here](/software/looking-glass-bridge-sdk) to integrate your custom OpenGL, DX, or Metal renderer.
* See our other creator tools for more content possibilities [here](/software/creator-tools).

{% hint style="warning" %}

### Important Note for Light Field Display iPad Stand Users

Due to a component communication glitch between the iPad and the iPad Stand, users **must** connect the 27" Display to the iPad first before laying it onto the stand. This will allow the iPad to project onto the display and remain charged simultaneously. Reversing the process will create a miscommunication between the iPad and the display.\
\
If the iPad was laid onto the stand first before plugging into the display, simply lift the iPad (whilst connected to the display) and place it back onto the stand again. The display should then operate normally.
{% endhint %}


# Looking Glass 32" Light Field Displays

Our Looking Glass 32" Light Field Displays are the latest part of our lineup.\
Below, find the user and getting started guides for these displays.

<figure><img src="/files/ISKjv0YncLEJMM0bCHPX" alt=""><figcaption></figcaption></figure>

{% content-ref url="/pages/FCE36r00HC18fjrQ46oH" %}
[Looking Glass 32" Light Field Display (Landscape)](/getting-started/32/landscape)
{% endcontent-ref %}

<figure><img src="/files/NgveN1aAkgzfe3W69rXV" alt=""><figcaption></figcaption></figure>

{% content-ref url="/pages/tQhxUQv2rOCr45w6sdvJ" %}
[Looking Glass 32" Light Field Display (Portrait)](/getting-started/32/portrait)
{% endcontent-ref %}


# Looking Glass 32" Light Field Display (Landscape)

Set up your Looking Glass 32" Light Field Display.

## 1. Set up your Looking Glass 32"

Download the latest version of the Setup, Safety & Wall Installation Guide below :arrow\_heading\_down: to setup your Looking Glass 32" (Landscape)

{% file src="/files/PUxObCDVhvPVr0Tc8YL5" %}

## 2. Plug in and power on your Looking Glass 32"

<figure><img src="/files/C2b5GN3JCL6XWDQeV7LD" alt=""><figcaption></figcaption></figure>

*To connect the display to your computer, follow these steps below:*

1. Connect the power adapter to the Looking Glass display.
2. Connect the 2x DisplayPort cables and USB 3.0 A-to-B cable between the Looking Glass display and your host PC. Both DisplayPort cables should connect to ports on the same external graphics card and not to the motherboard of your computer.
3. The Looking Glass display should turn on automatically once it receives a display signal from your host PC. The LED indicator at the side of the display should turn green.
4. If the PC is also connected to a 2D monitor (suggested), connect the monitor to the external graphics card as well for best performance.

## 3. Setting up your computer

{% tabs %}
{% tab title="With a PC" %}

* The display mode should be in `Extend these displays`.\
  \
  If a second display is not detected at first, hold down the `Windows Key + P` and select `Extend` in the side window. A display with the number 2 should automatically appear (as shown below).\
  \
  Select your Looking Glass display.
* Display orientation should be set manually to Landscape
* Confirm the resolution is 7680 x 4320 (after setting the orientation)

<figure><img src="/files/6Gc85Ner3UEQhdjItR23" alt=""><figcaption></figcaption></figure>

* `Night Light` should be off (optional, as it will impact the color performance of our displays)
* Scale should be set to 100%

<figure><img src="/files/jEoEIvoaUXTURAtK22Q3" alt=""><figcaption></figcaption></figure>

* The Refresh Rate should be set to 60Hz. If you see that the max refresh rate can only be set to 30Hz, double check your cables to ensure that both DP cables are connected properly.
  {% endtab %}
  {% endtabs %}

## 4. Download software

{% hint style="success" %} <mark style="color:green;">**Looking Glass Bridge, Looking Glass Studio, and some demo applications are pre-installed and ready to use on PCs purchased directly from Looking Glass.**</mark>
{% endhint %}

* Download Looking Glass Bridge from our website [here](https://look.glass/bridge).
* Download and install the latest version of Looking Glass Studio [here](https://lookingglassfactory.com/software/looking-glass-studio).

Once you've got Looking Glass Bridge installed, run this test below and you should see a hologram appear on your display! For more information about Bridge, check out our documentation [here](/software/looking-glass-bridge/using-looking-glass-bridge).

{% embed url="<https://codesandbox.io/embed/hardcore-butterfly-l5o9d?fontsize=14&hidenavigation=1&theme=dark&view=preview>" %}

## 5. Run the demo reel in Looking Glass Studio

* Download the demo reel for your Looking Glass 32" Light Field Display (Landscape) [here](https://drive.google.com/open?id=1RNh6HNJY6K5IwtCFzGEvcVIdqgBFDn0g\&usp=drive_fs).
* Import all the `.hop` files into Looking Glass Studio

## 6. Download plug-ins & software to create your own applications

* View your own 3D models with the Looking Glass Model Viewer, available [here](https://lookingglassfactory.com/software/model-viewer).
* Download the latest Looking Glass Unity plugin [here](https://lookingglassfactory.com/software/looking-glass-unity-plugin).
* Learn more about our native SDK for OpenGL, DirectX, and Metal [here](/software/looking-glass-bridge-sdk).


# Looking Glass 32" Light Field Display (Portrait)

Set up your Looking Glass 32" Light Field display.

## 1. Set up your Looking Glass 32"

Download the latest version of the Setup, Safety & Wall Installation Guide below :arrow\_heading\_down: to setup your Looking Glass 32" (Portrait)

{% file src="/files/lw0HqowoRx4Sfbut5Ril" %}

## 2. Plug in and power on your Looking Glass 32"

<figure><img src="/files/Dkisvd0gqVe9VXwFIo5D" alt=""><figcaption></figcaption></figure>

*To connect the display to your computer, follow these steps below:*

1. Connect the power adapter to the Looking Glass display.
2. Connect the 2x DisplayPort cables and USB 3.0 A-to-B cable between the Looking Glass display and your host PC. Both DisplayPort cables should connect to ports on the same external graphics card and not to the motherboard of your computer.
3. The Looking Glass display should turn on automatically once it receives a display signal from your host PC. The LED indicator at the side of the display should turn green.
4. If the PC is also connected to a 2D monitor (suggested), connect the monitor to the external graphics card as well for best performance.

## 3. Setting up your computer

{% tabs %}
{% tab title="With a PC" %}

* The display mode should be in `Extend these displays`.\
  \
  If a second display is not detected at first, hold down the `Windows Key + P` and select `Extend` in the side window. A display with the number 2 should automatically appear (as shown below).\
  \
  Select your Looking Glass display.
* Display orientation should be set manually to Portrait
* Confirm the resolution is 4320 x 7680 (after setting the orientation)

<figure><img src="/files/r1DI9K5Q79lRyks0pz3e" alt=""><figcaption></figcaption></figure>

* `Night Light` should be off (optional, as it will impact the color performance of our displays)
* Scale should be set to 100%

<figure><img src="/files/1taqlEX5nTUEKGlX3FY1" alt=""><figcaption></figcaption></figure>

* The Refresh Rate should be set to 60Hz. If you see that the max refresh rate can only be set to 30Hz, double check your cables to ensure that both DP cables are connected properly.
  {% endtab %}
  {% endtabs %}

## 4. Download software

{% hint style="success" %} <mark style="color:green;">**Looking Glass Bridge, Looking Glass Studio, and some demo applications are pre-installed and ready to use on PCs purchased directly from Looking Glass.**</mark>
{% endhint %}

* Download Looking Glass Bridge from our website [here](https://look.glass/bridge).
* Download and install the latest version of Looking Glass Studio [here](https://lookingglassfactory.com/software/looking-glass-studio).

Once you've got Looking Glass Bridge installed, run this test below and you should see a hologram appear on your display! For more information about Bridge check out our documentation [here](/software/looking-glass-bridge/using-looking-glass-bridge).

{% embed url="<https://codesandbox.io/embed/hardcore-butterfly-l5o9d?fontsize=14&hidenavigation=1&theme=dark&view=preview>" %}

## 5. Run the demo reel in Looking Glass Studio

* Download a demo reel for your Looking Glass 32" Light Field Display (Portrait) [here](https://drive.google.com/open?id=1_ho1RPhH1v8qAZPSKCurAvoKcgjNO8M9\&usp=drive_fs).
* Import all the `.hop` files into Looking Glass Studio

## 6. Download plugins & software to create your own applications

* View your own 3D models with the Looking Glass Model Viewer, available [here](https://lookingglassfactory.com/software/model-viewer).
* Download the latest Looking Glass Unity plugin [here](https://lookingglassfactory.com/software/looking-glass-unity-plugin).
* Learn more about our native SDK for OpenGL, DirectX, and Metal [here](/software/looking-glass-bridge-sdk).


# Common Troubleshooting Issues

| Issue                                                                           | Solution                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| If you notice that some media or applications are running at a slow frame rate. | <p>First, ensure that your PC or Mac meets the minimum specification requirements for running the Looking Glass 32" Display.<br><br>Then, ensure that you have Vertical Sync enabled:</p><ol><li>Click the <strong>Start</strong> button or <strong>Windows icon</strong></li><li>Type <strong>NVIDIA Control Panel</strong> into the search bar</li><li>Press <strong>Enter</strong> on your keyboard</li><li>Click <strong>Manage 3D settings</strong></li><li>Under <strong>I would like to use the following 3D settings</strong>, scroll down until you see <strong>Vertical Sync</strong></li><li>Select <strong>Vertical Sync</strong> to choose <strong>Force</strong> on from the dropdown menu</li></ol><p>Lastly, ensure that the graphics card is targeting all the applications that you've installed including the web browser you're using (we recommend Chrome).<br><br>For a detailed breakdown of how to set this for your PC, follow this guide <a href="https://support.ntopology.com/hc/en-us/articles/360043607974-How-to-enable-high-performance-Graphics-Card-settings">here</a>.</p> |


# Looking Glass 65" Light Field Display

This is the setup guide for the Looking Glass 65"

{% embed url="<https://www.youtube.com/watch?v=bUbN51fQZ5U>" %}
Looking Glass 65" Unboxing Video
{% endembed %}

Follow the **Hardware Setup Guide** that came with your Looking Glass 65". Download a copy here:

{% file src="/files/XaoMUrr8jKh6Op4tVrk7" %}
Looking Glass 65" Safety and Wall Mounting Guide.
{% endfile %}

{% hint style="success" %} <mark style="color:green;">**Looking Glass Bridge, Looking Glass Studio, and some demo applications are pre-installed and ready to use on PCs purchased directly from Looking Glass.**</mark>
{% endhint %}

## What's in the Box:

* 1x Looking Glass 65" with desktop stand attached
* Power cables (regionally-specific)
* 2x DisplayPort cables without latches - 71" / 180cm
* 1x USB 3.0 A to B cable - 71" / 180cm
* 2x microfiber cleaning cloth
* 1x M4 Hex key
* 1x M5 Hex key
* 1x custom-molded aluminum hard carrying case
* NUC13 PC 4080GPU with a secondary 15.6" touchscreen monitor for app control, wireless keyboard and mouse set, Leap Motion controller (PC Bundle Only)

{% hint style="info" %}
Clean your Looking Glass 65" only with the included microfiber cloth.

Do not clean with other cleaning agents or rubbing alcohol as this will damage the front surface of the display.
{% endhint %}

## Minimum Specification Requirements

For best performance, your PC must meet the following minimum recommended specs:

* 9th Gen i7 CPU or equivalent
* Min. 16GB RAM
* Min. 256GB SSD storage
* RTX 3090 or equivalent (Note: graphics card must support 2x DisplayPort and output 7680 x 4320 resolution)

## Software

### Display Settings & Configuration

<div align="center"><figure><img src="/files/33E7giPkf87cPQm919Z7" alt=""><figcaption></figcaption></figure></div>

When setting up your Looking Glass 65" display alongside your secondary monitor (recommended) to use as the UI screen, ensure the following:

* The Looking Glass 65" and secondary monitor should be extended, not mirrored.
* The Looking Glass 65" should be scaled at 100%
* The secondary monitor should be set as your "primary display"

This setup will allow for you to seamlessly control your applications and content from the secondary display with the holographic content running on your Looking Glass 65".

### Software

### [Looking Glass Bridge](https://lookingglassfactory.com/software/looking-glass-bridge)

Looking Glass Bridge facilitates communication between your computer and any connected Looking Glass devices and is required for Looking Glass applications and development tools.\
Download Looking Glass Bridge [**here**](https://lookingglassfactory.com/software/looking-glass-bridge).

### Test your setup

This simple test can be run to ensure that hardware is connected and that the software is installed and configured:

{% embed url="<https://codesandbox.io/embed/hardcore-butterfly-l5o9d?fontsize=14&hidenavigation=1&theme=dark&view=preview>" %}

When the above button is pressed, your Looking Glass 65" should show a 3D image of Shawn from Looking Glass.\
To close this image, move your mouse over to the Looking Glass and click the ESC key on the keyboard.

{% hint style="danger" %}
If the hologram appears with diagonal lines, there is an error loading the calibration data. Please retry the setup steps above to ensure it is properly configured, double-check that all cables are plugged in and that your monitor settings are correct.
{% endhint %}

### [Looking Glass Studio](https://lookingglassfactory.com/software/looking-glass-studio)

Looking Glass Studio is the hologram companion app for your Looking Glass 65".\
\
With it, you can import holograms from a variety of sources and make minor edits to any hologram you create.

* Importing hologram data from a variety of sources (iPhone Portrait mode photos, light field photosets, RGB-D photos & videos, etc)
* Editing and framing your holographic content
* Exporting and sharing holograms with others

More information about Looking Glass Studio can be found [**here**](/software/looking-glass-studio)**.**

### Leap Motion (optional accessory)

Some applications are controllable via the Leap Motion hand-tracking hardware (included in the PC bundle). To use these features, [**download and install**](https://developer.leapmotion.com/gemini-v5-preview) the V5 (Gemini) version of the Desktop SDK.

{% hint style="success" %}
`🤏🏼`<mark style="color:green;">**Ultraleap software is already installed on computers purchased directly from Looking Glass.**</mark>
{% endhint %}

Once the Leap Motion Controller is plugged in and the Ultraleap Gemini tracking is installed, launch the Ultraleap sensor setup and load the Ultraleap Tracking Software.

### Download the Quilts to run on Looking Glass Studio\*

{% hint style="success" %} <mark style="color:green;">**Quilts are pre-loaded into Looking Glass Studio on PC bundles purchased directly from Looking Glass.**</mark>
{% endhint %}

* Download T-Rex quilt [here](https://www.dropbox.com/s/l4q5z27wv26u1tb/trex8k.mp4?dl=0).
* Download Golden Ticket (Close-up) quilt [here](https://www.dropbox.com/s/xj685oljkgfez7i/golden-ticket-8k-closeup.jpeg?dl=0).
* Download Golden Ticket quilt [here](https://www.dropbox.com/s/fmr42r8j6b8k4dm/golden-ticket-8k.jpeg?dl=0).
* Download Bond (Close-up) quilt [here](https://www.dropbox.com/s/lj238qxozlc4mm7/Bond_closeup_4K8K_quilt90.jpg?dl=0).
* Download Bond quilt [here](https://www.dropbox.com/s/ugikgel8bxt5nuf/Bond_4K8K_quilt90.jpg?dl=0).
* Download Toy Shelf quilt [here](https://www.dropbox.com/s/w86o6bmtlkrvr8h/toyshelf-8k.jpg?dl=0).
* Download Retail Shoe quilt [here](https://drive.google.com/file/d/1nDyF2QmBeJzkmcC9LQjSvNOFbZ3od3-I/view?usp=sharing).

## Featured Applications & Holograms

The following applications demonstrate the features and capabilities of the Looking Glass 65" Display and are **pre-installed on the Looking Glass 65" PC.**

### 🛩️ Jet Engine

<figure><img src="/files/7zWX6xa8Wm4kIBjKOVWV" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
`🤏🏼` <mark style="color:green;">**Leap Motion-Enabled**</mark>
{% endhint %}

{% hint style="info" %}
[<mark style="color:blue;">**Download Jet Engine**</mark>](https://s3.amazonaws.com/demos.lookingglassfactory.com/Windows/JetEngine.zip)
{% endhint %}

Jet Engine is a CAD representation of complex 3D models.\
Use the gesture-controlled explode view to show and expand complex structures!

#### Gesture Controls:

* Left hand interaction - X-ray through model
* Right hand interaction - Rotate the model
* Both hands together and pulled apart - Explode or Expand view

## Common Troubleshooting Issues

<table><thead><tr><th width="233.53682953694704">Issue</th><th width="574">Solution</th></tr></thead><tbody><tr><td>If your PC is not switching on when connected to the Looking Glass 65" Display</td><td><p>When you set up and turn on the PC, avoid having <strong>all</strong> peripherals connected at once. Only have the secondary screen connected.</p><p>Then, after set up, you can connect all the other accessories.<br>This is to prevent the PC from drawing too much power at once.</p></td></tr><tr><td>If you notice that your demos seem to be running to the left side of the display and there is something wrong with how they look</td><td>Reset the Looking Glass display with the power button on the side.</td></tr><tr><td>If you notice that some media in Looking Glass Studio is running at a slower frame rate</td><td><p>First, ensure that you have Vertical Sync enabled:</p><ol><li>Click the <strong>Start</strong> button or <strong>Windows icon</strong></li><li>Type <strong>NVIDIA Control Panel</strong> into the search bar</li><li>Press <strong>Enter</strong> on your keyboard</li><li>Click <strong>Manage 3D settings</strong></li><li>Under <strong>"I would like to use the following 3D settings"</strong>, scroll down until you see <strong>Vertical Sync</strong></li><li>Select <strong>Vertical Sync</strong> to choose <strong>Force</strong> on from the dropdown menu</li></ol><p>Second, ensure that the graphics card is targeting all the applications that you've installed including the web browser you're using (we recommend Chrome).<br><br>For a detailed breakdown of how to set this for your PC, follow this guide <a href="https://support.ntopology.com/hc/en-us/articles/360043607974-How-to-enable-high-performance-Graphics-Card-settings">here</a>.</p></td></tr><tr><td>If USB-C ports on the back of the 65" PC aren't functioning properly.</td><td>Install the latest <a href="https://www.intel.com/content/www/us/en/download/19509/intel-chipset-device-software-for-nuc9vxqnx-nuc9v7qnx-nuc9i9qnx-nuc9i7qnx-nuc9i5qnx.html">chipset drivers</a> for the Intel compute element.<br>This only applies to the 65" PC purchased from Looking Glass.</td></tr></tbody></table>


# Looking Glass Portrait

Learn everything you need to know about how to use your Looking Glass Portrait.

Looking Glass Portrait is the world's first personal holographic display, ideal for anyone who wants to view, create, and experience true-to-life, 3D holographic images, video and applications right on their desktop.

{% embed url="<https://www.youtube.com/watch?v=TwcemjJpBRs>" %}

{% content-ref url="/pages/q6tW5xqTi4X8Ldf9faar" %}
[Get Started with Looking Glass Portrait](/getting-started/portrait/get-started-with-looking-glass-portrait)
{% endcontent-ref %}

{% content-ref url="/pages/mV2JKk7Smf3SOhLwim8G" %}
[Demo Holograms](/getting-started/portrait/demo-holograms)
{% endcontent-ref %}

<table data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/-MWj8zz_SFq9At7co952">/pages/-MWj8zz_SFq9At7co952</a></td><td>Learn all you need to know about holograms</td><td><a href="/pages/-MWj8zz_SFq9At7co952">/pages/-MWj8zz_SFq9At7co952</a></td></tr><tr><td><a href="/pages/uzTiej3OippIQZrjMaxD">/pages/uzTiej3OippIQZrjMaxD</a></td><td>Find out how holograms are taking over the web.</td><td><a href="/pages/uzTiej3OippIQZrjMaxD">/pages/uzTiej3OippIQZrjMaxD</a></td></tr><tr><td><a href="/pages/WUgTB5nAdvQfHNTy4jl6">/pages/WUgTB5nAdvQfHNTy4jl6</a></td><td>Holographic AI characters that will revolutionize how we interact with computers.</td><td><a href="/pages/WUgTB5nAdvQfHNTy4jl6">/pages/WUgTB5nAdvQfHNTy4jl6</a></td></tr></tbody></table>

## Creator Tools

<table data-card-size="large" data-view="cards"><thead><tr><th data-type="content-ref"></th><th></th></tr></thead><tbody><tr><td><a href="/pages/-MWj9-1QDiLVMyndrEi6">/pages/-MWj9-1QDiLVMyndrEi6</a></td><td>Learn how to use the popular Open Source 3D Modeling Software with Looking Glass</td></tr><tr><td><a href="/pages/-MWj8zxnNsjm8ORMiDtO">/pages/-MWj8zxnNsjm8ORMiDtO</a></td><td>Make realtime Interactive holographic apps for your Looking Glass with Unity</td></tr><tr><td><a href="/pages/-MWj9-07OczrYgMQEcO0">/pages/-MWj9-07OczrYgMQEcO0</a></td><td>Make cinematic holographic experiences and films with Unreal Engine 5.</td></tr><tr><td><a href="/pages/KCiJPVuIHoG460Q6v6zU">/pages/KCiJPVuIHoG460Q6v6zU</a></td><td>Build holographic experiences on the web with Three.JS, PlayCanvas, Spline and more.</td></tr></tbody></table>

## Software Requirements

<table data-view="cards" data-full-width="false"><thead><tr><th data-type="content-ref"></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/-MWj9-3frKdoBC_pKjOq">/pages/-MWj9-3frKdoBC_pKjOq</a></td><td>The connection between your computer and your Looking Glass.</td><td><a href="/files/QMEOJdKOOc7Ue0hRJ0Va">/files/QMEOJdKOOc7Ue0hRJ0Va</a></td><td><a href="https://lookingglassfactory.com/software/looking-glass-bridge">https://lookingglassfactory.com/software/looking-glass-bridge</a></td></tr></tbody></table>

## Guides & Documents

{% file src="/files/-MYCEAkhgcf9GHCdyssC" %}
Looking Glass Portrait Quick Start
{% endfile %}

{% file src="/files/ZXE0Iay4Tt5VNs17uRe9" %}
Looking Glass Safety & Wall Installation Guides (EN, ES, IT, FR, DE)
{% endfile %}


# Get Started with Looking Glass Portrait

This page will guide you through all the steps needed to get started with your Looking Glass Portrait.

Set up your Looking Glass

Looking Glass Portrait has two primary modes you can use the device in. Standalone Mode, and Desktop Mode. We'll walk you through that and more in the videos below!

{% embed url="<https://player.vimeo.com/video/688587307?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479>" %}

### What's in the Box? 📦

When you unbox your Looking Glass, you'll find a few extra items along with the Portrait itself. These include:

* 1x USB-C Power Adapter
* 1x USB-C Cable
* 1x HDMI Cable
* 1x Microfiber Cleaning Cloth
* 1x Holographic Sticker ✨

Unlock a world of holograms and start creating your own!

### Setting up Desktop Mode

Desktop Mode allows you to use your Looking Glass with your Mac, Windows, or Linux computer and use software like [Looking Glass Studio](/software/looking-glass-studio), [Liteforms](/legacy/legacy-software/liteforms) and [Blocks](/software/looking-glass-blocks), as well as integrations with tools like [Blender](/software/creator-tools/index-1), [Unity](/software/index), [Unreal Engine](/software/creator-tools/index), [WebXR](/software/creator-tools/webxr) and [more](broken://pages/-MXJVIdSuI9CaDwBDu4Y).

{% tabs %}
{% tab title="Windows" %}
{% embed url="<https://player.vimeo.com/video/688589279?h=88d59636ce&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479%22>" %}
{% endtab %}

{% tab title="MacOS" %}
{% embed url="<https://player.vimeo.com/video/688588375?h=f413425aac&badge=0&autopause=0&player_id=0&app_id=58479%22>" %}
{% endtab %}
{% endtabs %}

### Adjusting Display Settings

In order to make sure your Looking Glass works correctly there are a few settings you'll need to change. Don't worry though, we'll walk you through it! If you run into issues, be sure to check out our more in-depth display settings documentation for [Windows](/software/looking-glass-bridge/display-settings-on-windows), [Mac ](/software/looking-glass-bridge/display-settings-on-macos)or [Linux](/software/looking-glass-bridge/display-settings-on-linux).

{% tabs %}
{% tab title="Windows" %}
{% embed url="<https://player.vimeo.com/video/688589120?h=b0f9c51524&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479%22>" %}
{% endtab %}

{% tab title="MacOS" %}
{% embed url="<https://player.vimeo.com/video/688588307?h=0444de99c3&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479%22>" %}
{% endtab %}
{% endtabs %}

### Install Looking Glass Bridge

Download Looking Glass Bridge from our website [here](https://look.glass/bridge).

Once you've got Looking Glass Bridge installed, run this test below and you should see a hologram appear on your display! For more information about Bridge check out our documentation [here](/software/looking-glass-bridge/using-looking-glass-bridge).

{% embed url="<https://codesandbox.io/embed/hardcore-butterfly-l5o9d?fontsize=14&hidenavigation=1&theme=dark&view=preview>" %}

### Standalone Mode

{% hint style="info" %}
In order to use Standalone Mode, you must use a USB-C to USB-C cable.\
\
A USB-A cable will not work to power the device in Standalone Mode.
{% endhint %}

Plug the USB-C cable and power adapter into a power source, then into your Portrait. If the Portrait is receiving power you should see the status LED above the power button breathe white. Tap the power button to turn the device on.\
\
Enjoy seeing the holograms we've curated from our awesome community of creators!

You can learn more about the holograms that come with Looking Glass Portrait below:

{% content-ref url="/pages/mV2JKk7Smf3SOhLwim8G" %}
[Demo Holograms](/getting-started/portrait/demo-holograms)
{% endcontent-ref %}

### Desktop Mode

{% hint style="info" %}
**To use any software with your Looking Glass Portrait when connected to your computer, you'll need to install** [**Looking Glass Bridge**](https://lookingglassfactory.com/software/looking-glass-bridge)**.**
{% endhint %}

#### How to use Desktop Mode

Plug the HDMI cable into the Looking Glass and your computer. If the device is off you should see the status LED above the power button breathe blue. Tap the power button to turn the device on. You should then see your computer screen on your Looking Glass Portrait.

{% hint style="info" %}

### **Adapters & Cables**

There are a few requirements for desktop mode, make sure your computer can output a 4K video signal to HDMI.\
You can use adapters, like [**USB-C -> HDMI**](https://us.anker.com/products/a8312) and [**Display Port -> HDMI**](https://www.bhphotovideo.com/c/product/1466901-REG/kramer_c_dpm_hm_uhd_6_displayport_m_to_hdmi.html) adapters.
{% endhint %}

**Follow the guides below to ensure that your display settings are correct.**

{% content-ref url="/pages/SqewUHfu4KKIY6xsYo1z" %}
[Display Settings on Windows](/software/looking-glass-bridge/display-settings-on-windows)
{% endcontent-ref %}

{% content-ref url="/pages/ypLgTeSrQP71utINd55a" %}
[Display Settings on macOS](/software/looking-glass-bridge/display-settings-on-macos)
{% endcontent-ref %}

{% content-ref url="/pages/yapPbuHzpWTgdZDY4lZm" %}
[Display Settings on Linux](/software/looking-glass-bridge/display-settings-on-linux)
{% endcontent-ref %}

## Software Requirements

In order to use your Looking Glass in Desktop Mode you'll need to install Looking Glass Bridge, you can download that [here](/software/looking-glass-bridge).

## Where to next?

Your holographic journey is just starting out, choose your own adventure.

Want to learn more about holograms? Check out Holograms 101, a comprehensive guide on all the different kinds of holograms you can make:

{% content-ref url="/pages/-MWj8zz\_SFq9At7co952" %}
[Hologram 101](/keyconcepts/key-concepts)
{% endcontent-ref %}

Want to discover some holograms creators in our community have made? Check out Blocks and see what happens when holograms meet the internet.

{% content-ref url="/pages/uzTiej3OippIQZrjMaxD" %}
[Looking Glass Blocks](/software/looking-glass-blocks)
{% endcontent-ref %}

Liteforms are holographic AI characters that will revolutionize how we interact with computers — bringing to life ChatGPT in the form of a conversational AI being.

{% content-ref url="/pages/WUgTB5nAdvQfHNTy4jl6" %}
[Liteforms™ Desktop App](/legacy/legacy-software/liteforms)
{% endcontent-ref %}

\
Have a favorite 3D tool you want to use with your Looking Glass?\
\
You can get started right away:

{% content-ref url="/pages/-MWj8zxnNsjm8ORMiDtO" %}
[Unity](/software/index)
{% endcontent-ref %}

{% content-ref url="/pages/-MWj9-1QDiLVMyndrEi6" %}
[Blender](/software/creator-tools/index-1)
{% endcontent-ref %}

{% content-ref url="/pages/-MWj9-07OczrYgMQEcO0" %}
[Unreal Engine](/software/creator-tools/index)
{% endcontent-ref %}

{% content-ref url="/pages/KCiJPVuIHoG460Q6v6zU" %}
[WebXR](/software/creator-tools/webxr)
{% endcontent-ref %}

Interested in experiments and other community-made tools? Check these out:

{% content-ref url="/pages/jnYFGSxoR2sPFDBd1Gju" %}
[Community Made Tools & Projects](/software/third-party-apps-and-tools/community-made-tools-and-projects)
{% endcontent-ref %}


# Demo Holograms

Find a list of all the holograms that come pre-loaded on your Looking Glass Portrait. These are available to download as individual media files for our Looking Glass.

## Demo Holograms

[**Download the latest Demo Reel (All Holograms)**](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/Demo-Holograms-all.zip)

[**Download the original Demo Reel (All Holograms)**](https://dhtk4bwj5r21z.cloudfront.net/DemoRenders/All_LKG_Demo_Holograms.zip)

### [Shawn in Depth Recorder](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/d_smf_depthRecorder_8x6.hop)

Beam this holographic video into your Looking Glass for a 3D greeting from Shawn! Made with [Depth Recorder](/legacy/legacy-software/depth-recorder).

<img src="/files/cVt7GTjnfobJOimv3PZa" alt="" data-size="original">

### [**Timmy**](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/i_timmy_8x6.hop)

See Timmy, your new 3D best friend, wave a holographic “hello”! Made by [Roland Smeenk](https://web.archive.org/web/20220120115818/https://smeenk.com/).

### ![](/files/NkFcpQdS5wQJd6VNVaHq)

### [**Nikki with Magnifying Glass**](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/j_nikki_mag_9x5.hop)

It’s all in the details with light field photos. See how Nikki’s eye changes behind the 3D magnifying glass!

![](/files/rH5SpqT4eQ2JGIRM2AdB)

### [Missy with Lipstick](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/l_missy_lipstick_portrait_7x11.hop)

We think Missy’s lip gloss is poppin’, especially as a three-dimensional light field!

![](/files/gSb8gxqxVLLQhlO89mqE)

### [**Albert with Etch a Sketch**](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/k_albert-etchasketch-portrait_7x11.hop)

Albert intensely ponders the meaning of light in this deeply reflective hologram.

![](/files/ZEjtsOPLYNhQp6nAetsm)

### [**Shawn with Skateboard**](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/m_shawn_sk8_portrait_7x11.hop)

When he’s not shredding them, Shawn uses rails to make light fields, and you can too!

<img src="/files/uXMrpDMaOnvfWr6BPkRT" alt="" data-size="original">

### [Holoquarium](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/n_Holoquarium-short_8x6.hop)

Dive into the calming world of [Drew Medina](https://www.drewmedina.com/)’s Holoquarium.

<img src="/files/IuptCJ1fRqrTghAhgjjX" alt="" data-size="original">

### [**Frog Inspection**](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/p_frogmag1_6x12.hop)

This 3D frog will jump out of your Looking Glass, but not onto your desk. We promise.

![](/files/D8VL1L5v7HmPEZYp5mYI)

### [Frog Stare](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/q_frog-stare2_7x11.hop)

We asked this frog if it was ready for its close-up, and it simply said “Toadally!”

![](/files/RYR1vgqLrvSCZCWbigdt)

### [Biggie the Cat](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/t_biggiethecat_iphone_8x6.hop)

This 3D iPhone photo shows Biggie the Cat having a nap on the ocean floor. Edited in Diorama.

![](/files/UJxAdA5vw8p6TVTSyxwu)

### [Chicken Run](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/v_chickenrun-short_8x6.hop)

Graze through this dreamy 3D meadow with butterflies, sheep, and chicken. Made by Drew Medina in Unity.

![](/files/C5LldODCD40hSldHfXud)

### [Kizuna](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/y_kizunapink_8x6.hop)

Famous V-Tuber Kizuna AI welcomes you to Hologram Land.

![](/files/DkdNPVCLQmUrlluhMtvC)

### [Fruit Bowl](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/zb_fruit-bowl-zoom-jay-howse_8x12.hop)

Orange you glad you can view a bunch of 3D fruits in this ZBrush still life by Jay Howse? You know what they say about a hologram a day...

![](/files/wWWpB13C1fdbCAT8Hsn0)

### [Astro](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/zc_astro_6x12.hop)

Astroboy looks up at you in this light field photo shot by Shawn.

![](/files/J2FgOtJbzAP4E94vvImU)

### [Circuit Board](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/zd_circuitboard_7x12.hop)

Take a closer look at the layers of this circuit board in this light field photo made with a DSLR.

![](/files/IqFuBJHeZYNuHZCdS75B)

### [Mount St Helens](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/ze_MSH_Quilt9_8x6.hop)

Being able to view maps in 3D gives you a new kind of bird’s eye perspective. Check out this Blender rendering by Sean Conway.

![](/files/kIApOQdUdxOPqpwilLle)

### [Cornell Box](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/zf_CornellBox3_5x9.hop)

As Milan Pollé has said, a holographic Cornell Box just had to happen.

![](/files/FRSjinf4IDOVaeweXSqE)

### [Glass and Mirrors](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/zg_milan-polle_glass-and-mirrors_5x9.hop)

Another incredibly reflective rendering by Milan Pollé!

![](/files/HSub0m4AYtozp6OSplrQ)

### [Astronaut](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/a_astronaut_unity_5x9.hop)

Watch this astronaut take giant leaps around a 3D space station in this app made with the HoloPlay Unity Plugin.

![](/files/js2hHZEqVvK7ICr1SIpj)

### [Keijiro Wig](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/zh_keijirosquid_unity_5x9.hop)

Everything great about color, light, and betta fish rolled into one. Made with Unity by our friend Keijiro Takahashi.

![](/files/Xm7Ae1ggPpDsOFvUW7kG)

### [Blobs](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/x_blobs_unity_5x9.hop)

Unlock your playful side with an interactive Unity app built by Oliver Garcia-Borg, and inspired by the work of Eliza S-J. Interaction requires a leap motion controller.

You can download the interactive demo [here](https://drive.google.com/file/d/1FbiBHSfD4p8mma0e_kTNGdaA0gwRlAos/view?usp=drivesdk).

![](/files/48NNy0XkBqwlhCv9cJj5)

### [Ciber Wolf](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/w_cyberwolf_sketchfab_5x9.hop)

This 3D model’s favorite song is by Duran Duran. [You know the one.](https://www.youtube.com/watch?v=oJL-lCzEXgI) Sketchfab model by [Oscar Creativo](https://sketchfab.com/oscar_creativo).

![](/files/srnxXQ5phWP81cpYbFYR)

### [Protean Clouds](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/zi_cloudcut_audio_8x6.hop)

Take a moment of respite in this 3D tunnel of clouds by [Nimitz ](https://www.shadertoy.com/user/nimitz)& ported to Looking Glass by David Gallardo.

![](/files/UIFYMkWCzIAx8tBluFSO)

### [Shawn with Magnifying Glass](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/b_smf_lightfield_5x9.hop)

Always with one eye on the future. Light field capture of Shawn Frayne with Magnifying Glass captured with a 4K Sony ZV-1 Camera.

![](/files/zVGSxQY1rvxt35WXIvUs)

### [Terrarium](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/za_mar_blender_7x11.hop)

Honestly, what’s more fun than a holographic bunny? Made by Blender artist Mar.

![](/files/kyYhzdofz2Qq0C8xdAEG)

### [Wasp](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/r_wasp1_giovanni_5x10.hop)

As lifelike as it seems, we promise no actual wasps will fly out of your display. We’ve fixed that bug. Light field photo by Giovanni Remigi.

![](/files/0rakRQcGdO02qoAy7IUe)

### [Zoomed Wasp View](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/s_wasp2_giovanni_5x10.hop)

Wasps are pretty fly when you can see them up close. See what we mean in this zoomed-in view of a hologram by Giovanni Remigi.

![](/files/lyixpqjPDKFswzEMd9J4)

### [Missy](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/e_missy_iphone_5x9.hop)

The one and only, ethereal as always. iPhone Portrait mode photo captured with an iPhone X.

![](/files/MWGpvXIj5RtXFmPeG0V2)

### [Make New Friends](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/f_makenewfriends_kinect_5x9.hop)

New kid in town? No worries, volumetric Missy is here to be your first 3D friend. Filmed using an Azure Kinect, processed with Depthkit and Unity.

![](/files/BxiuME9qTWbgM8WjiQ76)

### [Dogs](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/o_twodogs_riyaz_modelimport_5x9.hop)

3D pictures are a holographic display’s best friend. Now every dog can have their day as a 3D hologram. 3D photo made by [Riyaz Datoo](https://3dcrystal.com/about-us).

![](/files/N3776QECuPTEUxljswqv)

### [Kids](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/h_skateboard_riyaz_modelimport_5x9.hop)

Kids these days, with their holographic hootnanny. Relive the wonder years with this 3D photo made by [Riyaz Datoo](https://3dcrystal.com/about-us).

![](/files/ME3K0WCpEDEb1wGowQyu)

### [Mom](https://dhtk4bwj5r21z.cloudfront.net/Holograms/demo-reel/g_mum_giovanni_7x13.hop)

Call your mother. This 3D photo by [Giovanni Remigi](https://www.framedlives.com/?page=main) is your holographic reminder.

![](/files/eJOnrnmJZAEAVTs7ZQWK)


# Common Troubleshooting Issues

Being at the cutting edge of technology isn't always easy, luckily you're not alone! We've put together this guide here to help you if you hit any stumbling blocks on your path to the future.

### Powering your Portrait

When possible you should use the included USB-C Cable and power adapter. For desktop mode you can use a USB-A to USB-C Cable, however this won't provide enough power for stand-alone mode, for stand-alone mode you'll need to use a USB-C to USB-C Cable.

The power supply that ships with the Looking Glass Portrait is a 5-volt 3-amp adapter rated for a maximum of 18W output.

### Status LED Key

The Looking Glass Portrait has a status LED on the side of the device above the power button. The status LED is helpful to determine what state the Looking Glass is in if you're running into issues.

<table><thead><tr><th width="214">Color</th><th>Status</th></tr></thead><tbody><tr><td>⚪️ Solid White</td><td>The Looking Glass is running in <a href="/pages/q6tW5xqTi4X8Ldf9faar#stand-alone-mode">Standalone Mode</a>.</td></tr><tr><td>⚪️ Breathing White</td><td>The Looking Glass is in standby mode, ready to boot into <a href="/pages/q6tW5xqTi4X8Ldf9faar#stand-alone-mode">Standalone Mode</a>.</td></tr><tr><td>🔵 Solid Blue</td><td>The Looking Glass is running in <a href="/pages/q6tW5xqTi4X8Ldf9faar#desktop-mode">Desktop Mode</a>.</td></tr><tr><td>🔵 Breathing Blue</td><td>The Looking Glass is in standby mode, ready to boot into <a href="/pages/q6tW5xqTi4X8Ldf9faar#desktop-mode">Desktop Mode</a>.</td></tr><tr><td>🟡 Blinking Yellow</td><td>The Looking Glass is attempting to switch between modes.</td></tr><tr><td>🔴 Blinking Red</td><td>The Looking Glass does not have enough power to turn on.</td></tr></tbody></table>

### Entering Standalone Mode

First ensure that your Looking Glass Portrait is connected to a power source via USB-C. **USB-A to USB-C cables will not work for Standalone Mode.**

Once you've checked to confirm your USB-C cable is properly connected on both ends, take a look at the status LED on the side of the Looking Glass. If it's connected to power properly you should see the LED breathing white. If this is the case, awesome! Tap the power button on the Looking Glass and you should see the device boot up into Standalone mode and display some awesome holograms.

If the Looking Glass boots up but doesn't show any holograms check the status LED to see if it's running in Standalone Mode properly. Once it's booted up the LED should be solid white.

### Entering Desktop Mode

In order to enter Desktop Mode you must have both the HDMI Cable and USB-C Cables connected. If your computer does not have a USB-C port you can connect the USB-C cable to the wall adapter, however you'll need to make sure that USB-C is connected to your computer in order to sync holograms to your device.

To ensure that your Looking Glass and related software are working properly try the web test below.

If successful, you display should show a test image of the Looking Glass logo on your portrait. To close this image, move your mouse over and click anywhere on the image. The image should appear 3D.

If the image doesn't appear, or you get an error, ensure that the latest version of **Looking Glass Bridge** is installed and that your HDMI cable and USB-C cables are properly plugged in.

{% embed url="<https://codesandbox.io/embed/hardcore-butterfly-l5o9d?fontsize=14&hidenavigation=1&theme=dark&view=preview>" %}

### Issues switching between Desktop Mode and Standalone Mode

If you are having issues switching between Desktop and Standalone Mode it's likely one of the following issues:

1. Loose cables: Please ensure that the HDMI and USB-C cables are properly connected on both ends. If you try to switch between Stand Alone and Desktop Modes without the cables connected properly the Looking Glass may not be able to switch between modes properly.
2. Correct Cables: Standalone Mode requires a USB-C to USB-C power source. It will not work with a USB-A to USB-C cable. If you're trying to switch between Desktop Mode and Standalone Mode with a USB-A to USB-C cable the Portrait's status LED will blink yellow, as it tries to switch modes, then will remain in Desktop Mode.

### Issues getting holograms onto the Looking Glass Portrait.

To add your own holograms for playback in Standalone Mode you need to use [Looking Glass Studio](/software/looking-glass-studio) in order to sync the holograms to your display.

{% hint style="info" %}
Copying quilt files over to the Looking Glass' storage drive will not work, holograms must be encoded through Looking Glass Studio to playback properly in Standalone Mode.
{% endhint %}

## Restore Your Portrait's Calibration Data

Looking Glass Portrait stores its calibration data in a folder on the display itself. Deleting this data can cause Looking Glass Studio to be unable to find your display. You can restore this data by following the steps below.

* Install [Looking Glass Bridge](https://look.glass/bridge)
* Connect your Looking Glass Display in Desktop Mode.
* Once the display is on, click the `Save your Calibration File` button.
* This will save a `Visual.json` file do your downloads folder. You will then need to manually copy the file to your Looking Glass.

{% embed url="<https://codesandbox.io/p/sandbox/save-calibration-file-5gw5ff?from-embed>" %}

### Windows:

* Open File Explorer, then look for your Looking Glass under `This PC`
* If there is not already a folder present called `LKG_Calibration` you must make one.
* Place the file inside the `LKG_Calibration` folder.

### MacOS:

* Open Finder, then look for your Looking Glass. MacOS doesn't always surface new drives, so it may show on your main desktop workspace instead.
* Once the folder is open, check for an `LKG_Calibration` folder, if not present, make one by right clicking the UI in finder, and selecting `new folder`
* Place the file inside the `LKG_Calibration` folder.


# Running Looking Glass Displays with iOS Devices

{% embed url="<https://drive.google.com/file/d/14HdUFGV3IvNsoniYeFOZ3eAmwQ2lxCvm/view?usp=sharing>" %}

Looking Glass now supports seamless integration with iOS devices, allowing users to connect their Looking Glass Go or 16” displays directly to an iPhone or iPad via USB-C. This capability enables you to run interactive applications for your Looking Glass display using compatible iOS devices, such as the iPhone 15/16 Pro, iPhone 15/16 Pro Max, and iPad Pro (M4).

With this new feature, you can:

* Run Looking Glass iOS apps like the [Hologram Video](/software/looking-glass-studio/studio-for-ios) app on the Looking Glass Go and 16”
* Build and deploy your own iOS applications for Looking Glass using [our Unity plugin](/software/index/developing-for-ios)
* Run [demo applications](#demo-apps) demonstrating different use cases with a seamless setup

This opens up exciting new opportunities for developing and showcasing interactive 3D content without the need for a computer, streamlining workflows and expanding creative possibilities.

## Hardware setup

### Looking Glass Go Display

Looking Glass Go displays can be run via iPhone 15/16 Pro or iPad Pro (M4) devices.

**Both power and display signal will be driven by the iOS device via a single 10Gbps USB-C cable.** There is no need to connect your Go to a different power source. It will work like a holographic secondary display for your iOS device :tada:

{% hint style="warning" %}
The Looking Glass Go is slightly under the maximum threshold for power draw from iPhones. This may cause the iPhone to warn you that it "Cannot Use Accessory" — you can ignore this warning and select "OK".

<img src="/files/w0KBDTdfOVwfxV2LHBPG" alt="" data-size="original">
{% endhint %}

If you find that your iPhone occasionally displays the “Cannot Use Accessory” alert when connected directly to the Looking Glass Go, consider using the [Satechi Mobile XR Hub](https://look.glass/satechiXRhub). This compact hub helps manage power draw so that your iOS device is not solely responsible for powering the display.

1. **Connect your iOS device to the XR Hub:** Attach your iPhone 15/16 Pro to the Satechi Mobile XR Hub via a USB-C cable.
2. **Attach the Looking Glass Go:** Plug the Looking Glass Go into the Satechi Mobile XR Hub’s output port.
3. **Optional external power:** For extended sessions, you may also connect a power adapter to the XR Hub itself, ensuring stable power delivery to both the hub and the Looking Glass Go.

By offloading part of the power draw, the Satechi Mobile XR Hub helps maintain reliable performance and can reduce or eliminate power-related warnings on your iPhone. It also preserves your iPhone battery life, which is especially handy for longer holographic workflows.

To set up your Go device to be able to run iOS devices, [follow the user guide](/getting-started/looking-glass-go) to setting up your Go device. Once it is set up and connected to the internet, it will automatically receive an update to the latest firmware version — this is required to be compatible with iOS devices. You can check your firmware version via the Go Mobile App by selecting the settings button on the top right. You must be on firmware v1.0.59 or later.

<figure><img src="/files/9RPK5wIpPFoJHTMfDy2B" alt="" width="375"><figcaption></figcaption></figure>

Note that updates can take several minutes to download and process. If your device fails to update, you can do so manually by following [these instructions](https://discord.com/channels/573562186597662720/1283796328375386225/1283796328375386225) and can contact our support team for assistance at <support@lookingglassfactory.com>.

Once your Go device has updated, run the device once in Standalone mode, and then **restart the device**. This will create a new drive on your device that is required for interfacing with iOS devices.

When your device has restarted, connect your Go to your iPhone or iPad via USB-C cable. The power light indicator should turn blue. Press the power button.

The screen of your Go device should turn on and mirror your iOS device screen.

For best results, you should also set the audio output device to be the iPhone, not the Looking Glass — this will ensure you can hear any sound effects and audio from running apps. To do so:

* Pull down from top right corner of your iPhone to expose the menu
* Click the button on the top right of the menu
* Select "iPhone" from the options

The setup is now complete and you can run our [iOS software applications](#running-applications).

### Looking Glass 16” and 27" Displays

Looking Glass 16” and 27" displays can be run via iPhone 15/16 Pro, iPhone 15/16 Pro Max, or iPad Pro (M4) devices, but **we strongly recommend using an iPad for best performance.**

To connect your Looking Glass 16” or 27" display:

1. Plug both USB-C cables into the device, per the [hardware setup guide](https://docs.lookingglassfactory.com/getting-started/16). The HDMI cable won’t be necessary for this process.
2. Plug one of the USB-C cables into the power adapter and into a wall socket. Plug the other USB-C cable into your iOS device (Note: this must be a 10Gbps cable).

Your Looking Glass display should now turn on and show the iOS device background. The setup is now complete and you can run our [iOS software applications](https://docs.lookingglassfactory.com/community/running-looking-glass-displays-with-ios-devices#running-applications).

For optimal usage of the system, there are a few settings that will improve the user experience.

* Set your device to extended, not mirror — this will improve the rendering quality of the output in the Hologram Video app and when no app is being run from the iPad
  * Under "Settings" -> "Display & Brightness" select "Arrangement" and ensure the toggle for "Mirror Display" is off
* Set audio output device to be the iPad, not the Looking Glass — this will ensure you can hear any sound effects and audio from running apps
  * Pull down from top right corner of your iPad to expose the menu
  * Click the button on the top right of the menu
  * Select "iPad" from the options
* Set the lock screen to activate after 15 minutes — this will mitigate any burn in caused by having a static image run for too long
  * Under "Settings" -> "Display & Brightness" select "Auto-Lock" and ensure "15 minutes" is selected from the list of options
* Ensure low-power mode is disabled
  * Under "Settings" -> "Battery" make sure the toggle for Low Power Mode is untoggled

## Running applications

We provide a suite of iOS applications for you to use on your Looking Glass devices.

### Loading calibration data

For all applications, you must first select the calibration file for your Looking Glass device. When you run your application, you will be prompted to:

* Connect your device via USB-C
* Load a calibration file via the file browser. Calibration files are under Locations -> LKG-XXXXXX (your device serial number) -> LKG\_calibration -> visual.json. Select the visual.json file
* Your calibration is now loaded — applications will store this for future use

<figure><img src="/files/YZhLKLIH7bf7NkSWyajN" alt=""><figcaption></figcaption></figure>

Calibrations differ between devices. If you connect your iOS device to a different Looking Glass, you’ll need to set your calibration. Looking Glass Studio for iOS will then store this data so you only need to configure each display once. Our demo apps don't have this sophisticated handling, so they require more confirmation steps.

#### Demo app confirmation

Our demo applications will ask you to confirm the loaded calibration when you start the app. If your device is connected to a new Looking Glass display, be sure to load a new calibration file.

If you’ve asked to not show this prompt again but have connected your device to a new Looking Glass display, you’ll need to change the calibration by selecting Settings (the gear icon) -> Load new calibration. Navigate to the visual.json for your new device and select it.

You can also confirm your calibration is correct using the calibration test image. This can be selected from the popup screen that notifies you which calibration file is being used, which appears once you connect your device or can be accessed by pressing the gear button for settings. The test image should show a red vertical line in front of a blue vertical line in the center of the screen.

<figure><img src="/files/AzksBR4lntYgk9ram9iT" alt="" width="375"><figcaption></figcaption></figure>

If your Looking Glass doesn't have these two superimposed straight lines in the center, you're likely using the wrong calibration. Reload the calibration file to resolve the issue.

### Looking Glass Studio for iOS app

{% hint style="info" %}
Access Looking Glass Studio for iOS via [the App Store](https://look.glass/app/hologram-video-player).
{% endhint %}

This app lets you load and play a variety of hologram image and video formats. You can:

* Load quilt images and videos generated using our [Unity plugin](/software/index) or other [creator tools](/software/creator-tools)
* Load RGBD images and videos generated with tools like [Depth Anything](https://github.com/LiheYoung/Depth-Anything), [DepthCrafter](https://huggingface.co/tencent/DepthCrafter), and [Owl3D](https://www.owl3d.com/)
* Load Cinematic videos shot on an iPhone 15 or later

See a full guide for Looking Glass Studio for iOS [here](/software/looking-glass-studio/studio-for-ios).

### Demo apps

We have a suite of demo applications that showcase different use cases for our technology.

#### 3D Replicas

Shows scans of historical artifacts, demonstrating a museum use case. Controls to rotate, zoom, and adjust lighting.

This app is in beta and intended for demonstration purposes — it is distributed via TestFlight. To install it, first [install TestFlight](https://testflight.apple.com/) to your iOS device. Then, [access it here](https://testflight.apple.com/join/z1wt4ZWa).

{% hint style="warning" %}
Remember to follow instructions on setting up your [hardware device](#hardware-setup) and [loading calibration](#loading-calibration-data)!
{% endhint %}

<div data-full-width="true"><figure><img src="/files/Zy66lyUefpZKVLcJ1dmn" alt=""><figcaption></figcaption></figure></div>

#### 3D Shoecase

Shows a selection of shoes and sneakers, demonstrating a [retail use case](https://www.highsnobiety.com/p/louis-vuitton-nike-air-force-1-virgil-abloh-exhibition/?utm_content=251816517). Controls to rotate, zoom, and adjust lighting.

This app is in beta and intended for demonstration purposes — it is distributed via TestFlight. To install it, first [install TestFlight](https://testflight.apple.com/) to your iOS device. Then, [access it here](https://testflight.apple.com/join/nFqASptz).

{% hint style="warning" %}
Remember to follow instructions on setting up your [hardware device](#hardware-setup) and [loading calibration](#loading-calibration-data)!
{% endhint %}

<figure><img src="/files/07pg4m4XUw8WlAmWfEBV" alt=""><figcaption></figcaption></figure>

#### 4D Ultrasound

A selection of models generated from medical scanning data, demonstrating a medical use case.

This app is in beta and intended for demonstration purposes — it is distributed via TestFlight. To install it, first [install TestFlight](https://testflight.apple.com/) to your iOS device. Then, [access it here](https://testflight.apple.com/join/a7YKZvas).

{% hint style="warning" %}
Remember to follow instructions on setting up your [hardware device](#hardware-setup) and [loading calibration](#loading-calibration-data)!
{% endhint %}

<figure><img src="/files/YkhpbDo6ZCKUAuye4pwc" alt=""><figcaption></figcaption></figure>

#### 3D Memoji (coming soon!)

Uses the built-in camera in your iOS device to let you become a holographic sloth character, demonstrating a [location-based entertainment](https://www.linkedin.com/feed/update/urn:li:activity:7046589816875962369/) use case.

<figure><img src="/files/YNiQGGFBWt2utGlMiYq4" alt=""><figcaption></figcaption></figure>

## Developing applications

In addition to running the Holographic Video Player and demo applications, you can also create your own content via our [Unity plugin](https://look.glass/unity). Follow our [developer guide](/software/index/developing-for-ios) for more details!


# Overview

A quick overview of the Looking Glass Light Field display software ecosystem.

{% hint style="info" %}

### <mark style="color:$danger;">Looking for the guides on Hololuminescent displays?</mark>

<mark style="color:$primary;">This user guide is to help you get set up with Looking Glass Light Field displays. Documentation for</mark> [<mark style="color:$primary;">**Hololuminescent™ displays is available here.**</mark>](https://hlddocs.lookingglassfactory.com)
{% endhint %}

We provide a suite of software — applications, creator tools, and SDKs — to unlock the potential of our Light Field displays.

{% hint style="info" %}
To get started with your Looking Glass display, checkout out the display pages for Looking Glass [Go](/getting-started/looking-glass-go), [Portrait](/getting-started/portrait), [16"](/getting-started/16), [32](/legacy/legacy-hardware/looking-glass-32)" or [65](/getting-started/looking-glass-65)".
{% endhint %}

## Looking Glass Bridge (Required Software)

Looking Glass Bridge is required to connect to Looking Glass devices. It also rendering for a number of tools, including Blocks, Blender, and Unreal.

<table data-card-size="large" data-view="cards" data-full-width="false"><thead><tr><th></th><th data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Looking Glass Bridge Overview</td><td><a href="/pages/-MWj9-3frKdoBC_pKjOq">/pages/-MWj9-3frKdoBC_pKjOq</a></td><td><a href="/files/wNqmw9gvkagyevndtMUj">/files/wNqmw9gvkagyevndtMUj</a></td><td><a href="/pages/-MWj9-3frKdoBC_pKjOq">/pages/-MWj9-3frKdoBC_pKjOq</a></td></tr><tr><td>Learn how to use Looking Glass Bridge</td><td><a href="/pages/HlCfBSV8TxShhyw4RJHL">/pages/HlCfBSV8TxShhyw4RJHL</a></td><td><a href="/files/q8TIiAgC5FCdF9ao1xmI">/files/q8TIiAgC5FCdF9ao1xmI</a></td><td><a href="/pages/HlCfBSV8TxShhyw4RJHL">/pages/HlCfBSV8TxShhyw4RJHL</a></td></tr></tbody></table>

## Developer Tools

### Looking Glass Bridge SDK

Integrate your own software with Looking Glass via the Bridge SDK. You can render images and videos via the HTTP API or connect a real-time application to render in Bridge. Supports native app development with OpenGL, DirectX, Metal, and Vulkan, though OpenGL is most robustly supported.

{% content-ref url="/pages/b6mocjpWUammxgkmXo7o" %}
[Looking Glass Bridge SDK](/software/looking-glass-bridge-sdk)
{% endcontent-ref %}

### Unity

Create interactive holographic applications using Unity. Our Unity plugin allows you to render directly to any Looking Glass display and display your holograms in real-time.\
\
Our Unity plugin supports Unity's built-in render pipeline, as well as the Universal Render Pipeline.

{% content-ref url="/pages/iK43OGCDBt84A3gDEQLB" %}
[Using Unity with Looking Glass](/software/index/tutorial)
{% endcontent-ref %}

## Applications

### Looking Glass Studio

A media player for holographic images and videos. You can create and edit playlists, adjust framing, and create a reel of content. Supports [quilt](/keyconcepts/quilts) content and RGBD content. Supports Windows and MacOS.

[Hologram Video](/software/looking-glass-studio/studio-for-ios) is an iOS equivalent to Studio and is available on the App Store. Currently it only supports RGBD and Cinematic video.

{% content-ref url="/pages/-MWj9-1mH0PoShMHhwRk" %}
[Looking Glass Studio](/software/looking-glass-studio)
{% endcontent-ref %}

### Model Viewer

Load your existing 3D models to easily view them on the Looking Glass. Supports glTF, FBX, OBJ, and more.

{% content-ref url="/pages/ke4WjTE4G5LSI6i0YyWF" %}
[Looking Glass Model Viewer](/software/looking-glass-model-viewer)
{% endcontent-ref %}

## Other Software

### Blocks

Share holograms and convert 2D images to holograms with Blocks. You can see a wide array of content created by our team and our community, right in the browser.

{% content-ref url="/pages/uzTiej3OippIQZrjMaxD" %}
[Looking Glass Blocks](/software/looking-glass-blocks)
{% endcontent-ref %}

### Blender

Cast holograms to your Looking Glass display directly from Blender's viewport.\
\
The Blender Add-on allows you to view your work on your Looking Glass as you work with the Eevee renderer, and allows you to render full quality quilts for every Looking Glass display using Eevee or Cycles.

{% content-ref url="/pages/-MWj9-1QDiLVMyndrEi6" %}
[Blender](/software/creator-tools/index-1)
{% endcontent-ref %}

### Unreal Engine

Create cinematic holograms with Unreal Engine 5.\
\
Our Unreal Engine plugin allows you to create high quality holograms using all of Unrea Engine's latest features, like Lumen and Nanite.

{% content-ref url="/pages/SVseHkXwzoeLGri9o0bz" %}
[Using the Unreal Engine Plugin](/software/creator-tools/index/using-the-unreal-engine-plugin)
{% endcontent-ref %}

### WebXR

Create interactive holograms on the web using frameworks like Three.JS, Babylon.JS, PlayCanvas, Kitware's VTK.JS, Wonderland Engine and many more.\
\
Our WebXR Library allows any WebGL framework to render to the Looking Glass using the powers of open standards and open source tools.

{% content-ref url="/pages/KCiJPVuIHoG460Q6v6zU" %}
[WebXR](/software/creator-tools/webxr)
{% endcontent-ref %}

### Experiments

We have additional tools and applications that are currently experiments, but may be useful/interesting.

{% content-ref url="/pages/HOBmywTrQ8DdJwfIPOXA" %}
[Experiments](/software/experiments)
{% endcontent-ref %}

### Third Party Software

Check out more software created by our partners and community!

{% content-ref url="/pages/ZAQUh5XOwiv6ZMJSlx3r" %}
[Third Party Apps and Tools](/software/third-party-apps-and-tools)
{% endcontent-ref %}


# Looking Glass Bridge

Required Software for Looking Glass Displays

Looking Glass Bridge facilitates communication between your computer and any connected Looking Glass devices. It is required for Looking Glass applications, web apps and development tools.

Download the latest version from our Software downloads page [here](https://lookingglassfactory.com/software/looking-glass-bridge).

Looking Glass Bridge is available for Windows, MacOS (M1/Intel) and Linux-based systems.

{% hint style="info" %}
For Looking Glass Bridge to function properly your Looking Glass display must be setup properly in desktop mode. Follow the instructions on the following pages to make sure everything is pixel perfect.
{% endhint %}

<table data-view="cards"><thead><tr><th></th><th data-hidden></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Display Settings on Windows 🪟</strong></td><td></td><td></td><td><a href="/pages/SqewUHfu4KKIY6xsYo1z">/pages/SqewUHfu4KKIY6xsYo1z</a></td></tr><tr><td><strong>Display Settings on MacOS</strong> 🍎</td><td></td><td></td><td><a href="/pages/ypLgTeSrQP71utINd55a">/pages/ypLgTeSrQP71utINd55a</a></td></tr><tr><td><strong>Display Settings on Linux 🐧</strong></td><td></td><td></td><td><a href="/pages/yapPbuHzpWTgdZDY4lZm">/pages/yapPbuHzpWTgdZDY4lZm</a></td></tr></tbody></table>

{% hint style="warning" %}
Legacy Looking Glass devices prior to Looking Glass Portrait (2018) are not intended to be used with Looking Glass Bridge.\
\
Instead you should use our older driver, [HoloPlay Service](/software/looking-glass-bridge/troubleshooting#holoplay-service).
{% endhint %}

To learn more about using Looking Glass Bridge, check out the instructions on the following page.\
\
These instructions will walk you through how to use Bridge's basic and advanced functionalities:

{% content-ref url="/pages/HlCfBSV8TxShhyw4RJHL" %}
[Using Looking Glass Bridge](/software/looking-glass-bridge/using-looking-glass-bridge)
{% endcontent-ref %}

### Test your setup

This simple test can be run to ensure that hardware is connected, and software is installed and configured:

{% embed url="<https://codesandbox.io/embed/hardcore-butterfly-l5o9d?fontsize=14&hidenavigation=1&theme=dark&view=preview>" %}

When the above button is pressed, your Looking Glass should show a test hologram.

If your device isn't showing a hologram, make sure that you've got Looking Glass Bridge running and that your device is properly plugged in and running in Desktop Mode.

## Troubleshooting

{% hint style="info" %}
For more troubleshooting tips or to download previous versions of Bridge, see our [troubleshooting page.](/software/looking-glass-bridge/troubleshooting)
{% endhint %}

### Error: Looking Glass Bridge not detected

If the test above shows <mark style="color:red;">`Looking Glass Bridge not detected`</mark>, make sure it's installed and running. [Click here for the latest version](https://lookingglassfactory.com/software/looking-glass-bridge).

If it is installed but not running, see the below:

{% tabs %}
{% tab title="For Windows" %}
Click on the Windows Start menu and search for "Looking Glass Bridge":

If you can't find it, go to `C:/Program Files (x86)/Looking Glass Factory/Bridge/` and double-click `Looking Glass Bridge.exe` to launch it.

Once launched, try the [Test Setup](#test-your-setup) button to make sure it's running as intended.
{% endtab %}

{% tab title="For Mac" %}
You can open Looking Glass Bridge directly from your Applications folder.

Once launched, click [Test Setup](#test-your-setup) button and you should see a hologram on your display!

{% hint style="info" %}
Looking Glass Bridge does not work with Safari, please use a different web browser to use Looking Glass Bridge with the web.
{% endhint %}
{% endtab %}
{% endtabs %}

### Error: No Looking Glass detected / Error loading calibration

With the exception of Looking Glass Go, which uses a single USB-C cable to deliver both power and video signal, Looking Glass displays have two types of cables that must be connected to the computer during operation: a USB cable and a HDMI or DisplayPort cable, depending on the display model.\
\
Ensure that you've got your cables properly connected to your devices and that your Looking Glass is powered on.

{% hint style="info" %}
For [Looking Glass Go](/getting-started/looking-glass-go) and [Looking Glass Portrait](/getting-started/portrait), ensure that your device is running in Desktop Mode.
{% endhint %}

1. Power down your Looking Glass and unplug all cables
2. Find the Looking Glass Bridge icon on the Windows taskbar or Mac menu bar
3. Click on the icon to reveal the menu
4. Click on "Restart Bridge"
5. Plug cables back in to your devices
6. Re-run the [test setup](#test-your-setup)

### Linux

{% hint style="info" %}
Please note that only select distributions of Ubuntu have direct support for Looking Glass Bridge and other Looking Glass software
{% endhint %}

To install Looking Glass Bridge on Linux run the following commands after extracting the archive.

```
$ chmod +x lookingglassbridge.sh
$ ./lookingglassbridge.sh
```


# Using Looking Glass Bridge

This page will guide you through using Looking Glass Bridge.

{% hint style="info" %}
The latest version of Looking Glass Bridge is available [here](https://lookingglassfactory.com/software/looking-glass-bridge).
{% endhint %}

Looking Glass Bridge is a **service** application, that means that for the most part, it runs in the background and provides interfaces for other user-facing applications.\
\
This also means that Looking Glass Bridge is accessible via different methods than you might expect from a normal application.

### Windows 🪟

On Windows, Looking Glass Bridge is available in the Icon Tray.\
\
This is located on the right side of the Windows Taskbar, next to the clock, volume and Wi-Fi settings. To access Bridge, click the Up arrow in the Icon Tray, then choose the Bridge application.

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td>Bridge exists in the icon Tray.<br><br>To interact with Bridge select the Bridge icon.</td><td><a href="/files/7ykwmKbjj4HNeJEVMdZr">/files/7ykwmKbjj4HNeJEVMdZr</a></td></tr><tr><td>The main menu of Looking Glass Bridge will show the Looking Glass displays that are connected to your computer.</td><td><a href="/files/ZrFECRVQKk1AVcJqShsG">/files/ZrFECRVQKk1AVcJqShsG</a></td></tr><tr><td>When you select a display, you'll see a few options for actions you can perform.<br><br>These actions are the same across all platforms, we'll go over them below.</td><td><a href="/files/82t3dS9YUE5P7TtmCnNl">/files/82t3dS9YUE5P7TtmCnNl</a></td></tr></tbody></table>

### MacOS 🍎

On MacOS, Looking Glass Bridge is available via the Menu Bar.\
\
This is located at the top of your Mac's main screen.

<figure><img src="/files/iqlhlr7pf7KrSiqE3vND" alt=""><figcaption></figcaption></figure>

Once you click on the Bridge icon, you'll see the following menu.

<table data-view="cards"><thead><tr><th></th><th data-hidden></th><th data-hidden></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td>Once you select the Bridge icon in the Menu Bar, you'll see the following menu.</td><td></td><td></td><td><a href="/files/6D743URePrmkiBR5AK6O">/files/6D743URePrmkiBR5AK6O</a></td></tr><tr><td>Selecting a Display from Bridge's menu will show you a series of actions you can perform.<br><br>Those actions are described in more detail below.</td><td></td><td></td><td><a href="/files/rdqonVc93e56xUzY96n7">/files/rdqonVc93e56xUzY96n7</a></td></tr></tbody></table>

## Actions:

### Toggle Debug View

This action will toggle the debug view on and off.\
\
The debug view is useful to ensure that Looking Glass Bridge is displaying content correctly on your Looking Glass display.

### Toggle Window

This action will toggle the window created by Looking Glass Bridge on and off.

### Set AutoStart Playlist

Introduced in Looking Glass Bridge 2.2, this option will allow you to play through a playlist created by Looking Glass Studio automatically when you start Looking Glass Bridge. When you click this option, a file browser window will open.\
\
You'll want to navigate to your `Documents/HoloPlayStudio/New Playlist` folder, then choose your `playlist.json` file.

Alternatively, you can supply [an `.m3u` playlist file](https://en.wikipedia.org/wiki/M3U) that includes a list of image and video assets. However, this method will only work for quilt media that uses [the file naming convention to supply quilt settings](https://docs.lookingglassfactory.com/keyconcepts/quilts#file-naming-conventions).

Once you've selected a playlist, Bridge will start playing it. Bridge will also play that playlist each time it starts on that computer.

Use [Clear AutoStart Playlist](#clear-autostart-playlist) to discontinue playback.

### Clear AutoStart Playlist

Introduced in Looking Glass Bridge 2.2, this option will allow you to clear a playlist set to automatically start. When you click this option, Bridge will clear the playlist from the Autostart option, while restarting Bridge will close the playlist if it's currently playing.

In order to control the playlist, you can use the[ **Looking Glass Bridge API Library**](https://github.com/Looking-Glass/bridge.js).<br>

{% hint style="warning" %}
Currently, hardware-accelerated video playback is only available on NVIDIA graphics cards.\
\
This is highly recommended for proper playback of 8K quilts and other high-resolution content.
{% endhint %}


# Display Settings on Windows

This page goes over how to adjust display settings on Windows computers.

For Looking Glass software to work as best as possible your Looking Glass display must be set to the proper resolution. The following recommendations will make sure that your computer and Looking Glass are setup properly.

{% hint style="warning" %}
Some Windows-based laptops limit which ports are connected to the dedicated graphics card. In some cases, the HDMI port will only be linked to the integrated graphics card, resulting in lower performance for demanding applications.\
\
Please consult your computer's user guide to determine which ports are connected to your dedicated graphics card.
{% endhint %}

## Display Adapters

If your computer only has USB-C output, you'll need a display adapter to connect the HDMI or DisplayPort cable to your Looking Glass.\
\
For Looking Glass Portrait, we typically recommend adapters from [Anker](https://www.anker.com/products/a8312).\
\
For Looking Glass Go, we recommend this [official adapter](https://checkout.lookingglassfactory.com/products/looking-glass-go-hdmi-cable).

If you need a different display adapter, ensure that it supports at minimum 4K\@30Hz for use with the Looking Glass Portrait and Looking Glass 16", and 5K\@30hz for the Looking Glass 27".

{% hint style="danger" %}
A display adapter that doesn't support 4K\@30hz will not work with your Looking Glass Portrait or 16". The Looking Glass 27" requires a display adapter that supports 5K\@30hz.
{% endhint %}

{% hint style="warning" %}
For the Looking Glass 32" or 65" you must plug in both DisplayPort cables to your computer.\
\
We strongly recommend using a desktop computer with a powerful NVIDIA graphics card for these systems. For more information, please see the Looking Glass user guide for the [32"](/legacy/legacy-hardware/looking-glass-32) or [65"](/getting-started/looking-glass-65) for minimum required specifications for your PC.
{% endhint %}

## Display Settings

To get to display settings, open the **Settings** app and then click on **Display.**

<figure><img src="/files/7ExcQK84J5JtEeZUnxwf" alt="A screenshot showing the windows 11 settings menu."><figcaption></figcaption></figure>

Windows usually sets new monitors to **Duplicate** to the main screen. In order for your Looking Glass to work properly, it must be set as an Extended Display. Select the **Duplicate these displays** text and then choose **Extend these displays**. This will now show two rectangles in the Settings menu, representing your main monitor and your Looking Glass display.

<figure><img src="/files/uVDzi1tUV2CRU0b3JyXX" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/ucZe5uG9k02RoSvGQYzg" alt=""><figcaption></figcaption></figure>

Select your Looking Glass display and scroll down until you see the **Display Scaling** and **Resolution** options, under the **Scale and Layout** category.

<table><thead><tr><th width="324.5">Device</th><th>Display Resolution</th><th>Orientation</th></tr></thead><tbody><tr><td>Looking Glass Go</td><td>1440 x 2560</td><td>Portrait</td></tr><tr><td>Looking Glass 16" Light Field Display (Landscape)</td><td>3840 x 2160</td><td>Landscape</td></tr><tr><td>Looking Glass 16" Light Field Display (Portrait)</td><td>2160 x 3840</td><td>Portrait (270 degrees)</td></tr><tr><td>Looking Glass 27" Light Field Display (Landscape)</td><td>5120 x 2880</td><td>Landscape</td></tr><tr><td>Looking Glass 27" Light Field Display (Portrait)</td><td>2880 x 5120</td><td>Portrait (270 degrees)</td></tr><tr><td>Looking Glass 32" Light Field Display (Landscape)</td><td>7680 x 4320</td><td>Landscape</td></tr><tr><td>Looking Glass 32" Light Field Display (Portrait)</td><td>4320 x 7680</td><td>Portrait</td></tr><tr><td><strong>Looking Glass Portrait</strong></td><td>1536 x 2048</td><td>Portrait</td></tr><tr><td><strong>Looking Glass 16"</strong></td><td>3840 x 2160</td><td>Landscape</td></tr><tr><td><strong>Looking Glass 32" or 65"</strong></td><td>7680 × 4320</td><td>Landscape</td></tr></tbody></table>

### Display Scaling On

Ensure that **Scale** is set to 100% and that the **Display resolution** setting matches the settings for your display in the table above.

<figure><img src="/files/6HgKmlhM8QDCMYAbOoB0" alt=""><figcaption></figcaption></figure>


# Display Settings on macOS

This page goes over how to adjust your display settings on macOS computers.

{% hint style="warning" %}
Apple Silicon Macs like the 13" Macbook Air and Macbook Pro can only output to **one** external monitor and have a max resolution of 3840x2160.\
\
Only the M1/M2/M3/M4 Pro, Max, and Ultra variants support multiple monitors.
{% endhint %}

For Looking Glass software to work as best as possible your Looking Glass display must be set to the proper resolution. macOS in particular tends to scale monitors to optimize for things like text size. While this works great for 2D displays, it can cause some trouble with holographic displays.

Follow the recommendations below to adjust your display settings on macOS.

## Display Adapters

If your Mac computer only has USB-C output, you'll need a display adapter to connect the HDMI or DisplayPort cable to your Looking Glass.\
\
For Looking Glass Portrait, we typically recommend adapters from [Anker](https://www.anker.com/products/a8312).\
\
For Looking Glass Go, we recommend this [official adapter](https://checkout.lookingglassfactory.com/products/looking-glass-go-hdmi-cable).

If you need a different display adapter ensure that it supports at minimum 4K\@30Hz for use with the Looking Glass Portrait and Looking Glass 16", and 5K\@30hz for the Looking Glass 27".

{% hint style="danger" %}
A display adapter that doesn't support 4K\@30hz will not work with your Looking Glass Portrait or 16". The Looking Glass 27" requires a display adapter that supports 5K\@30hz.
{% endhint %}

## Display Scaling

Looking Glass displays are meant to be used as an external monitor.\
\
In Display Settings under System Preferences, ensure that your Looking Glass is set to be used as an **Extended Display*****.***

Looking Glass displays must be set in accordance with the following display resolutions in order for Looking Glass software to work properly.

<table><thead><tr><th width="324.5">Device</th><th>Display Resolution</th><th>Orientation</th></tr></thead><tbody><tr><td>Looking Glass Go</td><td>1440 x 2560</td><td>Portrait</td></tr><tr><td>Looking Glass 16" Light Field Display (Landscape)</td><td>3840 x 2160</td><td>Landscape</td></tr><tr><td>Looking Glass 16" Light Field Display (Portrait)</td><td>2160 x 3840</td><td>Portrait (270 degrees)</td></tr><tr><td>Looking Glass 27" Light Field Display (Landscape)</td><td>5120 x 2880</td><td>Landscape</td></tr><tr><td>Looking Glass 27" Light Field Display (Portrait)</td><td>2880 x 5120</td><td>Portrait (270 degrees)</td></tr><tr><td>Looking Glass 32" Light Field Display (Landscape)</td><td>7680 x 4320</td><td>Landscape</td></tr><tr><td>Looking Glass 32" Light Field Display (Portrait)</td><td>4320 x 7680</td><td>Portrait</td></tr><tr><td><strong>Looking Glass Portrait</strong></td><td>1536 x 2048</td><td>Portrait</td></tr><tr><td><strong>Looking Glass 16"</strong></td><td>3840 x 2160</td><td>Landscape</td></tr><tr><td><strong>Looking Glass 32" or 65"</strong></td><td>7680 × 4320</td><td>Landscape</td></tr></tbody></table>

### Display scaling on macOS Ventura

{% hint style="info" %}
Don't see your Looking Glass in Display Settings?\
\
Ensure you have the display cable and USB cable plugged in properly and that Looking Glass display is powered on and running in Desktop Mode.
{% endhint %}

On macOS Ventura, the display scaling functionality is hidden by default.\
\
To expose this functionality, first select your Looking Glass display, then hold down the **Option** key and [**right**](#user-content-fn-1)[^1]**-click** the **More Space** option. This will bring up a dropdown where you can select the display resolution. Choose the resolution that matches your display from the table above.

<figure><img src="/files/nlmakdHYLzUiNfDEfc8i" alt=""><figcaption></figcaption></figure>

### Display scaling on macOS Big Sur

{% hint style="info" %}
Don't see your Looking Glass in Display Settings?\
\
Ensure you have the display cable and USB cable plugged in properly and that Looking Glass display is powered on and running in Desktop Mode.
{% endhint %}

On macOS Big Sur you should have the option to set the resolution manually via a dropdown menu. Ensure that your Looking Glass display matches the resolution listed in the table below.

<figure><img src="/files/gmq3EQNfpuJ1TC6MTZgL" alt=""><figcaption></figcaption></figure>

[^1]: Some Mac systems have right click disabled by default, ensure you have this enabled if you're hitting issues here.


# Display Settings on Linux

This page will walk you through setting up your Looking Glass on Linux, we currently only support Ubuntu 22.04

Much like Windows and macOS, it is important to set the proper display settings in order for your Looking Glass to work properly on Linux systems.\
\
The settings UI may vary based on what Linux distribution you're running, but the general settings should remain the same across distributions.\
\
Your Looking Glass must be set to 100% Scaling, and be showing as the correct resolution and orientation. It should also be set to Extended Mode. On Ubuntu, this is worded as "Join Displays".

The table below will show the correct resolution for your Looking Glass.

<table><thead><tr><th width="324.5">Device</th><th>Display Resolution</th><th>Orientation</th></tr></thead><tbody><tr><td>Looking Glass Go</td><td>2560 x 1440</td><td>Portrait</td></tr><tr><td>Looking Glass 16" Light Field Display (Landscape)</td><td>3840 x 2160</td><td>Landscape</td></tr><tr><td>Looking Glass 16" Light Field Display (Portrait)</td><td>2160 x 3840</td><td>Portrait (270 degrees)</td></tr><tr><td>Looking Glass 27" Light Field Display (Landscape)</td><td>5120 x 2880</td><td>Landscape</td></tr><tr><td>Looking Glass 27" Light Field Display (Portrait)</td><td>2880 x 5120</td><td>Portrait (270 degrees)</td></tr><tr><td>Looking Glass 32" Light Field Display (Landscape)</td><td>7680 x 4320</td><td>Landscape</td></tr><tr><td>Looking Glass 32" Light Field Display (Portrait)</td><td>4320 x 7680</td><td>Portrait</td></tr><tr><td><strong>Looking Glass Portrait</strong></td><td>1536 x 2048</td><td>Portrait</td></tr><tr><td><strong>Looking Glass 16"</strong></td><td>3840 x 2160</td><td>Landscape</td></tr><tr><td><strong>Looking Glass 32" or 65"</strong></td><td>7680 × 4320</td><td>Landscape</td></tr></tbody></table>

<figure><img src="/files/DrlnyKwy6PqnBfCuJ6vu" alt=""><figcaption></figcaption></figure>

## Display Adapters

If your computer only has USB-C output you'll need a display adapter to connect the HDMI or DisplayPort cable to your Looking Glass.

\
For Looking Glass Portrait, we typically recommend adapters from [Anker](https://www.anker.com/products/a8312).\
\
For Looking Glass Go, we recommend this [official adapter](https://checkout.lookingglassfactory.com/products/looking-glass-go-hdmi-cable).

If you need a different display adapter, ensure that it supports at minimum 4K\@30Hz for use with the Looking Glass Portrait and Looking Glass 16", and 5K\@30hz for the Looking Glass 27".

{% hint style="danger" %}
A display adapter that doesn't support 4K\@30hz will not work with your Looking Glass Portrait or 16". The Looking Glass 27" requires a display adapter that supports 5K\@30hz.
{% endhint %}

{% hint style="warning" %}
For the Looking Glass 32" or 65" you must plug in both Display port cables to your computer. WFor the Looking Glass 32" or 65" you must plug in both DisplayPort cables to your computer.\
\
We strongly recommend using a desktop computer with a powerful NVIDIA graphics card for these systems. For more information, please see the Looking Glass user guide for the [32"](/legacy/legacy-hardware/looking-glass-32) or [65"](/getting-started/looking-glass-65) for minimum required specifications for your PC.
{% endhint %}


# Troubleshooting

This page will walk you through troubleshooting steps with Looking Glass Bridge.

{% hint style="warning" %}
You must uninstall HoloPlay Service before installing Looking Glass Bridge.
{% endhint %}

## Previous Versions

There may be cases when using older Looking Glass software or displays where HoloPlay Service is required. **If you are using current generation displays or software, you should always default to using Looking Glass Bridge.**\
\
[**The latest version of Looking Glass Bridge is available here**](https://lookingglassfactory.com/software/looking-glass-bridge)**.**

### **Looking Glass Bridge:**

<details>

<summary>Version 2.6.0</summary>

[Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.6.0/Looking.Glass.Bridge.2.6.0.exe)\
[MacOS (Intel)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.6.0/LookingGlassBridge-2.6.0_x86.pkg)\
[MacOS (M1)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.6.0/LookingGlassBridge-2.6.0_m1.pkg)\
[Linux](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.6.0/LookingGlassBridge-2.6.0-Ubuntu-2204.zip)

</details>

<details>

<summary>Version 2.5.1</summary>

[Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.5.1/LookingGlassBridge-2.5.1.exe)\
[MacOS (Intel)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.5.1/LookingGlassBridge-2.5.1_x64.pkg)\
[MacOS (M1)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.5.1/LookingGlassBridge-2.5.1_arm64.pkg)\
[Linux](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.5.1/LookingGlassBridge-2.5.1-Linux.zip)

</details>

<details>

<summary>Version 2.4.10</summary>

[Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.10/LookingGlassBridge-2.4.10.exe)\
[MacOS (Intel)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.10/LookingGlassBridge-2.4.10_x64.pkg)\
[MacOS (M1)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.10/LookingGlassBridge-2.4.10_m1.pkg)\
[Linux](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.10/LookingGlassBridge-2.4.10-Linux.zip)

</details>

<details>

<summary>Version 2.4.7</summary>

[Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.7/LookingGlassBridge-2.4.7.exe)\
[MacOS (Intel)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.7/LookingGlassBridge-2.4.7_x64.pkg)\
[MacOS (M1)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.7/LookingGlassBridge-2.4.7_m1.pkg)\
[Linux](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.7/LookingGlassBridge-2.4.7-Linux.zip)

</details>

<details>

<summary>Version 2.4.6</summary>

[Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.6/LookingGlassBridge-2.4.6.exe)\
[MacOS (Intel)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.6/LookingGlassBridge-2.4.6_x64.pkg)\
[MacOS (M1)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.6/LookingGlassBridge-2.4.6_m1.pkg)\
[Linux](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.6/LookingGlassBridge-2.4.6-Linux.zip)

</details>

<details>

<summary>Version 2.4.4</summary>

[Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.4/LookingGlassBridge-2.4.4.exe)\
[MacOS(Intel)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.4/LookingGlassBridge-2.4.4_x64.pkg)\
[MacOS(M1)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.4/LookingGlassBridge-2.4.4_m1.pkg)\
[Linux](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.4.4/LookingGlassBridge-2.4.4-Linux.zip)<br>

</details>

<details>

<summary>Version 2.3.7</summary>

[Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.7/LookingGlassBridge-2.3.7.exe)\
[MacOS (Intel)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.7/LookingGlassBridge-2.3.7_x64.pkg)\
[MacOS (M1)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.7/LookingGlassBridge-2.3.7_m1.pkg)\
[Linux](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.7/LookingGlassBridge-2.3.7-Linux.zip)

</details>

<details>

<summary>Version 2.3.3</summary>

[Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.3/LookingGlassBridge-2.3.3.exe)\
[MacOS(Intel)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.3/LookingGlassBridge-2.3.3_x64.pkg)\
[MacOS (M1)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.3/LookingGlassBridge-2.3.3_m1.pkg)\
[Linux](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.3/LookingGlassBridge-2.3.3-Linux.zip)

</details>

<details>

<summary>Version 2.3.2</summary>

[Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.2/LookingGlassBridge-2.3.2.exe)\
[MacOS (Intel)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.2/LookingGlassBridge-2.3.2_x64.pkg)\
[MacOS (M1)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.2/LookingGlassBridge-2.3.2_m1.pkg)\
[Linux](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.2/LookingGlassBridge-2.3.2-Linux.zip)

</details>

<details>

<summary>Version 2.3.0</summary>

[Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.0/LookingGlassBridge-2.3.0.exe)\
[MacOS (Intel)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.0/LookingGlassBridge-2.3.0_x64.pkg)\
[MacOS (M1)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.0/LookingGlassBridge-2.3.0_m1.pkg)\
[Linux](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.3.0/LookingGlassBridge-2.3.0.sh)

</details>

<details>

<summary>Version 2.2.0</summary>

[Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.2.0/LookingGlassBridge-2.2.0.exe)\
[MacOS(Intel)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.2.0/LookingGlassBridge-2.2.0_x64.pkg)\
[MacOS(M1)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.2.0/LookingGlassBridge-2.2.0_m1.pkg)\
[Linux](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.2.0/LookingGlassBridge-2.2.0.sh)<br>

</details>

<details>

<summary>Version 2.1.0</summary>

[Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.1.0/LookingGlassBridge-2.1.0.exe)\
[MacOS(Intel)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.1.0/LookingGlassBridge-2.1.0_x64.pkg)\
[MacOS(M1)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.1.0/LookingGlassBridge-2.1.0_m1.pkg)\
[Linux](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.1.0/LookingGlassBridge-2.1.0.sh)<br>

</details>

<details>

<summary>Version 2.0.9</summary>

[Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.0.9/LookingGlassBridge-2.0.9.exe)\
[MacOS (Intel)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.0.9/LookingGlassBridge-2.0.9_x64.pkg)\
[MacOS (M1)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.0.9/LookingGlassBridge-2.0.9_m1.pkg)\
[Linux](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.0.9/LookingGlassBridge-2.0.9.sh)<br>

</details>

<details>

<summary>Version 2.0.6</summary>

[Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.0.6/LookingGlassBridge-2.0.6.exe)\
[MacOS (Intel)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.0.6/LookingGlassBridge-2.0.6_x64.pkg)\
[MacOS (M1)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/2.0.6/LookingGlassBridge-2.0.6_m1.pkg)\
Linux

</details>

### **HoloPlay Service:**

<details>

<summary>Version 1.2.6</summary>

[Windows](https://look.glass/hops-win)

[MacOS (universal)](https://look.glass/hops-mac)

[Linux (.deb)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/1.2.6/HoloPlayService_1.2.6_linux-x86_64.deb)

[Linux (.rpm)](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayService/PublicLinks/1.2.6/HoloPlayService_1.2.6_linux-x86_64.rpm)

</details>

## Windows

### Uninstalling HoloPlay Service from Windows systems.

To uninstall HoloPlay Service open your Settings application. Then type `Add or Remove Programs` into the Search bar.

After that, select HoloPlay Service from the app selection menu and click `Uninstall`.

Now you can successfully install Looking Glass Bridge.

### Log File Locations

You can find log files in the following directory

<mark style="color:purple;">**`%USERPROFILE%\AppData\Roaming\Looking Glass\Bridge 2.0.9\logs\`**</mark>

## macOS

### Uninstalling HoloPlay Service on macOS systems.

Open Finder and navigate to your Macintosh HD, you can do this by right-clicking the main heading in the Finder window, as shown below.

![](/files/vApfKZbzZQrIWS8Frfx5)

Go to your Library folder, then the Application Support folder, then the Looking Glass Factory folder, and finally, HoloPlay Service.

![](/files/OOkP1lXdVwpr7WaukCRR)

Once you're in that folder, double-click on the uninstall script. This will open a Terminal window where you'll be prompted to input your password.

![](/files/pZxKPiQGHZkfS0VJkgMv)

Once you do this, the uninstall script will remove HoloPlay Service from your system and you'll be able to install Looking Glass Bridge properly.

### Opening Looking Glass Bridge

To open Looking Glass Bridge you can search for it via Spotlight, by hitting `Command + Space`, or by opening your Launchpad and searching for Looking Glass Bridge there.\
\
Once Looking Glass Bridge is open, it should show up on your Mac's menu bar, like so.

![The version of Bridge in this screenshot may not be the latest version.
Check the downloads page at https://look.glass/bridge to ensure you're up to date!](/files/TU5P04o2HFqbBaZUHDMl)

If you have a Looking Glass device connected, Looking Glass Bridge will automatically detect it and you'll be able to start using your Looking Glass!

### Log File Locations

You can find log files in the following directory

<mark style="color:purple;">**`~/Library/Application Support/Looking Glass/Bridge X.X.X/logs/`**</mark>


# Looking Glass Bridge SDK

Render holograms to a Looking Glass display using code!

## Overview

Take your existing OpenGL, DirectX, or Metal renderer and create a holographic application. Our SDK is built on top of the [Looking Glass Bridge](/software/looking-glass-bridge) runtime application, which handles the connection to Looking Glass display hardware.

<table data-card-size="large" data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td><a href="https://github.com/Looking-Glass/Bridge-Python-SDK">Python example scenes (OpenGL)</a></td></tr><tr><td><a href="https://github.com/Looking-Glass/bridge-sdk-samples/tree/csharp_samples">C# example scenes (OpenGL)</a></td></tr><tr><td><a href="https://github.com/Looking-Glass/bridge-sdk-samples">C++ example scenes (OpenGL)</a></td></tr><tr><td>DX and Metal examples coming soon!</td></tr></tbody></table>

[Looking Glass Bridge](/software/looking-glass-bridge) provides a standard interface for using Looking Glass displays. Starting with Bridge v2.4.10, Bridge also installs an SDK that exposes APIs needed to implement support for custom rendering to Looking Glass displays. The Bridge SDK replaces the legacy integration method using [Looking Glass Core](/legacy/legacy-software/index). It also provides the updates necessary for rendering to 16” and 32” light field displays. Looking Glass Core apps will continue to work with Bridge but only on displays sold prior to 2024.

## Theory of Operation

For a Looking Glass display to produce the correct output image, a special renderer must use 3D content and the optical calibration parameters. Looking Glass software works with three types of content: [3D scenes](/keyconcepts/3d-design-guidelines), [quilts](/keyconcepts/quilts), [photo sets](/software/looking-glass-studio/light-field-photosets), and [RGBD](/software/looking-glass-studio/rgbd-photo-video) media. The optical calibration parameters are unique to each display. The renderer must use the calibration parameters to select the correct color contribution from the 3D content for a given direction at each point in the display panel surface. This is achieved by applying a transformation that converts an internal quilt representation to match the display lens. We call this the "Looking Glass optical transformation" and it is usually performed using special GPU post-processing shader at run-time. [How the Looking Glass Works](/keyconcepts/how-it-works) provides more detail.

The Bridge SDK provides APIs that offer the following capabilities:

* Accessing the unique device calibration parameters
* Rendering 3D scenes using OpenGL, DirectX, and Metal
* Playing Quilt and RGBD images and videos using a custom 3D media player

These APIs are available for native applications (using C, C++, and C#) and web applications (using Javascript or Typescript).

## Integration Methods

If you already have an application that integrates with [Looking Glass Bridge](/software/looking-glass-bridge) using [Looking Glass Core SDK](/legacy/legacy-software/core-sdk) then you will need to update your application to support modern Looking Glass displays. See our migration guide for support. Bridge supports integration with web apps, native apps, and for 3D media playback.

### Web App Rendering

Web applications can query the calibration parameters for 3D rendering in a web application using [BridgeJS](https://github.com/Looking-Glass/Bridge.js). The web application must use these calibration parameters to implement a post-processing shader as part of its 3D rendering pipeline in WebGL. This method of integration is supported on all platforms with any Looking Glass display using Firefox and Chrome. The Looking Glass WebXR library uses this method. For more information, read [the WebXR documentation](https://docs.lookingglassfactory.com/developer-tools/webxr).

### Native App Rendering

There are two options for integrating native renderers written in C, C++, or C#. The first option is to query the device calibration parameters and create your own custom 3D rendering pipeline that uses the calibration parameters in a post-processing shader. This method will work on any platform with any Looking Glass display. However, any bugs in the implementation are the implementers responsibility to fix. The [Looking Glass Unity Plugin](/software/index) uses this method.

The second option is to configure an existing 3D rendering pipeline to apply required post-processing for a Looking Glass display. This method is supported on Windows (using OpenGL and DX12) or MacOS (using OpenGL and Metal). This works by exposing functions to allocate resources in a shared GPU context. Bridge functions must be called to trigger the post-processing render pass. This ensures that the data is efficiently managed on the GPU to maximize rendering performance. The [Looking Glass Unreal Engine Plugin](/software/creator-tools/index) uses this method. [Integrating Native Applications](/software/looking-glass-bridge-sdk/integrating-native-applications) provides more detail.

{% hint style="info" %}
If you are interested in native Linux support please contact us: <developer@lookingglassfactory.com>
{% endhint %}

### Media Player Integration

Web and native applications can configure the Bridge media player using a Bridge HTTP REST API to render local images and videos. This method of integration supports Quilt and RGBD images using JPG and PNG files. It supports Quilt and RGBD videos using the MP4 (H264 and H265) and WebM (VP8 and VP9) files. This method of integration is supported on MacOS, Windows, and Linux for every Looking Glass display sold since 2021. [Looking Glass Blocks](http://blocks.glass) uses this method. The [REST API Reference](/software/looking-glass-bridge-sdk/web-application-integration#rest-api-reference) section provides more detail.

<br>


# Web Application Integration

Bring support for the Looking Glass display to your web app

The best way to integrate with the Bridge Media Player using a web app is to use the [Bridge.js library](https://www.npmjs.com/package/@lookingglass/bridge). This is the same library that we use for [Looking Glass Blocks](http://blocks.glass). The Bridge.js library exposes typesafe objects and methods for interacting with the Bridge REST API. See [the Bridge.js README file](https://github.com/looking-Glass/bridge.js#readme) for detailed information on how to use Bridge.js in your web application.

## REST API Reference <a href="#rest-api-reference" id="rest-api-reference"></a>

### Get Bridge version

Endpoint: `/bridge_version`

Example Payload: `none`

Example Response:

```json
{
    "name": "value",
    "payload": {
        "name": "payload",
        "type": "STRING",
        "value": "2.4.7"
    },
    "status": {
        "name": "status",
        "type": "WSTRING",
        "value": "Completion"
    }
}
```

### Start media player session

Endpoint: `/enter_orchestration`

Example Payload:

```json
{
    "name": "default"
}
```

Example Response:

```json
{
    "name": "value",
    "orchestration": {
        "name": "orchestration",
        "type": "WSTRING",
        "value": "default"
    },
    "payload": {
        "name": "payload",
        "type": "WSTRING",
        "value": "1a6aed0d-77bf-4129-8e01-71d61c58473d"
    },
    "status": {
        "name": "status",
        "type": "WSTRING",
        "value": "Completion"
    }
}
```

### Query Looking Glass displays

Endpoint: `/available_output_devices`

Example Payload:

```json
{
    "orchestration": "1a6aed0d-77bf-4129-8e01-71d61c58473d"
}
```

Example Response:

```json
{
    "name": "value",
    "orchestration": {
        "name": "orchestration",
        "type": "WSTRING",
        "value": "1a6aed0d-77bf-4129-8e01-71d61c58473d"
    },
    "payload": {
        "name": "payload",
        "type": "VARIANT_MAP",
        "value": {
            "0": {
                "name": "0",
                "type": "VARIANT_MAP",
                "value": {
                    "calibration": {
                        "name": "calibration",
                        "type": "WSTRING",
                        "value": ""
                    },
                    "defaultQuilt": {
                        "name": "defaultQuilt",
                        "type": "WSTRING",
                        "value": "{}"
                    },
                    "hardwareVersion": {
                        "name": "hardwareVersion",
                        "type": "WSTRING",
                        "value": "thirdparty"
                    },
                    "hwid": {
                        "name": "hwid",
                        "type": "WSTRING",
                        "value": ""
                    },
                    "index": {
                        "name": "index",
                        "type": "UNSIGNED_INT",
                        "value": 0
                    },
                    "state": {
                        "name": "state",
                        "type": "WSTRING",
                        "value": "ok"
                    },
                    "windowCoords": {
                        "name": "windowCoords",
                        "type": "INT2",
                        "value": {
                            "x": 0,
                            "y": 0
                        }
                    }
                }
            },
            "1": {
                "name": "1",
                "type": "VARIANT_MAP",
                "value": {
                    "calibration": {
                        "name": "calibration",
                        "type": "WSTRING",
                        "value": "{\"DPI\":{\"value\":491.0},\"center\":{\"value\":0.22076533734798431},\"configVersion\":\"3.0\",\"flipImageX\":{\"value\":0.0},\"flipImageY\":{\"value\":0.0},\"flipSubp\":{\"value\":0.0},\"fringe\":{\"value\":0.0},\"invView\":{\"value\":1.0},\"pitch\":{\"value\":80.75597381591797},\"screenH\":{\"value\":2560.0},\"screenW\":{\"value\":1440.0},\"serial\":\"LKG-E\",\"slope\":{\"value\":-6.619636058807373},\"verticalAngle\":{\"value\":0.0},\"viewCone\":{\"value\":54.0}}"
                    },
                    "defaultQuilt": {
                        "name": "defaultQuilt",
                        "type": "WSTRING",
                        "value": "{ \"quiltAspect\" : 0.5625,   \"quiltX\" : 4092,  \"quiltY\" : 4092,  \"tileX\" : 11, \"tileY\" : 6}"
                    },
                    "hardwareVersion": {
                        "name": "hardwareVersion",
                        "type": "WSTRING",
                        "value": "go_p"
                    },
                    "hwid": {
                        "name": "hwid",
                        "type": "WSTRING",
                        "value": "LKG-E00194"
                    },
                    "index": {
                        "name": "index",
                        "type": "UNSIGNED_INT",
                        "value": 1
                    },
                    "state": {
                        "name": "state",
                        "type": "WSTRING",
                        "value": "ok"
                    },
                    "windowCoords": {
                        "name": "windowCoords",
                        "type": "INT2",
                        "value": {
                            "x": -1440,
                            "y": 0
                        }
                    }
                }
            }
        }
    },
    "status": {
        "name": "status",
        "type": "WSTRING",
        "value": "Completion"
    }
}
```

### Show the media player window

Endpoint: `/show_window`

Example Payload:

```json
{
    orchestration: "1a6aed0d-77bf-4129-8e01-71d61c58473d",
    show_window: true,
    head_index: -1
}
```

Example Response:

```json
{
    "name": "value",
    "orchestration": {
        "name": "orchestration",
        "type": "WSTRING",
        "value": "1a6aed0d-77bf-4129-8e01-71d61c58473d"
    },
    "status": {
        "name": "status",
        "type": "WSTRING",
        "value": "Completion"
    }
}
```

### Create new playlist

Endpoint: `/instance_playlist`

Example Payload:

```json
{
    "orchestration":"57a075eb-2350-46e2-9a9c-f9754fc5a4fb",
    "name":"Cast_a7gj4o",
    "loop":true
}
```

Example Response:

```json
{
    "name": "value",
    "orchestration": {
        "name": "orchestration",
        "type": "WSTRING",
        "value": "57a075eb-2350-46e2-9a9c-f9754fc5a4fb"
    },
    "payload": {
        "name": "payload",
        "type": "VARIANT_MAP",
        "value": {
            "name": {
                "name": "name",
                "type": "WSTRING",
                "value": "Cast_a7gj4o"
            }
        }
    },
    "status": {
        "name": "status",
        "type": "WSTRING",
        "value": "Completion"
    }
}
```

### Add new playlist item

Endpoint: `/insert_playlist_entry`

Example Payload:

```json
{
    "orchestration": "57a075eb-2350-46e2-9a9c-f9754fc5a4fb",
    "id": 0,
    "name": "Cast_a7gj4o",
    "index": 0,
    "uri": "https://s3.amazonaws.com/lkg-blocks/u/9aa4b54a7346471d/steampunk_qs8x13.jpg",
    "rows": 13,
    "cols": 8,
    "focus": 0,
    "zoom": 1,
    "aspect": 0.75,
    "view_count": 104,
    "isRGBD": 0,
    "tag": "steampunk"
}
```

Example Response:

```json
{
    "name": "value",
    "orchestration": {
        "name": "orchestration",
        "type": "WSTRING",
        "value": "57a075eb-2350-46e2-9a9c-f9754fc5a4fb"
    },
    "payload": {
        "name": "payload",
        "type": "VARIANT_MAP",
        "value": {
            "index": {
                "name": "index",
                "type": "WSTRING",
                "value": "https://s3.amazonaws.com/lkg-blocks/u/9aa4b54a7346471d/steampunk_qs8x13.jpg"
            }
        }
    },
    "status": {
        "name": "status",
        "type": "WSTRING",
        "value": "Completion"
    }
}
```

### Play a playlist

Endpoint: `/play_playlist`

Example Payload:

```json
{
    "orchestration": "57a075eb-2350-46e2-9a9c-f9754fc5a4fb",
    "name": "Cast_a7gj4o",
    "head_index": -1
}
```

Example Response:

```json
{
    "name": "value",
    "orchestration": {
        "name": "orchestration",
        "type": "WSTRING",
        "value": "57a075eb-2350-46e2-9a9c-f9754fc5a4fb"
    },
    "payload": {
        "name": "payload",
        "type": "VARIANT_MAP",
        "value": {
            "id": {
                "name": "id",
                "type": "WSTRING",
                "value": "4b3090db-f2f3-45cd-9817-406d938d4630"
            },
            "message": {
                "name": "message",
                "type": "WSTRING",
                "value": "playing playlist"
            }
        }
    },
    "status": {
        "name": "status",
        "type": "WSTRING",
        "value": "Completion"
    }
}
```

### Playback controls

Endpoints:

`/transport_control_play`

`/transport_control_pause`

`/transport_control_next`

`/transport_control_previous`

Example Payload:

```json
{
    "orchestration":"57a075eb-2350-46e2-9a9c-f9754fc5a4fb"
}
```

Example Response:

```json
{
    "name": "value",
    "orchestration": {
        "name": "orchestration",
        "type": "WSTRING",
        "value": "57a075eb-2350-46e2-9a9c-f9754fc5a4fb"
    },
    "payload": {
        "name": "payload",
        "type": "VARIANT_MAP",
        "value": {
            "event": {
                "name": "event",
                "type": "WSTRING",
                "value": "Transport Control Pause"
            }
        }
    },
    "status": {
        "name": "status",
        "type": "WSTRING",
        "value": "Pending"
    }
}
```

### Seek to playlist index

Endpoint: `/transport_control_seek_to_index`

Example Payload:

```json
{
    "orchestration": "57a075eb-2350-46e2-9a9c-f9754fc5a4fb",
    "index": 2
}
```

Example Response:

```json
{
    "name": "value",
    "orchestration": {
        "name": "orchestration",
        "type": "WSTRING",
        "value": "57a075eb-2350-46e2-9a9c-f9754fc5a4fb"
    },
    "payload": {
        "name": "payload",
        "type": "VARIANT_MAP",
        "value": {
            "event": {
                "name": "event",
                "type": "WSTRING",
                "value": "Transport Control Seek To Index"
            }
        }
    },
    "status": {
        "name": "status",
        "type": "WSTRING",
        "value": "Pending"
    }
}
```

### Delete playlist

Endpoint: `/delete_playlist`

Example Payload:

```json
{
    "orchestration":"57a075eb-2350-46e2-9a9c-f9754fc5a4fb",
    "name":"Cast_a7gj4o",
    "loop":true
}
```

Example Response:

```json
{
    "name": "value",
    "orchestration": {
        "name": "orchestration",
        "type": "WSTRING",
        "value": "57a075eb-2350-46e2-9a9c-f9754fc5a4fb"
    },
    "payload": {
        "name": "payload",
        "type": "VARIANT_MAP",
        "value": {
            "name": {
                "name": "name",
                "type": "WSTRING",
                "value": "Studio Playlist"
            }
        }
    },
    "status": {
        "name": "status",
        "type": "WSTRING",
        "value": "UnknownPlaylist"
    }
}
```


# Integrating Native Applications

Bring support for the Looking Glass display to your application

## Overview

See our samples on how to use the SDK [here](https://github.com/Looking-Glass/bridge-sdk-samples).

Integrating with the Bridge SDK consists of five steps:

1. Configure a shared GPU rendering context
2. Initialize Bridge to spawn a post-processing thread and allocate resources
3. Create a Looking Glass window using the shared rendering context
4. Render views of a 3D scene into a framebuffer object
5. Trigger the Bridge post-processing step with the framebuffer object

This method of integration works for all Looking Glass displays. It is supported on Windows and MacOS using OpenGL. It is supported on Windows using DirectX 11 and 12. It is supported on MacOS using Metal. This method will apply a special transformation function that will map each diode on the Looking Glass display to the correct color corresponding to the direction of light emitted from the diode. This was previously the responsibility of the developer using HoloPlay Core. This example will demonstrate the aforementioned steps using OpenGL.

### Configure a Shared GPU Rendering Context

The first step is to configure a GPU rendering context. This example code uses GLFW with GLAD:

```cpp
// initialize glfw
if (!glfwInit()) return -1;

// create preview window
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
GLFWwindow* window = glfwCreateWindow(800, 800, "Bridge SDK example", nullptr, nullptr);

if (!window) {
	glfwTerminate();
	return -1;
}
glfwMakeContextCurrent(window);
```

### Initialize Bridge

The second step is to initialize Bridge. This step is required before calling any other Bridge functions.

```cpp
initialize_bridge("Bridge SDK example");

// query the available Looking Glass displays
int lkg_display_count = 0;
std::vector<unsigned long> lkg_displays;
get_displays(&lkg_display_count, nullptr);
lkg_displays.resize(lkg_display_count);
get_displays(&lkg_display_count, lkg_displays.data());
```

### Create a Looking Glass window

The third step is to create a window that can be used to render to a Looking Glass display.

```cpp
// perform any desired queries on the Looking Glass displays
std::wstring serial;
std::vector<std::wstring> lkg_display_serials;
int serial_count = 0;

// query all connected Looking Glass displays
for (auto it : lkg_displays) {
    get_device_serial_for_display(it, &serial_count, nullptr);
    serial.resize(serial_count);
    get_device_serial_for_display(it, &serial_count, serial.data());
    lkg_display_serials.push_back(serial);
}

// Note: callers are required to allocate enough memory for return parameters \
of variable length

// create window using configuration from the target Looking Glass display
unsigned long lkg_wnd;
instance_window_gl(&lkg_wnd, lkg_displays.front());

```

### Render Views of a 3D Scene

The fourth step is to render a 3D scene into a framebuffer object using a quilt layout.

```cpp
// Configure your 3D scene geometry and rendering pipeline...

// Get idealized rendering parameters for the display
get_default_quilt_settings(lkg_wnd, &lkg_aspect, &lkg_quilt_w, &lkg_quilt_h, &lkg_vx, &lkg_vy);
lkg_view_w  = int(float(lkg_quilt_w) / float(lkg_vx));
lkg_view_h = int(float(lkg_quilt_h) / float(lkg_vy));

// Configure texture for the framebuffer
glGenTextures(1, &lkg_render_texture);
glBindTexture(GL_TEXTURE_2D, lkg_render_texture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, lkg_quilt_w, lkg_quilt_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);

// Configure the renderbuffer for depth
glGenRenderbuffers(1, &lkg_depth_buffer);
glBindRenderbuffer(GL_RENDERBUFFER, lkg_depth_buffer); 
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT32, lkg_quilt_w, lkg_quilt_h);

// Configure the shared framebuffer object
glGenFramebuffers(1, &lkg_render_fbo);
glBindFramebuffer(GL_FRAMEBUFFER, lkg_render_fbo);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, lkg_render_texture, 0);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, lkg_depth_buffer);

// Render views into framebuffer using quilt layout
glBindFramebuffer(GL_FRAMEBUFFER, lkg_render_fbo);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
float cam_dist = 0.005f;
float cam_offset = -(float)(lkg_vx * lkg_vy - 1) / 2.0f * cam_dist;
for (int y = 0; y < lkg_vx; y++) {
	for (int x = 0; x < lkg_vy; x++) {
		glViewport(x*lkg_view_w, y*lkg_view_h, lkg_view_w, lkg_view_h);
		
		// drawScene(your_shader, your_geometry, cam_offset);
		
		cam_offset += cam_dist;
    }
}

```

### Trigger the Bridge Post-Processing

The fifth and last step consists of trigger the post-processing shader pipeline necessary to apply the Looking Glass optical transformation.

```cpp
draw_interop_quilt_texture_gl(lkg_wnd, 
                              lkg_render_texture,
                              PixelFormats::RGBA,
                              lkg_quilt_w,
                              lkg_quilt_h,
                              lkg_vx,
                              lkg_vy,
                              1.0f,
                              1.0f);
```

{% hint style="info" %}
**Note:** Upon termination the application should also call `uninitialize_bridge` when deallocating any other resources used by the program.
{% endhint %}


# Native Function Reference

## Building Bridge Applications

The easiest way to build an application using the new Bridge SDK is to link against the headers and dynamic libraries included in the Bridge installation. Bridge installs header files and libraries alongside the driver executable. The default install locations are listed below for Bridge version 2.4.10.

**MacOS**

* Headers: `/Applications/Looking Glass Bridge 2.4.10.app/Contents/runtime`
* Libraries: `/Applications/Looking Glass Bridge 2.4.10.app/Contents/MacOS`

**Windows**

* Headers: `C:\Program Files\Looking Glass\Looking Glass Bridge 2.4.10\runtime`
* Libraries: `C:\Program Files\Looking Glass\Looking Glass Bridge 2.4.10`

Update your project build settings to use a compiler include directive for the headers and a library search path for the libraries. The libraries may be safely copied into a project and distributed with an application as well.

The `bridge.h` header exposes C functions and a C++ wrapper class to access Bridge SDK functionality. The C++ wrapper is even capable of searching for the Bridge dynamic libraries installed on host computers. The native function reference below is a complete list of functions in the SDK.

## Lifecycle Functions

The lifecycle functions are generally required for a normal [native application integration](/software/looking-glass-bridge-sdk/integrating-native-applications).

### initialize\_bridge

```c
bool initialize_bridge(const char *app_name);
```

This function initializes the Bridge thread and allocates required resources.

#### Parameters

**app\_name** - the C-string name to associate with this application instance

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="warning" %}
**Note:** This function must be called *prior* to any other from the Bridge SDK.
{% endhint %}

#### See also

[uninitialize\_bridge](#uninitialize_bridge)

***

### uninitialize\_bridge

```c
bool uninitialize_bridge();
```

This function uninitializes the Bridge thread and deallocates required resources.

#### Returns

always returns TRUE

#### See also

[initialize\_bridge](#initialize_bridge)

### instance\_window\_gl

```c
bool instance_window_gl(WINDOW_HANDLE *wnd, 
                        unsigned long display_index = -1);
```

Creates a new window using display parameters.

If the `display_index` parameter is not supplied, the Bridge SDK will search for the first display that matches a Looking Glass product and use that. The window position and size will match the selected display.

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**display\_index** - the optional index of the display to configure the window for. A value of `-1` will select the first available Looking Glass display.

#### Returns

TRUE when a window was created, FALSE otherwise

{% hint style="info" %}
**Note:** The window created is meant for use with OpenGL texture sharing
{% endhint %}

#### See also

[instance\_offscreen\_window](#instance_offscreen_window)

### instance\_offscreen\_window

```c
bool instance_offscreen_window(WINDOW_HANDLE *wnd, 
                               unsigned long width,
                               unsigned long height,
                               const wchar_t* calibration_path);
```

Creates a new window using the input parameters.

The window `width` and `height` will match in the input parameters. The calibration parameters will be loaded from the input `calibration_path` parameter. This function is meant for automated rendering and does not require a display.

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**width** - the desired width of the new window

**height** - the desired height of the new window

**calibration\_path** - the filesystem path for a Looking Glass calibration file

#### Returns

TRUE when a window was created, FALSE otherwise

#### See also

[instance\_window\_gl](#instance_window_gl)

***

### draw\_interop\_quilt\_texture\_gl

```c
bool draw_interop_quilt_texture_gl(WINDOW_HANDLE wnd, 
                                   unsigned long long texture, 
                                   PixelFormats format, 
                                   unsigned long width, 
                                   unsigned long height, 
                                   unsigned long vx, 
                                   unsigned long vy, 
                                   float aspect, 
                                   float zoom);
```

Triggers the Looking Glass optical transformation as a rendering post-processing step.

The texture `width` and `height` values may not be larger than the width and height values returned from [get\_max\_texture\_size](#get_max_texture_size). This function designates the input texture as the source of quilt views for which the optical transformation will be applied.

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**texture** - the texture handle to be shared between rendering contexts

**format** - the pixel format of the supplied texture

**width** - the width of the supplied texture

**height** - the height of the supplied texture

**vx** - the horizontal count of quilt views (columns) rendered to the texture

**vy** - the vertical count of quilt views (rows) rendered to the texture

**aspect** - the aspect ratio of the views

**zoom** - the optional zoom to be applied

#### Returns

FALSE for invalid configurations, TRUE otherwise

***

## Utility Functions

The utility functions are useful for handling operations like converting an RGBD asset to a Quilt asset or saving framebuffer textures to files for debugging purposes.

### get\_displays

```c
bool get_displays(int* number_of_indices, unsigned long* indices);
```

Returns the display indices attached to the host.

The caller is responsible for allocating the array of index values To get the array size, this function should be called twice. When called with the `indices` parameter set to `nullptr`, it will return the size of the indices array. When called with the `indices` parameter set to an array pointer, the display indices will be copied into the supplied array up to a limit supplied by `number_of_indices`.

#### Parameters

**number\_of\_indices** - the pointer to the returned size of the index array

**indices** - the pointer to the returned array of display indices

#### Returns

FALSE if number\_of\_indices is null, TRUE otherwise

***

### get\_bridge\_version

```c
bool get_bridge_version(unsigned long* major, 
                        unsigned long *minor,
                        unsigned long* build,
                        int* number_of_postfix_wchars,
                        wchar_t* postfix);
```

This function queries the Bridge SDK to get the version number.

The caller is responsible for allocating the postfix C-string buffer. To get the buffer size, this function should be called twice. When called with the `postfix` parameter set to nullptr, it will return the size of the postfix string.

When called with the `postfix` parameter set to a buffer pointer, the build hash postfix will be copied into the supplied buffer up to the length of characters specified in the `number_of_postfix_wchars` parameter.

#### Parameters

**major** - the pointer to the returned numeral representing the major version

**minor** - the pointer to the returned numeral representing the minor version

**build** - the pointer to the returned numeral representing the build (or patch) version

**number\_of\_postfix\_wchars** - the pointer to the length of characters in the version postfix string

**postfix** - the pointer to the version postfix string

#### Returns

The semantic version of Bridge with build commit hash

***

### get\_display\_for\_window

```c
bool get_display_for_window(WINDOW_HANDLE wnd, unsigned long* display_index);
```

Returns the display index used to render the window.

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**display\_index** - the zero-based index of the display

#### Returns

TRUE if successful, FALSE otherwise

***

### get\_max\_texture\_size

```c
bool get_max_texture_size(WINDOW_HANDLE wnd, unsigned long* size);
```

returns the maximum texture size for rendering to the window

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**size** - the pointer to the returned texture size

#### Returns

the maximum texture size dimension to be used for rendering to the window

#### See also

[draw\_interop\_quilt\_texture\_gl](#draw_interop_quilt_texture_gl)

***

### show\_window

```c
bool show_window(WINDOW_HANDLE wnd, bool flag);
```

shows or hides the rending window based upon the input flag

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**flag** - the toggle to show or hide the window: FALSE=hide, TRUE=show

#### Returns

FALSE for an invalid window, TRUE otherwise

***

### quiltify\_rgbd

```c
bool quiltify_rgbd(WINDOW_HANDLE wnd, 
                   unsigned long columns, 
                   unsigned long rows, 
                   unsigned long views, 
                   float aspect, 
                   float zoom, 
                   float cam_dist, 
                   float fov, 
                   float crop_pos_x, 
                   float crop_pos_y, 
                   unsigned long depth_inversion, 
                   unsigned long chroma_depth, 
                   unsigned long depth_loc, 
                   float depthiness, 
                   float depth_cutoff, 
                   float focus, 
                   const wchar_t* input_path, 
                   const wchar_t* output_path);
```

Converts an RGBD image into a quilt image using input parameters

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**columns** - the desired output quilt columns

**rows** - the desired output quilt rows

**views** - the desired total number of views

**aspect** - the aspect ratio of the resulting quilt

**zoom** - the zoom applied to the RGBD input

**cam\_dist** - the camera distance applied during RGBD rendering

**fov** - the field of view applied during RGBD rendering

**crop\_pos\_x** - the x coordinate offset applied during RGBD rendering

**crop\_pos\_y** - the y coordinate offset applied during RGBD rendering

**depth\_inversion** - a toggle to invert the depth map: 0=FALSE, 1=TRUE

**chroma\_depth** - a toggle to interpret the depth map using a full color spectrum: 0=FALSE, 1=TRUE

**depth\_loc** - the location of the depth map within the image: 0=top, 1=bottom, 2=right, 3=left

**depthiness** - the amount of z-scaling applied to the RGBD input

**depth\_cutoff** - a z-depth threshold value applied to the RGBD input

**focus** - the z-depth value representing the focal plane of the resulting quilt

**input\_path** - the local filesystem path to the input RGBD image

**output\_path** - the local filesystem path for the desired output quilt image

#### Returns

TRUE when successful, FALSE otherwise

### save\_texture\_to\_file\_gl

```c
bool save_texture_to_file_gl(WINDOW_HANDLE wnd, 
                             char* filename,
                             unsigned long long texture,
                             PixelFormats format,
                             unsigned long width,
                             unsigned long height);
```

saves the input OpenGL texture to a file

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**filename** - the filesystem path for the saved image

**texture** - the texture handle to be saved to disk

**format** - the pixel format of the supplied texture

**width** - the width of the supplied texture

**height** - the height of the supplied texture

#### Returns

TRUE if successful, FALSE otherwise

#### See also

[save\_image\_to\_file](#save_image_to_file)

***

### save\_image\_to\_file

```c
bool save_image_to_file(WINDOW_HANDLE wnd, 
                        char* filename, 
                        void* image,
                        PixelFormats format,
                        unsigned long width,
                        unsigned long height);
```

saves the raw image buffer to a file

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**filename** - the filesystem path for the saved image

**image** - the raw image buffer to be saved

**format** - the pixel format of the supplied image

**width** - the width of the supplied image

**height** - the height of the supplied image

#### Returns

TRUE if successful, FALSE otherwise

#### See also

[save\_texture\_to\_file\_gl](#save_texture_to_file_gl)

***

## Window Query Functions

The following functions assume that a Looking Glass window was created for a connected Looking Glass display using [instance\_window\_gl](#instance_window_gl). This window is a required input parameter for getting additional device info.

The legacy Looking Glass Core SDK assumed that only a single Looking Glass device would be used. If multiple devices are connected to a computer then it was quite difficult to render to them both simultaneously. The new Bridge SDK provides support for developers using multiple Looking Glass displays and for easily exporting images rendered using 3rd party engines.

### get\_window\_dimensions

```c
bool get_window_dimensions(WINDOW_HANDLE wnd, 
                           unsigned long* width, 
                           unsigned long* height);
```

returns with size dimensions of the input window

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**width** - the pointer to the returned width value

**height** - the pointer to the returned height value

#### Returns

width and height for the input window

#### See also

[get\_window\_position](#get_window_position)

[get\_dimensions\_for\_display](#get_dimensions_for_display)

***

### get\_window\_position

```c
bool get_window_position(WINDOW_HANDLE wnd, long* x, long* y);
```

returns with position of the input window

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**x** - the pointer to the returned x coordinate value

**y** - the pointer to the returned y coordinate value

#### Returns

the x and y coordinates for the input window

#### See also

[get\_window\_dimensions](#get_window_dimensions)

***

### get\_calibration

```c
bool get_calibration(WINDOW_HANDLE wnd,
	             float* center,
	             float *pitch,
	             float *slope,
	             int* width,
	             int* height,
	             float* dpi,
	             float* flip_x,
	             int *invView,
	             float *viewcone,
	             float *fringe,
	             int* cell_pattern_mode,
	             int* number_of_cells,
	             CalibrationSubpixelCell* cells);
```

Returns the calibration values for the given window.

The calibration parameters assocaited with the input window will be returned as parameter values. If the `cells` pointer is null, it will be ignored. Any other parameters with null values will be considered invalid.

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**center** - the pointer to the returned center value

**pitch** - the pointer to the returned pitch value

**slope** - the pointer to the returned slope value

**width** - the pointer to the returned width value

**height** - the pointer to the returned height value

**dpi** - the pointer to the returned DPI value

**flip\_x** - the pointer to the returned horizontal flip toggle. 0=FALSE, 1=TRUE

**invView** - the pointer to the returned inverted views toggle. 0=FALSE, 1=TRUE

**viewcone** - the pointer to the returned viewcone value

**fringe** - the pointer to the returned fringe value

**cell\_pattern\_mode** - the pointer to the returned cell pattern mode

**number\_of\_cells** - the pointer to the returned cell count

**cells** - the pointer to the returned cell pattern struct

#### Returns

FALSE for invalid input parameters, TRUE otherwise

#### See also

[get\_calibration\_for\_display](#get_calibration_for_display)

***

### get\_device\_name

```c
bool get_device_name(WINDOW_HANDLE wnd, 
                     int* number_of_device_name_wchars, 
                     wchar_t* device_name);
```

Returns the device name for the given window.

The caller is responsible for allocating the `device_name` C-string buffer. To get the buffer size, this function should be called twice. When called with the `device_name` parameter set to `nullptr`, it will return the size of the `device_name` string.

When called with the `device_name` parameter set to a buffer pointer, the device name will be copied into the supplied buffer up to the length of characters specified in the `number_of_device_name_wchars` parameter.

The size of the buffer is returned as a count of wide string characters. In practice, wchar is 32 bits on Linux and MacOS but 16 bits on Windows.

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**number\_of\_device\_name\_wchars** - the pointer to the returned size of the C-string buffer

**device\_name** - the pointer to the returned size device name C-string buffer

#### Returns

FALSE if number\_of\_device\_name\_wchars is null, TRUE otherwise

#### See also

[get\_device\_name\_for\_display](#get_device_name_for_display)

***

### get\_device\_serial

```c
bool get_device_serial(WINDOW_HANDLE wnd, 
                       int* number_of_serial_wchars, 
                       wchar_t* serial);
```

Returns the device serial number for the given window.

The caller is responsible for allocating the serial number C-string buffer. To get the buffer size, this function should be called twice. When called with the `serial` parameter set to nullptr, it will return the size of the serial string.

When called with the `serial` parameter set to a buffer pointer, the device serial will be copied into the supplied buffer up to the length of characters specified in the `number_of_serial_wchars` parameter.

The size of the buffer is returned as a count of wide string characters. In practice, wchar is 32 bits on Linux and MacOS but 16 bits on Windows.

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**number\_of\_serial\_wchars** - the pointer to the returned size of the C-string buffer

**serial** - the pointer to the returned size device serial C-string buffer

#### Returns

FALSE if number\_of\_serial\_wchars is null, TRUE otherwise

#### See also

[get\_device\_serial\_for\_display](#get_device_serial_for_display)

***

### get\_default\_quilt\_settings

```c
bool get_default_quilt_settings(WINDOW_HANDLE wnd, 
                                float* aspect, 
                                int* quilt_width, 
                                int* quilt_height, 
                                int* quilt_columns, 
                                int* quilt_rows);
```

Returns the ideal quilt settings for the given window. The ideal quilt settings are aset of heuristics defined by Looking Glass for each display product.

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**aspect** - the pointer to the returned aspect value

**quilt\_width** - the pointer to the returned width value

**quilt\_height** - the pointer to the returned height value

**quilt\_columns** - the pointer to the returned quilt columns value

**quilt\_rows** - the pointer to the returned quilt rows value

#### Returns

FALSE if number\_of\_serial\_wchars is null, TRUE otherwise

#### See also

[get\_default\_quilt\_settings\_for\_display](#get_default_quilt_settings_for_display)

***

### get\_device\_type

```c
bool get_device_type(WINDOW_HANDLE wnd, int* hw_enum);
```

returns the type of display product to render the window

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**hw\_enum** - the display enum value

#### Returns

TRUE if successful, FALSE otherwise

#### See also

[get\_device\_type\_for\_display](#get_device_type_for_display)

***

### get\_viewcone

```c
bool get_viewcone(WINDOW_HANDLE wnd, float* viewcone);
```

returns the viewcone value for the display product that renders the window

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**viewcone** - the pointer to the returned viewcone value

#### Returns

TRUE if successful, FALSE otherwise

#### See also

[get\_viewcone\_for\_display](#get_viewcone_for_display)

***

### get\_invview

```c
bool get_invview(WINDOW_HANDLE wnd, int* invview);
```

returns the inverted views toggle for the given window

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**invview** - the pointer to the returned inverted views toggle. 0=FALSE, 1=TRUE

#### Returns

TRUE if successful, FALSE otherwise

#### See also

[get\_calibration](#get_calibration)

***

### get\_ri

```c
bool get_ri(WINDOW_HANDLE wnd, int* ri);
```

returns the red index for the display used with the given window

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**ri** - the pointer to the returned red index value (0 or 2)

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="info" %}
**Note:** This function is meant only to provide compatibility with HoloPlay Core SDK
{% endhint %}

#### See also

[get\_calibration](#get_calibration)

***

### get\_bi

```c
bool get_bi(WINDOW_HANDLE wnd, int *bi);
```

Returns the blue index for the display used with the given window.

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**bi** - the pointer to the returned blue index value (0 or 2)

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="info" %}
**Note:** This function is meant only to provide compatibility with HoloPlay Core SDK
{% endhint %}

#### See also

[get\_calibration](#get_calibration)

***

### get\_tilt

```c
bool get_tilt(WINDOW_HANDLE wnd, float* tilt);
```

returns the tilt for the display used with the given window

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**tilt** - the pointer to the returned tilt value

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="info" %}
**Note:** This function is meant only to provide compatibility with HoloPlay Core SDK
{% endhint %}

#### See also

[get\_calibration](#get_calibration)

***

### get\_displayaspect

```c
bool get_displayaspect(WINDOW_HANDLE wnd, float* displayaspect);
```

returns the aspect ratio of the display used with the given window

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**displayaspect** - the pointer to the returned aspect ratio

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="info" %}
**Note:** This function is meant only to provide compatibility with HoloPlay Core SDK
{% endhint %}

#### See also

[get\_calibration](#get_calibration)

***

### get\_fringe

```c
bool get_fringe(WINDOW_HANDLE wnd, float* fringe);
```

returns the fringe value of the display used with the given window

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**fringe** - the pointer to the returned fringe value

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="info" %}
**Note:** This function is meant only to provide compatibility with HoloPlay Core SDK
{% endhint %}

#### See also

[get\_calibration](#get_calibration)

***

### get\_subp

```c
bool get_subp(WINDOW_HANDLE wnd, float* subp);
```

returns the subpixel size of the display used with the given window

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**subp** - the pointer to the returned sub pixel size value

#### Returns

TRUE if successful, FALSE otherwise

***

### get\_pitch

```c
bool get_pitch(WINDOW_HANDLE wnd, float* pitch);
```

returns the pitch of the display used with the given window

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**pitch** - the pointer to the returned pitch value

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="info" %}
**Note:** This function is meant only to provide compatibility with HoloPlay Core SDK
{% endhint %}

#### See also

[get\_calibration](#get_calibration)

***

### get\_center

```c
bool get_center(WINDOW_HANDLE wnd, float* center);
```

returns the center of the display used with the given window

#### Parameters

**wnd** - the pointer used to store the platform-specific window handle

**center** - the pointer to the returned center value

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="info" %}
**Note:** This function is meant only to provide compatibility with HoloPlay Core SDK
{% endhint %}

#### See also

[get\_calibration](#get_calibration)

***

## Display Query Functions

The following functions require a display index parameter which corresponds to an index returned from the [get\_displays](#get_displays) function. These functions may be called before any window is created to allow a developer to select a specific Looking Glass device if multiple devices are connected.

### get\_device\_name\_for\_display

```c
bool get_device_name_for_display(unsigned long display_index, 
                                 int* number_of_device_name_wchars, 
                                 wchar_t* device_name);
```

Returns the device name for the given display index.

The caller is responsible for allocating the `device_name` C-string buffer. To get the buffer size, this function should be called twice. When called with the `device_name` parameter set to `nullptr`, it will return the size of the `device_name` string.

When called with the `device_name` parameter set to a buffer pointer, the device name will be copied into the supplied buffer up to the length of characters specified in the `number_of_device_name_wchars` parameter.

The size of the buffer is returned as a count of wide string characters. In practice, wchar is 32 bits on Linux and MacOS but 16 bits on Windows.

#### Parameters

**display\_index** - the index for the target Looking Glass display

**number\_of\_device\_name\_wchars** - the pointer to the returned size of the C-string buffer

**device\_name** - the pointer to the returned size device name C-string buffer

#### Returns

FALSE if number\_of\_device\_name\_wchars is null, TRUE otherwise

#### See also

[get\_device\_name](#get_device_name)

[get\_displays](#get_displays)

***

### get\_device\_serial\_for\_display

```c
bool get_device_serial_for_display(unsigned long display_index, 
                                   int* number_of_serial_wchars, 
                                   wchar_t* serial);
```

Returns the device serial number for the given display index.

The caller is responsible for allocating the serial number C-string buffer. To get the buffer size, this function should be called twice. When called with the `serial` parameter set to nullptr, it will return the size of the serial string.

When called with the `serial` parameter set to a buffer pointer, the device serial will be copied into the supplied buffer up to the length of characters specified in the `number_of_serial_wchars` parameter.

The size of the buffer is returned as a count of wide string characters. In practice, wchar is 32 bits on Linux and MacOS but 16 bits on Windows.

#### Parameters

**display\_index** - the index for the target Looking Glass display

**number\_of\_serial\_wchars** - the pointer to the returned size of the C-string buffer

**serial** - the pointer to the returned size device serial C-string buffer

#### Returns

FALSE if number\_of\_serial\_wchars is null, TRUE otherwise

#### See also

[get\_device\_serial](#get_device_serial)

[get\_displays](#get_displays)

***

### get\_dimensions\_for\_display

```c
bool get_dimensions_for_display(unsigned long display_index, 
                                unsigned long* width, 
                                unsigned long* height);
```

returns with size dimensions of the given display index

#### Parameters

**display\_index** - the index for the target Looking Glass display

**width** - the pointer to the returned width value

**height** - the pointer to the returned height value

#### Returns

width and height for the input window

#### See also

[get\_window\_dimensions](#get_window_dimensions)

[get\_displays](#get_displays)

***

### get\_window\_position\_for\_display

```c
bool get_window_position_for_display(unsigned long display_index, long* x, long* y);
```

returns with position of the given display index

#### Parameters

**display\_index** - the index for the target Looking Glass display

**x** - the pointer to the returned x coordinate value

**y** - the pointer to the returned y coordinate value

#### Returns

the x and y coordinates for the input window

#### See also

[get\_window\_position](#get_window_position)

[get\_displays](#get_displays)

***

### get\_device\_type\_for\_display

```c
bool get_device_type_for_display(unsigned long display_index, int* hw_enum);
```

returns the type of display product for the given display index

#### Parameters

**display\_index** - the index for the target Looking Glass display

**hw\_enum** - the display enum value

#### Returns

TRUE if successful, FALSE otherwise

#### See also

[get\_device\_type](#get_device_type)

***

### get\_calibration\_for\_display

```c
bool get_calibration_for_display(unsigned long display_index,
			         float* center,
			         float *pitch,
			         float *slope,
			         int* width,
			         int* height,
			         float* dpi,
			         float* flip_x,
			         int* invView,
			         float* viewcone,
			         float* fringe,
			         int* cell_pattern_mode,
			         int* number_of_cells,
			         CalibrationSubpixelCell* cells);
```

returns the calibration values for the given display index

#### Parameters

**display\_index** - the index for the target Looking Glass display

**center** - the pointer to the returned center value

**pitch** - the pointer to the returned pitch value

**slope** - the pointer to the returned slope value

**width** - the pointer to the returned width value

**height** - the pointer to the returned height value

**dpi** - the pointer to the returned DPI value

**flip\_x** - the pointer to the returned horizontal flip toggle. 0=FALSE, 1=TRUE

**invView** - the pointer to the returned inverted views toggle. 0=FALSE, 1=TRUE

**viewcone** - the pointer to the returned viewcone value

**fringe** - the pointer to the returned fringe value

**cell\_pattern\_mode** - the pointer to the returned cell pattern mode

**number\_of\_cells** - the pointer to the returned cell count

**cells** - the pointer to the returned cell pattern struct

#### Returns

FALSE for invalid input parameters, TRUE otherwise

#### See also

[get\_calibration](#get_calibration)

[get\_displays](#get_displays)

***

### get\_invview\_for\_display

```c
bool get_invview_for_display(unsigned long display_index, int* invview);
```

returns the inverted views toggle for the given display index

#### Parameters

**display\_index** - the index for the target Looking Glass display

**invview** - the pointer to the returned inverted views toggle. 0=FALSE, 1=TRUE

#### Returns

TRUE if successful, FALSE otherwise

#### See also

[get\_invview](#get_invview)

[get\_calibration\_for\_display](#get_calibration_for_display)

[get\_displays](#get_displays)

***

### get\_ri\_for\_display

```c
bool get_ri_for_display(unsigned long display_index, int* ri);
```

returns the red index for the display used with the given display index

#### Parameters

**display\_index** - the index for the target Looking Glass display

**ri** - the pointer to the returned red index value (0 or 2)

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="info" %}
**Note:** This function is meant only to provide compatibility with HoloPlay Core SDK
{% endhint %}

#### See also

[get\_ri](#get_ri)

[get\_calibration\_for\_display](#get_calibration_for_display)

[get\_displays](#get_displays)

***

### get\_bi\_for\_display

```c
bool get_bi_for_display(unsigned long display_index, int *bi);
```

returns the blue index for the display used with the given display index

#### Parameters

**display\_index** - the index for the target Looking Glass display

**bi** - the pointer to the returned blue index value (0 or 2)

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="info" %}
**Note:** This function is meant only to provide compatibility with HoloPlay Core SDK
{% endhint %}

#### See also

[get\_bi](#get_bi)

[get\_calibration\_for\_display](#get_calibration_for_display)

[get\_displays](#get_displays)

***

### get\_tilt\_for\_display

```c
bool get_tilt_for_display(unsigned long display_index, float* tilt);
```

returns the tilt for the display used with the given display index

#### Parameters

**display\_index** - the index for the target Looking Glass display

**tilt** - the pointer to the returned tilt value

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="info" %}
**Note:** This function is meant only to provide compatibility with HoloPlay Core SDK
{% endhint %}

#### See also

[get\_tilt](#get_tilt)

[get\_calibration\_for\_display](#get_calibration_for_display)

[get\_displays](#get_displays)

***

### get\_displayaspect\_for\_display

```c
bool get_displayaspect_for_display(unsigned long display_index, float* displayaspect);
```

returns the aspect ratio of the display used with the given display index

#### Parameters

**display\_index** - the index for the target Looking Glass display

**displayaspect** - the pointer to the returned aspect ratio

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="info" %}
**Note:** This function is meant only to provide compatibility with HoloPlay Core SDK
{% endhint %}

#### See also

[get\_displayaspect](#get_displayaspect)

[get\_calibration\_for\_display](#get_calibration_for_display)

[get\_displays](#get_displays)

***

### get\_fringe\_for\_display

```c
bool get_fringe_for_display(unsigned long display_index, float* fringe);
```

returns the fringe value of the display used with the given display index

#### Parameters

**display\_index** - the index for the target Looking Glass display

**fringe** - the pointer to the returned fringe value

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="info" %}
Note: this function is meant only to provide compatibility with HoloPlay Core SDK
{% endhint %}

#### See also

[get\_fringe](#get_fringe)

[get\_calibration\_for\_display](#get_calibration_for_display)

[get\_displays](#get_displays)

***

### get\_subp\_for\_display

```c
bool get_subp_for_display(unsigned long display_index, float* subp);
```

returns the subpixel size of the display used with the given display index

#### Parameters

**display\_index** - the index for the target Looking Glass display

**subp** - the pointer to the returned sub pixel size value

#### Returns

TRUE if successful, FALSE otherwise

#### See also

[get\_subp](#get_subp)

***

### get\_viewcone\_for\_display

```c
bool get_viewcone_for_display(unsigned long display_index, float* viewcone);
```

returns the viewcone value for the display product with the given display index

#### Parameters

**display\_index** - the index for the target Looking Glass display

**viewcone** - the pointer to the returned viewcone value

#### Returns

TRUE if successful, FALSE otherwise

#### See also

[get\_viewcone](#get_viewcone)

***

### get\_pitch\_for\_display

```c
bool get_pitch_for_display(unsigned long display_index, float* pitch);
```

returns the pitch of the display used with the given display index

#### Parameters

**display\_index** - the index for the target Looking Glass display

**pitch** - the pointer to the returned pitch value

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="info" %}
Note: This function is meant only to provide compatibility with HoloPlay Core SDK
{% endhint %}

#### See also

[get\_pitch](#get_pitch)

[get\_calibration\_for\_display](#get_calibration_for_display)

[get\_displays](#get_displays)

***

### get\_center\_for\_display

```c
bool get_center_for_display(unsigned long display_index, float* center);
```

returns the center of the display used with the given display index

#### Parameters

**display\_index** - the index for the target Looking Glass display

**center** - the pointer to the returned center value

#### Returns

TRUE if successful, FALSE otherwise

{% hint style="info" %}
Note: This function is meant only to provide compatibility with HoloPlay Core SDK
{% endhint %}

#### See also

[get\_center](#get_center)

[get\_calibration\_for\_display](#get_calibration_for_display)

[get\_displays](#get_displays)

***

### get\_default\_quilt\_settings\_for\_display

```c
bool get_default_quilt_settings_for_display(unsigned long display_index, 
                                            float* aspect,
                                            int* quilt_width,
                                            int* quilt_height,
                                            int* quilt_columns,
                                            int* quilt_rows);
```

Returns the ideal quilt settings for the given display index. The ideal quilt settings are aset of heuristics defined by Looking Glass for each display product.

#### Parameters

**display\_index** - the index for the target Looking Glass display

**aspect** - the pointer to the returned aspect value

**quilt\_width** - the pointer to the returned width value

**quilt\_height** - the pointer to the returned height value

**quilt\_columns** - the pointer to the returned quilt columns value

**quilt\_rows** - the pointer to the returned quilt rows value

#### Returns

FALSE if number\_of\_serial\_wchars is null, TRUE otherwise

#### See also

[get\_default\_quilt\_settings](#get_default_quilt_settings)


# Looking Glass Core Migration Guide

Update legacy Looking Glass apps to work with the latest generation of Looking Glass displays.

[Looking Glass Core](/legacy/legacy-software/index) required the integrator to implement their own post-processing stage using a special shader and calibration parameters from the display. However, [Bridge](/software/looking-glass-bridge) takes care of this post-processing step by using a shared rendering context with a shared framebuffer object.

An application using Bridge is then responsible for rendering views of 3D objects into a GPU texture using a [quilt format](/keyconcepts/quilts). Then the Bridge code will apply the Looking Glass optical transformation as a post-processing step. This process ensures that the application can render correctly to any Looking Glass display.

The aforementioned integration pattern is very different from Looking Glass Core. So Bridge still supports the same functionality offered as part of Looking Glass Core using new native functions. The following table presents a mapping between Looking Glass Core functions and corresponding Bridge functions.

{% hint style="info" %}
Note: the shader used in legacy applications will need to be updated for applications that support Looking Glass displays released after 2022.
{% endhint %}

## Looking Glass Core SDK → Bridge SDK

| Looking Glass Core SDK                                                                                                                                     | Looking Glass Bridge SDK                                                                                      |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| [hpc\_InitializeApp](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/state-functions#hpc_initializeapp)                                   | [initialize\_bridge](/software/looking-glass-bridge-sdk/native-function-reference#initialize_bridge)          |
| [hpc\_RefreshState](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/state-functions#hpc_refreshstate)                                     | *No longer needed*                                                                                            |
| [hpc\_CloseApp](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/state-functions#hpc_closeapp)                                             | [uninitialize\_bridge](/software/looking-glass-bridge-sdk/native-function-reference#uninitialize_bridge)      |
| [hpc\_GetHoloPlayCoreVersion](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/state-functions#hpc_getholoplaycoreversion)                 | [get\_bridge\_version](/software/looking-glass-bridge-sdk/native-function-reference#get_bridge_version)       |
| [hpc\_GetStateAsJSON](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/general-query-functions#hpc_getstateasjson)                         | *No longer needed*                                                                                            |
| [hpc\_GetHoloPlayServiceVersion](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/general-query-functions#hpc_getholoplayserviceversion)   | [get\_bridge\_version](/software/looking-glass-bridge-sdk/native-function-reference#get_bridge_version)       |
| [hpc\_GetNumDevices](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/general-query-functions#hpc_getnumdevices)                           | *No longer needed*                                                                                            |
| [hpc\_GetDeviceHDMIName](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/general-query-functions#hpc_getdevicehdminame)                   | [get\_device\_name](/software/looking-glass-bridge-sdk/native-function-reference#get_device_name)             |
| [hpc\_GetDeviceSerial](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/general-query-functions#hpc_getdeviceserial)                       | [get\_device\_serial](/software/looking-glass-bridge-sdk/native-function-reference#get_device_serial)         |
| [hpc\_GetDeviceType](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/general-query-functions#hpc_getdevicetype)                           | [get\_device\_type](/software/looking-glass-bridge-sdk/native-function-reference#get_device_type)             |
| [hpc\_GetDevicePropertyWinX](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/device-query-functions#hpc_getdevicepropertywinx)            | [get\_window\_position](/software/looking-glass-bridge-sdk/native-function-reference#get_window_position)     |
| [hpc\_GetDevicePropertyWinY](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/device-query-functions#hpc_getdevicepropertywiny)            | [get\_window\_position](/software/looking-glass-bridge-sdk/native-function-reference#get_window_position)     |
| [hpc\_GetDevicePropertyScreenW](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/device-query-functions#hpc_getdevicepropertyscreenw)      | [get\_window\_dimensions](/software/looking-glass-bridge-sdk/native-function-reference#get_window_dimensions) |
| [hpc\_GetDevicePropertyScreenH](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/device-query-functions#hpc_getdevicepropertyscreenh)      | [get\_window\_dimensions](/software/looking-glass-bridge-sdk/native-function-reference#get_window_dimensions) |
| [hpc\_GetDevicePropertyInvView](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/device-query-functions#hpc_getdevicepropertyinvview)      | [get\_invview](/software/looking-glass-bridge-sdk/native-function-reference#get_invview)                      |
| [hpc\_GetDevicePropertyRi](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/device-query-functions#hpc_getdevicepropertyri)                | [get\_ri](/software/looking-glass-bridge-sdk/native-function-reference#get_ri)                                |
| [hpc\_GetDevicePropertyBi](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/device-query-functions#hpc_getdevicepropertybi)                | [get\_bi](/software/looking-glass-bridge-sdk/native-function-reference#get_bi)                                |
| [hpc\_GetDevicePropertyPitch](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/device-query-functions#hpc_getdevicepropertypitch)          | [get\_pitch](/software/looking-glass-bridge-sdk/native-function-reference#get_pitch)                          |
| [hpc\_GetDevicePropertyCenter](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/device-query-functions#hpc_getdevicepropertycenter)        | [get\_center](/software/looking-glass-bridge-sdk/native-function-reference#get_center)                        |
| [hpc\_GetDevicePropertyTilt](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/device-query-functions#hpc_getdevicepropertytilt)            | [get\_tilt](/software/looking-glass-bridge-sdk/native-function-reference#get_tilt)                            |
| [hpc\_GetDevicePropertyDisplayAspect](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/device-query-functions#hpc_getdevicepropertyaspect) | [get\_displayaspect](/software/looking-glass-bridge-sdk/native-function-reference#get_displayaspect)          |
| [hpc\_GetDevicePropertyFringe](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/device-query-functions#hpc_getdevicepropertyfringe)        | [get\_fringe](/software/looking-glass-bridge-sdk/native-function-reference#get_fringe)                        |
| [hpc\_GetDevicePropertySubp](https://docs.lookingglassfactory.com/core/core-sdk/index-1/index/device-query-functions#hpc_getdevicepropertysubp)            | [get\_subp](/software/looking-glass-bridge-sdk/native-function-reference#get_subp)                            |


# Unity

We're excited to release version 3.2.0 of our Unity plugin! This version builds on the new features introduced in v2.0 and adds much more - including support for developing interactive applications that can be run [from iOS devices](/software/index/developing-for-ios). We're excited for you to try out! If you have any issues, feature requests, or general feedback, please post on our [Discord](https://discord.gg/lookingglassfactory).

[Download the plugin here](https://look.glass/unity)

## Requirements

* Unity 2021.3+
* Looking Glass Bridge v2.0.9 or newer
* A Windows machine with dedicated graphics card
* An Apple Silicon Mac
* iPhone 15/16 Pro or Pro Max
* iPad Pro (M4)

{% hint style="info" %}
Windows computers with discrete graphics cards like an RTX 3070 are strongly recommended.
{% endhint %}

{% hint style="warning" %}
No support for the HDRP.
{% endhint %}

## Feature Overview Video

{% hint style="info" %}
This video was created for v2.0.0-alpha of the plugin and some things have changed in v3.0+.
{% endhint %}

{% embed url="<https://www.youtube.com/watch?v=OXFd0uH6L0g>" %}
This walkthrough video shows you the latest features in the v2.0 release!
{% endembed %}

## Features

* Run interactive scenes from within the Unity editor and in packaged builds
* Create apps for iOS devices
* Record holograms from the Unity editor
* Use hardware buttons for Looking Glass devices (Windows only)
* Post-processing stack for holograms
* 3D cursor and orbit controls for holographic interactions

### New in 2.0+

#### Depthiness Slider

We've added a new "depthiness" slider to the Looking Glass camera setup. You can now adjust the depth of your scene without changing other settings like the field of view or focus.​​

<figure><img src="/files/bw0EialFh2U6Wunc5xr3" alt=""><figcaption></figcaption></figure>

#### Camera Transform Mode

We've made an additional Hologram Camera "Transform Mode" that makes it behave much mroe like a conventional camera, called "Camera." In this mode, the pivot will shift to be centered on the position of the central perspective (rather than the center of the volume) and the focal plane can be moved/animated.

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfNeLDf839hEkmkTWwMWR%2Fuploads%2FjlI47d9CSdFaKoJAlcv6%2FCameraTransformMode.gif?alt=media&#x26;token=4b5a4a42-3921-4fcc-90b4-675424f3336f" alt=""><figcaption></figcaption></figure>

#### Holographic Cameras Creation Improvements

You can now turn normal Unity cameras into Looking Glass camera objects by right clicking them and selecting "Looking Glass" -> "Convert to Hologram Camera."

#### Quilt Capture Improvements <a href="#new-quilt-capture-settings" id="new-quilt-capture-settings"></a>

We've completely revamped the way to capture quilt images and videos. You can now take screenshots directly from the UI using the screenshot button on the Quilt Capture component.

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfNeLDf839hEkmkTWwMWR%2Fuploads%2Fg9VdY617FIdsjfgnG52E%2FVideoCapture.gif?alt=media&#x26;token=9cbbfdf3-09bc-499a-bad5-8fdffcb4d374" alt=""><figcaption></figcaption></figure>

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfNeLDf839hEkmkTWwMWR%2Fuploads%2F0q6Y8U80oJkJgR01aFht%2FScreenshotCapture.gif?alt=media&#x26;token=b152fd3d-d1fe-425d-a883-e8481a1c1153" alt=""><figcaption></figcaption></figure>

#### Blocks Integration <a href="#new-blocks-integration" id="new-blocks-integration"></a>

Want to share your holograms on the internet? We've got you. We've added a [blocks.glass](https://blocks.glass/) integration directly to the Unity Plugin. You can go straight from the Unity editor to an uploaded hologram.

#### Hologram Preview <a href="#new-hologram-preview" id="new-hologram-preview"></a>

You can now preview Holograms directly in the unity editor without a Looking Glass Display connected, just like viewing blocks on [blocks.glass](https://blocks.glass/).​

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfNeLDf839hEkmkTWwMWR%2Fuploads%2Foyy3wLe2Vj7AKdx54pLX%2FHologramPreview.gif?alt=media&#x26;token=cb3b945a-90fb-4412-965f-1b839f3f4c1a" alt=""><figcaption></figcaption></figure>

#### URP support (beta) <a href="#new-limited-urp-support" id="new-limited-urp-support"></a>

Run interactive applications and record content from scenes built in the Universal Render Pipeline (URP). Currently no support for post-processing or the 3D cursor.

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfNeLDf839hEkmkTWwMWR%2Fuploads%2FnEEnvovixMQmwZ0rPoj5%2FURPSupport.gif?alt=media&#x26;token=ed5b0076-6654-41d2-82e5-7c46fde27b10" alt=""><figcaption></figcaption></figure>

#### Render Stacking <a href="#new-render-stacking" id="new-render-stacking"></a>

You can now use quilts as background elements for your scenes, allowing you to "stack" holograms into multiple layers.

#### Force Display Index

We have added a toggle to override our logic that forces the Looking Glass window onto the Looking Glass display in builds. This improves setups with two monitors that use raycasting and UI events on a 2D display.

## Running Mac Builds

Mac builds got a major improvement in v2.0.8 of the plugin, but still have UX issues. In particular, builds will resize and change position for a few seconds before correctly rendering on the Looking Glass device.

## Running Linux Builds

{% hint style="info" %}
This is not fully tested in v2.0+ of the plugin.
{% endhint %}

Beginning with version 1.3.0 of the Unity plugin, we have experimental support for Linux (Ubuntu).

However, due to some complications around Unity's window management system, when running builds on Linux it's necessary to launch them from the command line with the "-adapter" parameter set to the index of your Looking Glass display, as in the following example:

`YourApp.x86_64 -adapter 2`

The above sets your app to run on your second display, which, typically, is the index of your Looking Glass.

Additionally, in version 1.4.0+ of the plugin, there is no support for video recording with Linux. There is a missing dependency to enable this, FFmpeg, which we are aiming to include for Linux users in the future.

## Known Issues <a href="#known-issues" id="known-issues"></a>

See our list of known issues [here](/software/index/additional-support).

## Design Guidelines

Building experiences for the Looking Glass can be challenging because it's such a new medium. To make sure your demos really pop, take a look at our [Design Guidelines](/keyconcepts/3d-design-guidelines).

## Having Issues?

If you're having issues with our Unity Plugin please email us at **<developer@lookingglassfactory.com>** or post on our [Discord](https://discord.gg/lookingglassfactory)**.**


# Unity Plugin 4.0-alpha

Version 4.0 of our Unity plugin features major performance improvements, with our benchmarks showing a 2x to 4x increase in performance over version 3.0.

{% hint style="warning" %}
Please note that this is an alpha/beta version of the plugin. It may have stability and usability issues. See our fully supported plugin v3.0 [here](/software/index).
{% endhint %}

This is a new, lightweight plugin for the Looking Glass, written from the ground up specifically for Unity 6 using the Universal Render Pipeline. It takes advantage of the latest Unity features to enable extremely fast multi-view rendering.

## Downloads

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><a href="https://look.glass/unity4-60-dl">Download for Unity 6.0</a></td><td>Main package for Unity Editor v6000.0</td></tr><tr><td><a href="https://look.glass/unity4-61-dl">Download for Unity 6.1</a></td><td>Main package for Unity Editor v6000.1</td></tr><tr><td><a href="https://look.glass/unity4-preview-win">Download preview window (Windows)</a></td><td>Preview window application to view holograms in the Editor</td></tr><tr><td><a href="https://look.glass/unity4-preview-mac">Download preview window (Mac)</a></td><td>Preview window application to view holograms in the Editor</td></tr><tr><td><a href="https://look.glass/bridge">Looking Glass Bridge</a></td><td>Required runtime for Looking Glass displays</td></tr></tbody></table>

## Features

* Create interactive Unity applications for Looking Glass devices
* View content in 3D via the Editor and the preview window
* Record holographic video content in the Unity Editor
* Build your app for Windows, MacOS, or iOS using the standard build process — our plugin will take care of the rest

## Requirements

* Looking Glass device (Go, 16", or 27")
* Unity 6000.0.39 to 6000.1.5
* Universal Render Pipeline v17.0.4 to v17.1.0
  * Using Forward or Forward+ rendering
  * RenderGraph enabled

*Looking Glass Unity Plugin 4.0 will not work with HDRP, and prior versions of Unity are not supported.*

## Getting Started

{% hint style="info" %}
If you're migrating an existing project from our previous plugin version, see our migration guide [here](/software/index/unity-plugin-4.0-alpha/migrating-from-unity-plugin-v3.x-to-v4.0).
{% endhint %}

The zip includes:

* a `com.unity.render-pipelines.core` folder
* a `com.unity.render-pipelines.universal` folder
* a `jp.keijiro.klak.syphon` folder
* a `jp.keijiro.klak.spout` folder
* the `Looking Glass Unity Plugin 4.0.1-alpha.unitypackage` file
* a readme

Make sure your project meets the requirements above. If not, upgrade your Editor version and render pipeline.

Start by closing your project — errors may occur if you do this while it is open. Copy the `com.unity.render-pipelines.core`, `com.unity.render-pipelines.universal`, `jp.keijiro.klak.syphon`, and `jp.keijiro.klak.spout` folders to `YourProjectFolder/Packages/`. Unity will automatically switch to using these package versions.

Open your project, then go to the menu bar and select `Assets > Import Package > Custom Package`. Choose the `Looking Glass Unity Plugin 4.0.1-alpha.unitypackage`.

This will import all plugin files into your project, including the `Multiview RP Asset`. There are multiple places Unity stores the render pipeline settings, but these can be quickly updated using the Project Setup tool.

In the project folder, select the `Looking Glass Plugin/Settings/Project Setup` object. In the Inspector, it will list locations that require the render pipeline setting, with buttons to set each one automatically. Click each button to configure the project.

Open the `Looking Glass Plugin/Scenes/Multiview Example Scene` to check if everything is working.

## Using the Plugin

The easiest way to begin is to duplicate the `Multiview Example Scene` and edit its content. The only objects you must keep are the `Hologram Container` under the Orbit Controls object and the `Final Pass Canvas`, which handle rendering 3D content to the Looking Glass. The latter can be hidden to avoid scene clutter.

#### Warnings

Do not add your assets to the `Looking Glass Plugin` folder or modify assets or prefabs in it. Upgrading the plugin involves deleting and replacing this folder, and your changes will be lost.

#### Live Preview

* [Preview window app](#downloads)
* [Looking Glass Bridge](https://look.glass/bridge)

The preview window app is a standalone app that lets you see your content on an attached Looking Glass device while you're in the Unity Editor. It must be downloaded from the link [above](#downloads).

To use the preview, ensure Looking Glass Bridge is installed and running. Connect your Looking Glass to your computer using HDMI or USB-C. Follow our [hardware setup guides](/) for comprehensive instructions on connecting and setting up your display.

The Looking Glass should now appear as a second display. If using a Looking Glass 16" Portrait or 27" Portrait device and it appears sideways, set its orientation to 270° (or Portrait Flipped on Windows). See more [here](/getting-started/16/portrait).

In Unity, make sure you have a `Klak Preview Sender` object in your scene. The `Multiview Example Scene` already includes one; otherwise, add it from `Looking Glass Plugin/Prefabs`.

### Preview Window on Windows

To open the `lkg-preview-win` app you downloaded above, unzip the folder. You will see a `Preview Window.exe` file in the resulting folder. Double click it.

<figure><img src="/files/gi78RsEqb6Td4FJtIL7x" alt="" width="563"><figcaption></figcaption></figure>

Because the application isn't code signed and doesn't have Windows extended validation, you will get a blue warning screen called "Microsoft Defender SmartScreen." To open the app anyway, select "More Info" and then "Run Anyway."

<div><figure><img src="/files/c4rPvYVAKAbBWXVm7gBQ" alt=""><figcaption></figcaption></figure> <figure><img src="/files/DJ1KKr1RyOsJ50YwYBiJ" alt=""><figcaption></figcaption></figure></div>

The app will now open. It will automatically receive and display Looking Glass content from your Unity Editor. If the preview app remains black or does not load:

* Enter play mode in the Editor
* Make sure Bridge is running — click the Bridge tray icon, go to your display, and click "Show Debug View" to check
* Restart the Unity Editor

### Preview Window on MacOS

Opening the preview window on Mac takes several steps because it isn't codesigned and notarized at this time.

First, unzip the `lkg-preview-mac` folder and double click the included application. It will fail to open.

<figure><img src="/files/esEHwz0LXuwmJtjkUjS1" alt="" width="563"><figcaption></figcaption></figure>

Then, go to System Settings -> Privacy & Security. Scroll down, and you'll see a notification that the app was blocked to protect your app. Select "Open Anyway" and then select "Open Anyway" on the pop-up window. You will only have to do this once.

<div><figure><img src="/files/k9fHvfRRJcnSYyqiRM1b" alt=""><figcaption></figcaption></figure> <figure><img src="/files/Wn8i2DXdLAwlFbhwDclR" alt=""><figcaption></figcaption></figure></div>

If the preview app remains black or does not load:

* Enter play mode in the Editor
* Make sure Bridge is running — click the Bridge tray icon, go to your display, and click "Show Debug View" to check
* Restart the Unity Editor

Controls:

* Esc → Quit

## iOS Calibration Loading

On Windows and MacOS, calibration will load automatically. iOS, however, is a more restrictive ecosystem, so it requires additional steps.

When running an iOS build, the first time it runs on an iPhone or iPad connected to a Looking Glass, you will be prompted to select the calibration file from the Looking Glass storage.

* Connect your Looking Glass device via USB-C
* Load a calibration file via the file browser. Calibration files are under Locations -> LKG-XXXXXX (your device serial number) -> LKG\_calibration -> visual.json. Select the visual.json file
* Your calibration is now loaded — applications will store this for future use

After completion, calibration is written to iOS storage and need not be repeated unless moving to a different Looking Glass.

## Setting up UI

### Showing UI on the 2D Display

If you want your UI to be on the 2D display (which we recommend), set up a canvas in your scene, and ensure that it's configured to target "Display 1". Ensure all your UI elements are on this canvas. Unity's UI functionality should function normally with this configuration.

### Showing UI on the Looking Glass

If you want to display your UI on the Looking Glass, simply add the UI elements directly to the Final Pass Canvas. Note, however, that the Looking Glass is designed for 3D content — 2D content may look suboptimal on the display.

## Using the VFX Graph

In order for the VFX graph to be compatible with the plugin, it needs to be configured in a specific manner. In the VFX graph, select the `Output Particle` (should be the last node).

<figure><img src="/files/7Hm69j1rYhpAHJBqPxv8" alt=""><figcaption></figcaption></figure>

In the Inspector, you'll see that there are options for `Sort` and `Indirect Draw`. `Sort` has to be set to `Off` or `Auto`, and `Indirect Draw` has to be set to false (i.e. untoggled).

<figure><img src="/files/mwqQPJ7WHkJFRFLz6ZCn" alt=""><figcaption></figcaption></figure>

If you use effects or particles that use a `Blend Mode` of `Transparent`, they may not render correctly in the device. This is because the plugin, by default, uses the depth buffer to interpolate views, improving performance, and transparent materials don't render to the depth buffer.

If you need transparent effects, you can turn this interpolation off. To do so, select `Multiview Data` in your assets and toggle off "Gen Views".

<figure><img src="/files/y3QePbaGsamMy2nY9Sds" alt=""><figcaption></figcaption></figure>

## Upgrading the Plugin

Upgrading the plugin involves deleting the `com.unity.render-pipelines.core`, `com.unity.render-pipelines.universal`, and `Looking Glass Plugin` folders, then repeating the Getting Started steps. It is **highly recommended** to make a backup or commit to version control before upgrading.

## Troubleshooting

This plugin is an early release and may have stability issues. You can access our more stable plugin [here](/software/index).

If you need support, you can contact us at <support@lookingglassfactory.com> or post on [our Discord](https://discord.gg/ZUZDs65t).

### Feedback

We're eager to hear what you think! Please [fill out our survey if you have feedback](https://lookingglass.typeform.com/to/wrLysfEY).

### Known Issues

* Some versions of Unity show error with the gizmo for the Hologram Camera — it won't draw and will throw errors in the console. If this occurs, try a different version of Unity. Even a minor patch version increase or decrease can resolve the issue.
* On some platforms, the Unity Media Encoder H264 settings fail to encode video.


# Migrating from Unity Plugin v3.x to v4.0

## Introduction

This guide will walk you through migrating your Looking Glass Unity project from plugin version 3.x to the new 4.0 alpha version. Version 4.0 brings major performance improvements (2x to 4x faster!) but requires Unity 6 with Universal Render Pipeline and has fewer features.

{% hint style="warning" %}
Version 4.0 is currently in alpha/beta. It may have stability issues. Consider keeping a backup of your v3.x project.
{% endhint %}

![](https://docs.lookingglassfactory.com/~gitbook/image?url=https%3A%2F%2F1101008898-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MWj8g-jOrSs315lrZFz%252Fuploads%252F4xUwJboBzJCGXG3VGkbu%252Fdocs-divider-gradient-stroke.png%3Falt%3Dmedia%26token%3De992d8b3-a4ac-4899-8b15-8867abde4025\&width=768\&dpr=4\&quality=100\&sign=d66c6f23\&sv=2)

## Before You Begin

### Requirements for v4.0

* Unity 6000.0.39 to 6000.1.5
* Universal Render Pipeline v17.0.4 to v17.1.0
* Forward or Forward+ rendering
* RenderGraph enabled
* Looking Glass device (Go, 16", or 27")

{% hint style="warning" %}
Version 4.0 does NOT support the built-in render pipeline, HDRP, or earlier Unity versions.
{% endhint %}

### Create a Backup

Before starting the migration:

1. Make a complete backup of your project
2. Consider using version control to create a new branch
3. Document any custom modifications you've made to the v3.x plugin

![](https://docs.lookingglassfactory.com/~gitbook/image?url=https%3A%2F%2F1101008898-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MWj8g-jOrSs315lrZFz%252Fuploads%252F4xUwJboBzJCGXG3VGkbu%252Fdocs-divider-gradient-stroke.png%3Falt%3Dmedia%26token%3De992d8b3-a4ac-4899-8b15-8867abde4025\&width=768\&dpr=4\&quality=100\&sign=d66c6f23\&sv=2)

## Step 1: Remove the Old Plugin

{% hint style="warning" %}

#### Critical: Exit Unity First!

{% endhint %}

You MUST close Unity before deleting the old plugin. Unity holds references to the plugin files while open, which can cause errors if you try to delete them from within the editor.

1. **Save your project** and close Unity completely
2. Navigate to your project folder using Windows Explorer (Windows) or Finder (Mac)
3. Delete the old Looking Glass plugin folder and the Looking Glass post-processing folder:
   * Typically located at: `Assets/LookingGlass` and `Assets/LookingGlass Post-Processing 3.2.2`
   * Or wherever you imported the v3.x package

### Clean Up Meta Files

After deleting the plugin folder:

1. Delete the corresponding `.meta` file for the Looking Glass folder
2. Search for and remove any orphaned Looking Glass-related meta files

![](https://docs.lookingglassfactory.com/~gitbook/image?url=https%3A%2F%2F1101008898-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MWj8g-jOrSs315lrZFz%252Fuploads%252F4xUwJboBzJCGXG3VGkbu%252Fdocs-divider-gradient-stroke.png%3Falt%3Dmedia%26token%3De992d8b3-a4ac-4899-8b15-8867abde4025\&width=768\&dpr=4\&quality=100\&sign=d66c6f23\&sv=2)

## Step 2: Prepare Your Project for v4.0

### Upgrade to Unity 6

If you're not already using Unity 6:

1. Open Unity Hub
2. Install Unity version 6000.0.39 to 6000.1.5
3. Open your project with the new Unity version
4. Allow Unity to upgrade your project (this may take some time)

### Convert to Universal Render Pipeline

If your project isn't using URP:

1. Install URP via Package Manager
2. Create a URP Asset: `Create > Rendering > URP Asset (with Universal Renderer)`
3. Go to `Edit > Project Settings > Graphics`
4. Assign your URP Asset to the Scriptable Render Pipeline Settings

### Enable RenderGraph

1. Go to `Edit > Project Settings > Graphics > URP`
2. Scroll to the bottom of the page
3. Ensure that `Compatibiliity Mode` is disabled

<figure><img src="/files/7fqX28B71Bp9tt9nNDki" alt=""><figcaption></figcaption></figure>

![](https://docs.lookingglassfactory.com/~gitbook/image?url=https%3A%2F%2F1101008898-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MWj8g-jOrSs315lrZFz%252Fuploads%252F4xUwJboBzJCGXG3VGkbu%252Fdocs-divider-gradient-stroke.png%3Falt%3Dmedia%26token%3De992d8b3-a4ac-4899-8b15-8867abde4025\&width=768\&dpr=4\&quality=100\&sign=d66c6f23\&sv=2)

## Step 3: Install the New Plugin

{% hint style="info" %}
See the full getting started guide [here](/software/index/unity-plugin-4.0-alpha).
{% endhint %}

Close the Unity Editor before proceeding.

### Download and Extract

1. Download the Unity Plugin 4.0 zip for your version of Unity — downloads available [here](/software/index/unity-plugin-4.0-alpha).
2. Extract the zip file. You'll find:
   * `com.unity.render-pipelines.core` folder
   * `com.unity.render-pipelines.universal` folder
   * `jp.keijiro.klak.syphon` folder
   * `jp.keijiro.klak.spout` folder
   * `Looking Glass Unity Plugin 4.0.1-alpha.unitypackage`
   * A readme file

### Install Package Dependencies

{% hint style="info" %}
**Important**: Keep Unity closed for this step!
{% endhint %}

1. Navigate to your project's `Packages` folder
2. Copy these four folders into the Packages folder:
   * `com.unity.render-pipelines.core`
   * `com.unity.render-pipelines.universal`
   * `jp.keijiro.klak.syphon`
   * `jp.keijiro.klak.spout`

### Import the Unity Package

1. Open your Unity project
2. Go to `Assets > Import Package > Custom Package`
3. Select the `Looking Glass Unity Plugin 4.0.1-alpha.unitypackage`
4. Import all files

### Configure Project Settings

1. In the Project window, navigate to `Looking Glass Plugin/Settings/`
2. Select the `Project Setup` object
3. In the Inspector, you'll see buttons for each render pipeline location
4. Click each button to automatically configure the settings

### Launch the Preview Window App

1. Download the preview window applications (for Windows or MacOS) here.
2. Follow instructions [here](/software/index/unity-plugin-4.0-alpha#preview-window-on-windows) (for Windows) and [here](/software/index/unity-plugin-4.0-alpha#preview-window-on-macos) (for MacOS) to run the app.

![](https://docs.lookingglassfactory.com/~gitbook/image?url=https%3A%2F%2F1101008898-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MWj8g-jOrSs315lrZFz%252Fuploads%252F4xUwJboBzJCGXG3VGkbu%252Fdocs-divider-gradient-stroke.png%3Falt%3Dmedia%26token%3De992d8b3-a4ac-4899-8b15-8867abde4025\&width=768\&dpr=4\&quality=100\&sign=d66c6f23\&sv=2)

## Step 4: Update Your Scenes

### Test the Example Scene

1. Open `Looking Glass Plugin/Scenes/Multiview Example Scene`
2. Enter Play mode to verify everything is working
3. If you see the example content, the plugin is installed correctly

### Migrate Your Existing Scenes

The new plugin uses a different architecture. Here's how to update your scenes:

**Replace the Old Hologram Camera**

1. Delete the old Hologram Camera from v3.x
2. From the new plugin, add:
   * The `Multiview Container` (found under Orbit Controls in the example scene)
   * The `Final Pass Canvas` object
3. In the `Final Pass Canvas` object, open the `Multiview Cams` array and add your `Hologram Camera` to the list

<figure><img src="/files/IN5cAw0mHFnZxwBEzRYp" alt=""><figcaption></figcaption></figure>

### Add Preview Support

For live preview in the Editor:

1. Add a `Klak Preview Sender` object from `Looking Glass Plugin/Prefabs`
2. Download and set up the Preview Window app (see plugin documentation)

![](https://docs.lookingglassfactory.com/~gitbook/image?url=https%3A%2F%2F1101008898-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MWj8g-jOrSs315lrZFz%252Fuploads%252F4xUwJboBzJCGXG3VGkbu%252Fdocs-divider-gradient-stroke.png%3Falt%3Dmedia%26token%3De992d8b3-a4ac-4899-8b15-8867abde4025\&width=768\&dpr=4\&quality=100\&sign=d66c6f23\&sv=2)

## Common Issues and Solutions

#### Unity Won't Delete Old Plugin Files

**Solution**: Make sure Unity is completely closed. Use Task Manager (Windows) or Activity Monitor (Mac) to ensure no Unity processes are running.

#### Missing References After Migration

**Solution**: Re-assign Looking Glass components in your scenes. The new plugin uses different component names and structures.

#### Performance Issues

**Solution**: Ensure RenderGraph is enabled in your URP settings. Check that you're using Forward or Forward+ rendering.

#### Preview Window Shows Black Screen

**Solutions**:

* Enter Play mode in Unity
* Ensure Looking Glass Bridge is running
* Restart the Unity Editor
* Check that the Klak Preview Sender is in your scene

![](https://docs.lookingglassfactory.com/~gitbook/image?url=https%3A%2F%2F1101008898-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MWj8g-jOrSs315lrZFz%252Fuploads%252F4xUwJboBzJCGXG3VGkbu%252Fdocs-divider-gradient-stroke.png%3Falt%3Dmedia%26token%3De992d8b3-a4ac-4899-8b15-8867abde4025\&width=768\&dpr=4\&quality=100\&sign=d66c6f23\&sv=2)

## Best Practices

#### Don't Modify Plugin Files

Never add your assets to the `Looking Glass Plugin` folder or modify its contents. Future updates will require deleting and replacing this folder.

#### Keep Both Versions During Transition

Consider keeping a separate project with v3.x while you test v4.0, especially for production projects.

#### Test Thoroughly

v4.0 is in alpha/beta. Test all functionality before deploying:

* Interactive features
* Build processes for your target platforms
* Performance on your target hardware

![](https://docs.lookingglassfactory.com/~gitbook/image?url=https%3A%2F%2F1101008898-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MWj8g-jOrSs315lrZFz%252Fuploads%252F4xUwJboBzJCGXG3VGkbu%252Fdocs-divider-gradient-stroke.png%3Falt%3Dmedia%26token%3De992d8b3-a4ac-4899-8b15-8867abde4025\&width=768\&dpr=4\&quality=100\&sign=d66c6f23\&sv=2)

## Need Help?

If you encounter issues during migration:

* Email us at <support@lookingglassfactory.com>
* Join our [Discord community](https://discord.gg/ZUZDs65t)
* Check the [v4.0 documentation](https://docs.lookingglassfactory.com/software/index/unity-plugin-4.0-alpha)
* Consider using the stable [v3.x plugin](https://docs.lookingglassfactory.com/software/index) if you need reliability

Remember, v4.0 is still in development. Your feedback helps us improve! Please [fill out our survey if you have feedback](https://lookingglass.typeform.com/to/wrLysfEY).


# Using Unity with Looking Glass

### Requirements

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td></td><td><strong>Looking Glass Bridge</strong></td><td>The connection between your computer and your Looking Glass.</td><td><a href="/files/QMEOJdKOOc7Ue0hRJ0Va">/files/QMEOJdKOOc7Ue0hRJ0Va</a></td><td><a href="https://lookingglassfactory.com/software/looking-glass-bridge">https://lookingglassfactory.com/software/looking-glass-bridge</a></td></tr><tr><td><strong>Unity</strong></td><td>Create real-time 3D games, apps, and experiences.</td><td></td><td><a href="/files/B2vsBtXiI4Q8nbSBlpAW">/files/B2vsBtXiI4Q8nbSBlpAW</a></td><td></td></tr><tr><td></td><td><strong>Looking Glass Studio</strong></td><td>A holographic media player.</td><td><a href="/files/x88zhNHVcpauJhWB10CP">/files/x88zhNHVcpauJhWB10CP</a></td><td><a href="https://lookingglassfactory.com/software/looking-glass-studio">https://lookingglassfactory.com/software/looking-glass-studio</a></td></tr></tbody></table>

### Introduction

Using the Looking Glass Unity Plugin is a very seamless way to add onto your existing Unity development workflow, whether you're an expert or a beginner. You can check out the tutorial video or follow the written steps below (or both!) to get started right away!

<figure><img src="/files/iRjBWBvGiXmSVViDRzh6" alt=""><figcaption></figcaption></figure>

### Steps <a href="#steps" id="steps"></a>

#### 1. Importing the Looking Glass Unity Package

Set your Looking Glass Display to Desktop Mode and import the Looking Glass Unity plugin into a New Project in Unity by either double clicking on the package in your downloads folder or importing the asset within Unity via Assets > Import Package > Custom Package.

That's it! You're ready to get started with your first Unity hologram!

#### 2. Framing Content with Hologram Camera

Let's open up the first example scene in the package "Framing Content with Hologram Camera". This example demo scene should show a little island with two cute furry creatures.

Navigate to the Hologram Camera in the Hierarchy and then select "Cast to Looking Glass" (or ctrl + e) in the Inspector to view your scene in the capture box in your connected Looking Glass display.

<figure><img src="/files/iCeGASVE6HwbqWCeiPQe" alt=""><figcaption></figcaption></figure>

**Let's go over a few basics:**\
The Hologram Camera is pretty similar to the Unity standard camera, but there are a few things are different.\
‍\
Namely, it's a box. The pink square in the center of this box is the point of focus in the Capture Box and thus the connected Looking Glass Display.\
‍\
If we move the capture box back and forth, you can see wherever the square is becoming the clearest focal point in the scene.<br>

In v2.0 of the plugin, we introduced a new "Transform Mode" called "Camera" which makes the hologram camera behave much more like a standard camera. The rest of this tutorial, however, will focus on the "Transform Mode" of "Volume" where the hologram camera operates like a volume of space, anything inside of which shows as a hologram on your connected Looking Glass.

#### 3. Adjusting position, rotation, scale and FOV

<figure><img src="https://assets-global.website-files.com/62b1e7ca6ca42995253b6d61/62fab3d291ac643754f90ceb_ezgif-5-9dc1d7e935.gif" alt=""><figcaption></figcaption></figure>

Select the DEMO object in the example scene's hierarchy. Let's check out the cool script that, in play mode, allows you to see animations of position, scale, rotation, clipping plane, and FOV of the Hologram Camera. Hit play and go through each selection to see what changing each does for your Looking Glass view.

While this DemoCaptureAnimator script is an example of ways you can animate these values in script, you don't have to do that. In Camera Properties on the Hologram Camera, you can change these settings manually.<br>

#### 4. Adding interactions! Easily interact with your Unity Holographic scene

<figure><img src="https://assets-global.website-files.com/62b1e7ca6ca42995253b6d61/62fab421e74045565b586e7f_ezgif-5-d9f79a002f.gif" alt=""><figcaption></figcaption></figure>

Go to the prefabs folder of the Looking Glass Plugin and add the 3D Cursor prefab to your scene. The 3D Cursor is a great component that allows you to easily maneuver your scene with your mouse cursor in play mode.

Once you've got the 3D Cursor added, go to the Hologram Camera and Add Component → Orbit Control to your camera.

\
Now that you've got the 3D Cursor setup you can try it out in play mode with the following controls!

* left click + drag to rotate the scene,
* scroll up and down to zoom in and out of the scene,
* scroll wheel down and mouse drag to pan the scene around
* double click any point of the model to focus the view at that point

Pull in your own models into the scene and interact with them with the 3D Cursor and Orbit Controls.

#### 5. 3D Screenshot your scene as a quilt

So you made all of these amazing 3D scenes in Unity... but how do you export them onto [blocks.glass](https://blocks.glass/?__hstc=267813395.17e0733b91d757f76e1b183d47ebf7aa.1675788439462.1677020644662.1678107342474.10&__hssc=267813395.14.1678107342474&__hsfp=2659891191) or Looking Glass Studio? We have a handy script to help you with this called Quilt Capture, which is already a component on the Hologram Camera prefab. Scroll down to the Hologram Camera and press the blue "Screenshot" button to capture a still of your scene.

You can even use the next component, "Blocks Upload," to directly save holograms to your Blocks account from within Unity!

<figure><img src="/files/yiucR8MvsQ8QN6VZQB6G" alt=""><figcaption></figcaption></figure>

#### 6. Recording your scene with Quilt Capture

Another amazing feature in our Unity plugin is the ability to record quilt videos of your 3D scenes and save them in Looking Glass Studio or share them with others.

For this, too, you can use the Quilt Capture component on the Hologram Camera. It has a number of settings to help you record the ideal footage.

* Manual: press buttons in the editor to start, pause, and stop a capture
* Frame Interval: set a start frame and an end frame for your recording
* Time Interval: set a start time and an end time, in seconds, for your recording
* Clip Length: attach a Video Player component to synchronize your quilt capture to a video rendering in your scene

<figure><img src="/files/FtcLXnpbugkLiS3TDSDc" alt=""><figcaption></figcaption></figure>

You should be able to fully control the Quilt Recorder from within the editor. If you need to access these settings via script, the Quilt Capture class has public methods to play, pause, resume, and stop the recording, as well as public properties to get and set the start frame, end frame, etc. See our [API documentation](/software/index/script-reference/quiltcapture.cs) for more details.

#### 7. Bundle your scene into a runtime executable

If you'd like to bundle your scene into an executable rather than generate holograms from within Unity, you just follow your standard Unity build practices - add your scene to the build settings, and press build. It's that simple!

#### 8. Share your Holograms with us!<br>

<figure><img src="https://assets-global.website-files.com/62b1e7ca6ca42995253b6d61/62fab44b4cb53e92ba9be908_ezgif-3-5aa422442e5d.gif" alt=""><figcaption></figcaption></figure>

### We're always excited to see what you're making!

If you have any questions, please reach out to us! You can reach the team at Looking Glass Factory at <developer@lookingglassfactory.com>!

Share with us your first Block or quilt recording using Unity, either in the [Discord](https://discordapp.com/invite/ZW87Y4m), or by tweeting and tagging [@lkgglass](https://twitter.com/lkgglass)


# Setting up your Development Environment

## 1) Installs and Downloads

The Looking Glass Unity Plugin requires:

* Unity v2021 or later
* Looking Glass Bridge v2.0.9 or later

This plugin is compatible with:

* Windows 10 or 11
* Mac with Apple Silicon

{% hint style="warning" %}
For best performance, we recommend Windows laptops with dedicated graphics cards, ideally an RTX 3070 or better.
{% endhint %}

This plugin supports:

* Built-in Render Pipeline
* Universal Render Pipeline (though there are known issues with deferred rendering and the 3D cursor)

Once your Looking Glass is [connected to your computer](/software/looking-glass-bridge), you'll want to download the Plugin:

[Download the Plugin](https://look.glass/unity)

## 2) Display Settings

In order to see your Unity Scene with a live, real-time preview on your Looking Glass, it will need to be configured with your computer as an extended display, not a mirrored one.

### For Mac

Open your system preferences and go to display settings and ensure "Mirror Displays" is off.

![Mac monitor arrangement](/files/-MWj9-ut0jlBSfzdYBFQ)

It is also recommended that you set your Mission Control preferences so that "Displays have separate Spaces" is toggled on. This will allow Unity builds to target *only* your Looking Glass monitor, leaving your main monitor free to use normally.

![](/files/-MZU2hYOr0aDPxRCchZd)

### For Windows

Open your display settings. Select **Extend these displays** from the **Multiple displays** pulldown.

Also, ensure that **Change the size of text, apps, and other items** is set to 100% and that the resolution of the second display matches the following:

* **1440 x 2560** for the Looking Glass Go
* **1536 x 2048** for the Looking Glass Portrait
* **3840 x 2160** for the Looking Glass 16" Spatial Display (landscape)
* **2160 x 3840** for the Looking Glass 16" Spatial Display (portrait)
* **7680 x 4320** for the Looking Glass 32" Spatial Display (landscape)
* **4320 x 7680** for the Looking Glass 32" Spatial Display (portrait)
* **7680 x 4320** for the 65" Looking Glass

{% hint style="warning" %}
For the 16" Spatial Display (portrait) and the 32" Spatial Display (portrait), you need to additionally set the "Display orientation" to be "Portrait (flipped)".
{% endhint %}

![Windows monitor arrangement](/files/-MWj9Do8iiF-H5w_vUqQ)

### For Linux (Ubuntu)

Open your display settings, and select **Join Displays**, and click **Apply**. Ensure that the resolution of your Looking Glass display has been set to the following:

* **1440 x 2560** for the Looking Glass Go
* **1536 x 2048** for the Looking Glass Portrait
* **3840 x 2160** for the Looking Glass 16" Spatial Display (landscape)
* **2160 x 3840** for the Looking Glass 16" Spatial Display (portrait)
* **7680 x 4320** for the Looking Glass 32" Spatial Display (landscape)
* **4320 x 7680** for the Looking Glass 32" Spatial Display (portrait)
* **7680 x 4320** for the 65" Looking Glass

## 3) Importing the Looking Glass Plugin into Unity

Open Unity Hub and click **"New project"** on the top right side of the window to start a new project.

Title the project and make sure that "3D Core" or "3D (URP) Core" is selected. Select the **Create project** button at the bottom right.

<figure><img src="/files/MyQaqL8YreoLRSWLT2Fm" alt=""><figcaption></figcaption></figure>

Within the new project, select **Assets** -> **Import Package** -> **Custom Package...**, and select the Looking Glass Plugin. You can alternately double click the .unitypackage file or drag the Unity package into your assets folder, as pictured below.

<figure><img src="/files/BtmlCoelB4dCMrY58Jr1" alt=""><figcaption></figcaption></figure>

Select "Import."

<figure><img src="/files/I37Cvu8yBGKUqYra61iL" alt=""><figcaption></figcaption></figure>

When the package finishes importing, select "Apply Changes."

<figure><img src="/files/N4qYj2ZXLwGXhKGdMbkJ" alt=""><figcaption></figcaption></figure>

## 4) Cast a Hologram to your Device

With you Looking Glass display connected, open the scene located at `Assets/LookingGlass/Basic Example.unity`

To cast the hologram to the display:

1. Select the “Hologram Camera” object in the scene hierarchy
2. In the inspector, scroll down and select “Cast to Looking Glass (CTRL + E)”

If you see the example scene in your display, your environment is set up properly. If not, please visit our [additional support page](/software/index/additional-support).

You can learn more about our example scenes [here](/software/index/example-scenes).

Head back to the [intro](/software/index) page for more information about all the features, and see the script references.


# Example Scenes

There are multiple examples in the `Assets/LookingGlass/Examples` folder that can help you get started with the Looking Glass Unity Plugin.

## **Example 1 - Framing Content with Hologram Camera**

This example showcases Dez Island, a 3D scene with two cute chinchillas chilling on a tropical island. It's a good example of how to position a Hologram Camera in a scene with content at varying levels of depth.

![](/files/3Ee6gd92FiJYSxRuc0Uw)

## **Example 2 - Post Processing**

This example shows how to use the Looking Glass Post-Processing Volume to add depth of field. Enabling and disabling this component in the scene will show how depth of field can improve the look of objects that are far away from the focal plane. For more information, please see the Post Processing page.

![](/files/BllOhrjXKbx9Lh9r3khC)

## **Example 3 - 3D Cursor**

This example shows how to use the 3D Cursor prefab. This will allow you to interact with the scene in 3D space in a natural way. This example also uses our orbit controls script to allow you to rotate the scene. For more information, please see the [3D Cursor page](broken://pages/JaoEHViaIkIIRGKPoZjH).

![](/files/BftDTuRzpJF9KxUywPuG)

## Example 4 - Hardware Buttons

This example shows hardware button inputs for our devices, demonstrating how to tie events to these inputs. It currently only supports Windows.

## **Example 5 - Dual Monitor Application & ExtendedUI**

These examples show how to get started with dual monitor applications where having a non-full-screen window or MacOS support is required. These can be useful when you want to have a 2D UI on your normal monitor that can control a 3D scene on the Looking Glass. The first example shows the Looking Glass application, while the second shows the flat 2D UI that you can use to control the position of the cube. For more information on Dual Monitor applications see the [Dual Monitor Applications page](broken://pages/-MZTDutKvWY_S3ejLVg7).

For Windows setups where a full-screen UI is acceptable, you can use standard Unity display management, though there is some complexity for due to the "Force Display Index" toggle. For two-monitor setups, we recommend unchecking Force Display Index as it greatly simplifies raycasting and UI events.

## **Example 6 - Recording Example Scene**

This example will show how to use the `QuiltCapture` script to capture your scene as a quilt image or video. This will allow you to share it with others (via [blocks.glass](https://blocks.glass)) and import it into Looking Glass Studio. For more information, see the [QuiltCapture.cs reference](/software/index/script-reference/quiltcapture.cs).

![](/files/ie4Kl7cqNlw2x7DfUbr9)

## Example 7 - Render Stacking

This example shows how to make use of the Hologram Camera Render Stack feature — a way to layer different kinds of content (2D camera views, 2D textures, pre-rendered quilts, and hologram camera views). You can also use this to optimize scene rendering by pre-rendering expensive background content ahead of time.

## **Example 8 - UI on the Looking Glass**

This example shows how to show text on a Looking Glass holographic display, in particular setting up the canvas. In general, it's preferable to put text and other UI elements on a 2D display next to the Looking Glass, however in v3.2.0 of the plugin we improved text rendering on the device.

<figure><img src="/files/NzxYZt2jY0Ph1bbz03ZJ" alt=""><figcaption></figcaption></figure>

## **Example 9 - iOS Sample Scene**

This example shows how to create a scene for iOS deployment. See [our full user guide](/software/index/developing-for-ios) for more information.

<figure><img src="/files/1mbxLq5aico23uaMeBrL" alt=""><figcaption></figcaption></figure>

## URP Example Scene

This example is in `Assets/LookingGlass/Examples/URP`

It shows our beta support for URP rendering. Note that some features, like post-processing and the 3D cursor, are not currently supported.


# Prefabs

A Unity prefab is a modular game object that can accelerate application development. If you’re unfamiliar with this pattern, you can learn more in the [Unity documentation on prefabs](https://docs.unity3d.com/Manual/Prefabs.html).

The Looking Glass Unity Plugin provides three prefabs for assist with your hologram creations.

* [Hologram Camera](/software/index/prefabs/hologram-camera) acts as a replacement for Unity’s default camera, creating holograms from the capture volume.
* [3D Cursor](/software/index/prefabs/3d-cursor) lets user navigate and explore 3D objects with the mouse.
* [Dual Monitor Application](/software/index/prefabs/dual-monitor-application) provides support for applications that simultaneously use a Looking Glass device and a 2D screen.


# Hologram Camera

## Summary

The Hologram Camera prefab acts as a replacement for Unity’s default camera, creating holograms from the capture volume. Due to the unique properties of a Looking Glass system, there are key differences between the Hologram Camera and Unity's standard camera.

<figure><img src="/files/GUe258SchOYQlsWdYXmr" alt=""><figcaption></figcaption></figure>

## How it works

The Hologram Camera object works by capturing your scene from at least 45 different perspectives. These captures are then stitched together into a special format to be displayed on the Looking Glass.

The settings exposed by the Hologram Camera object allow you to have control over how your scene is framed, using values described below. It also provides a helpful gizmo to visually represent how your scene is captured. The green border represents how much of your scene will be visible in the Hologram Camera volume, it is controlled by the Near Clip Factor & Far Clip Factor variables.

The purple lines represent the focal plane, which is the area of your scene that will be most in focus. In "Volume" transform mode, this position is not adjustable via a variable, and instead changes when you physically move the Hologram Camera object in your scene. In "Camera" transform mode, this can be adjusted using a variable, exposed as a slider in the Unity editor.

## Use Details

You can modify the Hologram Camera in the inspector. For explanations on how inspector values work, please consult the [HologramCamera.cs script reference](/software/index/script-reference/hologramcamera.cs).


# 3D Cursor

The 3D Cursor is a special component designed to make it easier to navigate 3D scenes on the Looking Glass. It works similar to a normal mouse cursor, but adds the ability to sample the 3D scene so the cursor will adapt to your model. This allows you to point out and select objects regardless of what distance they are from the camera. Combined with the orbit controls script this provides a simple way to cleanly navigate a scene.

By default, the 3D cursor will scale with the Hologram CAmera object so that it will always be visible, you can disable this if you'd wish to manually control the size of the cursor.

For more information on how the fields work, consult the [Cursor3D.cs script reference](/software/index/script-reference/cursor3d.cs).


# Dual Monitor Application

Dual monitor functionality is intended to enable the creation of dual monitor applications. Using this pipeline, you can have a windowed application on your 2D monitor while rendering a holographic scene on your Looking Glass device. This is achieved by creating an inter-process communicator (IPC) between two Unity applications.

## **Reviewing the Example Scene**

To fully load the example scene:

1. Open `LookingGlass\Examples\7 - Dual Monitor Application`
2. Select the `DMA Builder` GameObject from the scene hierarchy
3. In the `Dual Monitor Application Manager` script, select the `Setup\\Open Scenes` button

The `Setup\\Open Scenes` button loads in the `_extendedUI` scene of the same name. This scene drives the UI on the 2D window. If a scene doesn't exist by this name, this button will create it.

The additional example scene that gets incorporated includes:

It's own `DMA Builder` game object, with the `Dual Monitor Application Manager` script field for `Display` set to `Window 2D`. This is required so that the scenes can identify which displays they drive.

A canvas to manage the UI. Any Unity content is allowable here.

An IPC (inter-process communicator) that sends events between the two scenes.

## **Creating your Own Scene**

Follow these steps.

1. Create a New Scene
2. Remove the default Unity camera and add a `Hologram Camera` to the scene, found in `Assets/LookingGlass/Prefabs/`
3. Add the `Dual Monitor Application` prefab to your scene
4. Select the `DMA Builder` from the scene hierarchy, and click `Setup/Open Scene` - you'll need to save your scene first
5. Add a `DMA Builder` to the second scene
6. Set the second scene's `Dual Monitor Application`'s `Display` to `Window 2D`
7. Add a `DMA IPC` object to each scene (if cross-application communication is required
8. Set the `DMA IPC`'s `Dual Monitor Application Base IPC` to `Looking Glass` for the Looking Glass scene, and `Window 2D` for the 2D scene
9. Set the `Inter Process Communicator`'s `Role` to `Receiver` for the Looking Glass scene and `Sender` for the 2D scene
10. Change the `Inter Process Communicator`'s `Signing Char` to something new that matches in both scenes (recommended)

If the app requires UI elements on the 2D, this can be done using conventional Unity UI elements. There is a prefab provided for you for convenience, `DMA Canvas`, though you will need to additionally add an Event System to your scene for Unity UI events.

## **Building a Release**

In order to support all Looking Glass Pro functionality, you must build your applications in an unconventional way. Unity's built-in build pipeline will not work. To build the proper way:

Open File > Build Settings... and add both your scenes and click **Add Open Scenes** to add both scenes to the "Scenes in Build" field

Close the Build Settings window

Select any `DMA Builder` game object

Click the **Build (Dual Monitor Application)** button in the `Dual Monitor Application Manager` script in the inspector

Select **an empty folder** to bundle your application into

## **Scripting IPC Functionality**

In order to script your own functionality, follow the following steps:

1. In your script, add a reference to the `InterProcessCommunicator` in your scene.
2. To send data (typically from the 2D UI to the Looking Glass display) call `InterProcessCommunicator.SendData` with a string as the parameter. This will be sent to the receiver. You can call this function either from a script or from UI events.
3. In the receiving scene (typically the Looking Glass scene), in a script, create a reference to the `InterProcessCommunicator` in that scene.
4. Create a function named `ReceiveMessage(string message)`.
5. This function will now be called when a message is received. Write some logic within this function to handle the various messages the scene will be receiving.


# Script Reference

[HologramCamera.cs](/software/index/script-reference/hologramcamera.cs) - captures scenes for holographic rendering in connected Looking Glass displays.

[LKGDisplaySystem.cs](/software/index/script-reference/lkgdisplaysystem.cs) - provides high-level access to querying currently-connected Looking Glass displays.

[QuiltCapture.cs](/software/index/script-reference/quiltcapture.cs) - provides a way to record quilt videos from within Unity scenes.

[Cursor3D.cs](/software/index/script-reference/cursor3d.cs) - lets user explore and point to surfaces in the 3D scene with the mouse.

[OrbitControls.cs](/software/index/script-reference/orbitcontrols.cs) - provides controls to rotate, pan, zoom, and refocus the hologram with simple mouse / multitouch inputs.

[BlockUploader.cs](/software/index/script-reference/blockuploader.cs) - uploads holograms to Looking Glass Blocks.


# HologramCamera.cs

The Hologram Camera captures scenes for Looking Glass displays. It is intended to replace Unity’s default camera for Looking Glass applications.

The Hologram Camera object’s main interface is the HologramCamera.cs script. It exposes variables and functions to control how your scene is captured.

## Fields & Properties

### bool ForceDisplayIndex

Force the Hologram Camera to render to the first display, and use Unity's SetParams method to move the window to the Looking Glass display.

This is useful for single-window applications that only want the visuals to appear on the Looking Glass or setups with more than one 2D monitor. For 2-window applications that require window-context-specific raycasting or UI events, and that have a single 2D monitor with the Looking Glass, this should be toggled off.

### **DisplayTarget TargetDisplay**

The Unity display that this camera will render to. This will be overwritten to always be display 1 if "Force Display Index" is toggled on.

### **LookingGlass.Toolkit.LKGDeviceType EmulatedDevice**

The type of device that is being emulated. Only appears in the inspector if there are no Looking Glass displays plugged in or recognized, otherwise the Hologram Camera will target device settings from one of the connected LKG devices.

### LookingGlass.Toolkit.LKGDeviceType DeviceType

The type of Looking Glass display that is being emulated or targeted (currently identified based on its Calibration serial field).

### LookingGlass.Toolkit.Calibration Calibration

Contains Looking Glass display-specific data required for accurately rendering to a given display.

If you are emulating a display, a default template calibration is returned.

### **float Calibration.ScreenAspect**

The display's native aspect ratio, calculated using Calibration.screenW / Calibration.screenH.

Because quilts may not always be able to achieve this exact aspect ratio for each of the quilt tiles, QuiltSettings store this value at the time of capturing the quilt into the QuiltSettings.renderAspect variable, so that the quilt may be re-rendered later with the correct squishing or stretching to match the display's aspect ratio again when rendering the quilt.

This value is always greater than zero.

### LookingGlass.Toolkit.Display DisplayInfo

Returns a copy of the Display info of the currently connected and targeted Looking Glass display, if any, or `null` if the Hologram Camera is not targeting a connected display and is emulating a display instead.

### **bool Preview2D**

Allows you to preview your content in 2D instead of 3D. This can be useful for debugging.

### **bool ShowHologramPreview**

Toggles on and off a hologram preview in the inspector and scene view. Note that this only has an effect in the Unity editor, not in builds.

### **RenderTexture QuiltTexture**

The realtime quilt rendered by this Hologram Camera.

### **bool UseQuiltAsset**

If set to true, `QuiltTexture` will save to an asset in your project (useful for debugging).

### **bool** AutomaticQuiltPreset

Determines whether or not to use automatic/default quilt settings for the current targeted Looking Glass display or use custom arbitrary quilt settings instead.

To change this programmatically, use one the following:

* `void UseAutomaticQuiltSettings()`
* `void UseCustomQuiltSettings(QuiltSettings settings)`
* `void SetQuiltPreset(bool automaticQuiltPreset, QuiltPreset quiltPreset)`

<figure><img src="/files/gR2J8IECYbSGAZFtQSZZ" alt=""><figcaption></figcaption></figure>

### QuiltPreset QuiltPreset

Same as QuiltSettings, but has extra fields to determine if the quilt settings are the default for the targeted or emulated device, or if they are arbitrary, custom settings.

### LookingGlass.Toolkit.QuiltSettings

Defines the resolution and layout of the quilt texture that this camera is rendering to as output.

### **int** QuiltSetting&#x73;**.quiltWidth**

The width (in pixels) of the entire quilt.

### **int** QuiltSetting&#x73;**.quiltHeight**

The height (in pixels) of the entire quilt.

### **int** QuiltSetting&#x73;**.columns**

The number of columns in the quilt.

### **int** QuiltSetting&#x73;**.rows**

The number of rows in the quilt.

### **int** QuiltSetting&#x73;**.tileCount**

The number of total tiles in the quilt. Each tile in the quilt corresponds to a single view rendered by the singleViewCamera.

Usually this is columns \* rows, but it doesn't get set automatically to allow for customization. If it’s fewer, empty views in the top right corner of quilt will be black. The quilt tiles used start from the bottom-left, as shown in [Quilts](/keyconcepts/quilts):

<figure><img src="https://docs.lookingglassfactory.com/~gitbook/image?url=https%3A%2F%2F1101008898-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MWj8g-jOrSs315lrZFz%252Fsync%252F4033e85ad8499a86ba456f0983f5891ef2dcedf1.png%3Fgeneration%3D1616772675645811%26alt%3Dmedia&#x26;width=400&#x26;dpr=3&#x26;quality=100&#x26;sign=a9a5524c&#x26;sv=1" alt=""><figcaption></figcaption></figure>

### **float QuiltSettings.renderAspect**

The aspect ratio of the camera or source image, when this quilt was originally rendered.

If you are rendering new quilts from a 3D scene, full-screen to a Looking Glass display, this should be set to the aspect ratio of your Looking Glass display's native screen resolution (Calibration.screenW / Calibration.screenH).

This aspect ratio is NOT necessarily equal to the aspect ratio of each tile's (width / height).

For your reference:

* LKG Go, 16" Portrait, and 32" Portrait: 0.5625
* LKG Portrait: 0.75
* LKG 16" Landscape, 32" Landscape and 65”: 1.77778

### **RenderStack RenderStack**

Defines a sequence of rendering commands that can be mixed together in the form of quilt textures. This can be useful, for example, if you wish to mix 2D cameras, pre-rendered quilts, or quilt videos with the Looking Glass’s realtime renderer.

### **TransformMode CameraProperties.TransformMode**

Defines how the transform controls the shape of the viewing volume.

* In Volume mode, the transform position defines the focal plane.
* In Camera mode, the transform position defines the central camera position.

### **float CameraProperties.NearClipFactor**

Scales the nearClipPlane away from the focal plane.

The relationship can be mathematically written as the following: `nearClipPlane = max(0.01, focalPlane - size * nearClipFactor * depthiness)`

### **float CameraProperties.FarClipFactor**

Scales the farClipPlane away from the focal plane.

The relationship can be mathematically written as the following: `farClipPlane = max(0.01, focalPlane + size * farClipFactor * depthiness)`

### **float CameraProperties.size**

Defines half of the height of the camera frustum at the focal plane.

When using nearClipFactor and farClipFactor, this value also scales the nearClipPlane and farClipPlane away from the focal plane. NOTE: This is not the same as Unity's Camera.orthographicSize property.

Only appears when "Transform Mode" is set to TransformMode.Volume.

### **SizeMode CameraProperties.sizeMode**

Sets the relationship between `HologramCamera`’s `Size` value and the Transform’s `localScale` value.

* Manual - `HologramCamera`’s `Size` and Transform’s `localScale` values do not update automatically based on one another.
* Size Sets Scale — Updating `HologramCamera`'s `Size` automatically updates the Transform `localScale`'s xyz values to match.
* Scale Sets Size — Updating Transform `localScale` automatically updates `HologramCamera`'s `Size` to match the largest value of the `localScale` xyz values.

Only appears when "Transform Mode" is set to TransformMode.Volume.

### **CameraClearFlags CameraProperties.ClearFlags**

Determines how the camera clears the render target's background each frame.

### **Color CameraProperties.BackgroundColor**

The background color of the render target when using Solid Color clear flags. NOTE: Unlike Unity's camera background color, the alpha channel is used to blend with any render steps in the stack that come before the current Looking Glass step.

### **LayerMask CameraProperties.CullingMask**

Determines which layers the camera renders.

### **float CameraProperties.FieldOfView**

The vertical field of view of the camera in degrees.

### **float CameraProperties.Depth**

Sets the finalScreenCamera's depth, which determines the rendering order (relative to all other cameras in the scene) of the final HologramCamera rendering result.

### **RenderingPath CameraProperties.RenderingPath**

The rendering path to use for rendering each of the single views. You may choose to use the player settings, or explicitly use deferred or forward rendering.

### **bool CameraProperties.UseOcclusionCulling**

Whether or not the Hologram Camera will use occlusion culling during rendering.

### **bool CameraProperties.AllowHDR**

When true, enables high dynamic range.

### **bool CameraProperties.AllowMSAA**

When true, enables multi-sample anti-aliasing.

### **bool CameraProperties.AllowDynamicResolution**

When true, enables dynamic resolution.

### **bool CameraProperties.UseFrustumTarget**

Determines whether or not the frustum target will be used.

### **Transform CameraProperties.FrustumTarget**

Automatically modifies Hologram Camera's settings to center capture volume on an object placed at this transform’s position.

### **float CameraProperties.CenterOffset**

Offsets the cycle of horizontal views based on the observer's viewing angle, represented as a percentage on a scale of \[-0.5, 0.5]. Only applies in the Unity editor as it is typically used to correct for center distortion from the taskbar being visible, ignored in builds. The default value is 0.

### **float CameraProperties.HorizontalFrustumOffset**

Degrees of hologram camera’s horizontal offset.

### **float CameraProperties.VerticalFrustumOffset**

Degrees of hologram camera’s vertical offset.

### **float CameraProperties.Depthiness**

Scales the z-axis between the view and projection matrices. This is useful when the scene has too much depth, creating an apparent blur due to large discrepancies in the interlaced images. Scaling Z down maintains parallax and relational depth, but adds visual clarity to near and far objects at the cost of geometric accuracy. Default value is 1.

### **bool Gizmos.DrawHandles**

Toggles whether to show draggable handles on the gizmo.

### **Color Gizmos.FrustumColor**

Color of the Hologram Camera's frustum gizmos in the Scene view.

### **Color Gizmos.MiddlePlaneColor**

Color of Focal Plane identifier gizmo in the Scene view.

### **Color Gizmos.HandleColor**

Color of handles in the Scene view.

### **ViewRenderEvent Events.OnViewRendered**

A callback that gets called before each individual view is rendered. This is called with viewIndex values ranging within \[0, numViews]. Note that the upper bound is inclusive, for an extra callback in case cleanup is needed.

### **HologramViewInterpolation Optimization.ViewInterpolation**

View interpolation allows you to render only a subset of views instead of rendering all views (controllable by `quiltPreset` setting), by relying on a depthmap-based algorithm to fill in intermediate views. This significantly enhances performance, but may result in visual artifacts, depending on the scene being rendered.

### **bool Optimization.ReduceFlicker**

View interpolation sometimes result in a visual artifact where pixels flicker between different color values. This setting `reduceFlicker` to true helps mitigate that.

Apply only when needed as it significantly reduces performance.

### **bool Optimization.FillGaps**

View interpolation sometimes result in a visual artifact where surfaces have missing pixels, or gaps. Setting `fillGaps` to true helps mitigate that.

Apply only when needed as it reduces performance.

### **bool Optimization.BlendViews**

View interpolation sometimes results in stark and unblended color differences on surfaces of objects. Setting `blendViews` to true helps mitigate that. Using this may increase the amount of flicker, so it may be wise to use this with `reduceFlicker`.

### **bool Debugging.ShowAllObjects**

When set to true, this reveals hidden objects used by this Hologram Camera component, such as the cameras used for rendering.

### **int Debugging.OnlyShowView**

Forces the rendering of only one view in the quilt, where this value represents the single-view's view index.

### **bool Debugging.OnlyRenderOneView**

When `onlyShowView` is set to a valid index, this does the following:

* When set to true, this causes the single view to only render to its tile in the quilt; the rest of the quilt will remain empty.
* When set to false, the single view will be copied into every tile in the quilt. This does nothing when `onlyShowView` is -1.

### **string TargetLKGName**

The name of the Looking Glass (LKG) device that this component is connected with.

### **int TargetLKGIndex**

The index of the Looking Glass (LKG) device that this component is connected with.

### **static HologramCamera Instance**

The most-recently enabled HologramCamera component, or null if there is none.

***

### **HologramCameraProperties CameraProperties**

Contains a set of fields that correspond to fields on a Unity Camera, with some extra hologramCamera fields.

### **HologramCameraGizmos Gizmos**

A container for Unity Gizmo settings.

### **HologramCameraEvents Events**

A container for Hologram Camera Events.

### **OptimizationProperties Optimization**

A container for Hologram Camera Optimization Properties.

### **HologramCameraDebugging Debugging**

A container for Hologram Camera Optimization Properties.

### **QuiltSettings CustomQuiltSettings**

A container for custom render settings.

### **Camera SingleViewCamera**

Renders individual views of the scene, where each view may be composited into the quilt. When in 2D preview mode, only 1 view is rendered directly to the screen. This camera is not directly used for rendering to the screen. The results of its renders are used as intermediate steps in the rendering process.

### **Camera PostProcessCamera**

The Camera used to apply final post-processing to a single view of the scene, or a quilt of the scene. This camera is not directly used for rendering to the screen. It is only used for applying graphical changes in internal RenderTextures.


# LKGDisplaySystem.cs

Contains access to Looking Glass display calibration data for all currently-connected Looking Glass displays to the system.

{% hint style="warning" %}
Note that this class is NOT thread safe and is expected to only be accessed on the Unity main thread.
{% endhint %}

This class automatically connects to LKG Bridge on start (via static constructor, and `InitializeOnLoad` in the editor) and queries for connected displays, but you may manually call `LKGDisplaySystem.Reconnect()` or `LKGDisplaySystem.ReloadCalibrations()` yourself as well.

Additionally, LKG Bridge is queried every few seconds to detect device changes. LKG Bridge uses web sockets events to notify listeners of display changes, but these currently don't work with WebSocketSharp and Unity currently.

## Fields & Properties

### bool IsLoading

Is the system currently connecting to LKG Bridge and/or awaiting the list of connected LKG displays and their calibrations?

## Methods

### static LookingGlass.Toolkit.Display Get(int index)

Gets a copy of the LKG display in the array of connected displays that are found to be currently connected. `int index` is an arbitrary index, and should NOT be relied on for persistence.

### static Task WaitForConnected()

If `LKGDisplaySystem.Reconnect()` is currently waiting to connect to LKG Bridge, this returns a Task that will complete once that connection has been established. If there is no in-progress connection attempt at the moment, a completed Task is returned instead.

### static Task WaitForCalibrations()

Waits for all currently-pending requests resulting from `LKGDisplaySystem.ReloadCalibrations()` at the moment of calling this method.

Subsequent calls to `LKGDisplaySystem.ReloadCalibrations()` after this method is called will not be awaited in this call.<br>

### static Task\<bool> Reconnect()

Attempts to asynchronously connect to Looking Glass Bridge and query it for the Looking Glass displays that are currently connected to your system.

Note that this is automatically called on start (via static constructor, and `InitializeOnLoad` in the editor), but you may manually call this method yourself as well.

This includes a call to `LKGDisplaySystem.ReloadCalibrations()`.<br>

### static Task\<bool> ReloadCalibrations()

Asynchronously queries LKG Bridge for all currently connected LKG displays, updates this class's list of them (see `LKGDisplaySystem.LKGDisplayCount` and `LKGDisplaySystem.Get(int index)`), and updates all Hologram Cameras to ensure they are targeting the correct, up-to-date displays.

Returns true upon successful calibration reload from LKG Bridge and successful handling of the data internally, false otherwise.


# QuiltCapture.cs

Provides a way to record quilt videos from within Unity scenes.

## Fields & Properties

### **string FileName**

File name of the output video. If it's empty, it will be set to the default (see QuiltCapture.DefaultFileName).

### **OutputFolder FolderPath**

The path to the folder where the Recorder saves the output files.

### **int TakeNumber**

The key name corresponding to the take number value stored in LKGPlayerPrefs.

### **QuiltCaptureMode CaptureMode**

Manual: Use the “Record” and “Stop” buttons during Play mode.

Frame Interval: Set Start and End frames.

Time Interval: Set Start and End times (seconds).

Clip Length: Select a Video Player with the “Synced Video” field. Upon play, Quilt Capture will start and stop a recording to fit the beginning and end of the video clip.

Single Frame: Save a single frame as .png.

### **bool RecordOnStart**

Whether the recording begins once the scene plays (only used when `CaptureMode` is set to `Manual`).

### **bool ExitPlayModeOnStop**

When set to true, play mode will exit when the recording is stopped.

### **int StartFrame**

Which frame should the recording start (only used when `CaptureMode` is set to `Frame Interval`).

### **int EndFrame**

Which frame should the recording end (only used when `CaptureMode` is set to `Frame Interval`).

### **float StartTime**

When the recording should start, in seconds (only used when `CaptureMode` is set to `Time Interval`).

### **float EndTime**

When the recording should start, in seconds (only used when `CaptureMode` is set to `Time Interval`).

### **VideoPlayer SyncedVideoPlayer**

Set this to reference a VideoPlayer if you wish to align the time values of this recording to the time values of the media playback. This also finishes the recording when the referenced VideoPlayer finishes.

### **QuiltRecordingPreset RecordingPreset**

Determines the settings for output quilt videos. Selects from a collection of quilt and codec presets based on device and quality. Only used when `CaptureMode` is NOT set to `Single Frame (Screenshot)`.

### **QuiltRecordingSettings RecordingSettings**

The settings that will be used for recordings.

The aspect returned is always greater than zero, substituted using the same logic as `HologramCamera.Aspect` for values less than or equal to zero. Only used when `CaptureMode` is NOT set to `Single Frame (Screenshot)`.

### **QuiltScreenshotPreset ScreenshotPreset**

Determines the settings for output quilts for screenshots. Selects from a collection of quilt presets based on device. Only used when `CaptureMode` is set to `Single Frame (Screenshot)`.

### **QuiltCaptureOverrideSettings ScreenshotSettings**

The settings that will be used for screenshots.

The aspect returned is always greater than zero, substituted using the same logic as `HologramCamera.Aspect` for values less than or equal to zero.

### **QuiltRecordingSettings CustomRecordingSettings**

The settings that will be used for recordings when `RecordingPreset` is set to `QuiltRecordingPreset.Custom`. The aspect returned is always greater than zero, substituted using the same logic as `HologramCamera.Aspect` for values less than or equal to zero.

### **QuiltCaptureOverrideSettings CustomScreenshotSettings**

A collection of settings that may be applied to single frame capture/screenshots (only used when `ScreenshotPreset` is set to `Custom`)

## Methods

### **ScreenshotProgress Screenshot2D(bool writePNGMetadata = true)**

Take a screenshot of what is displayed in the center position of the Hologram Camera capture range. Optional parameter to encode metadata specifying that the image was captured with the Looking Glass Unity plugin.

### **ScreenshotProgress Screenshot2D(string outputFilePath, bool writePNGMetadata = true)**

Same as above, but saving to a specific file path. Optional parameter to encode metadata specifying that the image was captured with the Looking Glass Unity plugin.

### **ScreenshotProgress Screenshot3D(bool writePNGMetadata = true)**

Take a quilt screenshot of what is displayed in the Hologram Camera. Optional parameter to encode metadata specifying that the image was captured with the Looking Glass Unity plugin.

### **ScreenshotProgress Screenshot3D(string outputFilePath, bool writePNGMetadata = true)**

Same as above, but saving to a specific file path. Optional parameter to encode metadata specifying that the image was captured with the Looking Glass Unity plugin.

### **void StartRecording()**

Start recording.

### **void StartRecording(string outputFilePath)**

Same as above, setting the output file to outputFilePath.

### **void PauseRecording()**

Pause recording.

### **void ResumeRecording()**

Resume (unpause) recording.

### **void StopRecording()**

Stop (and save) recording.


# Cursor3D.cs

This script drives the 3D Cursor prefab.

With this script, you an use the cursor to point at and select objects.

The script uses depth maps to determine location. As a result, objects with Fade and Transparent materials will not be able to be selected.

To ensure an object isn't picked up by the 3D cursor, set its layer to "Ignore Raycast.”

## Fields & Properties

### **bool disableSystemCursor**

Disables the OS cursor at the start.

### **bool relativeScale**

Should the cursor scale follow the size of the LookingGlass.

### **GameObject cursorGameObject**

Game Object for the 3D Cursor.

### **bool uiCursorMode**

When true, renders the cursor from `uiCursor` on a 2D canvas.

## Methods

### **Vector3 GetWorldPos()**

Returns the location of the 3D cursor (in world space).

### **Vector3 GetLocalPos()**

Returns the location of the 3D cursor (in the Hologram Camera space).

### **Vector3 GetNormal()**

Returns the direction of the normal at the given point.

### **Quaternion GetRotation()**

Returns the rotation of the 3d Cursor (in world space).

### **Quaternion GetLocalRotation()**

Returns the rotation of the 3D Cursor (relative to the Hologram Camera’s space).

### **bool GetOverObject()**

Returns true if cursor is over an object.

### **void Refocused()**

Reenable system cursor. Useful for activating from an external script when a user needs to see their cursor.

### **GameObject uiCursor**

Game Object for the 2D Cursor.


# OrbitControls.cs

When attached to the HologramCapture game object, OrbitControl allows the user to rotate, pan, zoom, and refocus with simple mouse / multitouch inputs.

## Controls

| Action  | Mouse              | Multitouch              |
| ------- | ------------------ | ----------------------- |
| Rotate  | Left Click + Drag  | Touch + Drag            |
| Pan     | Right Click + Drag | Two-Finger Touch + Drag |
| Zoom    | Scroll Wheel up    | Pinch                   |
| Refocus | Double Click       | Double Tap              |

## Fields & Properties

### **float rotateSpeed**

Speed at which rotation occurs.

### **float rotateDrag**

Rate at which rotation slows down upon release.

### **float yMax**

Maximum angle (in degrees) that rotation is permitted to see above the model. 90 means the Hologram Camera can be rotated to view from directly above, and 0 means it that no rotation above level is permitted.

### **float yMin**

Minimum angle (in degrees) that rotation is permitted to see below the model. -90 means the Hologram Camera can be rotated to view from directly below, and 0 means it that no rotation below level is permitted.

### **float panSpeed**

Speed at which panning occurs.

### **float panDrag**

Rate at which panning slows down upon release.

### **float mouseZoomSpeed**

Rate at which mouse zoom occurs.

### **float multitouchZoomSpeed**

Rate at which multitouch zoom occurs.

### **float zoomDrag**

Rate at which zooming slows down upon release.

### **float multitouchZoomThreshold**

Minimum amount of distance (in pixels) required to travel to trigger zoom interaction. Helpful for not triggering zoom when user intends to translate.

### **float multitouchMaxJump**

If the distance between the fingers changes by this much between frames, ignore zoom interaction. Helpful if multitouch is picking up too many touch points.

### **float minCamSize**

Minimum size Hologram Camera object can be due to zoom.

### **float maxCamSize**

Maximum size Hologram Camera object can be due to zoom.

### **AnimationCurve refocusToPointCurve**

Animation curve describing the zoom behavior when a user refocuses.

### **float refocusToTime**

Time it takes (in seconds) to execute animation when user refocuses.

### **float maxDistBetweenClickMouse**

Double click is ignored if the distance between two clicks (in pixels) exceeds this value.

### **float maxDistBetweenClickTouch**

Double tap is ignored if the distance between two taps (in pixels) exceeds this value.

### **float doubleClickTime**

Double click is ignored if the time between two clicks (in in seconds) exceeds this value.

### **float doubleClickTimeTouch**

Double tap is ignored if the time between two taps (in in seconds) exceeds this value.

### **UnityEngine.EventSystems.EventSystem eventSys**

OrbitControl will activate any time clicks and taps happen, no matter where they occur. This can present problems with 2D interface elements. OrbitControl will ignore interactions on any event system associated to this variable.

### **Vector2 multitouchRemapCursorY**

Optional remapping parameter for touch screen position for inaccurate touch events. The two values in this Vector2 are MinY and MaxY.

### **Vector2 multitouchRemapCursorX**

Optional remapping parameter for touch screen position for inaccurate touch events. The two values in this Vector2 are MinX and MaxX.


# BlockUploader.cs

## Fields & Properties

### string QuiltFilePath

The file to be uploaded into Blocks.

### string BlockTitle

The title assigned to the Block once uploaded.

### string BlockDescription

The description assigned to the Block once uploaded.


# MobileDMAController.cs

The MobileDMAController class facilitates using an iOS as a primary display while managing a second display for a Looking Glass device.

## Fields & Properties

### HologramCamera Camera

The `HologramCamera` instance used when a second display is connected. The camera is deactivated until a second display is detected.

### int Width2D

Width of the 2D screen resolution on the mobile device. Default value is 600 pixels — if set to 0, it will use the device's native resolution width.

### int Height2D

Height of the 2D screen resolution on the mobile device. Default value is 1000 pixels — if set to 0, it will use the device's native resolution height.

### string LoadedVisualJsonPath

Path to the calibration JSON file. Setting this property triggers a display refresh.

### static string VisualJsonFilePath

Static property that provides the path to the persistent calibration JSON file.

### UnityAction onCalibrationLoaded

Invoked when a calibration file is successfully loaded.

## Methods

### private void Set2DScreenResolution(int width, int height)

Sets the screen resolution for the 2D display (on the iPhone or mobile device).

* `int width`: Desired screen width.
* `int height`: Desired screen height.

### public void RefreshDisplays()

Refreshes display connections and activates the `HologramCamera` for the second display if detected.

### private Task CheckToSetRotatedScreen()

Checks if the display should be rotated based on the calibration and applies the appropriate shader.

Returns Task `true` if the shader was applied successfully, otherwise `false`.

### private void RefreshDisplaysMobile()

Copies the calibration file to local storage if necessary, reads it, and applies the calibration settings to the `HologramCamera`.


# iOS Sample Scene Scripts

The iOS sample scene relies on a number of different scripts for its full functionality.

**1. Core UI Management**

* DemoIOSUIController: Manages overall UI state, navigation, and display updates
* PageHandler: Handles basic navigation logic for UI pages
* PageConnectHandler: Extends PageHandler for connection-specific logic
* PageCalibrateHandler: Manages calibration page UI and settings
* PageTestHandler: Handles test page functionality and preferences

**2. Model Interaction Controls**

* ModelController: Core class for 3D model rotation and zoom interactions
* AudioRotateControl: Controls audio feedback based on model rotation

**3. Input and UI Components**

* XYSlider: Implements 2D slider UI element for input control
* XYSpotlight: Controls spotlight position and intensity based on slider input
* ChangeInteractionModality: Manages switching between lighting and rotation controls

**4. Environment and Display**

* DynamicAlcove: Creates and manages 3D alcove environment for display


# ChangeInteractionModality.cs

Handles switching between lighting and rotation control modalities in the user interface. It enables or disables relevant controls and updates UI elements to reflect the active control.

## Fields & Properties

### GameObject\[] lightingActiveUIElements

UI elements to show or hide when lighting controls are active.

### GameObject\[] rotationActiveUIElements

UI elements to show or hide when rotation controls are active.

### Button lightControlButton

Button to activate lighting controls.

### Button rotateControlButton

Button to activate rotation controls.

### LookingGlass.Demos.XYSpotlight lightingControls

Reference to the lighting controls.

### LookingGlass.Demos.ModelController rotationControls

Reference to the rotation controls.

## Methods

### void SwitchControls(bool isLighting)

Activates the specified control modality and updates UI elements.

`isLighting` *(bool)*: `true` to activate lighting controls, `false` to activate rotation controls.


# XYSlider.cs

Implements a 2D slider UI element. Tracks user interactions and translates the slider position into normalized values.

## Fields & Properteis

### RectTransform handle

The draggable handle of the slider.

### RectTransform squareArea

The slider's movement bounds.

### Vector2 outputValues

Normalized output values in the range \[-1, 1].

### bool isHovering

Tracks whether the user is hovering over the slider.

### LookingGlass.Demos.XYSpotlight xySpotlight

Reference to the spotlight controller.

### Vector2 squareSize

Half the width and height of the slider's bounds.

### bool isDragging

Tracks whether the handle is being dragged.

### Vector3 originalScale

The initial scale of the slider handle.

### float scaleFactor

Factor to scale the handle when it is being dragged.


# XYSpotlight.cs

Controls the position and intensity of a spotlight in 3D space based on slider inputs.

## Fields & Properties

### float xRange

Maximum horizontal movement range for the spotlight.

### float yRange

Maximum vertical movement range for the spotlight.

### Transform spotlight

The spotlight object to control.

### float lightZ

Fixed Z-coordinate for the spotlight position.

### Light li

Reference to the `Light` component on the spotlight.

## Methods

### SetSliderPos(float x, float y)

Updates the spotlight's position based on normalized slider values.

* `float x`: Normalized X-axis value.
* `float y`: Normalized Y-axis value.

### SetLightIntensity(float intensity)

Updates the intensity of the spotlight.

* `float intensity`: The new intensity value.


# AudioRotateControl.cs

Dynamically controls the pitch and volume of an AudioSource based on the rotational velocity of a ModelController.

## Fields & Properties

### float minSpeed

The minimum rotation speed.\
**Default:** `0f`

### float maxSpeed

The maximum rotation speed.\
**Default:** `5f`

### AudioSource audioSource

The `AudioSource` component to modify.

### float audioMaxSpeed

The maximum speed for audio adjustments.\
**Default:** `0.01f`

### float audioPitchMod

Optional modifier for the audio pitch.\
**Default:** `0f`

### float audioLerpSpeed

The interpolation speed for audio volume.\
**Default:** `0.1f`

### float minPitch

The minimum pitch value.\
**Default:** `0.85f`

### float maxPitch

The maximum pitch value.\
**Default:** `1.05f`

### float minVol

The minimum volume value.\
**Default:** `0f`

### float maxVol

The maximum volume value.\
**Default:** `1f`

### LookingGlass.Demos.ModelController modelController

Reference to the `ModelController` component.\
**Default:** `null`


# ModelController.cs

Handles rotation and zoom interactions for a 3D model in Unity, including touch/mouse input, pinch-to-zoom, and rotation inertia.

## Fields & Properties

### Transform target

The target 3D model to control.

### GameObject rotationInteractionZone

The UI zone that allows rotation interactions.

### float rotateSpeed

Controls the rotation speed.\
**Default:** `0.1f`

### float dampingFactor

Determines how quickly rotation inertia slows down.\
**Default:** `0.9f`

### float minVelocity

The minimum velocity required to apply rotation inertia.\
**Default:** `0.01f`

### bool canRotate

Enables or disables rotation functionality.\
**Default:** `true`

### bool uiRaycastHack

Tracks whether rotation is disabled due to UI interactions.\
(Exposed as the property `UIRaycastHack`.)

### float minZoomFactor

The minimum scale factor for zoom.\
**Default:** `0.5f`

### float maxZoomFactor

The maximum scale factor for zoom.\
**Default:** `2.0f`

### float zoomZOffset

The Z-axis offset for zoom progression.\
**Default:** `0.5f`

### float zoomLerpSpeed

Interpolation speed for smooth zooming.\
**Default:** `10f`

### float rotationVelocity

Tracks the current rotation velocity of the model.\
(Exposed as the property `RotationVelocity`.)

### Vector3 initialPosition

The initial position of the target.

### Quaternion initialRotation

The initial rotation of the target.

### Vector3 initialScale

The initial scale of the target.

### float currentZoomFactor

The current zoom scale factor.\
**Default:** `1f`

### bool isDragging

Indicates if the model is being dragged.

### bool isPinching

Indicates if a pinch-to-zoom gesture is in progress.

### float initialPinchDistance

Distance between touch points at the start of a pinch gesture.

### float pinchStartZoomFactor

Zoom factor at the start of a pinch gesture.

## Methods

### void Initialize(Vector3 initPos, Quaternion initRot, Vector3 initScale)

Resets the target's transform and internal state to the specified initial values.

* `Vector3 initPos`: Initial position of the target.
* `Quaternion initRot`: Initial rotation of the target.
* `Vector3 initScale`: Initial scale of the target.

### void HandleTouchRotation()

Handles single-touch input for model rotation.

### void HandleMouseRotation()

Handles mouse input for model rotation.

### void DoRotation()

Applies rotation to the target using the current rotation velocity.

### bool IsOverRotationInteractionObject(Vector2 position)

Determines if a given screen position is over the rotation interaction zone.

* `Vector2 position`: The screen position to check.
* **Returns:** `true` if over the interaction zone; otherwise `false`.

### void HandlePinchToZoom()

Handles pinch gestures for zooming in/out of the model.

### void ApplyZoom()

Updates the target's scale and position based on the current zoom factor.


# DemoIOSUIController.cs

Manages the overall UI state, including navigation between pages, calibration setup, and display updates.

## Fields & Properties

### GameObject\[] pages

The UI pages in the demo.

### GameObject popUpCalibrate

The calibration popup.

### GameObject popUpTestImage

The test image popup.

### GameObject templateScene

The main scene template.

### PageType CurrentPageType

Enum representing the currently active page.

### static bool isCalibrationFileExist

Indicates if the calibration file exists.

## Methods

### void SwitchToPage(PageType pageType)

Switches to the specified page.

* `PageType pageType`: The page to switch to.

### void AutoPageUpdate()

Updates the UI state based on the number of connected displays.

### void OnLoadCalibration()

Loads the calibration file if it exists, or navigates to the calibration page if it does not.

### void PickCalibrationFile(bool goNextWhenDone)

Allows users to pick a calibration file (iOS only).

* `bool goNextWhenDone`: Whether to move to the last page after loading.


# PageHandler.cs

Handles navigation logic for individual UI pages.

## Fields & Properties

### Button nextButton

Button to navigate to the next page.

### Button backButton

Button to navigate to the previous page.

## Methods

### void SetPageIndex(int pageIndex)

Sets the index of the current page.

* `int pageIndex`: The index to assign.

### void OnNextClicked()

Navigates to the next page.

### void OnBackClicked()

Navigates to the previous page.


# PageConnectHandler.cs

Extends PageHandler to handle connection-specific page logic.

## Methods

### OnNextClicked()

Loads calibration when navigating to the next page.


# PageCalibrateHandler.cs

Handles UI logic for the calibration page, including toggling the "Don't Show Again" setting and displaying test images.

## Fields & Properties

### Button addCalibrationBt

Button to add a new calibration file.

### Button showTestImgBtn

Button to display the test image.

### Button doneButton

Button to finalize calibration and navigate to the last page.

### Toggle dontShowAgainToggle

Toggle to remember user preference.

### Text titleText

Displays the current calibration title.

## Methods

### void SetTitle(Calibration calibration)

Updates the title text with the calibration details.

* `Calibration calibration`: The current calibration.

### void OnAddCalibration()

Opens the calibration file picker.

### void OnShowTestImage()

Displays the test image popup.

### void OnDoneClicked()

Navigates to the last page.


# PageTestHandler.cs

Manages the UI logic for the test page in a Looking Glass demo. It supports displaying, clearing, and customizing a test image quilt, along with handling the "Don't Show Again" preference.

## Fields & Properties

### Button addCalibrationBt

Button to add a new calibration file.

### Button clearTestImgBtn

Button to clear or show the test image.

### Button doneButton

Button to complete the test and navigate to the last page.

### Toggle dontShowAgainToggle

Toggle to remember the user's preference for showing the test page.

### Texture testQuilt

Texture used as the test image quilt.

### QuiltSettings testQuiltSetting

Quilt settings for the test image.

## Methods

### void OnAddCalibration()

Opens the calibration file picker.

### void OnClearTestImage()

Clears the test image from the display.

### void OnShowTestImage()

Displays the test image on the display.

### void ToggleTestImage(bool isEnabled)

Toggles the visibility of the test image and updates the `HologramCamera` state.

* `bool isEnabled`: Whether to enable or disable the test image.

### void OnDoneClicked()

Completes the test page interactions and navigates to the last page.


# DynamicAlcove.cs

Dynamically creates a 3D alcove environment around the HologramCamera in Unity. Supports runtime updates, adjustable dimensions, and subdivided meshes for improved visual quality.

## Fields & Properties

### float borderThickness

Thickness of the borders.\
**Default:** `0.01f`

### float backWallDistance

Distance of the back wall from the camera.\
**Default:** `1.0f`

### Material boxBGMaterial

Material applied to the alcove walls.

### int meshSubdivisionsX

Number of subdivisions along the X-axis for wall meshes.\
**Default:** `2`

### int meshSubdivisionsY

Number of subdivisions along the Y-axis for wall meshes.\
**Default:** `2`

### bool showInHierarchy

Whether to display walls in the Unity hierarchy.\
**Default:** `false`

## Methods

### void RecreateBox()

Destroys and recreates the alcove walls based on the `HologramCamera` calibration.

### void CreateBox(float cameraSize, float screenAspect)

Constructs the alcove walls and borders around the camera.

* `float cameraSize`: Size of the camera.
* `float screenAspect`: Aspect ratio of the screen.

### void DestroyBox()

Destroys all walls in the alcove.

### GameObject CreateWall(string name, Material material, Transform parent)

Creates a single wall with the specified material and parent transform.

* `string name`: Name of the wall.
* `Material material`: Material to apply.
* `Transform parent`: Parent transform.
* **Returns:** A `GameObject` representing the created wall.

### Mesh CreateSubdividedQuad(Vector3 bottomLeft, Vector3 bottomRight, Vector3 topLeft, Vector3 topRight, int subdivisionsX, int subdivisionsY )

Creates a subdivided quad mesh for better shadow rendering.

* `Vector3 bottomLeft`: Bottom-left corner of the quad.
* `Vector3 bottomRight`: Bottom-right corner of the quad.
* `Vector3 topLeft`: Top-left corner of the quad.
* `Vector3 topRight`: Top-right corner of the quad.
* `int subdivisionsX`: Number of subdivisions along the X-axis.
* `int subdivisionsY`: Number of subdivisions along the Y-axis.
* **Returns:** A `Mesh` of the generated quad.


# Package Integrations

Looking Glass Unity projects can be improved by integrating additional packages.  Here are some packages that are good compliments to the Looking Glass Unity Plugin.

[Post-Processing Fork](/software/index/package-integrations/post-processing) - Unfortunately, Unity’s default Post Processing is incompatible with the Hologram Camera in the Built-in Render Pipeline. Learn more about how our fork of the package works and how it can greatly improve hologram visual quality.

Leap Motion - Integrate hand tracking technology to show a user’s hands in the display, in 3D. More information can be found at [Ultraleap’s developer portal](https://developer.leapmotion.com/). We also have [a quickstart guide](/software/index/leap) on setting up Leap Motion in Unity, but be aware that it may be out of date. For most up to date tutorials, use Ultraleaps' documentation.


# Built-in Render Pipeline Post-Processing

In Unity, the Post-Processing Effects stack is an important step in making your Looking Glass content look great. The Looking Glass Unity Plugin (v1.2 or greater) includes a fork of the Unity Post Processing v2 (PPv2) Effects Stack that is compatible with the Plugin.

{% hint style="warning" %}
**NOTE**: Unity's native PPv2 is not compatible with the Looking Glass Plugin. Any native instance of PPv2 **must be removed** to use this Plugin.
{% endhint %}

### Supported Effects

* Ambient Occlusion
* Auto-Exposure
* Bloom
* Color Grading
* Depth of Field
* Grain
* Screen-Space Reflections

### Unsupported

* Chromatic Aberration (Only works on MacOS)
* Lens Distortion
* Motion Blur
* Vignette

## Review the Example Scene

The Plugin includes an example scene found in `LookingGlass/Examples/3 - Post-Processing.unity`. Open this to see an example of Post Processing in the Looking Glass.

## Setting up Post-Processing

### Add a Post-process Layer

First, you'll need to add a "Post-process Layer" to your Hologram Camera:

1. If you don't already have a Hologram Camera in your scene, right-click in the Hierarchy Window and select "Hologram Camera"
2. With the Hologram Camera selected, in the inspector, select "Add Component" -> "Rendering" -> "Post-process Layer"
3. Under "Trigger" press the "This" button
4. Select a Layer (for testing "Default" is fine, though in production you should select specific layers)

### Add a Post-process Volume

Once you've done this, you'll need to add a Post-process Volume:

1. Right-click in the Hierarchy Window and select "Create Empty"
2. With the new Empty selected, in the inspector select "Add Component" -> "Rendering -> "Post-process Volume"
3. Check the "Is Global" box
4. To the right of the "Profile" field, click "New"
5. Then add effects at the bottom of this component

## Post-Processing Effects

Our experience has found that the following effects to tend to have the most impact on the final visual quality on your Looking Glass experience.

### Bloom

Bloom makes bright spots in your scene seem to bleed. Here are some tips specific to this effect on the Looking Glass

* A good place to start with threshold is about 1.
* Bloom looks best when it's only affecting true HDR values in the scene.
* Keep diffusion low to prevent haziness.
* Anamorphic ratio should be kept above 1 to play off of horizontal multiview.
* Do not use a dirtiness texture.

More info on the [Unity Docs](https://docs.unity3d.com/Manual/PostProcessing-Bloom.html).

### Color Grading

This effect color corrects the scene, allowing you to change the dynamic range of the lighting as well as change the overall tone with hue adjustment.

ACES tonemapping tends to look best. No matter what, always adjust the following to get good white balance:

* post-exposure
* saturation
* contrast

Color grading requires Linear Color Space, which we suggest trying experimenting with in general anyways. To modify, go to Edit > Project Settings > Player, where you can change Color Space to Linear.

More info on the [Unity Docs](https://docs.unity3d.com/Manual/PostProcessing-ColorGrading.html).

### Depth of Field

Objects become blurry depending on how far away they lie from the focal distance.

The Looking Glass Unity Plugin fork of PPv2 allows you to choose a DOF framing that best coincides with the optics of the Looking Glass associated to the Hologram Camera game object. To use this, ensure that `Snap To Focal Plane` is checked.

More info on the [Unity Docs](https://docs.unity3d.com/Manual/PostProcessing-DepthOfField.html)

### Vignette

This effect adds darkness to the corners of the image. This effect shouldn't be applied for scenes or cameras that move, but it can be effective in guiding focus on stationary scenes.

More info on the [Unity Docs](https://docs.unity3d.com/Manual/PostProcessing-Vignette.html).

## Troubleshooting Note

Sometimes PPv2 effects to not activate until after Unity begins running the game. If post-processing effects do not seem register, try resetting things by disabling / re-enabling Hologram Camera, then pressing the play button.


# Developing for iOS

[Download our Unity plugin here.](https://look.glass/unity)

Beginning in version 3.2.0 of our Unity plugin, you can now develop applications for iOS.

{% hint style="info" %}
Given the limited compute available on iOS devices, we recommend using very low polygon models. We typically create scenes with around 50,000 total polygons.

We are actively developing an optimized renderer for iOS. If you're interested in being a beta tester, please fill out [this form](https://lookingglass.typeform.com/to/nsnf8ias).
{% endhint %}

## Setting up your scene

We highly recommend starting with our sample scene — sample scene `9 - iOS Sample Scene`. This scene has an existing UI that handles the calibration loading logic and an example with interaction, framing, and a model for you to base your scene off of.

### Editing the UI

Under the Canvas object in the scene hierarchy, you'll find several objects that handle calibration loading:

* PageGetStarted — introduces the user to the app
* PageConnect — prompts the user to connect their iOS device to their Looking Glass
* PageSetupCalibration — guides the user through the calibration loading process
* DemoUI — the UI that will be displayed when the user has finished the calibration loading process
* PopUpCalibrate — a popup that appears when an existing calibration is loaded, informing the user which calibration is being used, and giving them options to test the calibration and load a new one
* PopUpTestImageVerify — guides the user through the test image verification step

Any of these pages can be adjusted or rebranded, however we strongly recommend you keep the user flow intact as these steps are critical to onboard your user successfully.

The exception to this is the DemoUI object, which is intended to be replaced with whatever UI you'd like to show for your UI after the calibration process is complete. If you delete the DemoUI outright, you should add your UI element to the list of pages on the `DemoIOSUIController` component on the Canvas.

<figure><img src="/files/Oo5tw99IyVInERuQw9kO" alt=""><figcaption></figcaption></figure>

### Editing the demo scene

The game object "DEMO" is what will display on the Looking Glass device once the calibration has been loaded. It features a bronze ox sculpture that the user can rotate and relight. It also features an alcove backdrop with shadow casting, which we feel is the best way to highlight content in Looking Glass devices (see our [3D design guidelines](/keyconcepts/3d-design-guidelines) for more details).

The simplest way to view your own content on the Looking Glass is to delete the ox sculpture and replace it with your own model. Simply delete the "Model Ox Head" game object and create a new object containing your model (note — there is a reflection probe child of the Model Ox Head object, you may want to retain this).

Once your model is in the scene, replace the "Target" object on the `ModelController` component on the DemoManager object.

<figure><img src="/files/ZsP5fQfQzvPMQjXD0rMv" alt=""><figcaption></figcaption></figure>

Additional customization is possible from here. You can replace the entire demo setup with your own content, interactions, lighting, and more. If you do so, it is best to place your new scene under a parent holder object so it can be managed by our calibration loading logic. Then, set this holder object as the "Template Scene" on the `DemoiOSUIController` component.

<figure><img src="/files/Oo5tw99IyVInERuQw9kO" alt=""><figcaption></figcaption></figure>

## Building your scene

Our Looking Glass Unity plugin is built to be compatible with Unity's standard iOS build system.

To build for iOS, select File -> Build Settings. Add your scene and select the iOS build target from the list of potential targets. If you haven't installed the build dependencies for iOS, you can do so through Unity Hub.

<figure><img src="/files/OR7SHiKiLlWKQkNmOCc5" alt="" width="563"><figcaption></figcaption></figure>

You can set the "Run in Xcode as" setting to either "Release" or "Debug" depending on your needs.

Select build and open the generated Xcode project in Xcode (note that you must be on MacOS for this stage of the build process). Select your target iOS device from the list of devices in Xcode, configure your signing certificates, and build for your device.

See more details on [Unity's documentation site](https://docs.unity3d.com/2022.3/Documentation/Manual/ios-building-and-delivering.html).

## Script reference

See our [scripting reference](/software/index/script-reference/ios-sample-scene-scripts) for the list of scripts used to support iOS and our sample scene.


# Depth of Field and Other Post-Processing Effects

In order to make scenes look good in your Looking Glass display, it's very important to use post-processing effects, **especially depth of field**. Depth of field applies an aesthetically pleasing blur to content off of the focal plane. See our [3D design guidelines](/keyconcepts/3d-design-guidelines) for more details.

## Post-Processing in BiRP

When using Unity's built-in render pipeline, you should leverage our fork of the post-processing stack. This is an additional package that is imported when you import our main Unity plugin. See details on how to use this package [here](/software/index/package-integrations/post-processing).

## Post-Processing in URP

To enable post-processing in URP, select the Hologram Camera and turn on the toggle for `URP Post-Processing`.

<figure><img src="/files/WyCu7GacjwXGFJQvsMz3" alt=""><figcaption></figcaption></figure>

With this enabled, the standard post-processing volume in the scene will affect your scene. Now, it's important to add an override for `Depth of Field` to the post-processing volume.

We highly recommend using the `Bokeh` setting in the `Depth of Field` effect as it gives far superior visual results. Once this is configured, set the `Aperture` to be very low - in our [URP sample scene](/software/index/example-scenes), I've set it to be 1.5. Then set the focal length to be quite high - I've set it to 80.

A low aperture and a high focal length will result in a heavy bokeh effect - this is what would be used in portrait photography, for example, which is analogous to how we can think about the limited depth range of Looking Glass displays. With both these values set, we now want to set the focal distance to be on the focal plane. In the sample scene, that is roughly a value of 2.

<figure><img src="/files/6SvezIBRTFFzECypZ5VY" alt=""><figcaption></figcaption></figure>

With all this configured, your scene should now look much more aesthetically pleasing! You can continue to use other post-processing effects to improve the scene, including `Tonemapping`, `Bloom`, and more.


# Quilt Video Audio and Playback

In addition to recording video content, it is possible to record audio and to play back quilt recordings in the Unity Editor. Both require some specific setups and workarounds to function.

## Recording Audio

To record the audio from your Unity scene, you must use [the Unity Recorder](https://docs.unity3d.com/Packages/com.unity.recorder@2.0/manual/index.html), an in-editor only utility.

To enable the Unity Recorder you must first import it from the Package Manager. The package can be found in the main Unity registry. Simply select the Unity Recorder from the Package Manager and select "Install". Note that in Unity 2018, you'll need to include enable preview packages in order to locate the recorder package.

![](/files/-MlR4kJM_KH6yZi-2_0R)

Ensure that your scene has a HoloPlay Capture object in it, and the HoloPlay Recorder component added to the object. You can see an example of this setup in scene "8 - Recording Example Scene" under the examples folder of the HoloPlay plugin.

You'll need to set the recording up to begin when you enter Play mode. To do so, you can add a script to your HoloPlay Capture object that calls HoloplayRecorder.StartRecord() in Start and ensures that HoloplayRecorder.EndRecord() is called when you exit Play mode. You can download an example script for your convenience [here](https://s3.amazonaws.com/static-files.lookingglassfactory.com/UnityPlugin/Extras/ToggleHoloplayRecorder.cs).

With the Unity Recorder package installed, go ahead and open the recorder window by pressing Window -> Recorder -> Recorder Window. Once the window is open, click the "Add Recorder" button and create an audio recorder -- this means it will only capture the audio from your scene.

![](/files/-MlR9rV9zJKBUpxzCr_d)

Most configurations of the audio recorder will be compatible, however I recommend that the "Target FPS" is set to match the frame rate on the HoloPlay Recorder component, and that "Exit Play Mode" is toggled on so that the video and audio recordings capture the same number of frames.

Now you're ready to press the "START RECORDING" button and capture your video and audio! Note that they will be separate files, and you'll need to combine them using video editing software of your choice.

## Playing Back Quilt Videos

It is possible to view a quilt video from within the Unity Editor using the [Video Player](https://docs.unity3d.com/ScriptReference/Video.VideoPlayer.html) component and the [override quilt property](https://s3.amazonaws.com/static-files.lookingglassfactory.com/UnityPlugin/Extras/ToggleHoloplayRecorder.cs) of Holoplay.cs.

First, import a quilt video asset into your project. Once imported, it's recommended to transcode the video with the following settings to ensure smooth playback - in particular changing the codec to be H264:

![](/files/-MlRMutzuo0O5qR6KCJ_)

Now, add an object with the video player component to your scene. You can do so by selecting GameObject -> Video -> Video Player. Add the quilt video to the "Video Clip" property on the component. Then create a new render texture and ensure that its resolution is set to match the resolution of the quilt video - for a Looking Glass Portrait, this is typically 3360 by 3360. Set this render texture to be the "Target Texture" for the video player component.

Next, add a HoloPlay Capture object to your scene - it can be found in your assets folder in Holoplay -> Prefabs -> Holoplay Capture. Open up the dropdown for "Quilt Settings" on Holoplay.cs, and set the "Override Quilt" texture to be the same render texture as the video player component's target texture.

![](/files/-MlROPcTnYgq5q4LppHb)

It's important to ensure that the quilt settings of the quilt video match the quilt settings of Holoplay.cs. In particular, make sure that the views and columns match the imported quilt video rows and columns. You can freely adjust the rows and columns of your HoloPlay Capture by setting the "Quilt Preset" to be "Custom" and changing the values of "View Columns" and "View Rows".

Now simply activate the preview window (Ctrl + E or ⌘ + E) and press play to view your quilt video.


# Developing for Ultraleap Hand Tracking on Looking Glass

{% hint style="warning" %}
This tutorial is provided for your convenience/rapid experimentation, but we do not regularly update the samples. As such, we highly recommend you follow the [documentation provided by Leap Motion](https://developer.leapmotion.com/unity) for production.
{% endhint %}

First, make sure you have all the right software:

* [The LEAP runtime installed (or updated to Gemini 5.0.0)](https://developer.leapmotion.com/gemini-v5-preview/)
* [LEAP SDK (aka core assets)](https://github.com/leapmotion/UnityModules/releases/tag/Release-CoreAsset-4.4.0)
* [Example scene including the full configuration of features we'll go over](https://dhtk4bwj5r21z.cloudfront.net/LKG%2BLEAP.unitypackage)

## How does the Leap Motion Controller work?

Unlike depth cameras like the Kinect or RealSense, the Leap Motion Controller doesn't actually generate a depth map. It does also use infrared emitters and receivers, but to get an isolated, high-contrast image of the hands. It then feeds the last few frames into some pretty amazing computer vision operations to get a feasible idea of what all your hand bones are doing. That happens in the continuous LEAP service (runtime), which the LEAP Unity SDK then queries for tracking information. The SDK itself is responsible for higher-level tasks like generating the colliders, meshes, pinch detection and so on.

## What is Ultraleap hand tracking good for in the Looking Glass?

The most straightforward use case for hand tracking may also be the most powerful: using the collider hands to interact with simple 3D physics never gets old. Sophisticated interaction is possible with (relatively solid) pinch detection and contextual UI's that pop out and attach to your hands.

## The LEAP runtime

If it doesn't appear to be running in the tray, you can search for a "Leap Motion Control Panel" program, which should start it up. The icon turns green when the LEAP is detected, and you can double click it to open the control panel. If your Leap Motion Controller has been sitting around since 2013 (or if you just want to make sure it's performing optimally) I'd advise using the calibrator on the troubleshooting tab. If you ever want to check the version, that's in the About tab.

## The LEAP SDK

I'd strongly recommend downloading [the example scene](https://dhtk4bwj5r21z.cloudfront.net/LKG%2BLEAP.unitypackage), which I've configured to be a pretty optimal starting point for LKG + Ultraleap. You could also start from one of the example scenes that come with the LEAP SDK, but most are set up for VR, with some stuff we don't want. Just don't even try to set it all up from scratch, that's asking for trouble!

To get it running, import the LEAP SDK, HoloPlay Unity Plugin, as well as the example scene all into one Unity project. Then open the LEAP+LKG scene. You should see this:

![leap and lkg](/files/-MWj9BEYnWI1tPfj8DPS)

## LeapServiceProvider/Controller

The central component of the LEAP SDK is `LeapServiceProvider.cs`, which usually lives on a "Leap Motion Controller" gameobject. Note this is distinct from LeapXRServiceProvider.cs, which is for headset-mounted tracking instead. The service provider draws a cone gizmo with white lines representing the tracking space of the LEAP, up to 2-3 feet away or so in meatspace. Scaling the controller object scales the cone and thus the range of motion of the hands in the scene. If the hands are a child of this object then everything will scale uniformly allowing you to make the hands fit your scene.

## The tracking space

As for positioning and scaling the tracking space, we generally let the visible area of the Looking Glass correspond to about a foot of physical height, starting at about 4 inches from the LEAP (the minimum for solid tracking). A more subtle consideration is the angle relative to the Looking Glass, which sits at a 61 degree angle to the table. Picture it this way: when moving your meat hands around on a plane parallel to your table, do you want the 3D hands to look like they're moving parallel to the table as well, or parallel to the bottom of the Looking Glass block? A conceptually accurate -29 degree offset always feels like too much for some reason, so I usually set it to somewhere in between, -15 degrees or so.

|                       |                                            |
| --------------------- | ------------------------------------------ |
| **Angled 0 degrees**  | ![0 degrees](/files/-MWj99Zea53LLBBTtYAb)  |
| **Angled 15 degrees** | ![15 degrees](/files/-MWj9BEaByciZpaUt6dR) |
| **Angled 30 degrees** | ![30 degrees](/files/-MWj99Zm3LFR1AweQewg) |

If you're moving or animating the HoloPlay Capture, you can make the controller a child of it to have the hands stay localized in-frame as the camera moves around. Keep in mind that changing the capture size will require you to manually scale and reposition the controller (and the pinch distance, see below).

## The hands

The hands in the example scene are made up of a few separate components:

* Graphical (meshes, renderers)
* Physical (colliders, rigidbodies)
* Attachments (transforms for connecting things to joints)
* Pinch detector (pinchy pinch)

### Graphical hands:

There are basic Capsule Hands made up of primitives, and the somewhat nicer rigged meshy ones called LoPoly Rigged Hands, which I use for everything.

### Physics hands:

There are hands that use box colliders and hands that use capsule colliders. I think capsules are almost always superior, unless you happen to have some particularly boxy fingers? Some of the prefabs contain wrist/arm colliders too, but only the capsule hands can actually draw meshes for the wrist/arm. I'd suggest simply deleting the "Forearm" collider objects if you're using the LoPoly Rigged Hands. *NOTE: If you do ever want to use these alternate prefabs, pull one of each hand (L/R) into the scene and replace the old references on the HandModels object.*

### Attachment hands:

These are very useful if you want to have something following or pinned onto a specific hand joint. ALWAYS USE THIS instead of trying to attach something to the graphics or physics hands, sometimes it re-generates those so any attachments might get lost.

The Attachment Hands component has a nice little window where you can toggle which bones have attachments, which summons new objects into existence. Any children you add to these will then be attached, and will pivot around the attachment point unless you zero out their local position and rotation.

![hand attachments](/files/-MWj9BEcIp-CHIiv-Adb)

In many cases, the palm transform point is the smoothest/most reliable, but there's plenty of times when you want something to follow or interact with only a fingertip. For that sort of thing, It's usually way easier to set up specific colliders and functionality on an attached object rather than on a part of the hand prefab itself.

There's also a script called AttachmentHandEnableDisable.cs which is critical in many cases- it enables/disables the attachments to match the state of the hand they're on. It's most often preferable to turn off the attachment when the hand disappears, rather than having it stick to the last tracked position. You need one for each hand, and they each need a reference to a hand. Yes, I do think this simple functionality should just be a bool in AttachmentHands.cs instead.

### Pinching:

PinchDetector.cs references a HandModel (either physics or graphics) and triggers UnityEvents upon pinch and release. The trigger distance is in world space and you'll need to change it if you scale the controller. If the "ControlsTransform" bool is true, the PinchDetector object will update to move around relative to the hand. This is a useful way to get the pinch position, the midpoint between the thumb and index fingertips.

## Final notes

* The attachment and pinch scripts don't actually need to be their own objects if you prefer to condense the whole setup.
* There's a key binding in the LEAP SDK that will override the HoloPlay Capture's ctrl+E toggle binding.
* We've occasionally seen the Leap Motion Controller struggle when going through USB hubs or questionable cables.
* It's also sensitive to infrared blasts from other equipment (vive lighthouses, depth cameras, roombas) and from direct sunlight, so keep that in mind.
* When installing the Leap Motion Controller on a desk or horizontal surface, in order to prevent malfunction, check "Auto-orient Tracking" in the Leap Motion Control Panel. This setting will assume the LED is at the front. Also, from the Visualizer, ensure that you are in "Desktop mode".


# Looking Glass Pro (Legacy)

{% hint style="info" %}
***only available for versions 1.2.0 to 1.3.1 -- you can download version 1.3.1*** [***here***](https://s3.amazonaws.com/static-files.lookingglassfactory.com/HoloPlaySDK/PublicBuilds/1.3.0/HoloplaySDK-1.3.1.unitypackage)
{% endhint %}

## Overview

The Plugin has build support for the 15.6" Looking Glass Pro. You can learn more about the features and specs of the Looking Glass Pro at the [Getting Started Guide](https://github.com/BryanChrisBrown/LookingGlass_Docs/tree/53bdbd07384ea038fa38692e7968556afecb54ef/Gettingstarted/pro/README.md).

Looking Glass Pro development requires Unity version 2018 or later.

## Reviewing the Example Scene

To fully load the example scene:

1. Open `Holoplay\Examples\9 - Pro Workstation`
2. Select the `Pro Workstation Manager (Looking Glass)` GameObject from the scene hierarchy
3. In the `Pro Workstation Manager` script, select the `Setup\Open Scenes` button

![pro-example-scene](/files/-MWj99wyyuCRPxURd8j3)

The `Setup\Open Scenes` button loads in the `_extendedUI` scene of the same name. This scene drives the UI on the Foldout 2D Display. If a scene doesn't exist by this name, this button will create it.

The additional example scene that gets incorporated includes:

* It's own `Pro Workstation Manager` game object, with the `Pro Workstation Manager` script field for `Display` set to `Foldout 2D`. This is required so that the scenes can identify which displays they drive.
* A canvas to manage the UI. Any Unity content is allowable here. Note: the canvas in this example scene has a layout that fits with the Foldout 2D Display.
* An IPC (Inter-process communicator) that sends events between the two scenes.

## Creating your Own Scene

While it's possible to create your own scene from scratch, the preferred route is by copying the example scenes and removing what you don't need and working from there.

Follow these steps if you'd like to start from scratch or if you'd like to integrate your existing project with the Looking Glass Pro.

1. Create a New Scene
2. Remove the default Unity camera and add a `HoloPlay Capture` to the scene, found in `Assets/Holoplay/Prefabs/`
3. Add a `Pro Workstation Manager` to the scene, found in `Assets/Holoplay/Prefabs/`
4. Select the `Pro Workstation Manager` from the scene hierarchy, and click `Setup/Open Scene`
5. Add a `Pro Workstation Manager` to the second scene
6. Set the second scene's `Pro Workstation Manager`'s `Display` to `Foldout 2D`

If the app requires UI elements on the Foldout 2D Display, this can be done using conventional Unity UI elements. If the app requires IPC between the two scenes, this can be done using the IPC example code provided in the demo.

## Building a Release

In order to support all Looking Glass Pro functionality, you must build your applications in an unconventional way. Unity's built-in build pipeline will not work. To build the proper way:

* Open File > Build Settings... and add both your scenes and click **Add Open Scenes** to add both scenes to the "Scenes in Build" field
* Close the Build Settings window
* Select any `Pro Workstation Manager` game object
* Click the **Build (Pro Workstation)** button in the `Pro Workstation Manager` script in the inspector

When building for the Looking Glass Pro, you must use the `Build (Pro Workstation)` button found in the `Pro Workstation manager`.

When your build is complete, it is ready to be transferred over to the Looking Glass Pro. If you want your build to auto-play on startup, consult the instructions in the setup guide.

## Support

If you have further questions or for further support, please reach out to one of our support specialists by emailing <support@lookingglassfactory.com>


# Additional Support

## Known Issues

* The Unity 6 Render Graph is not yet supported
* Changing the OS display settings (i.e. window arrangement) after casting to the Looking Glass can cause issues
* 3D cursor isn't supported in URP
* Initial frames recorded with the Quilt Capture component are black while calibration is initialized
* (Unity 2021) Scenes do not have full lighting when they are built but not open
* (Windows) Having the taskbar show on your Looking Glass device will offset the center of the 3D scene - it is recommended that you hide your taskbar on the Looking Glass.
* (Linux) The editor preview window may use an incorrect position in certain OS display arrangements.
* (Mac) Builds resize and reposition for a few seconds before appearing on the Looking Glass

## Troubleshooting

### Output additional logs

An `lkg-settings.json` file can be used to output additional logging information in a user-configurable manner. This is useful when debugging. It works in both the Unity Editor and builds.

The LKG Unity Plugin searches for it to be **next to (not inside of)** the Assets folder, to affect your project during development in the Unity editor, or **next to** your Unity build's main executable, as a plaintext file named `lkg-settings.json`.

#### Default Example

By default, there is no `lkg-settings.json` file. To populate the default file, you may select through the top menu bar in the Unity editor, `LookingGlass → lkg-settings.json → Reset`, and it will be created (if needed) and reset to the default values for you. This makes it easier to edit, since you can see the fields and customize them as you see fit for your own project and workflow.

The default `lkg-settings.json` should look like this:

```json
{
    "loggingFlags": "All",
    "queryingLoggingFlags": "None",
    "enableHologramDebugging": false,
    "hologramDebuggingKeys": [
        "LeftCtrl",
        "LeftAlt",
        "LeftShift"
    ],
    "skipUserGameViews": false
}
```

#### Fields

The `lkg-settings.json` format corresponds to our C# struct, `LookingGlass.LKGSettings`, which is documented in the C#-XML documentation comments.

> For easy access to viewing `LKGSettings.cs`, you may use the following default shortcuts if you're developing on Windows:
>
> * Visual Studio: Ctrl + T to search for codebase symbols, "LKGSettings" should appear.
> * VS Code: Ctrl + P to search all files by name, "LKGSettings.cs" should appear.

> Note that for ease of human editing, any enum values stored in `lkg-settings.json` are stored as their enum value string names.
>
> Thus, for example, the C# value of `BridgeLoggingFlags.None` will be serialized in the JSON file as the string, `"None"`, rather than `0`.

* **loggingFlags:** *(string (C#: BridgeLoggingFlags enum))*
  * Determines how much is logged with LKG Bridge by default, when using the LKGDisplaySystem (and internally, BridgeConnectionHTTP).
* **queryingLoggingFlags:** *(string (C#: BridgeLoggingFlags enum))*
  * Every couple of seconds, LKG Bridge is queried for the most up-to-date LKG displays connected to your system.
  * This overrides the amount of logging specifically for these API calls (over `"loggingFlags"`), since these calls can easily spam your Unity console/log file.
* **enableHologramDebugging:** *(bool)*
  * Determines whether or not hologram debugging snapshots can be taken.
* **hologramDebuggingKeys:** *(string\[] (C#:* [*UnityEngine.InputSystem.Key*](https://docs.unity3d.com/Packages/com.unity.inputsystem@1.11/api/UnityEngine.InputSystem.Key.html)*\[]))*
  * The keys to press that will take a hologram debugging snapshot, if hologram debugging is enabled (`"enableHologramDebugging"` must be set to `true`).
* **skipUserGameViews:** *(bool)*
  * When set to `true`, this forces non-Preview GameView windows (The user's GameViews) in the Unity editor to NOT have their resolution automatically match the Looking Glass.
  * This may be useful for example if you are developing with a high-resolution Looking Glass, but do not wish to slow down your Unity editor to render high-resolution GameViews.

### 3D image off-center in Editor

On Windows, if your 3D image is off-center, this is likely due to your taskbar being present on the Looking Glass device. To disable your taskbar, open "Taskbar Settings" on Windows and, under "Multiple displays," untoggle "Show taskbar on all displays."

If, for whatever reason, you're unable to hide your taskbar, you may use the Center Offset slider on the HologramCamera.cs component to adjust the center manually. This will only affect the editor and won't cause any issues in builds.

### Manually choose position of the Looking Glass window

There are some edge cases where our windowing solution will position the Looking Glass window incorrectly. To circumvent these cases you can try manually specifying the window position.\
\
Open your assets tab and click "Create" you'll see there's an option for "Looking Glass" -> "Manual Preview Settings"

<div align="left"><img src="/files/-Mezr1JPGEeCXn8-shgI" alt=""></div>

Once you've created the Hologram Camera Preview Settings you can check "Manual Position" and then modify the X and Y position. 0,0 is the bottom left of your main monitor. If your Looking Glass display is located to the right of an HD (1920x1080) monitor then the X and Y position would be 1920, 0. Since you're shifting it 1920 pixels to the right, and 0 pixels up or down.\
\
If your monitor is to the left of your main monitor, the X offset would be negative resolution of the looking glass display. For a Portrait, that would be -1536.

<div align="left"><img src="/files/-Mf3Tz3WfXcgBraX8MUw" alt=""></div>

## Helpful Links

For support, join our [**Discord**](https://discord.gg/lookingglassfactory), email us at **<developer@lookingglassfactory.com>**


# Change Log

## Looking Glass Unity Plugin v3.2.8

### New Features

* 27" support
* Render graph support
* New iOS scene setup wizard

## Looking Glass Unity Plugin v3.2.1

### New Features

* Fixed issue with the preview window on Unity 6

## Looking Glass Unity Plugin v3.2.0

### New Features

* Support for deployment to iOS devices
* Sample scene for building iOS apps
* Fixed issue on 3D cursor in BiRP

## Looking Glass Unity Plugin v3.1.2

### New Features

* Improved rendering on 16" devices
* Ability to set quilt texture filtering mode
* Bug fixes
  * Fixed stuttering bug on rotation script
  * Fixed color discrepancy in quilt screenshots in SDR
  * Fixed undo commands in Editor breaking the preview window

## Looking Glass Unity Plugin v3.0.5

{% hint style="info" %}
This is a major refactor that adds support for our latest hardware devices, but also may break backwards compatibility!
{% endhint %}

### Features

* Support for Looking Glass Go devices
* Support for Looking Glass 16” Light Field Displays
* Support for Looking Glass 32” Light Field Displays
* Post-processing support in URP
* Major API refactor, including changes to class names and calibration loading logic - may cause compiler errors when migrating existing projects!
* Bug fixes
  * 3D cursor prefab no longer throws an error on initial import
  * Quilt capture time and frame interval bug fix
  * Fixed quilt capture pausing bug that would record no frames
  * Fixed view interpolation rendering black views

## Looking Glass Unity Plugin v2.0.8

{% hint style="info" %}
This is a major refactor that includes many exciting new features, but also may break backwards compatibility!
{% endhint %}

### Features

* URP support (beta)
  * Post-processing and 3D cursor are not yet supported
* Apple Silicon support
* Improved Mac build handling
  * Mac builds now automatically appear on the Looking Glass without additional configuration
* Depthiness slider
  * A new tool to adjust how "depthy" your hologram is without affecting the scene's framing
* Transform mode
  * There are now two different modes to control the visualization of the hologram camera, "Volume" and "Camera"
* Hologram emulator
  * Visualize what the hologram will look like without a display connected with this Blocks-style renderer
* Quilt Capture script
  * Capture screenshots and videos from within the editor
* Direct to Blocks upload
  * Upload captured screenshots to Blocks from the Unity editor
* Render stacking
  * Layer 2D renders, quilt renders, and hologram camera renders together to create complex visualizations in the display
* Force display index toggle
  * Turns off our automatic windowing system to help raycast logic work better for dual monitor setups
* Major API refactor, including changes to class names and calibration loading logic - may cause compiler errors when migrating existing projects!

## HoloPlay Unity Plugin v1.5.0

### Features

* Improvements to Holoplay Recorder!
  * You can now import 3D video and record it with the Holoplay Camera without frame loss.
  * Referencing a clip in the "Video Clip" section of the Holoplay Recorder script will enable this functionality.
* Preview Window Fixes!
  * We fixed the issue with the preview window not showing up correctly on some monitor configurations. Multiple monitor set ups rejoice!
  * We received complaints about artifacts appearing on less than ideal set ups. This update includes fixes to help remedy them.
* Device Emulation Fixes!
  * We fixed an issue where device emulation was not updating correctly in some instances.
* API Changes!
  * We cleaned up the API fields and methods to make them more descriptive and improve readability. Below is a list of the fields updated. You can find the updated fields on [**Holoplay.cs**](broken://pages/-MWj9-0E7oWDFd5qTZlR)**.**

The following fields have been updated:

```
Holoplay.targetDisplay -> Holoplay.TargetDisplay
Holoplay.quiltSettings -> Holoplay.QuiltSettings
Holoplay.overrideQuilt -> Holoplay.OverrideQuilt
Holoplay.camDist -> Holoplay.CameraDistance
Holoplay.lightfieldMat -> Holoplay.LightfieldMaterial
Holoplay.clearFlags -> Holoplay.CameraData.ClearFlags
Holoplay.background -> Holoplay.CameraData.BackgroundColor
Holoplay.cullingMask -> Holoplay.CameraData.CullingMask
Holoplay.fov -> Holoplay.CameraData.FieldOfView
Holoplay.depth -> Holoplay.CameraData.Depth
Holoplay.renderingPath -> Holoplay.CameraData.RenderingPath
Holoplay.occlusionCulling -> Holoplay.CameraData.UseOcclusionCulling
Holoplay.allowHDR -> Holoplay.CameraData.AllowHDR
Holoplay.allowMSAA -> Holoplay.CameraData.AllowMSAA
Holoplay.allowDynamicResolution -> Holoplay.CameraData.AllowDynamicResolution
Holoplay.frustumColor -> Holoplay.Gizmos.FrustumColor
Holoplay.middlePlaneColor -> Holoplay.Gizmos.MiddlePlaneColor
Holoplay.handleColor -> Holoplay.Gizmos.HandleColor
Holoplay.drawHandles -> Holoplay.Gizmos.DrawHandles
Holoplay.size -> Holoplay.AdvancedCameraData.Size
Holoplay.nearClipFactor -> Holoplay.AdvancedCameraData.NearClipFactor
Holoplay.farClipFactor -> Holoplay.AdvancedCameraData.FarClipFactor
Holoplay.scaleFollowsSize -> Holoplay.AdvancedCameraData.ScaleFollowsSize
Holoplay.viewconeModifier -> Holoplay.AdvancedCameraData.ViewconeModifier
Holoplay.centerOffset -> Holoplay.AdvancedCameraData.CenterOffset
Holoplay.horizontalFrustumOffset -> Holoplay.AdvancedCameraData.HorizontalFrustumOffset
Holoplay.verticalFrustumOffset -> Holoplay.AdvancedCameraData.VerticalFrustumOffset
Holoplay.useFrustumTarget -> Holoplay.AdvancedCameraData.UseFrustumTarget
Holoplay.frustumTarget -> Holoplay.AdvancedCameraData.FrustumTarget
Holoplay.viewInterpolation -> Holoplay.Optimization.viewInterpolation
Holoplay.reduceFlicker -> Holoplay.Optimization.ReduceFlicker
Holoplay.fillGaps -> Holoplay.Optimization.FillGaps
Holoplay.blendViews -> Holoplay.Optimization.BlendViews
Holoplay.onHoloplayReady -> Holoplay.Events.OnHoloplayReady
Holoplay.onViewRender -> Holoplay.Events.OnViewRender
Holoplay.showAllObjects -> Holoplay.Debugging.ShowAllObjects
Holoplay.preview2d -> Holoplay.Preview2D
Holoplay.quiltPreset -> Holoplay.QuiltPreset
Holoplay.GetCamDistance() -> Holoplay.GetCameraDistance()
Holoplay.screenshot2DKey -> Holoplay.Screenshot2DKey
Holoplay.screenshotQuiltKey -> Holoplay.ScreenshotQuiltKey
Holoplay.quiltRT -> Holoplay.QuiltTexture

```

## HoloPlay Unity Plugin v1.5.0

### Features

:exclamation:= **Needs to be re-confirmed**

* (Windows ONLY) Added experimental support for screen DPI scaling for the editor preview window **(for basic horizontal display arrangements).**
* The Holoplay's single-view and final screen cameras now have their `stereoTargetEye` set to `StereoTargetEyeMask.None` for better XR support.
* Improved support for multiple Holoplay captures with the following new fields:
  * `Holoplay.targetLKGName`
  * `Holoplay.targetLKGIndex`
  * These fields allow you to directly control which LKG device connected to your computer to render to per-Holoplay object.
* Changed HoloPlay Service errors to log as warnings in the Unity console instead of info lines.

### Removed

* Removed Multiplexing support due to its complexity.
  * If you need to use Multiplexing features, please [contact us](/contacting-us).

### Bugfixes

* Fixed the HoloPlay preview window to work on at least the following versions:
  * (Windows) Unity 2018.4 to 2021.2
  * (MacOS) Unity 2018.4 to 2020.3
  * (Linux) Unity 2019.4 to 2020.3
* Fixed the editor preview window occasionally bleeding over monitors by about 8 pixels.
* Fixed various issues with the Holoplay inspector not properly saving.
* Encapsulated many previously-public fields, and deprecated many C# LookingGlass API properties that were named with `camelCase` conventions, and created new properties with `PascalCase` naming to adhere to general C# naming conventions and best-practices.

## HoloPlay Unity Plugin v1.4.3

### Features

* Improved robustness of HoloPlay window management.
* Added AssemblyDefinitions for the following:
  * LookingGlass
  * LookingGlass.Editor
  * Unity.Postprocessing.Runtime
  * Unity.Postprocessing.Editor

{% hint style="warning" %}
Your project may fail to compile in Unity temporarily if you are updating from a prior version to v1.4.3.

**If you are using AssemblyDefinitions for your code,**\
:hammer: Select your project's AssemblyDefinition asset(s), and make sure to reference the LookingGlass and/or LookingGlass.Editor assemblies, and hit "Apply" in the inspector.

**If you are still receiving errors stating&#x20;*****"The type or namespace name ... could not be found",***\
It may be because we had some scripts in the global namespace that were moved into LookingGlass and LookingGlass.Editor.

:hammer: To fix this, add `using LookingGlass;` or `using LookingGlass.Editor;` at the top of your C# scripts where needed.
{% endhint %}


# Looking Glass Studio

{% hint style="info" %}
On Windows and MacOS, Looking Glass Studio requires [***Looking Glass Bridge***](/software/looking-glass-bridge).
{% endhint %}

Looking Glass Studio is the offline playlist management application for your Looking Glass display.

With it, you can import holograms from a variety of sources, make minor edits to any hologram you create, and sync to your Looking Glass Portrait for Standalone Mode.

{% embed url="<https://lookingglassfactory.com/software/looking-glass-studio>" fullWidth="false" %}

To get started with Looking Glass Studio head to our [*Using Looking Glass Studio*](/software/looking-glass-studio/using-looking-glass-studio) page, this will get you set up with your first holograms and explain the UI of Looking Glass Studio.

{% content-ref url="/pages/-MZTiLivO4PPbL\_BsSzV" %}
[Using Looking Glass Studio](/software/looking-glass-studio/using-looking-glass-studio)
{% endcontent-ref %}

Looking Glass Studio can import a variety of photos and videos from different sources, to learn more about the file types supported by Looking Glass Studio, check out the following pages:

{% content-ref url="/pages/-MZTju5mk8I5HbmgMF4H" %}
[RGB-D Photo / Video](/software/looking-glass-studio/rgbd-photo-video)
{% endcontent-ref %}

{% content-ref url="/pages/-MZTjy\_frqzi8UJnmnOR" %}
[Quilt Images / Video](/software/looking-glass-studio/quilt-photo-video)
{% endcontent-ref %}

{% content-ref url="/pages/-MZTk24v4oKXSYvuX8Na" %}
[iPhone Portrait Photos](/software/looking-glass-studio/iphone-portrait)
{% endcontent-ref %}

{% content-ref url="/pages/-MZUeBixFRYQhHGdIxaa" %}
[Light Field Photosets](/software/looking-glass-studio/light-field-photosets)
{% endcontent-ref %}

{% content-ref url="/pages/Hl3Sv3TthFWYqye3MNOi" %}
[Android Depth Photos](/software/looking-glass-studio/android-depth-photos)
{% endcontent-ref %}

## Requirements

### Computer Requirements

Your computer must run Windows 10 or macOS 13 or newer and have USB-C and HDMI ports. Port requirements vary based on the Looking Glass system you're using.

{% hint style="warning" %}
Looking Glass Studio 1.7.0 Supports Windows and MacOS (Apple Silicon). MacOS 15.0 is required.

For Intel Mac Support or MacOS 13 and 14 Please use version [1.6.0](#previous-versions)
{% endhint %}

We recommend running Looking Glass Studio on computers with a dedicated graphics card. Computers that only have integrated graphics will provide a lower quality experience.

#### Graphics Performance

{% hint style="success" %}
For the best performance, we recommend using a computer with a graphics card equivalent to a GTX 1650 or higher.
{% endhint %}

If your computer has two graphics cards, Looking Glass Studio will always attempt to use the higher performance card, but this sometimes fails.

If you are using a Windows computer and are seeing performance issues, you can manually force this using these steps:

* Press the Windows Key and type "Graphics Settings"
* In Graphics Settings, under "Desktop app" select "Browse" and browse to your installation of Looking Glass Studio, by default it is located here:

`C:\User\[USERNAME]\AppData\Local\Looking Glass Studio` - where `[USERNAME]` is your username.

* In "Options", select "High Performance"

### Required Software

For Looking Glass Studio to run, you must have [Looking Glass Bridge](/software/looking-glass-bridge) installed.

Once downloaded and installed, ensure your Looking Glass Portrait is connected and in Desktop Mode before opening and using Looking Glass Studio.

## Previous Versions

If you would like to be prompted to update automatically, please select `Menu > File > Preference`s and check "Automatically check for updates"

* 0.3.1-beta: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-0.3.1-beta.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.0.3.1-beta.dmg)
* 0.3.2-beta: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-0.3.2-beta.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.0.3.2-beta.dmg)
* 0.3.4-beta: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-0.3.4-beta.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.0.3.4-beta.dmg)
* 0.3.5-beta: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-0.3.5-beta.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.0.3.5-beta.dmg)
* 0.3.6-beta: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-0.3.6-beta.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.0.3.6-beta.dmg)
* 0.3.7-beta: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-0.3.7-beta.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.0.3.7-beta.dmg)
* 1.0.0: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-1.0.0.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.1.0.0.dmg)
* 1.0.1: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-1.0.1.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.1.0.1.dmg)
* 1.0.2: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-1.0.2.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.1.0.2.dmg)
* 1.0.3: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-1.0.3.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.1.0.3.dmg)
* 1.0.4: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-1.0.4.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.1.0.4.dmg)
* 1.0.5: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-1.0.5.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.1.0.5.dmg)
* 1.1.0: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-1.1.0.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.1.1.0.dmg)
* 1.1.1: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-1.1.1.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.1.1.1.dmg)
* 1.2.0: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-1.2.0.Setup.exe), [macOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.1.2.0.dmg)
* 1.3.0: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio-1.3.0.Setup.exe), [MacOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/HoloPlayStudio.1.3.0.dmg)
* 1.5.0: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/LookingGlassStudio-1.5.0.Setup.exe), [MacOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/LookingGlassStudio-1.5.0.dmg)
* 1.5.1: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/LookingGlassStudio-1.5.1-Setup.exe), [MacOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/LookingGlassStudio-1.5.1.dmg)
* 1.6.0: [Windows](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/LookingGlassStudio-1.6.0-Setup.exe), [MacOS](https://dhtk4bwj5r21z.cloudfront.net/HoloPlayStudio/PublicLinks/LookingGlassStudio-1.6.0.dmg)

If you're having issues with Looking Glass Studio you can check out our [**troubleshooting page**](/software/looking-glass-studio/troubleshooting)**.**

If those resources don't help solve your issue, email us at `developer@lookingglassfactory.com`


# Using Looking Glass Studio

## Application Layout

When you first open Looking Glass Studio you'll be greeted with a page that has a few different options.

The first thing you'll want to pay attention to is the add hologram panel.

<figure><img src="/files/3ItUPHvIBDt8N2lZGoT2" alt=""><figcaption></figcaption></figure>

### Add Hologram Panel

Drag and drop holograms directly into Looking Glass Studio! Simply select your file in File Explorer or Finder, then drag it anywhere on Looking Glass Studio.

Once you've dropped your file, you'll be prompted to choose the type of hologram and select "OK".

{% hint style="info" %}
You can drag & drop multiple files at the same time.
{% endhint %}

<figure><img src="/files/KJUFlPnwU6mtQkKlT5gh" alt=""><figcaption></figcaption></figure>

<table data-header-hidden><thead><tr><th width="290">Format</th><th>Description</th></tr></thead><tbody><tr><td>Format</td><td>Description</td></tr><tr><td><a href="/pages/-MZTk24v4oKXSYvuX8Na">iPhone Portrait Mode Photos</a></td><td>an iPhone-photo mode that includes depth data that can be used to create holograms</td></tr><tr><td><a href="/pages/-MZTju5mk8I5HbmgMF4H">RGB-D Images / Video</a></td><td>an image / video format with RGB data in one half and depth data in the other</td></tr><tr><td><a href="/pages/-MZTjy_frqzi8UJnmnOR">Quilt Images / Video</a></td><td>a compressed Looking Glass light field image / video format (<a href="/pages/-MWj8zydpd_ix67Qkk7v">more info about this standard</a>)</td></tr><tr><td><a href="/pages/-MZUeBixFRYQhHGdIxaa">Light Field Photosets</a></td><td>a folder of images of a subject, each photo being slightly offset horizontally from one another</td></tr></tbody></table>

### Playlist Panel

<figure><img src="/files/AjfPKRxO6pbOZUXer4K6" alt=""><figcaption></figcaption></figure>

The middle panel of the application is the Playlist Panel, which lists the holograms that are to play on your Looking Glass display.

By right-clicking on a hologram or by clicking on a hologram and selecting the `Edit` item from the application menu, you can do the following:

* **Duplicate:** creates a copy of the hologram. Useful if you'd like the playlist to highlight different sections of a given hologram.
* **Edit Length:** changes the playback length of hologram images (*note: video length cannot be edited in Looking Glass Studio*)
* **Delete:** removes a given hologram and all of its property data from the playlist
* **Rename**: changes the display name of the hologram in Looking Glass Studio
* **Export:** exports the selected hologram as a `.hop` file, allowing you to share the exact settings you've chosen in Looking Glass Studio with another Looking Glass user or application.

In addition to this menu, you can also:

* **Rearrange** holograms by clicking and holding on a playlist item and dragging it above or below other holograms in the playlist
* **Add new holograms** by dragging and dropping, or by opening your file browser via the Add Holograms panel.

### Playback Bar

The Playback Bar, underneath the Playlist Panel, lets you control how content is played on the Looking Glass while in Desktop Mode. These buttons will seek to the previous and next hologram and advance or pause the playback.

### Properties Panel

Whenever a hologram is selected in the Playlist Panel, the right side of the application will show that hologram's properties. Adjusting those properties will change how that hologram appears in your Looking Glass. Each format has different properties.

### Syncing (only applicable for Looking Glass Portrait) <a href="#syncing-to-your-looking-glass-portrait" id="syncing-to-your-looking-glass-portrait"></a>

To sync your playlist to your Looking Glass Portrait for Standalone Mode, you must first have your Looking Glass Portrait plugged into your computer and running in Desktop Mode.\
\
Make sure the USB-C cable is connected to the computer.

Once your Looking Glass is ready, click on the "Sync" button. The syncing process will take some time, especially if you have a long playlist with many videos.

Ensure that you do not close Looking Glass Studio during syncing.

Once syncing is complete, your Portrait will be ready to play your new holograms in Standalone Mode.

{% hint style="info" %}
Syncing will replace the default holograms with a new playlist based on the holograms you put together in Looking Glass Studio.\
\
If you'd like your content to play alongside the demo content without resyncing the demo holograms, see the instructions on how to do that [**here**](/software/looking-glass-studio/troubleshooting#manually-editing-your-playlist-files).
{% endhint %}


# Studio for iOS

Formerly called Hologram Video, Looking Glass Studio for iOS brings holographic media playback functionality to iOS devices.

{% hint style="info" %}
Access Looking Glass Studio for iOS via [the App Store](https://look.glass/app/hologram-video-player).
{% endhint %}

This app lets you load and play a variety of hologram image and video formats. You can:

* Load quilt images and videos generated using our [Unity plugin](/software/index) or other [creator tools](/software/creator-tools)
* Load RGBD images and videos generated with tools like [Depth Anything](https://github.com/LiheYoung/Depth-Anything), [DepthCrafter](https://huggingface.co/tencent/DepthCrafter), and [Owl3D](https://www.owl3d.com/)
* Load Cinematic videos shot on an iPhone 15 or later

<figure><img src="/files/EljkLE2NkdjpbwoQ62nC" alt=""><figcaption></figcaption></figure>

## Setup: loading calibration

{% hint style="info" %}
For Go devices, you must have firmware v1.0.59 or later in order to load calibration. See additional instructions on [hardware setup for iOS here](/getting-started/running-looking-glass-displays-with-ios-devices).
{% endhint %}

To run LKG Studio, you must first select the calibration file for your Looking Glass device. When you run your application, you will be prompted to:

* Connect your device via USB-C
* Load a calibration file via the file browser. Calibration files are under Locations -> LKG-XXXXXX (your device serial number) -> LKG\_calibration -> visual.json. Select the visual.json file
* Your calibration is now loaded — applications will store this for future use

<figure><img src="/files/31m7s7Ugo6bde82UZhsf" alt=""><figcaption></figcaption></figure>

## Supported file types

Looking Glass Studio loads image and video files of quilts, RGBD, and Cinematic videos. It supports:

* MP4
* MOV
* JPG
* PNG

Content encoded to different formats (for example, WEBM) will need to be re-encoded. You can do so with an encoding tool like [FFmpeg](https://ffmpeg.org/) using the following command:

`ffmpeg -i input.webm output.mp4`

For 8K video content, it's recommended you use HEVC/H265, which can be done with the following command:

`ffmpeg -i input.webm -c:v libx265 -c:a aac output.mp4`

## Loading Cinematic videos

Cinematic videos can be captured on iPhone 15+ devices. Earlier iPhone devices can also capture Cinematic video, but it is of lower quality, so we recommend capturing content on these more modern phones.

To capture a Cinematic video, open your Camera app on your iPhone and select "CINEMATIC" from the options.

<figure><img src="/files/Snf41B87BPCti6rqP2ji" alt="" width="188"><figcaption></figcaption></figure>

### Loading on iPhones

With your video captured, you now need to load it into your app. If you are using your Looking Glass device with an iPhone:

* Open Looking Glass Studio on your iOS device
* Select the "+" button
* Select "Open Cinematic Video"
* Select your Cinematic video from the displayed options

### Loading on iPads

If you're using your device on an iPad, the process is trickier because you need to get the content onto your iPad. The easiest way to do so is via AirDrop, but you must follow specific steps in order to avoid the depth data being stripped out of the video, which Apple does by default.

As such, when running Looking Glass devices from an iPad, follow these steps:

* Open the Photos app on the iPhone
* Select the Cinematic video from your album
* Select the "Share" button
* Select "Options"
* Under "Format" select "All Data"
* Select "Done"
* Select "AirDrop"
* Find your iPad and select it
* Accept the file on your iPad
* Open Looking Glass Studio on your iOS device
* Select the "+" button
* Select "Open Cinematic Video"
* Select your Cinematic video from the displayed options

<figure><img src="/files/Mrp5QHKJaSc187hT7nZB" alt=""><figcaption></figcaption></figure>

After a short delay, your content will appear on your Looking Glass device.

## Loading RGBD images and videos

RGBD images and videos must have grayscale depth maps, and must be arranged with the depth data on the right and the color data on the left, as in the following image:

<figure><img src="/files/reza1TrkmKlYkWUkKAWz" alt=""><figcaption><p>Sample image with depth map.</p></figcaption></figure>

If your RGBD image/video appears as above, you're good to go! Simply make sure they are in your photo albums, press the "+" button in Looking Glass Studio, select "Open RGBD", and select the desired image or video. After a short delay, your content will appear on your Looking Glass device.

If you transferred your RGBD files to your iOS device using a file transfer system like Google Drive, you'll need to select the option to "Open Media from Files" as they will have downloaded to your iOS device storage rather than the Photos app.

## Loading quilt images and videos

To load quilts, you must first get the file onto your iOS device. To do so, you can either use a file sharing service like Google Drive or, if you're on a MacOS device, you can use AirDrop.

{% hint style="warning" %}
Currently we only support quilt files with the appropriate file name structure with quilt settings appended to the end — so `filename_qs8x6a0.56.mp4` for example. See more about our quilt standards [here](/keyconcepts/quilts#file-naming-conventions).
{% endhint %}

### Loading via AirDrop

{% hint style="info" %}
Please note that if you send quilt files via AirDrop from an iOS device, you must select "Options" -> "Format" -> "All Data" or your content may be reduced in size. Sharing with AirDrop from MacOS devices doesn't require this step.
{% endhint %}

* Navigate to your quilt file
* Select the "Share" button
* On iOS devices:
  * Select "Options"
  * Under "Format" select "All Data"
  * Select "Done"
* Select "AirDrop"
* Find your iOS device and select it
* Accept the file on your iOS device
* Open the Looking Glass Studio app
* Select the "+" button
* Select "Open Quilt"
* Select your quilt content from the displayed options

### Loading via Google Drive

If you prefer to use a cloud service instead of AirDrop, you can transfer quilt files to your iOS device using Google Drive.

* Upload your quilt file to Google Drive from your computer or another device
* On your iOS device, open the Google Drive app and locate the quilt file
* Tap the three-dot ("⋯") menu next to the file
* Select "Open in" or "Send a copy"
* Scroll through the list of apps and select "Save to Files"
* Choose a location in the Files app and tap Save
* Open the Looking Glass Studio app on your iOS device
* Tap the "+" button
* Select "Open Quilt"
* Browse to the location where you saved the quilt file and select it

## Playback controls

The playback control screen lets you control media playback, adjust settings, and add items to your playlist. It has different functionality for RGBD/Cinematic media and quilt media.

### RGBD and Cinematic media

<figure><img src="/files/2BqqaCjM7895OsgiA1qK" alt="" width="188"><figcaption></figcaption></figure>

The above screen shows the playback controls for RGBD and Cinematic video content. From this screen, you can do the following:

* Tap and drag the rectangle to change the framing
* Pinch on the rectangle to zoom in and out
* Play and pause the video
* Use the focus slider to adjust what is on the focal plane
* Use the depthiness slider to increase or decrease the perceived depth of the content
* Flip the depth map by pressing the "Black to white" or "White to black" buttons
* Select "View Depth Map" to show the depth map rendering on the Looking Glass device
* Select "Add to Playlist" to add the current item, including its settings, to the playlist
* Press the "+" button in the main nav and select a new file to change the content that is playing

### Quilt media

<figure><img src="/files/HAaGK3UMktyTglLGT1nG" alt="" width="188"><figcaption></figcaption></figure>

The above screen shows the playback controls for quilt content. From this screen, you can do the following:

* Tap and drag the rectangle to change the framing
* Pinch on the rectangle to zoom in and out
* Play and pause the video
* Use the focus slider to adjust what is on the focal plane
* Select "Add to Playlist" to add the current item, including its settings, to the playlist
* Press the "+" button in the main nav and select a new file to change the content that is playing

## Playlist screen

To add content to your playlist, press the "Add to Playlist" button on the playback controls page. Currently, only one playlist is supported.

<figure><img src="/files/PLjRfOeEAPzZmQ0K4rjk" alt="" width="188"><figcaption></figcaption></figure>

The playlist screen shows you current items in your playlist. You can access it by selecting the list view icon in the nav bar — the third from the left.

<figure><img src="/files/aMhDHRas6IDWJbpGbxdl" alt="" width="188"><figcaption></figcaption></figure>

Once you are in the playlist screen, you can play media using the playback controls. There are options for play, pause, previous, next, loop, and stop. You can also rearrange items by dragging them using the drag handle (⠿) icon.

Tap on a playlist item to play and pause it, and edit it by selecting the pencil icon. This will return you to the playback control screen, allowing you to adjust depth, focus, and other settings.

## Home screen

<figure><img src="/files/zdiyNeKTNfnH6qDBxwME" alt="" width="188"><figcaption></figcaption></figure>

The home screen provides useful buttons to help you get started.

* "View Your Hologram" lets you load your own media for playback on the device
* "View Hologram Video Sample" begins playing a sample Cinematic video
* "How to use Cinematic mode" takes you to an Apple tutorial on how to capture Cinematic video
* "How to load RGB-D video" links you to this documentation page on loading RGBD media
* "Learn more about our products" takes you to our product overview page
* "General Help" takes you to this documentation page

## Settings screen

<figure><img src="/files/pxQTdUG0X9v2ma7cXLYC" alt="" width="188"><figcaption></figcaption></figure>

The settings allow you to see information about your display (the serial number and resolution) and your iOS device's thermal state. It also provides controls to turn on or off the experimental renderer, access the debug screen, and show loaded calibration data.

### Debug screen

<figure><img src="/files/pu1NSqSosymY7iYc46zh" alt="" width="188"><figcaption></figcaption></figure>

This screen contains a number of controls that provide detailed control over your content and information about your media content and devices. It is intended for advanced users who need to better understand the state of their content and devices, and can be used for troubleshooting.

Options in the debug screen include:

* Display connection details — including serial number and resolution
* Option to reload calibration ("Load Calibration" button)
* Option to load media ("Load Cinematic Media" button)
* Options to change the rendering settings — switching to white to black depth ("W2B" button), black to white depth ("B2W" button), the new experimental renderer ("New" button), and the existing renderer ("Legacy" button)
* Options to enable and disable the depth rendering on the Looking Glass
* Framing controls — focus, depth, zoom, horizontal adjustment, and vertical adjustment
* Details on the currently playing media resolution
* Play, pause, and stop buttons
* iOS device thermal state information

## Support

If you hit any issues, please contact our support team at <support@lookingglassfactory.com> or contact us on [Discord](https://discord.gg/cKHmR4QT).


# RGB-D Photo / Video

RGB-D images and videos are assets that have color data on one side of the image, and depth data on the other side.

Examples of RGB-D images and videos are available for download below:

{% embed url="<https://blocks.glass/bryanlkg/8956?animate=true&theme=dark>" %}
Check out [Blocks ](https://blocks.glass)and convert any image into a hologram in seconds!
{% endembed %}

{% file src="/files/1EoOE3S7PnwSAS6Yu8FM" %}
Decorate a Christmas tree with our CEO and Co-founder Shawn's family
{% endfile %}

### Import into Looking Glass Studio <a href="#import-into-holoplay-studio" id="import-into-holoplay-studio"></a>

To import RGB-D images or videos into Looking Glass Studio you can:

* Drag and drop the file into Looking Glass Studio, then select the *RGB-D Photo/Video* option.

or

* Select the "Add Hologram" tab and click anywhere on the panel. This will open a File Explorer or Finder window where you can select the images(s) or video(s) you want to import.

### Editing with the Properties Panel <a href="#editing-with-the-properties-panel" id="editing-with-the-properties-panel"></a>

* **Depthiness** changes how depthy or flat the hologram appears
* **Focus** changes the focal plane of the hologram
* **Depth Position** describes which half of the image contains the depth information
* **Chroma Depth**, when selected, uses chroma (instead of grayscale) as the depth data
* **Depth Inversion**, when selected, inverts the depth of the image
* To pan and zoom, place your cursor in the Looking Glass window and scroll up or down to **Zoom**, and click and drag to **Pan**


# Quilt Images / Video

Quilts are compressed Looking Glass light field image and video format that arranges views in a tiled pattern ([read more about this standard](/keyconcepts/quilts)).\
\
Examples of quilt photos are available below:\
<https://look.glass/hopstudio-quilt-example1>\
<https://look.glass/hopstudio-quilt-example2>

### Import into Looking Glass Studio <a href="#import-into-holoplay-studio" id="import-into-holoplay-studio"></a>

Looking Glass Studio uses a filename convention to automatically import quilts with specific rows, columns, and aspect ratios.\
\
Before importing, do not rename files if they follow this convention for automatic configuration.\
\
The quilt naming standard is as follows:

{% hint style="info" %}
*filename\_qs**columns**X**rows**\_*&#x61;***aspect\_ratio***
{% endhint %}

To import quilt images or videos into Looking Glass Studio you can:

* Drag and drop the file into Looking Glass Studio, then select the *Quilt Photo/Video* option.

or

* Select the "Add Hologram" tab and click anywhere on the panel, this will open a File Explorer or Finder window where you can select the images(s) or video(s) you want to import.

### Editing with the Properties Panel <a href="#editing-with-the-properties-panel" id="editing-with-the-properties-panel"></a>

* **Rows**: the number of rows in the grid of the quilt
* **Columns**: the number of columns in the grid of the quilt
* **Advanced -> Aspect Ratio** By default, Looking Glass Studio will use your Looking Glass device's aspect ratio to determine how it should interpret quilt data. If quilt data needs to be a different aspect, you can specify in the advanced portion of the Properties panel


# iPhone Portrait Photos

Looking Glass Studio can make holograms from iPhone Portrait Mode photos that contain depth data.

### Taking Portrait Mode Photos <a href="#taking-portrait-mode-photos" id="taking-portrait-mode-photos"></a>

To take Portrait mode photos with your iPhone, [visit Apple's website](https://support.apple.com/en-us/HT208118).

{% hint style="info" %}
Looking Glass Studio does not support HEIC photos.
{% endhint %}

\
In your iPhone, browse to `Settings -> Camera -> Formats` and selecting `Most Compatible` to take photos in JPG.

If you have already shot HEIC photos, browse to `Settings -> Photos -> Transfer to Mac or PC` and select `Automatic` to transfer photos as JPG.

### Transferring your Portrait Photos <a href="#transferring-your-portrait-photos" id="transferring-your-portrait-photos"></a>

When transferring iPhone Portrait Mode photos to your computer, you can use any of the following transfer methods:

* iCloud
* the Native iPhone Mail app (make sure to send as "Actual Size")
* Google Photos (if syncing full-quality photos)
* Gmail (only on Android)

{% hint style="danger" %}
**Do not use the iPhone Gmail app, as it will delete necessary depth data in the transfer.**
{% endhint %}

### Import into Looking Glass Studio <a href="#import-into-holoplay-studio" id="import-into-holoplay-studio"></a>

To import Portrait photos into Looking Glass Studio you can:

* Drag and the file into Looking Glass Studio, then select the **iPhone Portrait Photo** option.

or

* Select the **Add Hologram** tab and click anywhere on the panel. This will open a File Explorer or Finder window where you can select the images(s) you want to import.

### Editing with the Properties Panel <a href="#editing-with-the-properties-panel" id="editing-with-the-properties-panel"></a>

* **Depthiness** changes how depthy or flat the hologram appears.
* **Focus** changes the focal plane of the hologram
* To pan and zoom, place your cursor in the Looking Glass window and scroll up or down to **Zoom**, and click and drag to **Pan**


# Android Depth Photos

Starting from Looking Glass Studio 1.2.0, we've added support for Android Depth photos from a range of Android phones.

To see if your phone is supported, import your photo as a Mobile Photo, and check the "Depth Inversion" checkbox upon import, if needed.

* <mark style="color:purple;">**Huawei Mate 20**</mark>
* <mark style="color:purple;">**Huawei Mate 20 Lite**</mark>
* <mark style="color:purple;">**Huawei Mate 20 Pro**</mark>
* <mark style="color:purple;">**Huawei Mate 20 X**</mark>
* <mark style="color:purple;">**Huawei P20 Pro,**</mark>
* <mark style="color:purple;">**Google Pixel 4**</mark>
* <mark style="color:purple;">**Google Pixel 5**</mark>
* <mark style="color:purple;">**Samsung Galaxy S9+**</mark>
* <mark style="color:purple;">**Samsung Galaxy A7**</mark>
* <mark style="color:purple;">**Samsung S10**</mark>
* <mark style="color:purple;">**Samsung Galaxy S10e**</mark>
* <mark style="color:purple;">**Samsung Galaxy S20**</mark>
* <mark style="color:purple;">**Samsung Galaxy S20 Plus**</mark>
* <mark style="color:purple;">**Samsung S21 Ultra**</mark>
* <mark style="color:purple;">**Samsung S21 Ultra 5G**</mark>
* <mark style="color:purple;">**Samsung Galaxy Z Fold 3**</mark>
* <mark style="color:purple;">**Samsung M30**</mark>
* <mark style="color:purple;">**Samsung Note 10+**</mark>
* <mark style="color:purple;">**Samsung S10+**</mark>
* <mark style="color:purple;">**Samsung S20 Ultra**</mark>
* <mark style="color:purple;">**Motorola DROID RAZR**</mark>

In addition to the list above, users from our community have confirmed the following phones as well:

* **Samsung Galaxy Note 9**
* **Pixel 6 Pro**
* **Moto G Power (2021)**
* **Pixel 3A**

### Editing with the Properties Panel <a href="#editing-with-the-properties-panel" id="editing-with-the-properties-panel"></a>

* **Depthiness** changes how depthy or flat the hologram appears
* **Focus** changes the focal plane of the hologram
* To pan and zoom, place your cursor in the Looking Glass window and scroll up or down to **Zoom**, and click and drag to **Pan**


# Samsung Portrait Mode

Page made possible by contributions from @Boris-Schneider-Johne on the Looking Glass Discord Server

{% hint style="info" %}
Note: Portrait Mode photos on the Samsung S20 need to be taken with the Rear Camera. Portrait Photos taken on the front cameras do not save the depth map.
{% endhint %}

## Taking Portrait Mode Photos

To create a photograph with a depth map, you need to set the camera to Portrait Mode. Other modes do not save the extra info. Portrait Mode photos are usually twice as large as usual as they store both the "normal" photograph, the photograph with blurred background/bokeh and the depth map (low resolution).

![](/files/Cu94W6Nh6nm8f9gBQqjz)

### Accessing Portrait Mode Photos in Samsung Gallery

To quickly find all the photographs you have taken with a depth map, open the Samsung "Gallery" App (Google Photos or other Gallery apps do not work).\
\
Scroll down to select by "Shot Type".\
\
Select "Portrait".

{% hint style="info" %}
If you are using a non-English phone, this might be mistranslated.\
\
In German this is called "***Hochformat***" in the app, which is a wrong translation
{% endhint %}

![](/files/r5lmdKDRBeeELmRyWLZV)

Here you will find a list of all photos with depth maps.\
\
Select the ones you want to use and then use the three dot menu to copy them to an album (which is really a folder on your phone).\
\
Transfer the photos from your phone to your PC.

![](/files/n6oQsVfhptfAo7NVBypC)


# Light Field Photosets

Light Field Photosets are folders of images, with each image being taken slightly horizontally offset from the last.\
\
For Looking Glass Studio to import a photoset, photos must be ordered (alphanumerically) from either right to left or left to right. As of Looking Glass Studio 1.0.4 you can switch the direction of the light field directly in Looking Glass Studio!\
\
Examples of Light Field Photosets are available below:

* <https://look.glass/hopstudio-photoset-example1>
* <https://look.glass/hopstudio-photoset-example2>

### Import into Looking Glass Studio <a href="#import-into-holoplay-studio" id="import-into-holoplay-studio"></a>

To import light field photosets into Looking Glass Studio you can:

* Drag and drop the first image of the photoset into Looking Glass Studio, then select the `Light Field Photoset` option.

or

* Select the **Add Hologram** tab and click anywhere on the panel. This will open a File Explorer or Finder window where you can select the images(s) you want to import.

### Editing with the Properties Panel <a href="#editing-with-the-properties-panel" id="editing-with-the-properties-panel"></a>

* **Focus** changes the focal plane of the hologram
* To pan and zoom, place your cursor in the Looking Glass window and scroll up or down to **Zoom**, and click and drag to **Pan**
* **Direction** changes the order in which the frames are read.

{% hint style="info" %}
If your photoset looks like it's moving left to right as you view it, try changing the direction, it's possible that it's using the incorrect direction.
{% endhint %}


# Exporting Holograms

Holographic Object Package (.hop)

In Looking Glass Studio 1.1, we introduced the **Holographic Object Package** **(.hop)** file format!\
\
\&#xNAN;**.hop** files are intended to be used as a sharing format that allow you to keep all your settings you've applied in Looking Glass Studio, like Depthiness, Focus, Quilt rows & columns and light field direction. Every type of hologram can be exported as a **.hop** file.\
\
To create a **.hop** file you'll need to right-click your playlist item, then select **Export.**\
\
Choose the folder you want your .hop file saved in, and then name it whatever you'd like!\
\
Looking Glass Studio will then export your hologram!

![](/files/-MhxqRrMZ8aXlr3kEIQx)

### Technical Details

{% hint style="info" %}
This information is for folks who want to build their own apps that can parse .hop files, if you're just looking to export and share .hop files you can ignore this section.
{% endhint %}

The .hop format is using the same compression style as a normal zip archive.\
\
You can rename a `hologram.hop` file to a `hologram.zip` file to view the contents inside the HOP file.

Currently, a HOP file will contain the source hologram (quilt, RGB-D, light field set) and a JSON file, which contains the settings used by Looking Glass Studio.

The JSON structure is the same regardless of the hologram type, however, there are settings that will not be used for certain holograms.

### General Settings

These settings apply to all three hologram types. **`position_x`** and **`position_y`** only apply once the Holograms have been zoomed in.

**position\_x:** controls the position of the hologram. Valid values are floats between **`-1`** and **`1`**.

**position\_y:** controls the position of the hologram. Valid values are floats between **`-1`** and **`1`**.

**zoom:** controls how zoomed in the hologram is. Valid values are floats between **`0`** and **`1`**.

**duration:** controls how long an image will be displayed, **for videos this is not modifiable.**

### RGB-D

The important settings for RGB-D are:

**depthiness:** Controls the extrusion of the 3D mesh in Looking Glass Studio. Valid values are floats between **`0`** and **`3`**.

**depthInversion:** Changes the direction of the depth. Valid values are **`true`** or **`false`**.

**chromaDepth:** changes the depth to use a hue/saturation based depth method, common in exports from DepthKit or Record3D. Valid values are `true` or `false`.

**depthPosition:** controls the position of the depth map relative to the RGB part of the image. Valid values are: **`top`**, **`bottom`**, **`left`** and **`right`**.

**focus:** controls the z-depth position of the 3D mesh in Looking Glass Studio. Valid values are floats from **`0`** to **`0.5`**

```
{
    "movie": false, //for videos this will be set to true.
    "mediaType": "rgbd",
    "quilt_settings": {
        "viewX": 1,
        "viewY": 1,
        "viewTotal": 80,
        "invertViews": false,
        "aspect": -1.0
    },
    "depthiness": 1.4299999475479127,
    "depthInversion": false,
    "chromaDepth": false,
    "depthPosition": "right",
    "focus": 0.25999999046325686,
    "viewOrderReversed": false,
    "zoom": 0.39708244800567629,
    "position_x": -0.11979150027036667,
    "position_y": 0.07582521438598633,
    "duration": 10.0
}
```

### Quilt

The important settings for quilts are:

**viewX:** number of columns. Valid values are whole numbers.

**viewY:** number of rows. Valid values are whole numbers.

**viewTotal:** total number of views. Valid values are whole numbers.

**invert views:** changes view direction. This is not currently used or recommended to change.

**aspect:** changes the aspect ratio of the footage. Valid values are any float.\
\
The valid aspect ratios for the different Looking Glass displays are:\
\
Looking Glass Go = 0.56\
Looking Glass Portrait = 0.75\
Looking Glass 16", 32", and 65" = 1.77

```
    "movie": false, // for videos this will be set to true.
    "mediaType": "quilt",
    "quilt_settings": {
        "viewX": 8,
        "viewY": 6,
        "viewTotal": 48,
        "invertViews": false,
        "aspect": 0.75
    },
    "depthiness": 1.0,
    "depthInversion": false,
    "chromaDepth": false,
    "depthPosition": "right",
    "focus": 0.0,
    "viewOrderReversed": false,
    "zoom": 1.0,
    "position_x": 0.0,
    "position_y": 0.0,
    "duration": 10.0
}
```

### Light Field Photoset

The important settings for light field photosets are:

**focus:** changes the focal point of the light field photoset, allowing you to change the focus. Valid values are floats between **`0`** and **`0.5`**

**viewOrderReversed:** changes the direction which the views of a photoset are loaded in.

```
{
    "movie": false,
    "mediaType": "photoset",
    "quilt_settings": {
        "viewX": 1,
        "viewY": 1,
        "viewTotal": 46,
        "invertViews": true,
        "aspect": -1.0
    },
    "depthiness": 1.0,
    "depthInversion": false,
    "chromaDepth": false,
    "depthPosition": "right",
    "focus": 0.0,
    "viewOrderReversed": false,
    "zoom": 1.0,
    "position_x": 0.0,
    "position_y": 0.0,
    "duration": 10.0
}

```


# Troubleshooting

## Extended Functionality 🧰

### Frame rate Cap and Bitrate Cap

The frame rate cap and bitrate cap options under the Tools menu can help improve syncing performance and sync time on lower-end systems.

![](/files/-MdEFPFoZRDvH08PvyNb)

### Enabling Auto-Updates

Auto-Updates can be enabled via the `File -> Preferences` menu.\
As of update, 1.0.1 automatic updates are **Disabled** by default.

![](/files/-MdEFbFhf0uYbVJ5cyQI)

## Known Bugs 🐛

### Forcing Looking Glass Studio to use the Dedicated Graphics Card

While Looking Glass Studio should automatically choose the dedicated graphics card on your system, there are cases where it is unable to do so.\
\
To force Looking Glass Studio to use your dedicated graphics card, open `Windows Settings -> Graphics Settings` and choose `Looking Glass Studio` from the drop down menu.\
\
You can find the Looking Glass Studio.exe file at the following path.

<mark style="color:orange;">**Make sure to use the LookingGlassStudio.exe in the**</mark> **`LookingGlassStudio/app-1.x`**<mark style="color:orange;">**folder.**</mark>

{% code overflow="wrap" %}

```
C:\Users\[username]\AppData\Local\LookingGlassStudio\app-[version]\LookingGLassStudio.exe
```

{% endcode %}

![](/files/-MdEGGUzqcb_zaf8OHNo)

### Crashes on launch

There are a few known cases where Looking Glass Studio will be unable to launch.\
\
If this happens to you, try adjusting the GPU via the above tip.\
\
If Looking Glass Studio still crashes after changing that please contact us at <developer@lookingglassfactory.com>.

### Glitches in synced content

If you encounter glitches in synced content, please ensure that your system is using the dedicated graphics card or try adjusting the bitrate and frame rate options. If you're still encountering glitches after that, please contact us at <developer@lookingglassfactory.com>.

### Crashes on startup in Japanese

{% hint style="info" %}
This is now **fixed** as of Looking Glass Studio version **1.1.2.** Please ensure you're running the latest version of Looking Glass Studio.
{% endhint %}

In prior versions of Looking Glass Studio there was an issue that led to a crash on startup on Windows 10 systems that use Japanese characters with Unicode in the fil&#x65;**-**&#x70;ath. We resolved this issue in Looking Glass Studio 1.1.2. You can download the latest version from our [**website**](https://lookingglassfactory.com/software)**.**

### **Portrait Photos from select Android Phones import in the wrong orientation**

This can occur due to some phones writing orientation data in a non-standard format. The easiest way to remedy this currently is to open the photo in a desktop photo viewer and save it again. This should fix the orientation meta-data and allow Looking Glass Studio to import it properly.

### Syncing Issues on AMD GPUs

{% hint style="info" %}
This is now **fixed** with the release of Looking Glass Studio **1.3.5.** Please ensure you're using the latest version of Looking Glass Studio.
{% endhint %}

In prior versions of Looking Glass Studio there were incompatibilities with AMD GPUs. Please use a version 1.3.5 or newer of Looking Glass Studio.

## Work arounds 👷‍♀️

### Syncing without the portrait connected to USB

If you are unable to power the portrait via the USB-C cable plugged in to your computer you can still sync to your portrait but it will take a few steps.

1. Plug the portrait into your computer but don't power it on.
2. Open the LKG drive that shows up in finder or in file explorer.
3. Copy the `LKG_Calibration` folder to the root of a separate USB drive or disk.
4. Unplug the portrait from your computer, and plug the USB-C cable into the provided power brick.
5. Ensure the HDMI cable is still connected to the computer and boot the portrait into desktop mode.
6. Open Looking Glass Studio and import your content.
7. Once you've got your content in Looking Glass Studio you can press "sync playlist." This will take some time and will write the files to the location where you copied the **LKG\_Calibration** folder to.
8. Once the files have finished syncing. Power down the Looking Glass Portrait and plug the USB-C cable back into your computer. Copy the synced files, `playlist.json` and `playlist.m3u` to your device.
9. When you reboot the device into stand alone mode you should see your holograms there.

### Syncing without HDMI connected

You can't currently sync to the Looking Glass Portrait without the HDMI connected.

### Backing up your playlists

While Looking Glass Studio doesn't have support for multiple playlists currently, you can back up playlists by copying the folder in `documents/Looking Glass Studio` and renaming it. Looking Glass Studio will only read playlist items from the `New_Playlist` folder.

### Multiple playlists on Looking Glass Portrait's stand alone mode

Official support for multiple playlists are currently on our roadmap. The following work around will explain how to switch between playlists without syncing.\
\
The playlists on Looking Glass Portrait are controlled by the *\`playlist.json\`* and `Playlist.m3u` files which are written when you sync your playlist in Looking Glass Studio.

If you want to switch between playlists there are a few ways to do this currently:

* Delete the *playlist.json* and playlist.m3u the Looking Glass Portrait will playback the files in alphabetical order.
* To switch between specific playlists you can copy the *playlist.json* and *playlist.m3u* file from your Looking Glass and save them on your computer. If you sync new content in Looking Glass Studio it will then make a new `playlist.json` and `playlist.m3u` file, which you can then replace with the old one manually via finder on mac or in file explorer on windows.

### Looking Glass Studio is unresponsive on Dell Alienware systems

Some Dell Alienware machines come with a preinstalled software called "*Nahimic*" which can mess with graphics drivers and other applications. In order to use Looking Glass applications you'll need to disable or uninstall this software. To do this you can follow the instructions here:

Click the Windows icon

* Type services
* Right click Services app
* Click Run as administrator
* Scroll down to *Nahimic*
* Right click for Properties
* Change Startup type to Disabled to stop the service
* Click Apply- OK

## Hacks 👨‍💻

{% hint style="warning" %}
This section is reserved for those looking to make custom modifications to their playlist files, this approach can be prone to user error, typos etc. Please use with caution.
{% endhint %}

### Manually Editing your playlist files

Part of the syncing process includes writing a ***`playlist.m3u`*** and &#x61;***`playlist.json`*** file to your Looking Glass. These files control which order your Looking Glass will load content in, and which content will be able to be played back in stand alone mode.

{% hint style="info" %}
Removing the playlist.m3u file will cause all content on your Looking Glass to play in alphabetical order.
{% endhint %}

The video player on your Looking Glass only uses `playlist.m3u` to determine the order of playback. You do not need to edit the `playlist.json` file as this is solely used to determine if holograms have already been synced.

#### `Playlist.m3u`

The `playlist.m3u` file is what your Looking Glass Portrait reads as the official playlist. It is organized in the following manner:

```
hologram1.mp4
hologram4.mp4
hologram2.mp4
hologram5.mp4
```

The playlist.m3u file is a single item per line file which refers directly to the synced/encoded holograms on your Looking Glass Portrait. To add a hologram that's already on your Looking Glass Portrait, but not present in the playlist file you must use the full file name and extension of the file. You should only point to .mp4 files encoded by Looking Glass Studio for proper playback support.

#### `playlist.json`

The `playlist.json` file allows Looking Glass Studio to read which files have been synced to your Looking Glass and determine if the files have changed or need to be synced again. It is organized as an array in the following format:

```
 [
   {
   "filename": "hologram1.png",
   "last_updated": "Wed Sep 15 12:06:40 2021",
   "needs_sync": false
   },
   {
   "filename": "hologram2.png",
   "last_updated": "Wed Sep 15 12:06:40 2021",
   "needs_sync": false
   }
 ]
```

## Recovery 🧑‍⚕️

### *Oops I've erased all my files on my Looking Glass!*

Your hologram files are stored in two locations. The raw, uncompressed holograms are stored in `Documents/HoloPlayStudio/New Playlist.` The encoded holograms are written to your Looking Glass Portrait during the syncing process. If you've just removed the video files, hitting "sync playlist" again will re-encode them onto your Looking Glass.

If you've removed ALL the files from your looking glass, send an email to our support team (`developer@lookingglassfactory.com`)and include your device's serial number. This will be a short code on the back of the device that starts with `lkg-` *Your serial number is **not** the same as your order number.* Our support team will promptly send you a few of the important files you need on your Looking Glass Portrait, and you'll be back up and running in no time.

### *I've accidentally formatted my Looking Glass' storage drive.*

Send an email to our support team and include your device's serial number. This will be a short code on the back of the device that starts with `lkg-` *Your serial number is **not** the same as your order number.* Our support team will promptly send you a few of the important files you need on your Looking Glass.

Ensure the Looking Glass Portrait's storage drive is formatted as ***fat32*** using a different format will cause the device to not be able to display holograms.

## We'd love to hear your suggestions ❤️

You can provide us with feedback or feature requests [**on Discord**](http://look.glass/discord)!

If you're having issues with Looking Glass Studio that you weren't able to resolve on this page you can reach us at **<developer@lookingglassfactory.com>.**


# Liteforms™

Liteforms™  is a holographic conversational AI character platform.

Liteforms is an open-source browser-based avatar chat app for creating and talking with an interactive 3D character. It renders a VRM avatar in real time, supports typed and spoken conversation, and can send the avatar view to a Looking Glass display through Looking Glass Bridge and WebXR.

[**Try Liteforms on your browser now**](https://liteforms.lookingglassfactory.com)

{% hint style="info" %}
Looking Glass Go support requires **Desktop Mode** and [Looking Glass Bridge](https://look.glass/bridge).
{% endhint %}

***

## Features

* Realtime 3D avatar scene with animation, expression, mouth movement, and lip sync
* Chat with the character using text or microphone input
* Character editor for name, pronouns, personality, greeting, and VRM avatar upload
* Built-in browser-local model options for LLM, text-to-speech, and speech-to-text
* Support for external LLM providers, including OpenAI, Anthropic, Google, OpenRouter, and OpenClaw
* Support for external speech providers, including OpenAI, Google, ElevenLabs, and Deepgram
* Looking Glass WebXR support for viewing the avatar on a connected Looking Glass display
* Browser-local storage for character settings, provider configuration, credentials, and uploaded VRM files

***

## Requirements

* A modern Chromium-based browser is recommended, especially for local models, microphone input, and audio playback
* Microphone permission if you want to use speech input
* Looking Glass Bridge if using a Looking Glass Go
* Looking Glass Go must be connected to a computer in Desktop Mode
* Optional: Node.js 20 or newer and npm if running Liteforms locally from source
* Optional: OpenClaw CLI and a configured OpenClaw Gateway if using OpenClaw Gateway as the LLM provider
* Optional: API keys or credentials if using external LLM, text-to-speech, or speech-to-text providers

{% hint style="warning" %}
Local browser models can be large. The first run may download model files into your browser cache and can take a while depending on your network speed and hardware.
{% endhint %}

***

## Setup

If you want to run Liteforms from the web, simply [go to the web page](https://liteforms.lookingglassfactory.com) and set up your service providers.

If you are running Liteforms locally from source, download or clone the [source code from GitHub](https://github.com/Looking-Glass/liteforms-web), install dependencies, and start the development server:

```bash
git clone https://github.com/Looking-Glass/liteforms-web.git
cd liteforms-web
npm install
npm run dev
```

Then open the local URL printed by Next.js, usually:

```
http://localhost:3000
```

If port `3000` is already in use, Next.js may choose another port.

### Connecting a Looking Glass Go

To use Liteforms with a Looking Glass Go:

1. Connect the Go to your computer with the USB-C cable.
2. Make sure the Go is in **Desktop Mode**, not Standalone Mode.
3. Install and run [Looking Glass Bridge](https://look.glass/bridge).
4. Open Liteforms in your browser.
5. If Liteforms shows a Bridge banner, confirm that Bridge is running and the Go is connected.

Once Bridge is connected, a "Hologram-iphy" button will appear under the character. Press it to enter hologram mode.

***

## First Launch

On first launch, Liteforms asks you to configure the character's model and speech pipeline.

### Select LLM

The LLM is the character's "brain." Choose a model provider from the **Select LLM** screen.

You can use a browser-local model, or connect an external provider. If the provider needs a credential, enter it in the credential field. Credentials are stored locally in your browser and are never shared with us.

### Use OpenClaw Gateway

OpenClaw Gateway lets Liteforms use your local OpenClaw agent as the character's LLM. Because OpenClaw Gateway runs locally on your computer, the most reliable path is to run Liteforms locally from source using the [instructions above](#setup).

OpenClaw's OpenAI-compatible chat-completions endpoint is disabled by default. Liteforms needs that endpoint enabled before it can use OpenClaw Gateway.

**Option 1: Ask OpenClaw to set up Liteforms**

The Liteforms repository includes an OpenClaw skill at:

```
openclaw-skill/liteforms/SKILL.md
```

OpenClaw skills are normally folders that contain a `SKILL.md` file. To make the Liteforms skill available to OpenClaw, place the skill folder in one of OpenClaw's skill locations:

* Global skill location: `~/.openclaw/skills/liteforms-web/SKILL.md`
* Workspace skill location: `<workspace>/skills/liteforms-web/SKILL.md`

On Windows, the global skill location is usually:

```
%USERPROFILE%\.openclaw\skills\liteforms-web\SKILL.md
```

After installing the skill, confirm OpenClaw can see it:

```bash
openclaw skills list
openclaw skills info liteforms-web
```

If OpenClaw does not show the skill after you add or update it, start a new OpenClaw session or restart the Gateway:

```bash
openclaw gateway restart
```

Then ask OpenClaw:

```
Use the liteforms-web skill to set up Liteforms with OpenClaw Gateway as the LLM provider.
```

OpenClaw should verify `git`, `node`, `npm`, and `openclaw`; clone or update Liteforms; install dependencies; enable Gateway chat completions; start or restart the Gateway; start Liteforms; and give you the local Liteforms URL. If Gateway auth is enabled, OpenClaw may retrieve the Gateway token and place it into Liteforms. Treat that token as a local secret.

**Option 2: Configure OpenClaw manually**

In an OpenClaw terminal, enable the Gateway chat-completions endpoint:

```bash
openclaw config set gateway.http.endpoints.chatCompletions.enabled true --strict-json
```

Then start or restart OpenClaw Gateway:

```bash
openclaw gateway
```

If your Gateway uses token auth, get the local Gateway token:

```bash
openclaw config get gateway.auth.token
```

Treat this value as a secret. Do not paste it into public logs, tickets, or shared screenshots.

In Liteforms, choose:

* Model provider: **OpenClaw Gateway**
* Model: `openclaw/default`
* Base URL: `http://127.0.0.1:18789/v1`
* OpenClaw Gateway token: paste `gateway.auth.token` or `OPENCLAW_GATEWAY_TOKEN` if Gateway auth is enabled

{% hint style="info" %}
If you want Liteforms to use a faster OpenClaw response mode, enable fast mode in the OpenClaw session or agent that Liteforms will call.
{% endhint %}

### Select Text-to-Speech

Text-to-speech is the character's voice. Choose a local voice model such as Kokoro, or connect an external voice provider such as OpenAI, Google, ElevenLabs, or Deepgram.

### Select Speech-to-Text

Speech-to-text controls microphone transcription. Choose the built-in Distil-Whisper option (English only), or connect an external transcription provider.

After configuration, select **Start Liteforms**. If local models are selected, Liteforms will show download progress before continuing.

***

## Using the App

Liteforms has two main areas:

* The avatar scene, where the 3D character is displayed
* The chat panel, where you edit the character, configure providers, and talk with the avatar

The default avatar is loaded automatically. If a custom VRM avatar was previously uploaded, Liteforms restores it from browser storage.

***

## UI Controls

### Character

The **Character** section is open by default. Use it to edit:

* **Name**: the character's display name
* **Pronouns**: the character's pronoun set
* **Personality**: the system prompt that guides how the character speaks and behaves

{% hint style="info" %}
If OpenClaw is selected as the provider, character identity is managed by OpenClaw's soul system. Switch to another provider to edit the character persona directly in Liteforms.
{% endhint %}

### Advanced Character Settings

Open **Advanced** inside the Character section to load a custom VRM avatar.

1. Select **Load VRM**.
2. Choose a `.vrm` file from your computer.
3. Wait for the avatar to load in the scene.

Use **Reset** to return to the default avatar.

The **Explore VRoid Hub** and **Explore OSA** buttons open external avatar galleries where you can find VRM-compatible characters.

### Settings

Open the **Settings** section to review the current model and speech configuration.

The Settings section shows:

* Model provider
* Model
* Voice provider
* Speech input provider

Select **Configure** to reopen the setup flow and change LLM, text-to-speech, or speech-to-text providers.

### Advanced Settings

Open **Advanced** inside the Settings section to view local model and provider tools.

This area includes:

* Local model download and cache status
* Cache usage
* **Clear** button for clearing local model cache
* **Test voice** button for testing text-to-speech
* **Test STT** button for testing speech-to-text

***

## Chat Controls

Use the message box at the bottom of the chat panel to type a message, then select **Send**.

Liteforms streams the response into the chat and plays speech when a voice provider is configured. The avatar's mouth movement follows the generated speech.

### Microphone Input

Liteforms supports three microphone modes:

* **Auto (default)**: starts listening and sends after a pause in speech
* **Tap**: tap once to start recording, then tap again to stop
* **Hold**: hold the microphone button while speaking, then release to send

Use the small mic mode control next to the microphone button to switch between modes.

If using a realtime voice provider such as Google Live or OpenAI Realtime, the microphone button starts or stops the live voice session instead of recording a short clip.

***

## Viewing on a Looking Glass Display

When a Looking Glass display is connected through Bridge, Liteforms can send the avatar scene to the display.

1. Confirm Bridge is running.
2. Confirm the display is connected and detected.
3. Select **Hologram-iphy** to start the Looking Glass WebXR view.
4. Select **Make it boring** to exit the Looking Glass view.

{% hint style="warning" %}
For Looking Glass Go, Liteforms requires Desktop Mode. If the Go is in Standalone Mode, Liteforms cannot display the WebXR avatar view on the device.
{% endhint %}

***

## Credentials and Privacy

Provider credentials entered in Liteforms are stored in browser-local storage. They are not committed to the repository and are not saved to a hosted account system by default.

Local model files are stored in the browser cache. You can clear them from the Advanced Settings section.

Uploaded VRM avatars are stored locally in the browser using IndexedDB when available.

***

## Troubleshooting

#### Bridge banner appears

Make sure Looking Glass Bridge is installed, open, and running. If using a Go, confirm that it is connected to the computer and in Desktop Mode.

#### The Go does not show the Liteforms view

Confirm that the Go is in Desktop Mode. Standalone Mode is used for the mobile app, Blocks sync, and playlists, but not for Liteforms.

#### Local models are slow to start

The first launch may download local model files. Wait for the model progress step to finish. On slower connections this can take several minutes.

#### Microphone does not work

Check that the browser has permission to use your microphone. A Chromium-based browser is recommended for the most reliable microphone and audio behavior.

#### Speech or chat provider fails

Open Settings, select **Configure**, and confirm the selected provider, model, endpoint, and credential. If using a provider API key, make sure the key is active and has access to the selected model.

#### OpenClaw Gateway returns 404 or 401

If Liteforms reports a `404` for `/v1/chat/completions`, rerun the OpenClaw chat-completions config command and restart the Gateway.

If Liteforms reports a `401`, confirm Gateway auth is enabled and re-enter the correct Gateway token from `gateway.auth.token` or `OPENCLAW_GATEWAY_TOKEN`.

***

## Support

For Looking Glass hardware or Bridge issues, contact Looking Glass support at <support@lookingglassfactory.com>.

For developer questions related to Looking Glass WebXR or Bridge integrations, contact <developer@lookingglassfactory.com>.


# Looking Glass Model Viewer

A user guide for the Looking Glass Model Viewer

{% hint style="info" %}
Download the Model Viewer [here](https://lookingglassfactory.com/software/model-viewer).
{% endhint %}

The Looking Glass Model Viewer allows users to easily import and view 3D models on their Looking Glass displays.

## Features

{% hint style="warning" %}
Note that the new CAD model support for STEP files is currently Windows only.
{% endhint %}

* Support for the full lineup of Looking Glass displays
* Supports gITF, GLB, FBX, OBJ, STL, PLY and STEP (for Windows only) model formats
* 3D cursor controls
* Animation controls
* Load and switch between multiple models
* Explode view (for non-skinned meshes)
* Slice view (for models other than glTF/GLB)
* Hierarchy view with show/hide and highlight controls

## Requirements

* Requires connected Looking Glass device
* Supports Windows 10/11, and MacOS (Apple Silicon only)
* We recommend Windows computers with a 3070 or better GPU and MacOS computers with a M2 Pro chip or better

## Setup

First, download and run the installers from the [downloads page](https://lookingglassfactory.com/software/model-viewer).

As our Model Viewer currently requires a connected Looking Glass display to function correctly, you next need to connect your device. See instructions on how to set up your hardware device [here](https://docs.lookingglassfactory.com/#looking-glass-displays).

Once your device is connected, ensure that [Looking Glass Bridge](/software/looking-glass-bridge) is downloaded and running, and that your displays settings are correct - instructions on Windows are [here](/software/looking-glass-bridge/display-settings-on-windows), and for Mac are [here](/software/looking-glass-bridge/display-settings-on-macos).

When the above is complete, run the app and wait for it to finish launching the Looking Glass view, which may take several seconds.

## Using the App

To use the app, select the import button on the left panel. This will open a file browser. Select the 3D model from your hard drive you'd like to load.

<figure><img src="/files/B7PECEudpxohTsb7vWEl" alt=""><figcaption></figcaption></figure>

Your model will begin loading. When it is finished (assuming there are no errors) you should see the model appear on both your regular monitor and the Looking Glass display.

### UI Controls

The loaded model will be added to a dropdown on the left panel - selecting between the models here will change what model is currently active/displayed.

Below that is a dropdown to change the background that is used.

* Box (default): a box-shaped background providing framing and depth cues
* Curved: a curved wall with a texture
* Simple: a flat wall with a drop shadow
* None: a black background

<figure><img src="/files/HkmoRtwRPEJUPSACxnuH" alt=""><figcaption></figcaption></figure>

If your imported model has animations, you will see a bar appear on the bottom of the UI with animation controls. The play/pause button will play or pause the animation, and you can change which animation is playing using the dropdown on the right-hand side.

<figure><img src="/files/T8HONMVWZO0Un7kTumcT" alt=""><figcaption></figcaption></figure>

Additionally, there are three sliders on the left panel to control the lighting and framing of your model.

* Background Depth adjusts the distance from the subject of the background
* Light Intensity adjusts the brightness of the scene
* Depth of Field intensity adjusts the amount of blurring applied to content off the focal plane

<figure><img src="/files/BEkTjyVNnzvMlc3KuSKF" alt=""><figcaption></figcaption></figure>

Below these three sliders are controls tailored to CAD workflows — explode view and slice.

The explode view slider can be used to explode a model with multiple parts. This functionality only supports models that don't use a skinned mesh.

The toggles for slice view can be used to see the internal components of models. You can toggle on each plane individually and then use the revealed slider to adjust how much you're slicing through the content. You can switch the orientation of the slice using the "Flip" toggle. The slicing planes are visualized by default but can be turned off by toggling the "Hide All Planes" toggle.

<figure><img src="/files/l07mFQLqjvQfzCLel8UJ" alt=""><figcaption></figcaption></figure>

On the right panel, you have a field that has all the submeshes of your model. Each submesh can be selected to highlight the component (turns it bright green). The eyeball icon can be selected to show or hide a submesh from the list.

<figure><img src="/files/iEmJ0UH1shFgzNoPzrYY" alt=""><figcaption></figcaption></figure>

### Mouse Controls

You can manipulate the 3D scene with mouse input. The mouse input controls are as follows:

* Left click and drag to rotate
* Right click and drag to pan
* Scroll wheel to zoom
* Double left click to set focus (when interacting on the Looking Glass display only)

**We recommend using mouse interaction on the Looking Glass display** because it is more fluid and gives you better control over the focal point. To do so, move your cursor to the Looking Glass display - you should see a red 3D cursor object appear in the scene.

## Support

If you hit any issues, please contact our support team at <support@lookingglassfactory.com>.


# Looking Glass Blocks

Let's turn the internet 3D, one block at a time.

{% hint style="info" %}
Looking Glass Blocks is currently available for everyone! Go [***sign up***](https://blocks.glass) today!
{% endhint %}

## What are Looking Glass Blocks?

Looking Glass Blocks simplify the delivery of 3D media across multiple platforms and devices with a single embed or link.

Blocks are shareable holograms that can be displayed on any device that can connect to the internet, be it your desktop PC, mobile phone, AR or VR headset and of course, your Looking Glass.

{% embed url="<https://blocks.glass/embed/606?dropshadow=true&wiggle=true&animate=false&frameT[%E2%80%A6]ro=false&permalink=true&blend=true&bg=null&theme=dark&aspect=1.77>" %}

Blocks are designed to be the highest quality viewing experience that each device can allow, this means that a block will display in full 3D on a Looking Glass or AR/VR headset, or be able to use the motion sensors in your phone to change the perspectives in lockstep with the rotation of the device.

## How does Looking Glass Blocks work?

Looking Glass Blocks takes the 3D information saved into a [quilt](/keyconcepts/quilts#overview) and displays it in the highest fidelity possible for each platform.

On desktop, you get an interactive window you can use your mouse to wiggle back and forth. On mobile your hologram moves with user-gesture controls or via the motion sensors in the phone. In AR/VR, you get a super-stereoscopic window that displays the hologram in stereo 3D.

With a Looking Glass connected to your PC, automatically cast holograms directly to your Looking Glass.

## How can I make holograms for Blocks?

Blocks supports two types of holograms, 3D Images, and Quilts.

### 3D Images

Blocks now supports uploading any image and will automatically convert it into a hologram!

Learn more about Image to Hologram [here](/community/convert-any-image-into-a-hologram), or try making one yourself! Here's an example!

{% embed url="<https://blocks.glass/embed/6743?theme=dark&aspect=1.75>" %}

### Quilts

Making quilts can be done in a variety of ways, but the most straight forward methods currently would be using our [Blender](/software/creator-tools/index-1), [Unity ](/software/index)or [Unreal ](/software/creator-tools/index)plugins. Each of these tools allow you to create quilts directly and upload them to Blocks so you can view them on your phone, desktop, Looking Glass or VR headset.

Check out the following pages for more information about how to make holograms! You can learn more about[ **uploading holograms here**](/software/looking-glass-blocks/uploading-editing-and-sharing-quilts)**!**

{% content-ref url="/pages/3veIdCXz8KRc87ptKPcO" %}
[Making great holograms](/keyconcepts/key-concepts/making-great-holograms)
{% endcontent-ref %}

{% content-ref url="/pages/eEOGDbpO3pUxWHDQ0dOq" %}
[Holograms in the real world](/keyconcepts/key-concepts/holograms-in-the-real-world)
{% endcontent-ref %}

{% content-ref url="/pages/SK2oRWDjEK0atfJD5aff" %}
[Holograms, but virtual](/keyconcepts/key-concepts/holograms-but-virtual)
{% endcontent-ref %}

## How can I view Blocks in VR?

Currently Blocks supports the Oculus Quest 1 & 2 via WebXR, to view Blocks in VR you'll want to click on a specific block that you want to view, and then select the VR Icon in the top right corner.

## How can I view Blocks on my Looking Glass?

Blocks can be viewed on your Looking Glass by using Blocks' casting functionality. You'll need to make sure your Looking Glass is connected to your computer and running in desktop mode, then hit the Cast button, this button is available at the top of the page or on each individual block. Check out the discover feed and try casting!

## How can I embed Blocks?

Blocks can also be embedded across the internet. Copy the embed code from blocks and you'll get the following snippet to put onto your website, blog, or article!

{% code overflow="wrap" lineNumbers="true" %}

```html
<div class="lkg-blocks-player" style="padding:56.18% 0 0 0;position:relative;"><iframe src="https://blocks.glass/embed/480" frameborder="0" style="position:absolute;top:0;left:0;width:100%;height:100%;" allow="autoplay; encrypted-media; xr-spatial-tracking; accelerometer; gyroscope; magnetometer" allowfullscreen mozallowfullscreen="true" webkitallowfullscreen="true" execution-while-out-of-viewport="true" execution-while-not-rendered="true"></iframe></div>
```

{% endcode %}

This embed code here is for the block shown earlier on this page! Try it out yourself!

{% embed url="<https://blocks.glass/discover>" %}


# Uploading, editing and sharing Quilts

Put your holograms on the internet. Share them with friends. The world needs more holographic cats 😺

## Getting started with uploading holograms

Once you have access to Blocks, click the blue ➕ icon on the top right. You'll see a new modal window like this, click on the `Light field` option.

<figure><img src="/files/4bO6rUSwAB2pfFr3J1Xh" alt=""><figcaption></figcaption></figure>

Drag and drop your quilt onto the page or click the "choose a file" option to manually navigate to your quilt image.

<figure><img src="/files/WovwNAV0ZYZq0maU8Sop" alt=""><figcaption></figcaption></figure>

Your hologram is now uploading...

<div align="center"><figure><img src="/files/7djWudbFafrh6eGbA5km" alt=""><figcaption></figcaption></figure></div>

## Editing your hologram settings

Now that your hologram has been uploaded you can edit the title, description, and tweak a few other settings.

<figure><img src="/files/lqL9mjsXlevkE0ugFlEz" alt=""><figcaption></figcaption></figure>

Make sure to give your block a great title and description. You can link to your portfolio or other sites in the description field as well.

<figure><img src="/files/jOnjgmDzxEDNmq2JS6Iv" alt=""><figcaption></figcaption></figure>

If your quilt has the file name "qs#x#a#" format in the file name, Blocks will automatically parse the correct number of columns and rows. If Blocks was unable to parse this no worries, you can manually edit these values by going to the *Settings* tab.

<figure><img src="/files/P0EaQMUK4AmivsyPfu8N" alt=""><figcaption></figcaption></figure>

The Settings tab gives you the option to adjust the columns, rows, views, and aspect ratio of the quilt.

**Aspect ratios:**

* **Looking Glass Portrait is 3/4 or 0.75**
* **Looking Glass 16", Looking Glass 32" and Looking Glass 65" is 16/9 or 1.77**

{% hint style="info" %}
You'll notice in this particular example we're missing 3 views from the top right corner, to compensate for this we can adjust the **Views** parameter from 48, to 45. This will prevent Blocks from sampling those regions of the quilt.
{% endhint %}

## Sharing your holograms

Once you've got your hologram uploaded you can share it directly to social media platforms like Twitter, Facebook or Linkedin, or copy and paste the link to send to your friends! Be sure to tag Looking Glass whenever you do share this so that we can help you amplify your content!


# Viewing your holograms on different platforms

Blocks allows you to bring holograms to a whole variety of different platforms, from desktops to tablets, mobile phones and VR headsets.

The internet runs on so many different device. This means your holograms will now be viewable there too! Here's a quick run-down of how Blocks are displayed on different devices.

<figure><img src="/files/XjqtHre5kg8RvsxtlCix" alt="A gif showing holograms on different platforms, like mobile, VR, and Looking Glass holographic displays"><figcaption></figcaption></figure>

## Desktop and Looking Glass

On your desktop you can hover your mouse over the hologram on Blocks to view it from different perspectives, you can also cast directly to your Looking Glass by clicking the "cast" button. In order to cast you will need a Looking Glass connected in desktop mode.

Try interacting with the hologram below by hovering your mouse button over it. (Aren't embeds neat?)

{% embed url="<https://blocks.glass/kidpsychic/665?theme=dark&aspect=1.75>" %}

### Casting holograms to your Looking Glass

{% hint style="info" %}
On [Blocks.Glass](https://blocks.glass) click the cast icon on the top right corner of any hologram to cast it to your Looking Glass. Your Looking Glass must be in desktop mode for this to work.
{% endhint %}

## Mobile phones and tablets

There are two main ways to interact with Blocks on mobile devices, you can use your finger to wiggle the block from side to side, or you can enable the accelerometer and physically tilt your phone left to right to see the hologram from multiple views.

#### Motion controls on mobile devices

{% hint style="info" %}
On iOS devices you'll need to enable a toggle to allow motion controls before they'll work. On android devices this feature should work out of the box, though it may not be possible on some android devices.
{% endhint %}

## VR/AR devices

Currently we've tested Blocks on Meta Quest 1 and 2, as well as Meta Quest Pro. If you've got a device, you'd like to see your Block on [let us know](/contacting-us) and we'll do our best to make sure it's supported.

#### Viewing holograms on Oculus/Meta devices

Open the individual hologram in the oculus browser, then click the "View in VR" option at the top right of the hologram. This will open up a WebXR session and allow you to view the hologram in stereo 3D. You can even move around and look at it from different angles.


# Creator Tools

While Unity is our primary creator tool, you can also create content with other pipelines.

<table data-card-size="large" data-view="cards" data-full-width="false"><thead><tr><th></th><th data-type="content-ref"></th></tr></thead><tbody><tr><td>Create holographic images and videos with our (open source) Blender add-on</td><td><a href="/pages/-MWj9-1QDiLVMyndrEi6">/pages/-MWj9-1QDiLVMyndrEi6</a></td></tr><tr><td>Create holographic images and videos with our Unreal Plugin.</td><td><a href="/pages/-MWj9-07OczrYgMQEcO0">/pages/-MWj9-07OczrYgMQEcO0</a></td></tr><tr><td>Create interactive holographic web apps with our (open source) WebXR library</td><td><a href="/pages/KCiJPVuIHoG460Q6v6zU">/pages/KCiJPVuIHoG460Q6v6zU</a></td></tr></tbody></table>


# Blender

Our Blender Add-on supports Windows, MacOS, and Linux.

This Getting Started Guide is for the Looking Glass Blender Add-on. Our Blender Add-on features:

* Support for both **Eevee** and **Cycles** rendering
* Non-destructive camera creation
* Quilt presets and support for custom quilt settings
* Support for regular and multi-view rendering systems
* Live-display of the camera view in the Looking Glass
* Live-display of your camera view as a [Blocks](https://blocks.glass) hologram

{% hint style="warning" %}
The current version of the add-on has known issues on Blender 4.x when using the live preview of the hologram. Other features are supported.

On MacOS, Blender 4.0 and later do not support the live preview. This is caused by a [known Blender bug](https://projects.blender.org/blender/blender/issues/116551) that we're waiting for the Blender team to resolve.

On Windows, Blender 4.2 does not support the live preview. We're still investigating the root cause of this issue.
{% endhint %}

## Introduction

In this guide we'll walk you through installing our Blender Add-on, using the Live Preview features and rendering out Quilt images and Animations!

## Requirements

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="https://look.glass/bridge"><strong>Looking Glass Bridge</strong></a></td><td>The connection between your computer and your Looking Glass.</td><td></td><td><a href="/files/QMEOJdKOOc7Ue0hRJ0Va">/files/QMEOJdKOOc7Ue0hRJ0Va</a></td><td><a href="https://lookingglassfactory.com/software/looking-glass-bridge">https://lookingglassfactory.com/software/looking-glass-bridge</a></td></tr><tr><td><a href="https://blender.org"><strong>Blender</strong></a></td><td>Open Source 3D Modeling Software.</td><td></td><td></td><td><a href="https://lookingglassfactory.com/software/looking-glass-studio">https://lookingglassfactory.com/software/looking-glass-studio</a></td></tr></tbody></table>

{% embed url="<https://vimeo.com/623626266>" %}

<figure><img src="/files/iRjBWBvGiXmSVViDRzh6" alt=""><figcaption></figcaption></figure>

### 1. Installing Blender <a href="#id-1-installing-blender" id="id-1-installing-blender"></a>

To Install Blender, download Blender 3.6 from [**Blender.org**](https://www.blender.org/download/lts/3-6/), as well as the latest version of our [**Blender Add-on**](https://github.com/regcs/alicelg/releases)[**.**](https://learn.lookingglassfactory.com/software/looking-glass-blender-add-on)\
\
Run the installer for Blender and open to the "general" workspace.\
\
From there, click on edit in the toolbar, then choose preferences. In the preferences window select the Add-Ons Tab, then choose install Add-On.\
\
Browse to your downloads folder and select the add-on. Note that this should remain zipped and does not need to be extracted.\
\
Once you've installed the add-on, enable it by clicking the check box and then click the small drop-down arrow to the left to expand the menu and click the red install dependencies button. This will allow the add-on to communicate with HoloPlay Service and enable the **live preview** features.

### 2. Using the Blender Add-On

Now that you've got the Blender Add-on Installed let's go through a few of the features you can use! Let's start by going over the User Interface.

#### User Interface

At first glance, it will look like nothing has changed, that's because the UI for the add-on is in blender's hidden menu bar. To access the UI select the small arrow next to the orbit gizmo and the scene outliner.

<figure><img src="https://assets-global.website-files.com/62b1e7ca6ca42995253b6d61/62f3fb6cdf9145043b230d27_blender_sidebar.webp" alt=""><figcaption></figcaption></figure>

Once you've expanded the UI toolbar you'll see a handful of tabs, like items, tool, view, and most importantly for us, **Looking Glass**!\
\
Select the Looking Glass tab and you'll see all the cool UI options present to use!

Now for the coolest part! Click on the eye dropper icon, and select your camera in your scene. Presto! You've now got a Looking Glass Capture volume! You can adjust the focal plane, near clip and far clip planes to best suit your model or scene.\
\
To show your model in the best light you should adjust the focal plane so that it intersects the model, as shown in the video. This will give the best result while keeping your model in focus and sharp.

<figure><img src="https://assets-global.website-files.com/62b1e7ca6ca42995253b6d61/62f3fb6cd0cfd52e3db0e24b_blender_camera.webp" alt=""><figcaption></figcaption></figure>

#### Live Preview

The settings for Live Preview are available at the top of the UI panel, you can change them between a variety of presets. The one you'll want to use depends on how large/demanding your scene is. Feel free to experiment here! To activate the live-view select the small square button next to the refresh button.

> 💡 Note: The Live preview viewport currently doesn't have proper color correction; this will be fixed in an upcoming hot fix release for Blender 2.93.

#### Rendering Quilts

To render out quilts simply set your rendering destination, just like any normal blender rendering, and click the **Render Quilt** button. This will automatically start rendering out the views in the quilt and once finished it will stitch them all together!

#### Rendering Tips

Rendering content for the Looking Glass can be demanding depending on which renderer or how heavy your 3D scenes are. For cycles we recommend using a lower number of samples with denoising turned on. Denoised images are almost identical in quality to high sample count renders and render out much faster than normal since you can lower the sample size to something like 32 samples for super quick renders!

It can substantially improve rendering times if you use the **Multi View Camera Mode**. This option is available in the addons menu after it is installed. Go to Edit -> Preferences -> Addons then select the Alice/LG Addon. Open the drop down and switch from **Single View Camera Mode** to Multiview.

<figure><img src="https://assets-global.website-files.com/62b1e7ca6ca42995253b6d61/62f3fb6c32f464d45de0719c_camera-mode.png" alt=""><figcaption></figcaption></figure>

### 3. Rendering Quilt Animations

{% embed url="<https://vimeo.com/624716606/18de2a130f>" %}

To render out quilt animations set your timeline duration and click the **Render Quilt Animation** button. This will render out a quilt as a .png file for each frame.

> 💡 Note: There is a current limitation with blender's eevee renderer in that it will slow down after \~100 frames. This can be resolved by restarting Blender.<br>

In order to view your quilt animation in HoloPlay Studio or share it with your friends/followers you'll need to compile those frames into a video.

You can do this directly in blender if you'd like! Open Blender and select the "video editing" preset. This will open a full video editor!

Change the resolution to match your quilt resolution, typically this will be 3360x3360 for Looking Glass Portrait. You should check this first by right clicking one of the frames y

### Rendering Tips

Rendering content for the Looking Glass can be demanding depending on which renderer or how heavy your 3D scenes are. For Blender's Cycles render engine, we recommend using a lower amount of samples with denoising turned on. Denoised images are almost identical in quality to high sample count renders and render out **much** faster than normal since you can lower the sample size to something like 32 samples for super quick renders!

In the Add-ons panel you can switch the **Single Camera Mode** option to **Multi Camera Mode** which can result in much faster renderings.

![](/files/4KkbbkP40DjFTnyQsKMN)

## Renderfarm Implementation (Experimental)

The rendering of still holograms and holographic animations can be a time-consuming task. Therefore, this add-on provides a command line mechanism that was created for renderfarms which want to support the quilt rendering by Alice/LG on their systems. Since it has not been tested on a renderfarm environment yet, this feature is considered experimental.\
\
If you are working at a renderfarm and need help to implement this mechanism on your system, please [open an issue on the add-on's GitHub repository](https://github.com/regcs/AliceLG/issues).

**Basic Command Line Calls**

As a first prerequisite, Alice/LG needs to be installed and activated on the renderfarm's Blender installation. To initiate a quilt rendering from the command line, there are two main calls which are understood by Alice/LG:

* `-alicelg-render`: Start the rendering of a single quilt.
* `-alicelg-render-anim`: Start the rendering of a quilt animation.

Both arguments require that Blender is started in background mode (i.e., using the '-b' command line argument) and with a .blend file specified, which contains all the necessary render settings. Furthermore, both arguments must be preceded by a `--`.<br>

An example, which opens the file 'my\_lg\_hologram.blend' and starts rendering a single quilt looks like that:

`blender -b my_lg_hologram.blend -- -alicelg-render`

**Additional Parameters**

The add-on also understands some additional parameters to fine-tune the rendering process. These parameters are very similar to Blender's internal command line rendering parameters:

* `-o` or `--render-output` `<path>`: Sets the render path and file name. Automatically disables the "Add Metadata" option.
* `-s` or `--frame-start` `<frame>`: Sets start to frame `<frame>`, supports +/- for relative frames
* `-e` or `--frame-end` `<frame>`: Sets end to frame `<frame>`, supports +/- for relative frames
* `-j` or `--frame-jump` `<frame>`: Sets number of frames to step forward after each rendered frame
* `-f` or `--render-frame`: Specifies a single frame to render

**It is important that these arguments are specified after the mandatory `--`** to notify Blender that the arguments are meant for the add-on.

An example call which would start Blender in background mode, load the 'my\_lg\_hologram.blend' file, and render a quilt animation from frame 10 to 24 with the base filename `quilt_anim`would look like this:

`blender -b my_lg_hologram.blend -- -alicelg-render-anim -o /tmp/quilt_anim.png -s 10 -e 24`

Another example, which would only render the frame 16 as a single quilt, would like this:

`blender -b my_lg_hologram.blend -- -alicelg-render -o /tmp/quilt.png -f 16`

### Authors

* [**Christian Stolze**](https://github.com/regcs)
* [**Gottfried Hofmann**](http://blenderdiplom.com/)

### License

The Blender add-on portion of this project is licensed under the [**GPL-3.0 License**](https://github.com/regcs/AliceLG/blob/master/LICENSE)**.**

### **Issues**

If you're having issues with our Blender Add-on please email us at **<developer@lookingglassfactory.com>.** You can also file an issue on [**GitHub**](https://github.com/regcs/AliceLG/issues)**.**


# Unreal Engine

Make Incredible Holograms with the Looking Glass Unreal Plugin!

{% hint style="info" %}
Our Unreal Engine Plugin is Open Source! Check it out on [Github](https://github.com/looking-glass/unreal)!
{% endhint %}

![The Looking Glass running with Unreal Engine 5 using Epic Games' Architecture Demo by Pasquale Scionti](/files/LoNZbxb0iRNJMblGjeUI)

The Looking Glass Plugin for Unreal allows you create holographic images and animations using Unreal Engine's cutting edge graphics.

{% hint style="warning" %}
Note: the Unreal Plugin is currently intended for cinematic exports. It can be set to run real-time, but the frame rate is low on most systems.
{% endhint %}

{% hint style="info" %}
[⬇️ **Download the plugin**](https://github.com/Looking-Glass/Unreal/releases/tag/1.7)
{% endhint %}

{% content-ref url="/pages/-MWj9--6tdfNFBUfTOff" %}
[Installing the Unreal Engine plugin](/software/creator-tools/index/setting-up)
{% endcontent-ref %}

{% content-ref url="/pages/SVseHkXwzoeLGri9o0bz" %}
[Using the Unreal Engine Plugin](/software/creator-tools/index/using-the-unreal-engine-plugin)
{% endcontent-ref %}

## What's new? :sparkles:

* Unreal Engine 5.5 support
* Support for the Looking Glass 27"displays

For more updates checkout the [change log](/software/creator-tools/index/change-log).

## Features

* Displays Unreal Engine content in the Looking Glass directly from the engine.
* Multi-view Rendering for improved performance, or Single View Rendering for improved content fidelity.
* Record quilt videos as PNG sequences from Unreal’s sequencer tool.

## Requirements

* Unreal Engine 5.5
* A computer running Windows 10 or 11
* RTX 3080 or better recommended
* [Looking Glass Bridge](/software/looking-glass-bridge) v2.5.0 or later

## Design Guidelines

Building experiences for the Looking Glass can be challenging because it's such a new medium. To make sure your demos really pop, take a look at our [Design Guidelines](/keyconcepts/3d-design-guidelines).

## We'd love to hear your suggestions 💜

If you're having issues with our Unreal Engine Plugin please email us at **<developer@lookingglassfactory.com>** or join our [Discord](https://app.asana.com/0/1201214626789016/1208207993577937/fhttps://app.asana.com/0/1201214626789016/1208218851021599/f).




---

[Next Page](/llms-full.txt/1)

