A few months ago we kickstarted an initiative with some of the Metaverse-related projects on the IC to try to standardize the way 3D NFTs are working on the Internet Computer.
We’ve set up a Miro board describing the premise of ICMS:
And we’ll be using this Forum thread as a notification board for when a new standardization topic is put up for discussion.
This is an open initiative and any interested party that is actively developing 3D NFTs or Metaverse projects are invited to join. The working Miro Board is invite-only so please reach out to any of the participating projects to get access.
The Board itself does an excellent job at explaining the Why How and What so please go through it.
In a nutshell, standardization of formats and other such elements will mean better value for users as IC projects will be able to automatically support 3D NFTs from other projects as soon as they launch.
We believe the Metaverse will be built by users and owned by them too. The apps where users will spend their time in the Metaverse will be many and diverse and the best mechanism to manage users’ digital ownership of any kind is through NFTs, and in the case of Metaverse applications, 3D NFTs.
We love to hear the thoughts of the community around this and what elements in particular you’d want to see standardized sooner rather than later.
Generating GLB on-chain doesn’t look impossible. Are you planning on making Motoko/Rust libraries for it?
[glTF™ 2.0 Specification]
You need a library in Motoko and Rust to assemble it.
Separate features can’t get web cached. Each file will include them all. GLTF will point to URLs that get cached and only its JSON header will change. Maybe it will be a bit faster if a single avatar holds an NFT attachment from one collection, but it will be a lot slower when rendering a list of NFTs or many avatars wearing NFTs from the same collection.
Interesting points brought up! GLB files can be generated any number of ways. When discussing the format for 3D NFTs what’s important is that just about any other format will be much harder to write in, on-chain.
That said, most projects will handle generation off chain and upload assets on chain as GLB files - like all existing NFT collections to date.
UnfoldVR will soon allow users to mint their own 3D NFTs but likely it will generate the assets on the frontend and handle just the validation of those on chain, when uploading.
Indeed there is a problem, in a metaverse scenario, when you have multiple NFTs to load. However, that problem applies to all 3D formats and is mostly a matter of optimizing download time. The way gltf works is highly optimized. Each material (ID) is treated as a separate mesh within a single object so merging multiple meshes won’t do anything. And, again, any other format would have the same issue. It’s up to designers and devs to optimize content for web appropriately.