如何建立一个开源的元宇宙
元宇宙

> 
> 开源世界是建立元宇宙的首选之地。
> 
> 
> 


![](/data/attachment/album/202201/27/123936o0fcmdfb0d88p0zy.jpg "new techie gadgets representing innovation")


如果我告诉你，构建元宇宙所需要的所有内容和软件都已经有了，而且完全免费，你会去构建吗？


先别急，让我们退一步来解释一下元宇宙。


### 什么是元宇宙？


20 世纪的赛博朋克作家，如 Gibson 和 Stephenson，都曾想象过由虚拟现实支持的互联网，在 Stephenson 的小说《雪崩Snow Crash》中，他将其称之为<ruby> 元宇宙 <rt>  Metaverse </rt></ruby>。随着<ruby> 虚拟现实 <rt>  virtual reality </rt></ruby>（VR）设备和应用程序的日益普及，尤其是在马克•扎克伯格宣布将雇佣 1 万人来打造它，并将 Facebook 的公司名称改为 Meta 之后，元宇宙正在成为一个热门词汇。Matthew Ball 对该话题进行了 [认真分析](https://www.matthewball.vc/all/themetaverse)，并以“共同构建”作为结论：“事实上，最有可能的是，元宇宙是来自不同的平台、机构和技术的网络中，它们协同配合（无论多么不情愿），并拥抱互操作性。”


互操作性，这个词本身含蓄而清楚地指出了开源和开放标准在其中的作用。


因此，简而言之，它就是支持 VR 的互联网。


### 如何建立一个开源的元宇宙？


就像互联网上的网络服务器一样，你需要 VR 服务器。不过不用担心，我写了一个，而且 [介绍它的文章](https://opensource.com/article/20/12/virtual-reality-server) 大约一年前就发表在这里了。当然，你需要支持 VR 的网络浏览器，但网络浏览器已经支持视频/音频流（WebRTC）以及 VR 和 AR（WebXR）。此外，你还需要大量 3D 内容，最好是开源标准的 glTF 格式。幸运的是，[Sketchfab](https://sketchfab.com/) 拥有 50 万个以上的免费 3D 模型，由大量的作者在<ruby> 知识共享许可 <rt>  Creative Commons licenses </rt></ruby>下发布。Sketchfab 并不是唯一一家这样做的公司，但他们提供了 REST API 来搜索和下载这些模型。


### 别忘了键盘


在 VR 中已经待了一段时间了，我可以用亲身体验告诉你我最怀念的是什么：键盘！我在键盘上写代码，但当我戴上 VR 眼镜时，它就消失了。你可以想象，摘下和戴上 VR 设备是多么的混乱。不仅如此，我还需要在 VR 中看到我的代码。那么为什么要止步于此呢？为什么我在 VR 中看不到每一个应用程序呢？许多人都在使用两个或更多的显示器。在 VR 中，你可以随处布置窗口。这比多少个屏幕都要好。而一旦到了这一步，你就可以真正地谈论元宇宙了。


说实话，VR 设备仍处于起步阶段，它无疑还缺少许多功能。但是，VR 设备将得到改善，并最终包括键盘、更好的摄像头以及在现实中叠加虚拟的能力。在此期间，我们将继续戴上和摘下护目镜，以其他方式处理其他障碍。


### 那么我还等什么呢？


你不需要等待。无论是爱好者还是公司，都正在努力。而且你现在就可以开始在网络上建立你的虚拟世界。下面的视频解释了如何使用现有的免费模型来制作虚拟世界。






在底层，VRSpace 网络客户端使用一个开源的 JavaScript WebGL 库 Babylon.js 来加载 glTF 内容并使用 WebGL 渲染。它调用 Sketchfab REST API 的搜索功能（服务器所有者必须在那里有一个账户）。点击了一个模型，它就会让 VRSpace 服务器获取它。服务器下载它（仅当它之前没有下载的情况下），并将其交付给客户端。空间中发生的一切都会被广播（实际上是通过 WebSockets 进行多播）给所有连接的用户，所以他们都会看到同样的移动和物体大小的调整。当然，他们可以通过文本信息或语音进行聊天。通过点击右下角的 VR 眼镜按钮，用户可以立即进入 VR。用户还可以共享屏幕，尽管不在此空间中。






而这一切都只使用现有的标准网络技术和免费的软件和内容。它不仅适用于 PC 和 VR 设备，也适用于移动设备。然而，移动版 Chrome 浏览器并没有启用 VR 功能。它在第一次尝试进入 VR 时会提示下载谷歌 VR。


由于它是开放的，这在目前来说是可互操作的。但对于元宇宙（支持 VR 的互联网）所需的大规模来说，它的互操作性还远远不够。以头像为例。我在 LinkedIn、Facebook 以及 [Opensource.com](http://Opensource.com) 上使用相同的图片作为我的头像。我怎么能把我的 3D 头像上传到 VRSpace 或其他地方呢？


好吧，我不能。上传本身并不是一个问题。当然，文件格式（glTF）也不是问题。问题出现在头像结构上，因为它没有标准化。所以，比如说，不同的人物有不同的骨头数量。然后，本应是微不足道的必备功能，如用虚拟手拿东西，却变得极其复杂。我已经分析了 100 多个免费的角色，并将我的发现作为研究论文发表：《[迈向人形 3D 角色的自动骨架识别](https://www.researchgate.net/publication/356987355_TOWARDS_AUTOMATIC_SKELETON_RECOGNITION_OF_HUMANOID_3D_CHARACTER)》，希望它能帮助其他作者实现互操作性。


而这只是一个开始，是我们进入一个共享的虚拟世界需要做的第一件事。


![VRSpace 的免费头像](/data/attachment/album/202201/27/124128v812qsrf60f86465.jpg "Free avatars at VRSpace")


### 知识产权


知识产权呢？你可能会说，这都是开源的！嗯，确实如此。作者们是如此善良，让别人使用他们的创作。用户至少可以做的是给他们点赞。知识共享许可的实际条款要求用户明确归功于作者。为此，我特别注意在搜索结果中显示作者的名字，而且作者信息被嵌入每个 glTF 文件的元数据部分。但是，即使是需要额外的工作的免费东西，我无法想象它变成专有内容会多么可怕。


### NFT和区块链


转念一想，我可以想象到。它需要 NFT、区块链，以及其他什么东西。快速搜索“元宇宙 区块链”为我提供了 *极好的购买机会*，并建议了 *最好的购买方案*。好吧，我不买。记住我的话。试图出售加密货币的人是不会建立元宇宙的。


这并不是说区块链在这里没有用，因为即使是免费的内容，你也必须对作者进行追踪。面对成千上万的免费模型，这必须以某种方式自动化，而分布式账本可能正是正确的解决方案。


话说回来，像 Sketchfab 这样的数字内容提供商并不只提供免费模型，他们还出售内容。毕竟，这就是他们谋生的方式。从技术上讲，在你的虚拟世界中使用这些专有内容，你需要做的就是把代码中的一个 `true` 改为 `false`，字面上的。但是，一旦你下载了它，没有人可以阻止你分享它。然而，在法律上，许可证禁止你这样做。NFT 可以证明所有权，可以购买，可以出售，但不能执行版权。内容提供商最终会明白这一点，但我担心的不是他们。这对普通用户有实际影响，与我反复被问到的一个具体问题有关。我可以自己制作或购买我自己的头像，而且只能是我的，不能被其他人使用吗？但技术不能阻止任何人复制它。就像我可以从 LinkedIn 复制你的头像图片，并将其作为我在 Facebook 上的图片。但你想想，为什么会有人想这么做？


有趣的是，我已经有一个 VRSpace 的商业实现。一个由自由软件驱动的 3D 多用户视频和音频流媒体网站，提供专有内容。在上锁的门后，付费进入 —— 就这么简单。而且它不妨碍建立元宇宙。然而，每个人都有自己独特的头像，永远不能被其他人使用。视频头像：


![作者在 VRSpace 的视频头像](/data/attachment/album/202201/27/124049jhc99zansawn9112.jpg "Author's video avatar in VRSpace")


你想成为你自己，而不是其他人。只要点击视频按钮，就这么简单。当然，浏览器会提示你是否允许流式传输你的视频和音频。这个功能在日常生活中被广泛使用，以至于我们并没有把它和元宇宙联系起来，赛博朋克的作者们也没有设想到这一点。随着时间的推移，这种 *我就是我* 的方法将发展为运动跟踪和视频流映射到我们的 3D 头像上，但它仍将在昂贵的电影和视频游戏领域停留一段时间。


现在，你已经瞥见了 VRSpace 服务器的所有功能，除了 Oauth2 认证。反正你知道它是如何工作的。一个网站将你重定向到你选择的另一个网站，你在那里登录，然后被认证回来。这就是上述所有的简化图。


![VR 组件图](/data/attachment/album/202201/27/124155anhx7hy14i4myywh.png "VR components diagram")


### 现场演示


在 [VRSpace.org](https://www.vrspace.org/) 上有一个现场演示，一直在运行最新的代码，欢迎你在任何时候尝试。它是完全匿名访问的，没有任何形式的广告和跟踪器。试着在 VRCraft 世界中建立你的世界，但要知道，一旦你断开连接，你所做的一切都会消失 —— 这是运行一个向公众开放的匿名服务的代价。主页提供了所有的相关信息，只要访问该链接即可，或者在 [GitHub](https://github.com/jalmasi/vrspace)、[YouTube](https://www.youtube.com/channel/UCLdSg22i9MZ3u7ityj_PBxw) 或[Facebook](https://www.facebook.com/vrspace.org) 上加入该项目。


非常感谢早期采用者的帮助，使项目达到这个阶段 —— 所有作者的免费模型、Sketchfab 提供的访问，以及 Babylon.js 社区，使这一切都能跨平台运作。




---


via: <https://opensource.com/article/22/1/open-source-metaverse>


作者：[Josip Almasi](https://opensource.com/users/jalmasi) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


OK
If I told you that all content and software you need to build the metaverse is already available and completely free, would you do it?

Hold that thought, and let's take a step back and explain the metaverse.

## What is the metaverse anyway?

Cyberpunk authors of the 20th century like Gibson and Stephenson imagined virtual reality-enabled internet, and in his novel *Snow Crash*, Stephenson called it Metaverse. With the growing availability of virtual reality (VR) devices and apps, Metaverse became a buzzword, especially since Mark Zuckerberg announced employing 10,000 workers to build it and changed the Facebook company name to Meta. Matthew Ball wrote a [serious analysis](https://www.matthewball.vc/all/themetaverse) of the topic that ends with the conclusion—Building together: "And in truth, it's most likely the Metaverse emerges from a network of different platforms, bodies, and technologies working together (however reluctantly) and embracing interoperability."

Interoperability. The word itself implicitly but clearly, points out how open source and open standards fit in the picture.

So, in short, it's about VR-enabled internet.

## How can an open source metaverse be built?

Like web servers on the internet, you need VR servers. But worry not, I wrote one, and [an article about it](https://opensource.com/article/20/12/virtual-reality-server) was published right here about a year ago. Then, of course, you need VR-enabled web browsers, but web browsers already do support video/audio streaming (WebRTC) and VR and AR both (WebXR). Furthermore, you need a bunch of 3D content, preferably in open source standard glTF format. And luckily, [Sketchfab](https://sketchfab.com/) hosts 500,000+ free 3D models, published under Creative Commons licenses by a huge number of authors. Sketchfab isn't the only company doing that, but they provide REST API to search and download any of these models.

## Don't forget the keyboard

Being in VR for quite a while now, I can tell you first hand what I miss the most: The keyboard! I write code on the keyboard, but it disappears when I put on my VR goggles. You can imagine how disruptive taking VR gear off and on is. And not just that, I need to see my code in VR. And then why stop there? Why wouldn't I see every application in VR? Many people are using two or more displays. In VR, arrange windows wherever you look. That's better than any number of screens. And once that happens, you'll be able to talk metaverse for real.

Truth be told, VR devices are still in their infancy, and there are undoubtedly many more functions missing. But VR devices will improve and eventually include keyboards, better cameras, and the ability to overlay virtual over real. In the meantime, we'll keep taking our goggles on and off and deal with other obstacles in other ways.

## So what am I waiting for?

You don't need to wait. People are working on it, enthusiasts and companies alike. And you can start building your virtual worlds on the web right now. The video below explains how to make virtual worlds using available free models.

Under the hood, the VRSpace web client uses Babylon.js, an open source JavaScript WebGL library to load glTF content and render with WebGL. It calls the search function of the Sketchfab REST API (server owner must have an account there). Once you click on a model, it asks the VRSpace server to fetch it. The server downloads it (only if it didn't do so earlier) and delivers it to the client. Everything that happens in the space is broadcast (multi-casted over WebSockets, actually) to all connected users, so they all see the same movement and resizing of objects. And sure, they can chat, either with text messages or voice. And by clicking on the VR goggles button in the bottom-right corner, the user instantly enters VR. Users can also share screens, though not in this space.

And this is all done using only existing standard web technologies and free software and content. It's not only available on PC and VR devices, but also on mobile devices. However, mobile Chrome doesn't come with VR functions enabled. It prompts for download of Google VR on the first attempt to enter VR.

As it's all open, this is as interoperable as it gets for the time being. But it's not nearly interoperable enough for the massive scale required for metaverse—the VR-enabled internet. Take avatars, for example. I use the same image for my avatar on LinkedIn, Facebook, as well as on Opensource.com. How can I upload my 3D avatar to VRSpace or elsewhere?

Well, I can't. Upload itself is not a problem. Of course, neither is the file format (glTF). Issues arise from the avatar structure, as it's not standardized. So, for example, different characters have a different number of bones. Then, must-have features that are supposed to be trivial, like holding something in your virtual hand, become extremely complicated. I have analyzed 100+ free characters and published my findings as a research paper: [Towards Automatic Skeleton Recognition of Humanoid 3D Character](https://www.researchgate.net/publication/356987355_TOWARDS_AUTOMATIC_SKELETON_RECOGNITION_OF_HUMANOID_3D_CHARACTER)—hopefully, it can help other authors with interoperability.

And that's just the beginning, the very first thing we need to do to enter a shared virtual world.

![Free avatars at VRSpace Free avatars at VRSpace](https://opensource.com/sites/default/files/uploads/free-avatars-at-vrspace.png)

(Josip Almasi, CC BY-SA 4.0)

## Intellectual property

What about intellectual property? What about it, you might say, it's all open source! Well, it is. Authors are so kind to let others use their creations. The least users can do is to give them credits. The actual terms of the Creative Commons licenses require users to credit authors explicitly. To that end, I've taken special care to display the author's name in the search results, and the author information is embedded in the metadata section of each glTF file. But even with free stuff that requires additional work, I can't imagine what nightmare it turns into with proprietary content.

## Non-Fungible Tokens and Blockchain Ledgers


On second thought, I can imagine that. It requires Non-Fungible Tokens, Blockchain Ledgers, and whatnot. Quick googling *Metaverse Blockchain* offers me *excellent buy opportunities* and advises the *best buy options*. Well, I'm not buying. Mark my words: Folks trying to sell cryptos aren't going to build the metaverse.

That's not to say that blockchain can't be helpful here, as even with free content, you have to keep track of authors. With hundreds of thousands of free models, this has to be automated somehow, and distributed ledger may be just the right solution.

Then again, digital content providers like Sketchfab do not provide only free models, they sell content. That's how they make a living, after all. Technically speaking, all you need to do to use this proprietary content in your virtual worlds is change one *true* to *false* in the code—literally. But once you download it, nobody can prevent you from sharing it. Yet, legally, the license forbids you to do so. Non-Fungible Tokens can prove ownership, be bought, sold, but can't enforce copyright. Content providers will figure it out eventually, but it's not them I'm worried about. This has practical implications for ordinary users, related to one specific question I have been asked repeatedly: Can I make/buy my own avatar that will be only mine and can't get used by anybody else? Well, you can, but technology can't prevent anybody from copying it. Just like I can copy your avatar picture from, say, LinkedIn, and use it as my picture on, say, Facebook. But think of it this way: Why would anyone want to do that?

Funny though, I've had one commercial implementation of VRSpace: A 3D multi-user video and audio streaming website powered by free software, serving proprietary content. Behind the locked door, pay to enter—as simple as that. And it doesn't get in the way of building the metaverse. Yet everyone has their own unique avatars that can't be used by anybody else ever: Video avatars.

![Author in VRSpace Author's video avatar in VRSpace](https://opensource.com/sites/default/files/uploads/author-in-vrspace.png)

(Josip Almasi, CC BY-SA 4.0)

You want to be you and nobody else. Just click on the video button, as simple as that. Of course, the browser will prompt for your permission to stream your video and audio. This feature is so widely used in daily life that we don't really associate it with metaverse, and the cyberpunk authors did not envision it. In time, this *me being me* approach will evolve into motion tracking and video stream mapping onto our 3D avatars, but it will remain in the domain of expensive movies and video games for a while.

By now, you have glanced at all the features of the VRSpace server, except Oauth2 authentication. You know how it works anyway. A website redirects you to another one of your choosing, where you log in and then get back authenticated. This is all of the above in a simplified diagram:

![VR components diagram VR components diagram](https://opensource.com/sites/default/files/uploads/vr-components-diagram.png)

(Josip Almasi, CC BY-SA 4.0)

## Live demo

A live demo is available at [VRSpace](https://www.vrspace.org/)[.org](https://www.vrspace.org/) at all times, running the latest code, and you are welcome to try it any time. It's completely anonymous, without ads and trackers of any kind. Try building your world in VRCraft world, but know that everything you do will disappear once you disconnect—the price of running an anonymous service open to the public. The home page provides all the relevant information, just follow the links, or join the project on [GitHub](https://github.com/jalmasi/vrspace), [YouTube](https://www.youtube.com/channel/UCLdSg22i9MZ3u7ityj_PBxw), or [Facebook](https://www.facebook.com/vrspace.org).

Big thanks to early adopters for their help in bringing the project to this stage—all the authors for their free models, Sketchfab for providing access, and the Babylon.js community that makes it all just work across platforms.

## 1 Comment