The Web Metaverse: The Case for an Open Standards-Based Metaverse

Dylan Baker
9 min readMay 29, 2024

--

I do not think the Metaverse will be “the next big thing”.

It will, however, be “a pretty big and insanely cool thing”. It is exciting to think about the experiences that the Metaverse will enable. I have created an extensive set of open source Metaverse tools to facilitate these experiences. I am calling out to all artists, developers, gamers, and anyone else interested, to help extend these tools and create an open Metaverse that lets everybody create and control what they create!

Minecraft. Fortnite. Roblox. Second Life. World of Warcraft. GTA Online. The list goes on. These are all fundamentally forms of “Metaverses”. As it turns out, the Metaverse has been here for decades!

So… mission accomplished? Metaverse dream realized? Not quite! All of these Metaverses have been proprietary and static. What you do in Minecraft, stays in Minecraft. In GTA Online, you explore a World stuck in the year 2013: exactly the same as it was 11 years ago. Places evolve with time. Virtual Worlds should too.

du9edy8, Rafpe, CC BY 4.0; HyacintheLuynes
HyacintheLuynes, Second Life 11th Birthday Live Drax Files Radio Hour, CC BY-SA 3.0

Don’t get me wrong. I have logged countless hours in Minecraft and GTA Online. They are two of my favorite games of all time, but I want more from them. I want to do far-fetched things, like build a spaceplane in Minecraft and use it to fly across my World, or explore a solar system. I want to log into GTA Online and build myself a tiny house on the outskirts of Los Santos.

Unfortunately, these things will never be possible in Minecraft or GTA Online for one simple reason: these Metaverses were built by developers to provide specific experiences that will, fundamentally, never change. Heck, if I leave a car somewhere in GTA Online and walk a quarter mile down the street, the car will disappear.

How do we build extensive and dynamic virtual Worlds that can be customized to the user’s delight? We open it up. We open up the entire technology stack. From graphics rendering, to multiplayer synchronization, to World definition, we make the technology that runs our virtual Worlds available to and customizable by everyone. Mods to virtual Worlds are no longer post-release add-ons. Rather, the modifiability of Worlds is embedded into the core of the underlying platforms.

This is the philosophy behind the concept of the “Web Metaverse”.

With the Web Metaverse, virtual Worlds sit out on the Web, and users can interact with those Worlds through clients (called “World Browsers”). I am building a World Browser, called WebVerse, that is available to use right now.

Parallels to the World Wide Web and Websites

In the Web Metaverse, you will create and explore utilizing the exact same kind of system that you are using now to read this article. So, it should sound familiar. The Web Metaverse organizes, maintains, and distributes content and related information just as the Web does, but for 3D information.

The Web is built on open standards and interoperability. For example: rather than installing one software application for Google, another for Amazon, and another for Wikipedia, you install a single Web browser that is capable of working with all three.

Websites follow a set of standards (HTML, CSS, JavaScript, WebAssembly, etc.) and Web browsers support these standards. Ordinary people are empowered to implement new ideas for improving the Web and make them available to everyone. This is how the Web evolves. The same concept can be applied to the Metaverse.

Anybody can start their own website within minutes, and it will run on any modern Web browser. This website can be anything from a simple “hello, world” page to a rich Web application. The ability to continue using a website is not tied to the fate of an individual Web browser. The very first website is usable by any modern Web browser, despite the fact that the original Web browser was discontinued decades ago. Imagine if setting up interactive shared virtual spaces was this easy!

What is the Web Metaverse?

Put simply, the Web Metaverse, is a collection of virtual Worlds built on the Web. Why build virtual Worlds on the Web?

  1. The Web already provides efficient and standardized information transmission.
  2. The Web is already used to transmit many of the same types of information (such as images, 3D models, and serialized data) that the Metaverse needs.
  3. There already exists a large ecosystem of tools (Web servers, database tools, the cloud, and so many more) on the Web that will be incredibly useful for building virtual Worlds.

