Skip to main content

VR Example

This example project demonstrates the integration of the Genies Avatar SDK with Meta's SDK. The project will be buildable to Meta Quest 3.

VR Example

Key Unlocks

  • Leverages Genies login flow with UI configured to work in VR.
  • Features pre-configured character retargeting, set up to work especially for Genies Avatars.
  • Works with hand tracking as well as controllers.
caution

A VR-friendly avatar editor is not included in this example project. A developer should be able to adapt the Avatar Editor framework from the Genies SDK, if needed.

The VR Example project is available on GitHub:

https://github.com/geniesinc/genies-sdk-vr-example

Requirements

  • Unity 2022.3.62f2
  • Android build support installed via Unity Hub
  • Git installed and accessible to Unity/UPM
    • Required to fetch the Meta Movement SDK Git dependency
  • Network access on first open (some packages restore from GitHub)

Packages Included

  • Unity packages (remote UPM dependencies, auto-downloaded; not redistributed):
    • URP (com.unity.render-pipelines.universal)
    • OpenXR (com.unity.xr.openxr)
    • XR Management (com.unity.xr.management)
  • Meta XR SDKs (remote UPM dependencies, auto-downloaded; not redistributed):
    • Core (com.meta.xr.sdk.core) 83.0.1
    • Interaction (com.meta.xr.sdk.interaction.ovr) 83.0.1
    • Movement (com.meta.xr.sdk.movement, UPM Git dependency)
  • Genies Avatar SDK (vendored UPM package; redistributed):
    • Core (Packages/com.genies.avatar-sdk.client/) 1.3.1
caution

This repo currently only works on Genies Avatar SDK v1.3.1 so there may be issues with Unity 6 projects.

Getting Started

  1. Open the project in Unity 2022.3.62f2 or later.
  2. Wait for packages to resolve.
    • If you're on a fresh clone, Unity will need to fetch com.meta.xr.sdk.movement from GitHub (requires Git).
  3. If you haven't done so already, create a Genies account
  4. Customize an Avatar in the Avatar Starter sample scene
  5. Use the Bootstrap Wizard to configure the Genies Avatar SDK for an Android build.

Scenes

  • Assets/Scenes/Main.unity: Core scene for testing. Use the UI to login, and wait for your Genie to spawn.
  • Assets/Scenes/StagingAndConfiguration.unity: Useful for authoring and testing Avatar retargeting.
  • Assets/Samples/Genies Avatar SDK/1.3.1/Avatar Starter Scene/Scene/AvatarStarter.unity: Non-VR scene from the Genies SDK, Useful for creating a Genie account and customizing an Avatar.

High Level Flow

  • Assets/Genies VR Example/LoginCanvasVR.cs: initializes the Genies SDK and drives email-OTP login with a VR-friendly UI.
  • Assets/Genies VR Example/LoadAndBecomeMyAvatar.cs: loads the logged-in user's Avatar.
  • Assets/Genies VR Example/GeniesAvatarControllerVR.cs: hooks the loaded Avatar into Meta retargeting and applies VR-specific rendering tweaks (including head/face hiding).
  • Assets/Genies VR Example/GeniesCharacterRetargeterForMeta.cs: name-based bone mapping and retarget setup for Genies Avatars.

Building to Meta Quest 3

info

This repo is intended to be buildable to Quest 3.

To build to Quest 3, follow the guidelines from the Meta Quest documentation: https://developers.meta.com/horizon/documentation/unity/unity-build/

Notes

  • Tattoos on Avatars is not supported at the moment with VR projects.
  • Some Avatar scaling and stabilization behaviors are device-only (Editor vs on-device behavior can differ).
  • If VS Code search seems to "miss" Unity assets, check .vscode/settings.json workspace excludes.

Planned Features

These are planned features coming soon:

  • Tattoos support.
  • Update to newest version of SDK which will add Unity 6 support and more.
  • Completely hiding the head geometry from VR camera to prevent clipping artifacts.

Third-party Code Redistribution

This repository does not redistribute any of the Meta XR SDK packages themselves. Core, Interaction, and Movement are remote dependencies that Unity's Package Manager will auto-download when you open the project.

The one Package Manager dependency that is redistributed is the Genies Avatar SDK package, which is directly included under Packages/com.genies.avatar-sdk.client/.

It does include and redistribute various Meta XR Samples, sourced from:

  • Meta XR Core SDK
  • Meta XR Interaction SDK
  • Meta XR Movement SDK

Licenses

  • Review the applicable third-party licenses and notices included with the Meta packages and any bundled sample content.
  • The Genies Avatar SDK package also contains third-party notices under Packages/com.genies.avatar-sdk.client/Internal/**/ThirdPartyNotices.
  • The Genies Avatar SDK is governed by its own EULA license agreement.