# VRMDN README The Virtual Reality Model Delivery Network. Services, templates, sample avatar builder, and open ecosystem tooling around the VRM file format. Our aspiration is to fill some of the ecosystem gaps that exist around VRM so that XR developers and players alike can have a robust, cross platform solution for avatars in XR that takes advantage of all of the upsides that VRM offers, without losing out on the end-user experience and accessibility of more turnkey platform-specific and closed-source solutions. ## Why are we doing this? - We want to, for our own sake, have a turnkey open avatar solution that is cross-platform without any vendor lock-in and accessible to players on standalone devices without them needing to learn how to use additional software tools. Self-contained, self-hostable, with a high quality bar for out-of-the-box UX. - We want players to be free to express themselves however they choose to while still allowing our games and applications to be safe spaces. - When an individual company closes or pivots, we believe you should never lose your personal identity in XR (i.e. see what happened after Ready Player Me's acquisition). - We believe in a lot of the values and aspirations underlying the VRM project, but we also think some aspects of existing efforts that have embraced VRM to-date are alienating to many VR users, due to aesthetic defaults, and just acknowledging the culturally varied and diverse auidence we expect to grow around XR over the coming years. ## What's actually missing? 1. Fast getting started templates for fully-networked VRM usage in an existing project. Unity prefabs, community-maintained examples of avatar sync with different popular networking stacks (Normcore, Photon flavors, Unity Netcode, Mirror, etc.) and engines (Unity, Unreal, Godot, and browser-based options). Think Meta's XR "Building Blocks" but for VRM. 2. Canonical examples that build and run out-of-the-box on more diverse headset targets (PCVR, Quest, AVP, AndroidXR, Pico). 3. An end-user templatized visual avatar builder that runs standalone, in-headset, with pre-made sample assets that are liberally licensed and portable. Ideally, we would support different asset packs for different visual aesthetics. 4. A starting point for a one-click Selfie/Reference Photo > VRM pipeline 5. Opinionated, comprehensive examples but with pluggable/modular parts for a fully-baked feature rich alternative to something like the out-of-the-box Meta Avatars experience. Inverse Kinematics, Voice Audio lipsync, Automatic height adjustment, LOD support, sit/stand and half vs. full-body variants, etc. Ideally using entirely open source default dependencies. 6. An open clothing/accessory system that expands upon the templatized builder and allows people to design individual accessories and be assured they'll have some baseline level of compatibility across a wide array of avatars. 7. An open reference server and storage for actually hosting these models. We'll try to provide this to the community, but you can always host your own instance. 8. A moderation layer and some safety controls so that a curated subset of the model repository can be offered with varying aesthetic styles and known suitable-for-all-ages avatars are available for a wide audience of players. 9. (Later) Possible extensions to VRM that take advantage of newly-ratified additions to the underlying GLTF file format, i.e. we would like to see and help push forward an open standard for streaming Gaussian avatars that can eventually match or surpass the quality bar set by Spatial Personas on Vision Pro. # Where are we starting? First, we're building an end-to-end example for ourselves with our own current stack: - Unity, Normcore, initially targeting Quest and Vision Pro, with the intent to support various other headsets with OpenXR support (Android XR, Pico, Steam Frame). We're going to open source what we create and package it so that it is reusable in other projects. We will work with an artist and/or use some off-the-shelf liberally licensed avatar assets as a starting point for the open templatized WYSIWYG avatar builder. We want the avatar builder to work in a standalone context in-headset and on the web in the browser. We want to work with the community to replicate these examples and progressively broaden support for more target runtimes/engines, devices, etc. while maintaining a high quality bar. We also want to work with the community to create different aesthetics of default avatar packs to suit different styles of games and applications. Some will lean more serious, professional, or photoreal. Some will lean more minimal, absurd, or thematic. If, say, you want to have a whole monkey-themed modular avatar set, we want to be able to support that. # Some Principles: - Open source by default, though we may integrate with things that are closed-source as a matter of necessity or pragmatism. Unity and Normcore are closed-source, but we still intend to integrate with them. - No vendor lock-in for players to get their avatars out of the system and self-host or port to other applications in the future. - No need to sign up for a separate account system just to make an avatar. - Not tied to a particular avatar aesthetic to the point that it is alienating to otherwise valid use-cases for the technology. - Portability as a motivating factor: we do not want to be locked into a particular headset or OS, to the extent we can avoid it. # Existing ecosystem resources of note: This is by no means exhaustive, just a starting point: - [UniVRM](https://github.com/vrm-c/univrm): the canonical Unity implementation of VRM. - [vrm.dev](https://vrm.dev): the official VRM format reference site. - [VRoid](https://vroid.com): VRoid is one of the most popular VRM character creator tools, they also have a Hub of hosted models, and their team members are some of the largest contributors to VRM. - [three-vrm](https://github.com/pixiv/three-vrm): render VRMs on the web with three.js # Some other projects we investigated using ourselves and discarded for various reasons: - [Genies](https://genies.com): closed model, vendor lock-in. - [Streamoji](https://streamoji.com/#products): not 1:1 compatible with existing VRM avatars, they have their own approach to GLB avatars, some technical & UX concerns, but appreciate the web-based configurator and that they just give you a GLB at the end of the day. - [VRoid Hub SDK](https://developer.vroid.com/en/sdk/): no WYSIWYG standalone builder UX, understandable since their business is built around selling VRoid Studio. Almost entirely focused on Anime aesthetic avatars, some age-appropiateness concerns around moderation, and simultaneously lots of content use restrictions around downloads and use for many of the hosted avatars. - [VIVERSE Avatar SDK](https://docs.viverse.com/developer-tools/avatar-sdk): no way to whitelabel or do anonymous sessions without requiring user login. # Who is behind this effort? The Virtual Reality Model *Developer* Network, of course. But seriously, this is meant to be a collaboration across independent VR development studios and other folks in the ecosystem. Some of the folks working on it: - [Boxtree, Inc.](https://www.boxtree.gg) - (More to be added) This document was written by hand, typos and all, by a real human being, Ethan Sherbondy. The fluffly accompanying landing page was indeed hastily generated by an LLM pointed at this document.