Both the world wide web and the metaverse require content to be streamed because:
There is an astronomically large amount of information
That information is constantly changing
That information can be hosted and maintained by anyone
Because of this, it’s entirely impractical to predownload or install the metaverse on your device or send it over in one chunk to your browser. This concept is very different from the types of bounded applications you may be familiar with, such as applications built using Unity or Unreal.
The one thing that differentiates the metaverse from the world wide web is that the metaverse is spatially oriented. The information you receive is solely dependent on where you are positioned in the real or virtual world. As such, a map is needed to know what’s around you.
The metaverse spatial fabric (MSF) provides for this capability. The spatial fabric provides for several other things, but for this document, we’re just going to focus on the map.
The map of the metaverse can be exceptionally large. How large? Well, RP1’s map is currently a few hundred million light years (1,000,000,000,000,000,000,000 kilometers) in each direction. For comparison, a typical Unity or Unreal app is contained within 10 kilometers in each direction. Metaverse maps can also be small – smaller than an atom. And they can also be combined – maps can contain submaps, which can contain more submaps.
Besides their physical distance, maps can contain lots of data. RP1’s map of Earth currently contains about 500 million data points. But, when the metaverse matures, Earth will contain multiple trillions of data points spread across hundreds of millions of servers. And that’s not to mention anything about the thousands of other planets located in galaxies far, far away.
[Insert diagram here]
In order to render the world around you, the metaverse browser doesn’t directly download files that contain maps. Instead, it communicates with each spatial fabric’s map service to query for objects in the vicinity of your location.
The map service is free to store its objects in any way it chooses, which could run the gamut from plain text files to large SQL databases. It’s also free to communicate the information in any protocol or format it chooses. Ultimately, though, its job is to provide a hierarchy of objects in its map based on parent-child relationships from the root object of the spatial fabric all the way down to the bottom level objects. This is analogous to the way files are organized on a hard drive – you don’t download the whole hard drive at once, you interrogate it one folder at a time until you get down to the file you’re looking for.
In order to make sense of a universe-sized map, spatial fabric map objects are arranged in three tiers, or classes of objects – celestial, terrestrial, and physical.
As you probably guessed by its name, the topmost tier of objects maps celestial objects in space from the root Universe object all the way down to planets and their satellites. Things in space are generally ellipsoidal in nature (such as galaxies, star systems, and planets) and they generally have some form of orbit or spin relative to their parent object. And distances between objects can be very large – upwards of a hundred million light years.
There are 17 predefined celestial object types, which include:
A celestial object may only be parented to an object with a type greater than, and in some cases equal to its own type. For instance, a planet may not be parented to another planet, a moon, debris, satellite, transport, or surface. Any of the (3) cluster or (2) system object types may have another object of the same type as its parent.
The physics of celestial objects is quite complex, involving complex geometries, objects orbiting around other objects, and objects that spin. The current browser model uses fairly rudimentary calculations compared with the highly complex movements of gravitational bodies that move around the universe. Over time, these models can be improved to reflect more accurate movement of celestial bodies such as how a star dances around the barycenter of a star system caused by the gravitation pull of its orbiting planets.
Surface objects are the only type of celestial object that can have terrestrial objects as children. They form the “ground” of a celestial object and can be a child of any other type of celestial object – besides another surface.
The middle tier of objects map the outer skin of a celestial surface object by creating successively granular subsurfaces tangent to the surface. While most often spherical (or close enough to spherical) such as in the case of planets and moons, surfaces can be any shape you can imagine such as cylindrical (as in the case of a spinning space station), flat (as in the case of an upright space station), or something more exotic like a torus, saddle, or cube.
Having said that, calculations for surface shapes other than flat, cylindrical, or spherical are not yet provided by the database. So if you want something more exotic, you’ll have to do all the math on your own.
Subsurfaces can be oriented in any rotation relative to the parent surface object. The normal vector of the subsurface determines the direction that an avatar stands on that subsurface. For example, the normal vector of a subsurface at the north pole of a planet points up whereas the normal vector of a subsurface at the south pole points down. This creates “gravity” in that an avatar will stand upright with its feet on the ground and its head extending away from the center of the planet.
There are 11 predefined terrestrial object types, which include:
A terrestrial object may only be parented to an object with a type greater than, and in some cases equal to its own type. For instance, a city may not be parented to another city, community, sector, or parcel. Country, county, or sector object types may have another object of the same type as its parent.
It is acknowledged that not all countries denote administrative subdivisions using terms like state, county, or city. However, nearly every country in the world does create a series of successively smaller administrative subdivisions that share extremely similar governmental functions from one country to the next. Counties, regardless of the name they are locally known as, generally maintain and govern land rights as well as have elected sheriffs. Cities have (elected) mayors and can have their own laws and takes, but communities don’t. Regardless of their denoted name, terrestrial types serve the purpose of imparting geographical and administrative order to a huge data set – in addition to defining a subsurface.
Parcel objects generally correspond with parcels of land as defined by the county assessor. However, in the case of larger areas such as corporate or university campuses, a parcel may correspond to the general area on which a building sits. By and large, it’s best to think of one house or building per parcel.
Parcel objects are the only type of terrestrial object that can have physical objects as children. They act as the “dirt lot” of a terrestrial object and can be a child of any other type of terrestrial object – besides another parcel.
The bottom tier of objects map all manner of 3D objects that you can see and touch in both the real and virtual world. This includes buildings, trees, benches, and desks, just to name a very select few.
Physical objects are stored in the same parent child hierarchy as celestial and terrestrial objects, with the same properties of translation, rotation and scale.
Your content here