In developing traditional games and other 3D experiences, developers typically build their Worlds during the development phase. They later ship them with the platform and toolsets needed to interface with that World. If multiplayer functionality is desired, that functionality needs to be built to operate with that specific World. This also means that the server infrastructure needed to support multiplayer functionality needs to be built for that exact game. This quickly gets to cumbersome and technically involved for a hobbyist.

Web Metaverse World Creation Process vs. Traditional Process.

The Web Metaverse flips this process on its head and reduces barriers to creating Worlds. Worlds are defined in a standard way. The platform and toolset is pre-existing (built into users’ “World Browsers”). Developers simply need to focus on how they want their World to operate. Synchronization protocols can be used to synchronize users’ experiences by pointing to a synchronization server and enabling those entities to be synchronized. As a result, these Worlds are no longer static; they evolve in real time as users perform activities in them. Additionally, just as point-and-click website creation tools (such as Squarespace, Wix, and WordPress) exist, point-and-click World creation tools can be built to enable essentially anybody to build a virtual World.

The World

A World is a domain in the Web Metaverse. They consist of World definitions (such as VEML documents), Entities, and scripts. The World can be of varying degrees of sophistication, everything from a small room to an entire virtual universe of nested Worlds. The World Wide Web analogue to the World is a Web page.

The World exists in the back-end of the Web Metaverse. Worlds can be maintained in databases, file systems, or by other means. When building back-end World servers, the goal should be to avoid having to reinvent the wheel. I have taken advantage of numerous NodeJS packages to help build World servers (saving a lot of time over building all of the infrastructure from the ground up). Apache HTTP Server and other standard Web servers can also be used to serve Worlds.

World Browsers

Just as with Web services, Web Metaverse services can be split into both front and back ends. The World Browser is a software application that the user interfaces with on the front end.

I have created an XML schema for defining virtual Worlds, called Virtual Environment Markup Language (VEML). VEML documents are to Worlds as HTML documents are to websites. In fact, VEML documents are served to the World Browser over HTTP in the exact same way that HTML documents are served to Web browsers.

VEML documents can specify a multitude of “Entities” (any object in a virtual World), from 3D models, to terrains, to voxel, and so many more. The counterpart to the VEML document is a complete JavaScript interpreter and a series of World APIs that give developers complete control over the World’s Entities and their behaviors. I have created a sample repository of VEML/JavaScript samples here, and they include simple mesh loading, terrains (heightmap and heightmap-voxel hybrid loading, digging, and streaming), character controllers, interactive HTML menus, and entity synchronization. Everything Web Metaverse-related that I create is open source, so please feel free to use and extend these examples.

