Tutorials below are covering WebGPU-Dev release branch.  If you plan to use this branch, please email us at info@vertexform3d.com to sign up for developer updates.


PACKAGE CONTENT


The Vertex Form 3D Unity repository is an all-in-one framework for building cross-platform, standalone virtual reality applications. The framework requires a set of API keys, easily obtained from third-party providers, such as Photon (multiplayer), and Cesium (geospatial data). All other components are configured directly within Unity and can be fully customized, branded, and deployed under your organization’s name.


  • Unity 6000.3.11f1 
  • OpenXR 
  • Multiplayer with Photon Fusion 2
  • Login system 
  • Avatar selection 
  • Main UI & Settings UI (sit, mute, stand, megaphone, selfie-stick, emoji) 
  • Creator SDK - an array of useful tools to make object interactable, add teleportation area, a variety of dev tools and player tools. 
  • Scene switching, transition screen 
  • Player count in the rooms 
  • Scene database 
  • Local and Remote delivery 
  • Advanced addressable asset system
  • And more.

Move on to the Installation step


Installation


Please visit the GitHub repository (WebGPU-Dev) and download the ZIP file to your desired location. We recommend using Unity version 6000.3.11f1 LTS and installing the framework on the D:\ drive or another hard drive. If you install it in a folder nested too deeply, you may see a warning that the file path is too long. Unzipping the project directly to the C: or D: drive will resolve this issue. You may see some errors, but they can be safely cleared as they won’t affect the project. 


🌟 Don't forget to STAR this repository on GitHub! 🌟


To create a clean repository, make a new folder, name it Your App Name. Copy Assets, Packages, and User Settings folders into it.


Ensure the required platform modules are installed in Unity Hub. Go to Installs → Manage → Add Modules, and verify that Android, Windows, and Web modules are installed.




Open the project in Unity, and select desired platfrom. Vertex Form supports Android, Web, and Windows Desktops.




If the Project Validation window appears, select Fix All. Afterward, open the Console and clear any red error messages that are safe to resolve.


Move on to the next step: Exploring Project Structure


About the project structure

To explore available scenes, navigate to:
Assets → Vertex Form 3D → Scenes → Vertex Form 3D Scenes


In this folder, you’ll find the Core Scenes (Login, Home, and Addressable scenes), as well as Database Scenes, which are example environments including Hubs, Geospatial, and other scene types.






About the project structure

Core Scene Structure 

These core scenes are required to be included in the Build Profiles, and must always be included in the build (you can customize them with your own). 

  • Login Scene
  • Home Scene
  • Addressables Scene


Database Scenes (Addressable Scenes)

In this folder, you will also find Database Scenes — example scenes organized into:

  • Hubs
  • Other

These scenes come with a variety of prebuilt assets and setups to help you get started quickly.
You are free to reuse, modify, or extract any game objects from these scenes for your own environments. 

These scenes can be moved, added, removed, set to local or remote. 


  • These are configured as Local Addressable Scenes by default
  • This means they are included directly in your build (.apk, .exe or Web Build folders)

💡 As your app grows, you can switch these to Remote Addressables to reduce build size and optimize performance on devices like Meta Quest.
(This will be covered in a later step.)


Important: How to Test Your App

After setting up your multiplayer token (next step):

👉 Always start testing from the Login Scene

This ensures:

  • Multiplayer connection is working correctly
  • Core managers are initialized properly
  • Scenes are correctly configured in:
    • Addressables
    • Main UI Database

(These systems will be explained in upcoming steps.)


 


Move on to the next step: Setting up Multiplayer Token

MULTIPLAYER TOKEN 


1. To successfully test the project, you'll need a multiplayer token from Photon. You can obtain one by creating a free account at Photon Dashboard. Click on Create a New App.



2. Select FUSION from dropdown. Select Non-Gaming App if you plan to use the framework to create apps for education, training, medical simulation, collaboration, metaverse etc. For gaming apps select "Multiplayer game". Click "create".


Select Fusion in the "Select Fusion SDK" slot 

Select Fusion 2 (Recommended) in the Select SDK Version 


3. Create a new app again, this time select "voice"



Note the location of API ID's from FUSION and Voice and head back to Unity.



In the Vertex Form 3D SDK, open Project SetupOpen Fusion App Settings. Copy and paste your Fusion and Voice App IDs into the corresponding fields.



Move on to the next step: Platform Selection and Testing




Open Vertex Form 3D SDK, navigate to Platform Selection, and choose the desired platform. If you select Desktop or Web, you can test the app in third-person mode without connecting a headset.

There is no need to switch platforms inside Build Settings for testing. The system will automatically allow testing with either Desktop, VR or Web controls based on the selected platform inside the Vertex Form 3D SDK.


