##
**Immerse Scenes** are Unity Scenes which have [integrated the Immerse SDK](🔗), been [built, compressed and uploaded to the Immerse Platform](🔗). Typically they are Zipped files containing a Windows executable, WebGL content and/or Android APK.
Once uploaded to the Immerse Platform, Immerse Scenes can be managed, shared and added to [Immerse Session](🔗), allowing them to be accessed by PCVR and browser participants. Uploading an APK allows a 6-digit PIN to be generated which is then input into a standalone VR headset to join a Session.

All scenes available are listed in the Scenes tab. This includes _My Scenes_, which are scenes that have been uploaded personally by you and _Shared Scenes_ which have been uploaded by other users in your organisation and shared.
Try out the Immerse Demo Scene!
Look in [vr.immerse.io/scenes ](🔗) for "SDK Demo Scene". Add this to an Immerse Session and invite other participants.
## Uploading a Scene
Log into the Immerse Platform and go to the _Scenes_ tab at [vr.immerse.io/scenes ](🔗).
Click the _[Upload scene]_ button. The Upload Scene window will appear.
Enter a scene name. The Immerse Platform supports PCVR, Web (browser) and Android scenes.
Upload file(s) (VR files must be .zip format, Web files can be .zip or .tar.gz.)
Note: The file size limit is 500 MB for Web and 1 GB for VR files.

**Upload Thumbnail (recommended)**. Choose an image to represent the scene in the scene list. (.png or .jpg format supported).
**Share scene (optional)**. If checked, any person in your organisation will be able to add this scene to a space.
**Add custom messages** (optional - see [below](🔗))

_[Save]_ Scene
<p align="center"><img src="https://files.readme.io/f3560ae-scene-thumbnail.png" alt="Trusted by DHL, GE, QinetiQ, Shell" style="margin-left: 0px; margin-top: 0px; " height="200"/></p>
The eye symbol signifies that the scene has been shared inside the user's organisation. The mail icon shows how many Custom Messages the scene contains.
## Editing a Scene
After an Immerse Scene has been created, its VR and WebGL files can be updated by clicking on the scene's thumbnail and uploading new versions.
## Custom Messages (advanced)
Custom Messages provide a way for objects, data and state to be synchronised across multiple users and persisted in an [Immerse Session](🔗).
Before deploying an application to the Immerse Platform, contact its developer to determine whether Custom Messages have been used in its creation.
Custom Messages are [defined directly in the Immerse SDK](🔗) and are also configured when an [Immerse Scene is uploaded](🔗) to the Immerse Platform.

Custom Messages defined in the Unity Editor, in the Immerse SDK
After uploading a zipped PCVR, WebGL or Android file (which has been built and compressed using the Immerse SDK in Unity and compressed, along with a "metadata.json" file) Custom Messages will be automatically configured for the corresponding Immerse Scene:

Uploading a WebGL application built with the Immerse SDK, automatically prefills its two Custom Messages
## How to manually configure Custom Messages
Take extra care when configuring Custom Messages
Any errors or typos could make the experience unstable, or even crash
Custom Messages are automatically configured when PCVR, WebGL or an Android file is uploaded, however it is possible to manually configure them too.
The example below defines an example '_XR Socket Service_' message:
Name | Type | Destination | Profile | Broadcast back to self? | Persist in session? |
_XR Socket Service_ | _2900_ | _Scene only_ | _Participant_ | _No_ | _Yes_ |
Click _Configure_ to edit the Scene's Custom Messages, as shown here:

Custom Messages configured in an Immerse Scene
Once in the Scene Message Configuration window, Messages can be added, deleted and modified. When all messages have been added correctly, hit _[BACK]_, then _[SAVE]_