<veml>
<metadata>
<title>VEML Sample</title>
<script>vossynchronization.js</script>
<script>thirdpersoncharacter.js</script>
<script>index.js</script>
<inputevent input="move"
event="thirdPersonCharacter.MoveCharacter(?);"></inputevent>
<inputevent input="endmove"
event="thirdPersonCharacter.EndMoveCharacter();"></inputevent>
<inputevent input="look"
event="thirdPersonCharacter.LookCharacter(?);"></inputevent>
<inputevent input="endlook"
event="thirdPersonCharacter.EndLookCharacter();"></inputevent>
<inputevent input="key"
event="thirdPersonCharacter.OnKeyPress(?)"></inputevent>
<inputevent input="endkey"
event="thirdPersonCharacter.OnKeyRelease(?)"></inputevent>
<inputevent input="lefttouchpadvaluechange"
event="thirdPersonCharacter.MoveCharacter(?);"></inputevent>
<inputevent input="righttouchpadvaluechange"
event="thirdPersonCharacter.LiftCharacter(?);"></inputevent>
</metadata>
<environment>
<background>
<panorama>background.png</panorama>
</background>
<entity type="meshentity" tag="floor">
<mesh-name>floor.glb</mesh-name>
<mesh-resource>floor.glb</mesh-resource>
<transform type="scaletransform">
<position x="0" y="0" z="0"></position>
/// @file thirdpersoncharacter.js
/// Module for a third person character.
class ThirdPersonCharacter {
constructor(name, id = null, minZ = -90, maxZ = 90,
motionMultiplier = 0.1, rotationMultiplier = 0.1,
position = Vector3.zero, onLoaded = null, mode = "desktop") {
this.minZ = minZ;
this.maxZ = maxZ;
this.motionMultiplier = motionMultiplier
this.rotationMultiplier = rotationMultiplier;
this.currentMotion = Vector3.zero;
this.currentRotation = Vector3.zero;
this.currentTransform = null;
this.characterEntity = null;
this.characterEntityID = null;
if (id != null)
{
this.characterEntityID = id;
}
else
{
this.characterEntityID = UUID.NewUUID().ToString();
}
this.OnLoaded = function() {

Users are able to navigate to any World on the Web through a World Browser using a URL. The World Browser then loads the specified World from the VEML document and all scripts. This is seamless from the user’s perspective, and the user is placed in a synchronized session as defined by the developer.

High-level Conceptual Architecture for the Web Metaverse.

WebVerse: The First World Browser (Of Many?)

WebVerse is the name of a World Browser that I am developing. It is developed in Unity and open source. WebVerse contains a wide array of features for Worlds, and there are many more planned for the future. As of this writing, WebVerse includes the following features:

  • Numerous Entity Types: Mesh (3D Model), Terrain, Character, Container (Empty), Light, Voxel, and UI (including HTML)
  • Virtual Reality Operating System (VOS) Synchronization: Uses an MQTT-based synchronization service, which enables the automatic synchronization of Entities by simply setting a flag for the Entity
  • Local Storage and World Storage: Key-Value-Pair storage utilities. Local Storage (comparable to HTML5 Local Storage) persists across World sessions, while World Storage does not
  • A Wide Set of World APIs: Entity, Input, VOS Synchronization, Networking (HTTP, MQTT, and WebSocket), and Utilities (Such as Time, Camera, and Storage)

WebVerse currently runs on Windows (10 and 11) with and without SteamVR, and in most modern Web browsers via WebGL (with a reduced set of features). I am planning to add support for Linux, macOS, Android, and iOS later this year. WebVerse is in active development and I plan to continue adding features such as new entity types, support for USD files, and more advanced avatars.

A Future of Possibilities

The Web Metaverse forgoes a “walled garden” approach and empowers creators of all types to realize their ideas. You own what you create. Every aspect of the Web Metaverse: protocols, back end services, and the WebVerse World Browser, can be enhanced by the community and replaced with better versions.

I am not old enough to remember the world before the Web. Had I been alive then, I doubt I could have imagined search engines, Web encyclopedias, mapping websites, video streaming, or social media. These are inventions that have completely transformed our world and daily life. No one person created the modern Web, and no one person will build the Metaverse. The Web puts creative tools in the hands of ordinary people, which is what has made these once unimaginable inventions a reality. Given the same ability to create 3D virtual Worlds and experiences, what exciting new things will people create? What will you create?

Help Pioneer the Open Web Metaverse

The Web Metaverse is still in its infancy and my work on it barely scratches the surface. I intend to continue working on the Web Metaverse and WebVerse for as long as it makes sense. I am calling out to software developers, 3D modelers, Web developers, and others who are interested in this concept to join me in building a Web Metaverse that is owned by no one and everyone.

Whether you have ideas for a better World Browser, or you would like to build World creation tools, or you want to make Worlds, I will help you get started. Reach out to me at dylan@fivesquaredinteractive.com.

--

--

Dylan Baker
Dylan Baker

Written by Dylan Baker

0 Followers

Computer Engineer and Hobbyist. Interested in the Web Metaverse

No responses yet