To test the app in First or Third Person mode, select WebGPU or Desktop. With the WebGPU selection, you can choose different browsers for testing. This simulates mobile browser controls.

To start testing, navigate to the Login Scene, and press Play. You will be able to play in Third or First Person.

Make sure to add your Photon API keys. Without them, the app will not be able to connect or enter any scenes.

Move on to the next step: Testing for VR (scroll back up.)

It is recommended to test often to catch any potential issues early. There are two ways to test VR without building an .apk file: via the LINK cable, and via the Unity editor using XR Device Simulator. 


ALWAYS START TESTING FROM THE LoginScene


TESTING USING XR DEVICE SIMULATOR 

This method is very useful for testing without access to a VR device or for multiplayer testing—when running on a headset while simultaneously joining from the editor using XR Device Simulator. 


Select VR as a platform from the Platform Selection.



Start the game. While the game is still in Play Mode, locate XR Device Simulator inside the Vertex Form 3D SDK and click on it. The XR Device Simulator will appear in the hierarchy and will remain there for the duration of the test.


You can use the WASD keys to move around and press Tab to switch between controlling the hands and the head. Do not use the mouse to rotate, as it will cause you to lose sight of your hands, use your head instead.


Use the XR Device Simulator panel to better understand the controls.

We've also added a convenient keyboard shortcut feature for UI access:

  • Press N to open the Main UI
  • Press M to open the Settings UI



If your game pauses when switching scenes, go to the Console window and uncheck "Pause on Error." These are not actual errors but debug logs, and unchecking this option will prevent unnecessary interruptions while testing.






TESTING VIA THE LINK CABLE: 


The cable included with your Meta Quest device is a charging cord, not the Link cable. To use the Link feature, you’ll need to purchase a compatible cable separately—either from the official Meta website or a more affordable alternative. After purchasing the link, follow these instruction to set it up. You may also consider enabling Air Link, though it has been found to be unstable.


To test the app via Unity using the link, you will have to open Rift Home. Open your headset, go to System - Link - Launch Link. It will open Rift Home. Get back to Unity and hit "Play." The game will start in your headset.  





At this stage, you may be eager to start customizing your environment. Please be patient and complete a clean build before making any changes. A good practice is to duplicate the project after the clean setup is finished and use the copy for customization, so you can always return to a clean project if needed. Follow the instructions below to build and test a clean project. The goal is to ensure your app runs successfully on the headset as a standalone application.





Move on to the next step: Making first build and headset testing 


ADDING AND BUILDING THE SCENES

A two-step process is required to add custom scenes into the app. Start by duplicating an existing example Scene or creating a brand-new Scene in the Scenes folder inside Assets. Remove default Main Camera.


Step 1: Adding Scenes to the Main UI Database


This step is necessary for scenes to appear in the Main UI. Open Vertex Form 3D SDK and Click on Main UI Database. Dock this window to the side of the Unity Editor so you can keep it open at all times.


By default, there are several categories: Hubs and Other. You can rename existing categories or add your own. You can create multiple scenes under a category. These categories are used in the UI, allowing users to sort and browse environments by category.


In the Main UI Database panel you can add a Category or a World withing the Category, by clicking on + to duplicate an entry. Rename it exactly as the new scene you just created. Replace the sprite (image) with a screenshot of the scene - this will show up in the Main UI as a scene preview. You can change the order of the scenes or remove the scenes from the Menu by clicking -.


  •  Category – Used to group and organize your worlds by theme (e.g., Games, Geospatial, Hubs).
  • Worlds – Individual scenes that belong to a category.

In the Main UI at Runtime, your users will be able to sort these worlds from the sorting panel on top of the UI.


You can add a description of your world, as well as enable Fly Mode. You can also uncheck unsupported platforms. For example, if a large environment is only accessible in VR or Web, but not on Mobile - uncheck WebXR/Mobile, users will see a red arrow instead of the default one, indicating that the environment is not supported on their platform.



You can add a description of your app, along with your own logo and background, from the Main UI Database. Make sure to click "Apply to Prefab."


NOTE: Your images must be Sprites to be added to the database. To convert your .png or .jpg image into a sprite, select the image, go to the Inspector, and change the Texture Type from "Default" to "Sprite (2D and UI)." Additionally, set Sprite Mode to "Single" (not "Multiple"). To optimize performance, it is recommended to reduce the Max Size to 512 to minimize image file size.





Step 2: Adding Scenes to Addressables Asset Group for local builds 


Adding scenes to the Addressables Asset Group is a crucial step, ensuring they are included in the build. By default, the framework is set up for local delivery, meaning all scenes will be built directly into your final .apk file.


If you don’t see the Addressable Asset Group, navigate to:
Vertex Form 3D SDK → Build Addressables → Addressable Groups.




