元界积木:空间数据平面

作者:约书亚·伯恩斯 |

构建、交付、管理博客系列:构建

简介

亚马逊网络服务 (亚马逊云科技) 企业客户正在使用云来构建身临其境的空间体验。作为 亚马逊云科技 空间原型设计负责人,我的团队与这些客户进行反向合作,以识别空间挑战(企业增强现实、虚拟现实、元宇宙和 3D 技术),并使用云解决这些挑战。我与各种正在制定策略或开发企业沉浸式技术的团队合作。Spatial 与元宇宙一样,具有广泛而不同的定义,作为一个团队,我们知道所有组织都有自己的定义。在构建这些空间体验时,我的团队和我们的客户会遇到两个常见的挑战:向技术受众传达什么是空间基础设施,以及构建可扩展的应用程序。

为了解决这些挑战,我需要从为我的团队定义空间体验开始。通过研究多项客户互动,我拼凑出一个以企业为中心的定义,我们使用该定义:“空间体验可以导入、更改、分析、模拟和分发可视化用户体验的数据,以增强人类。”基于这个定义,我的团队能够更好地传达我们正在建设的内容,然后将其扩展到规模。这篇博文讨论了我如何从经验中学到如何解决向技术受众传达这些概念然后大规模构建技术所面临的挑战。

挑战 1:与观众沟通

在向高管、基础设施架构师或开发人员传达我团队的空间定义时,我意识到我需要在客户目前理解的地方与他们见面。如果他们熟悉的话,我会尝试用当今的基础设施术语进行沟通。

为此,我首先更广泛地研究了我们团队的定义。我注意到,我们为客户构建的空间架构与 亚马逊云科技 现有(标准或典型)基础设施工作负载没有太大区别。无论是构建 AI 模型、构建社交网络、审核游戏内容,还是云端渲染视觉效果。空间体验和这些技术之间的共同点是,它们既能摄取数据、计算数据输出又分发输出数据。由于这些相似之处,我开始将基础架构称为 “空间数据平面”。

Example Spatial Data Plane

空间数据平面示例

为了满足我们所在领域的客户,该团队开始将后端空间基础设施称为空间数据平面。例如,我现在这样说:“我正在构建多个经过身份验证的空间数据平面,并使用可视化应用程序解释它们的输出。”知道我们正在使用现有的成熟技术,这种视角正在赢得信任并提高可信度,同时也实现了构建面向未来的应用程序的目标。

现在,在制定策略或构建沉浸式体验时,请专注于关注受众。不要用术语疏远他们,而要在他们现有的知识层面与他们会面。

挑战 2:按规模建造

当我构建空间数据平面和可视化时,我会将基础设施与人机界面分开。我今天看到的两个主要基础架构挑战是互操作性和可扩展应用程序开发。

互操作性

构建空间体验带来了许多挑战,例如:协调工具、互操作性和统一交互设计。但是,采用的最大障碍是开发者体验的质量。无论团队使用的是显示器、移动设备还是增强现实和虚拟现实耳机,专注于一组软件开发工具都会限制应用程序的覆盖范围。我的经验告诉我,由于设备格局迅速发展,我们应该独立于设备进行构建,这意味着我们需要从开发之初就对交互和内容进行标准化。

在对交互进行标准化时,我看到实时渲染引擎以及基于浏览器的增强现实和虚拟现实取得了长足的进步。但是,为了提高交互工具的采用率,还必须关注开发者体验。为了促进一致的体验,我借用了马克·扎克伯格的座右铭,在 CNET的这 篇文章中 ,“借 助稳定的基础设施快速发展”。我的团队主要致力于使用实时引擎插件和 亚马逊云科技 云开发套件 (亚马逊云科技 CDK) 来简化开发 者体验。这些工具使团队能够在原型制作过程中对基础设施和用户界面进行快速迭代。例如,为了简化开发流程,解决方案是对数据平面进行原型设计,通过单个数据接入点提供给所有渲染引擎,类似于下面通过 HTTPS 进行的以下动态 API 调用。有关下图的更多信息,请参阅 构建无服务器 Web 应用程序

A Sample Serverless Web Application

无服务器 Web 应用程序示例

可扩展应用程序开发

该团队已在多个原型中使用上述架构来构建高度可扩展的增强现实和虚拟现实应用程序。我将这种架构与开源标准相结合,例如glTF文件(Khronos集团的开放标准),它使客户能够在运行时下载和实例化应用程序中的资产。此外,我甚至使用了 带有 亚马逊云科技 L am bda 的 A mazon API Gat eway,通过记录错误来调试我的虚拟现实应用程序。 这是通过向 API Gateway 提交 POST 请求来完成的,然后 Lambda 解析了 POST 数据并将其打印到亚马逊 CloudWatch 的日志中。 现在,您可以利用亚马逊 CloudWatch 的强大功能来检查申请状态。所描述的基础设施架构不需要管理自己的服务器,同时还提供用于调试和数据检索的标准数据平面。

现在,使用开放标准和单一数据平面,开发人员能够扩展单个定制应用程序以服务于许多用例。现在,单个应用程序可以是协作应用程序,也可以作为机械计算机辅助草稿的可视化工具。这可以通过标准化运行时应用程序脚本、解析运行时使用云基础架构检索到的元数据以及在运行时使用脚本对资产进行实例化来成功执行。我们对后端基础设施进行了原型设计,以支持名为 视觉资产管理系统 (VAMS) 的系统的 这种方法。 我们已经在 GitHub 存储库 中开源了 VAMS 代码 。VAMS 不仅可以存储资产,还可以针对资产本身运行您自己的容器化代码,以生成新的 3D 对象或代码元数据。

在构建空间应用程序时,首先要看你想要实现的目标,寻找共同的开发分母,规划规模,然后向前迈进。否则,最后试图解决这些挑战会更成问题。例如,在构建虚拟现实培训应用程序时,要考虑到不仅需要提供数十或数百次培训,而且客户需要更新,这意味着他们需要一种方法来构建可供专业培训师使用的培训。

结论

在构建空间数据平面时,您必须专注于与客户沟通,缓解他们当前的痛点,同时预测未来的障碍并扩大规模。从长远来看,消除沟通障碍将促进更好的沟通和更牢固的伙伴关系。通过使用开放标准和互操作性,您可以降低未来工具更换的风险,同时还可以让您的客户为将来接受这些标准的技术做好准备。这两个领域将促进沉浸式技术的进一步采用,同时实现快速创新。

空间数据平面是空间之旅的第一步。所以,你可能会问自己我该如何开始?你应该从 VAMS 开始。上传您的 3D 模型,为您的艺术、机器学习或其他 3D 工作流程构建自动化管道。然后,你可以与基于浏览器的渲染工具(例如 Three.js Babylon.js )集成 ,以便快速开始到达目的地。

最后,最成功的开发人员和企业家面临着取得成果的压力。但是,成功的开发人员将压力集中在修复实际问题和抓住机会进行创新上。开发人员和企业不应阻碍创新,而应鼓励能够提高效率的想法,为开源社区做出贡献。只有通过任何人都可以做出贡献和创新的有用的、包容性的环境,沉浸式体验才能取得成功。