A proposed Web 3.0 design for a 3D Virtual Universe
A virtual world is a computer-generated environment that allows users to interact with a three dimensional space using digital avatars. These virtual worlds often have unique rules, physics, and economies that differ from the physical world.
However, building a virtual world can be a complex task. Currently, the approach is to create a platform or use an existing one, but this often leads to centralization and high costs to maintain the entire virtual world on the platform.
This platform-oriented approach can also lead to scalability issues. As the virtual world expands, maintainers may need to increase their infrastructure capacity or develop sophisticated techniques for the archival and retrieving of less frequently accessed virtual worlds.
To address these challenges, we propose a protocol-centric architecture that aligns with the increasing adoption of Web 3.0.
Our approach to building virtual worlds. I take advantage of IPFS decentralization and de-duplication for storing model information. Models data utilize a data structure that enables referencing previous versions, creating a chain of historical data. This approach allows for a comprehensive overview of an asset’s state at any time. Additionally, we plan to leverage blockchain technology to store the current state of the asset, allowing for a reliable record of its progress over time. Ultimately, this methodology provides valuable insights into an asset’s journey and can serve as a helpful tool in tracking its development within and outside the virtual world.
The Tree of Life
The diagram below shows the structure of the virtual world. Each node represents an IPFS CID of Metadata file. We plan to preserve this CID as TokenURI in the ERC721 contract, linking each piece of Metadata to the corresponding glTF’s CID and, and we allow nesting, to the ERC721 Token URIs.
Time traveling
When updating a 3D model or any object, we generate a new CID and reference the old one in the updated Metadata. We’ll add a timestamp and reference element to the Metadata. The timestamp element includes the update date and time, while the reference element includes a link or identifier to the previous Metadata. This approach helps us keep track of modifications and maintain an organized record of updates.
The proposed technical architecture
We will represent the virtual world as a tree; each leaf is Microledger that holds reference to the previous version;
Changes in each leaf will NOT change the state of the world as the leaf is an ERC721 token ID, but adding or removing a leaf (In-world object), will change the meta-data, that will require re-publish.
This approach seamlessly fits with Web 3.0 standards design. Desktop clients or web browsers with the Metamask plugin interact with a smart contract to get the Token ID of the specific virtual world and use the previously mentioned recursive data structure to reconstruct the virtual world recursively, from the Token IDs of other objects in the world.
You can connect our viewer with 3D modeling tools like Blender and update your models on IPFS via Custom Blender Plugins. This approach does not require users to configure their wallets in Blender plugins, the viewer desktop client, or The browser with crypto wallet is the only software that interacts with the blockchain.
For IPFS, we went with a simplified approach to use the IPFS gateway and IPFS Node(s) hosted by this project.
We provide a web-based client to render the world, and this client has editing capabilities, such as changing item colors, adding an item inside a bigger item, for example, an avatar inside the room, and the editor automatically construct the virtual world save it to IPFS, and update ERC721.
This web-based client does not require any backend server, as it uses Blockchain RPC and standard IPFS API(PubSub may need some refactoring).
We are using BabylonJS for 3D rendering and a slightly modified glTF embedded format that can reference mesh data from external IPFS CID.
The Doll house
We have a minimal PoC called the Doll house, using Three Testnets Filecoin EVM, Polygon, and Cronos Network.The Virtual World.
The Doll House is a simple presentation of a Virtual world without any physics. It has some static objects inside the Doll House; you can bring a 3D Model, which is already part of the Virtual world, and place it in the Doll House.
The data structure mentioned in the earlier sections maintains the changes and all previous versions. Any team member can view those previous versions and even override the changes with an older one, an ERC721-based smart contract responsible for the governance and ensure only members of the team are allowed to update the Token URI.
Final Thoughts
We did not intend to build a Metaverse for gaming in the proposed design. We thought about collaboration between none technical 3D creators in git-like nature in a censorship resistance Web 3.0 DAPP. Still this design can indeed be used for gaming and other use cases.
Github: https://github.com/ahmadsayed/suka-forever
Website: https://sukaverse.club
Show case(no audio): https://www.youtube.com/watch?v=7i20Z8A0buw