Drag and drop the new scene into the Addressable Group Window. Select the scene and rename it, keeping only the scene name.




In order for your scene to be recognized and delivered at Runtime, you need to assign lable group.


Return to the Testing step to verify that everything functions correctly and that the scene appears in the UI. You can also create a new build to confirm the app is properly set up and works as a standalone experience on the headset.

Move on to the next step Obtaining A Geospatial Token

BUILDING ADDRESSABLES AND .APK FILE


Step 1: BUILDING ADDRESSABLES

Building addressable asset bundles and the .apk file early is recommended to ensure the app functions properly before investing significant time in customizing environments. Scenes and assets can always be updated and rebuilt as needed.

By default, Addressables are built into the local folder, and the final .apk file will include these environments. Steps for Remote Addressables (cloud delivery) will be explained later.


  1. Open Vertex Form 3D SDK to start the build process. 
  2. Click on "Build Addressables." The first build may take some time—take a break and stretch your legs. 
  3. Once the build is complete, an Addressable Report Summary should appear.






Step 2: Building .apk file 


The .apk file is the standard format for Android apps, and since Meta Quest runs on the Android platform, building an .apk file is required for deployment.


Building the .apk File:


Open Build Settings:

  • Go to File > Build Profiles and confirm that the platform is set to Android.

Build the .apk:

  • Click Build and select a location to save the file.
  • Create a new folder at the top level of the project directory and name it "Builds." You can access the folders by right clicking on "Assets" and then selecting "Show in Explorer".
  • Name your first build using the following format: YourApp_Date
  • Click Yes to all windows that will pop up. 





You can find your builds by right-clicking the asset folder and selecting Show in Explorer.



Upload your .apk to the headset. Install Meta Quest Developer Hub. Make sure your headset is connected via Link, then open File Manager → Apps and install your .apk using + Add Build.



Click on the three dots and press "Launch App" it should start playing in your headset.



After confirming that your app works as a standalone build, you can begin customization. Create a copy of the project or start a new branch in your own GitHub repository. If anything breaks during customization, you can always revert to the clean, working version.

Move on to the next step: Adding your own scenes


Publishing settings and keystore key


Step 1: Change publishing settings 

To make your app unique, you need to update the publishing settings. Navigate to Edit > Project Settings > Player, then modify the Company Name and Product Name. Set your product version to 0.0.1.


Scroll down to Identification and fill in the Package Name, Bundle Version, and Package Version. Each time you upload a new .apk to Meta Quest, increment the version number. Following Semantic Versioning is recommended for naming your builds.





To successfully build your .apk file, you must either obtain a Keystore Manager key or UNCHECK "Custom Keystore" if you're only testing the .apk on your device.


You cannot upload an .apk to Meta Quest without this key.


Make sure to store the key in a secure location where you can always access it. Losing access to the key will prevent you from updating your app on Meta Quest. If you encounter the error "Unable to sign in", it's often due to an issue with the keystore.

If you need to create a key, follow the instructions in the "Custom Keystore" window.



Move on to the next step: Publishing on Meta quest



Publishing on Meta Quest. 


Publishing the alpha version of your app on Meta Quest is a simple and straightforward process that does not require approval. Your app will be accessible to others via an invite link.


Install Meta Quest Developer Hub on your desktop and sign in with your Meta account. Navigate to App Distribution, then click Create a New App. Enter a name for your app, return to the Developer Hub, refresh the page, and your new app will appear.





Uploading your .apk file to Meta Quest 


Click on your newly created app and use the Upload button to upload the .apk file you created earlier. The system will analyze your app and provide feedback on its status, including any suggestions for fixes. Fix any issues, and try again. 




Updating Media and Sharing Your App Link


After successfully uploading your .apk file, you can update media assets such as the header image, logo, and other photos.

  1. Go to Oculus Developer Dashboard and select your app.
  2. Navigate to App Metadata History and click Go to Metadata Assets to update your logo and other media.
  3. The page will be in Read Only mode, in order to update your metadata, you have to click on "here"  






Granting Access to Your App via URL


  1. Go to your app's Release Channel and select the version (Alpha).
  2. Navigate to Channel Settings and set it to Public.
  3. Click Grant Access to Users by URL and generate the link.
  4. Enable Automatic Approval, then share the URL with others.






Instructions for publishing on the web are coming soon.





🎉 Huge congratulations on publishing your VR app! 🚀 You’ve turned your vision into reality—an incredible achievement. Keep pushing boundaries, inspiring others, and shaping the future of immersive experiences. The journey is just beginning! 🔥✨ 


Take a moment to celebrate and share your achievement with the community in the Community Showcase channel on Discord. 🎉




Up next - cloud delivery