增强现实与浏览器 - 一次应用实验

我们都希望构建下一个(或者可能是第一个)伟大的增强现实应用。但是,这里潜藏着风险! 这个领域是新的,还没有明确的定义。目前还没有人们每天使用的 AR 应用可以作为起点或示例。您的新想法必须与现有传统 2D 应用的高质量标准竞争。而且,构建一个新的应用可能很昂贵,特别是对于原生应用环境而言。这使得 AR 应用仍然是未知领域,需要更高的初始投入时间、人才和资金。

但这也创造了一种机遇,一个在该领域完全饱和之前参与其中的机会。

从我们的角度来看,问题是:艺术家、开发者、设计师、企业家和各种创意人士需要什么样的工具才能轻松创建增强现实体验?人们可以使用我们提供的工具构建什么样的应用?

例如:我是否可以观看今晚的每日秀,然后在明天发布一个关于昨晚 Trevor Noah 说过的笑话的应用?成功的衡量标准是能够快速轻松地以丰富的媒体形式表达,成为全球对话的一部分。

在 Blair MacIntyre的帮助下,我编写了一个实验来测试各种探索这些问题的想法。在这篇全面的事后分析中,我将回顾我们制作的应用、我们学到的东西以及我们下一步的计划。

寻找“好的”用例

为了回答上述一些问题,我们开始调查 AR 和 VR 开发者,询问他们的想法和观察结果。我们有一些经验法则。我们寻找的是人们重视的 AR 用例,它们足够有意义、足够有用、足够有影响力,它们可能会成为人们生活的一部分。

现有的 AR 应用也提供了灵感。例如,我喜欢的简单 AR 应用是 AirMeasure,它是类似应用系列的一部分,例如 增强现实卷尺。我每月使用一到两次,虽然频率不高,但非常方便。这是一个真正有用的应用,在 App Store 上有 6500 条评论——所以显然已经有一些需求。

image of airmeasure, an augmented reality measuring tape

Sean White,Mozilla 的首席研发官,对 MVP (最小可行产品) 有一个非常具体的定义。他问道:100 个人每天会使用什么?

当我听到这句话时,我想到的是:什么样的体验是完整的、引人入胜的,并且足够有用,即使在最早的版本中,它也捕捉到一个核心的基本品质,使其对 100 个现实世界的人们真正有用,他们有现实世界的问题,每天使用它,即使有当前的限制?发布产品可能很难,而找到那些第一个用户更难。

基于浏览器的 AR

新的 Pixel 手机、iPhone 和其他新兴设备,如 Magic Leap,已经支持增强现实。它们报告地面位置、墙壁位置和其他对 AR 至关重要的环境感知问题。它们支持透视视觉和 3D 跟踪和注册。新兴标准,特别是 WebXR,很快就会以标准化的方式将这些能力暴露给浏览器,就像其他硬件功能在浏览器中构建和使用的方式一样。

原生应用开发工具链非常出色,但存在摩擦。跨多个不同的应用商店或平台发布产品可能很困难。对于 AAA 级游戏来说合理的成本对于较小的项目来说可能不合理。如果您想今晚为客户完成一个应用,或者为了回应新闻文章或当前事件而发布一个应用——这可能需要太长时间。

随着 AR 支持即将进入浏览器,现在有一个选择可以专注于讲述故事,而不是担心技术、成本和分发。从历史上看,浏览器提供了更低的进入门槛,以及即时部署到数百万用户、不受限制的分发和共享文化。能够通过单击链接分发应用,无需安装,可以降低激活成本并实现病毒式传播。这补充了其他开发方法,并且可以用于快速原型设计想法。

ARPersist - 这个想法

在我们的实验中,我们探索了用虚拟便签装饰世界会是什么样子。这些便签可以在应用内发布,并且可以在游戏之间保留。玩家实际上可以看到彼此,并且可以实时地看到彼此移动便签。便签在地理上固定,并且永久保留。

使用我们的实验,公司可以装饰他们的办公室,其中包含有关打印机如何工作的提示,或显示导航面包屑,以将迷茫的新员工引导到会议室。或者,度假的情侣可以走进 Airbnb,打开一个“ARBNB”应用(请原谅这个双关语),并查看显示额外的毯子在哪里或如何使用洗衣机的便签。

我们对我们的实验有这样的愿望用例目标

  • 办公室内部导航:想象一下,一个办公室装饰着虚拟提示,可能还包括导航支持。通常,访问者或公司员工会出现在一个不熟悉的地方——比如 Mozilla 的地区办事处、会议酒店,甚至医院——他们希望能够快速导航该空间。会议室位于不同的楼层——通常带有奇怪的名称,与位置无关。一位朋友或亲戚正在住院的特定病床可能就在隔壁,或者要爬三层楼并穿过一条走道。我相信我们都曾经努力寻找浴室、自助餐厅或那个会议室。即使我们找到了我们想要的东西——它是如何工作的,那里有谁,什么是重要的?以打印机为例。我们中有多少人曾在打印机前站了太久,试图弄清楚如何复印一份文档?
  • 为家庭客人提供互动信息:成为某人家中的客人可能是一段美好的体验。Airbnb 在陌生人之间建立信任方面做得很好。但是,是否有办法传达新空间的所有小细节?如何使用 Nest 传感器,如何使用高级洗碗机?铲子在哪里?额外的毯子在哪里?Airbnb 或共享出租房可以装饰虚拟提示。房主可以在空间内走动,并在一些物品上发布虚拟便签,表明电器的工作原理。机器辅助方法也是可能的——房主可以在摄像头处于活动状态的情况下在空间内走动,打开每个抽屉,并让机器学习算法标记和记忆所有内容。或者,想象一个实时变化,您的手机告诉您猫在哪里,或者您的钥匙在哪里。这里也存在协作的可能性,一个共享日记,客人可以在其中互相留下提示——尽管这确实引入了其他一些难以解决的问题,而且很难解决。
  • 公共零售和场所导航:这些想法也可以在购物场景中发挥作用,指引您找到洗发水,或者在您想在体育场馆、音乐厅或其他视觉上很吵闹的场所中确定朋友的位置的场景中发挥作用。

ARPersist - 这个应用

基于这些想法,我们为 iPhone 6S 或更高版本编写了一个独立的应用——您可以在 arpersist.glitch.me 上尝试,并在 https://github.com/anselm/arpersist>github.com/anselm/arpersist 上使用源代码。

以下是一个运行中的应用的简短视频,您可能在几天前的我的 推文 中看到过

如果您想自己尝试,请查看有关如何使用该应用的更多详细信息

以下是一张通过 iPhone 显示屏查看空间的图片

An AR hornet in the living room as seen through the iphone

以下是一张两个玩家的图片——每个玩家都可以看到另一个玩家的手机在 3D 空间中的位置,以及放置在上面的一颗心

您需要在 iTunes 商店获取 适用于 iOS 的 WebXR 浏览器。(WebXR 标准仍在不断完善,因此它还不能直接在大多数浏览器中运行。)

这项工作是开源的,它旨在被重复使用和玩弄,但同时——因为它与非标准的浏览器扩展相冲突——它不能被视为某人可以构建商业产品的东西(至少现在还不能)。

上面的嵌入视频提供了很好的描述:基本上,您通过访问 URL (arpersist.glitch.me) 来打开 ARPersist(使用上面链接的 WebXR 浏览器在 iPhone 6s 或更高版本上)。这会将您带入一个透视视觉显示。您将看到一个屏幕,右侧有四个按钮。“贝壳”按钮位于底部,它会带您到一个页面,您可以在该页面加载和保存地图。您需要“创建锚点”,并可以选择“保存您的地图”。此时,您可以从主页面使用顶部图标向世界添加新功能。您放置的物体将粘贴到最近的地板或墙壁上。如果您加入了其他人的地图,或者位于附近的地理位置,您也可以实时看到其他玩家。

此应用程序具有来自 Sketchfab 的可下载 3D 模型。这些是我正在使用的资产

  1. 飞翔的黄蜂 由 Ashley Aslett
  2. 低多边形乌鸦 由 fernandogilmiranda
  3. 爱情低多边形 由 Suwulo

进展顺利

从最初的开发阶段走出后,我有了许多令人惊讶的认识,甚至还有一些顿悟时刻。以下是我做得好的地方,我认为这些是 AR 体验的基本属性。

  • Web 化。在 Web 应用程序中进行 AR 非常令人满意。这是个好消息,因为(在我看来)移动 Web 应用程序更能体现未来开发人员创建内容的方式。当然,仍然有一些问题,例如支付模型以及在艺术资产有价值的情况下对这些资产进行加密或混淆的难度。例如,开发人员可以从网上购买一个 3D 模型,并将其轻松地集成到 Web 应用程序中,但目前尚不清楚如何在不违反关于再分发和如何补偿每次使用创造者的许可条款的情况下做到这一点。
  • 提示。这是一个新的见解。事实证明,语义提示至关重要,这不仅是为了用物体智能地装饰您的虚拟空间,也是为了过滤噪音。提示是指能够说虚拟物体的意图是应该显示在地板上、附着在墙上或放在饮水机上。简单地将物体放置在空间中与理解它为什么属于那个位置之间存在差异。此外,很快就会出现优先级概念。一些虚拟物体并不像其他物体那么重要。这可能取决于用户的上下文。存在不同的过滤层,但最终您会有一些想要渲染的虚拟物体集合,并且这些物体需要在自身之间争论应该在哪里显示(或者根本不显示)如果它们发生碰撞。问题不在于争用解决策略,而是物体本身需要提供丰富的元数据,这样才能存在任何策略。我甚至对一些有用的提示类型进行了分类。当您创建新物体时,您可以设置一些切换字段,以帮助表达您关于放置和优先级的意图
  • 服务器/客户端模型。在向客户端提供 AR 物体时,自然会出现传统的客户端服务器模式。此模型开始反映传统的 RSS 模式——拥有许多服务器和许多客户端。这里有机会尝试避免我们已经看到的一些现有的社交网络中的权力和审查制度的危险集中。这不是一个新问题,而是一个更紧迫的旧问题。AR 就在你眼前——防止集中化显得更加重要。
  • 登录/注册。传统的 Web 应用程序有一个中心登录的概念。它们为您管理您的身份,您使用密码登录他们的服务。但是,如今,将此推回给用户已经足够容易了。

    这有点技术化了——但主要原则是,如果您使用现代公钥密码学对自己的文档进行自签名,那么就不需要中央服务来验证您的身份。在这里,我实现了一个类似于 Metamask 的公钥/私钥对系统。该策略是用户提供一个长短语,然后我使用 Ian Coleman 的助记符代码转换器 bip39 将其转换为公钥/私钥对。(在本例中,我使用的是比特币密钥签名算法。)

    在我的示例实现中,给定的密钥对可以与给定的物体集合相关联,并且它有助于从任何集中的社交网络中剔除核心责任。用户对自己创建的所有内容进行自签名。

  • 6DoF 控制。通过手机来编写用于平移、旋转和缩放增强现实物体的良好控件可能很困难。但在构建结束时,我意识到手机本身就是一个 6dof 控制器。它可以成为一种方式来达到、抓住、移动和旋转——并极大地减少构建用户界面的工作量。最终,我最终抛弃了很多用于移动、缩放和旋转物体的复杂代码,并将它们简单地替换为一个单一的电源,即使用手机本身来拖动和旋转物体。拉伸是免费的——如果您用两根手指而不是一根手指轻触,那么您的手指距离将用作拉伸系数。
  • 多人游戏。在同一个房间中,这个应用程序中有许多玩家,这真是太棒了。每位参与者都可以操作共享物体,并且每位参与者都可以被视为房间中的一个浮动心脏——正好位于他们的手机在现实世界中的位置之上。这非常令人满意。没有太多共享的构图编辑(因为应用程序非常简单),但如果应用程序更强大,这将非常引人注目。

剩余的挑战

我们还确定了许多挑战。以下是我们遇到的其中一些挑战。

  • 硬件。Magic Leap 或 Hololens 将成为此体验的更好平台,这一信号相当强烈。手机并不是一个非常令人满意的方式来操作增强现实中的物体。此工作的下一个合乎逻辑的步骤是将其移植到 Magic Leap 或 Hololens 或两者或其他类似的新兴硬件上。
  • 重新定位。一个严重的问题,几乎是阻碍性问题,是重新定位效果差。在连续的运行之间,我无法重新建立手机的位置。重新定位,即我的设备准确地了解其在现实世界空间中的位置和方向的能力,是不可预测的。有时,当我运行应用程序时,它会连续多次正常工作。有时,我一天中无法建立一次重新定位。看来最佳的重新定位要求苛刻,需要非常明亮的阳光、稳定的照明条件以及杂乱的锐利边缘几何形状。被动光学上的重新定位太难了,而且会破坏连续感——能够退出应用程序并重新启动它,或者使多个人能够从自己的设备共享相同的体验。我尝试了一个解决方法,那就是让用户手动重新定位——但我认为这还需要进一步探索。

    这最终是一个硬件问题。Apple/Google 在纯粹的软件方面做出了不可思议的工作,但硬件并非为此任务而设计。可能最好的短期答案是使用二维码。一个更长期的答案是再等一年,等到更好的硬件。显然,下一代 iPhone 将配备主动深度传感器,这可能在一两年内完全解决这个问题。(挑战是我们希望在未来到来之前玩耍——因此,我们现在确实需要某种临时解决方案。)

  • 捣乱。虽然我的测试受众太小,没有捣乱者——但很明显,任何规范的现实层都会立即充满可能具有攻击性或不适合工作 (NSFW) 的图形图像。我们必须找到一种方法来允许对层进行管理。垃圾邮件和捣乱行为很重要,但我们不想阻止自我表达。这里的答案是没有单一的虚拟空间,而是让人们自己选择他们要关注的人。我可以看到一些角色正在出现,它们可以简化管理并分发管理共享虚拟空间的领导角色——类似于维基百科。
  • 空旷的空间。当周围没有其他人时,AR 是一个孤独的世界。如果没有其他人,用虚拟物体装饰空间根本没有多少乐趣。这在很大程度上感觉像是社交。这里的一个想法是,也许最好,而且可能,创建将多个 AR 空间连接在一起的门户——即使这些空间实际上不在同一个地方——以便将人们聚集在一起达成共识。这在某些方面开始听起来更像是 VR,但可能是 AR 和 VR 的混合。您可能在您家,您的朋友在他们家,您可以将您的房间虚拟地连接在一起,然后在彼此的空间中看到彼此的便条或公共虚拟物体(根据与这些物体相关的提示附着在最近的墙壁或地板上)。
  • 安全/隐私。仅此主题就可以写出整篇文章。关键问题是,将地图共享到服务器,其他人可以下载该地图,意味着将您自己家或空间的私人细节泄露给其他方。其中一些仅仅意味着智能地通知用户——但这仍然是一个悬而未决的问题,值得深思。
  • 媒体代理。我们已经相当习惯于将链接剪切粘贴到 Slack 或其他类型的论坛中,但 VR/AR 中还没有类似的功能,尽管 Hubs 中的媒体共享功能,Mozilla 的虚拟现实聊天系统和社交环境,是第一步。不仅可以粘贴 3D 模型,还可以粘贴 PDF、视频等。富媒体内容提供商和想要允许和授权内容共享的实体之间存在着一场高度竞争的反共享战争。以 iframely 为例,这是一项旨在简化和优化平台和设备之间富媒体共享的服务。

下一步

以下是我认为这项工作将如何继续进行。

  • 包装。尽管应用程序在“技术上”可以运行,但它并不那么用户友好。存在许多 UI 假设。在捕获空间时,必须让设备在保存地图之前捕获足够的数据。没有用于删除旧地图的真正界面。调试屏幕提供了有关系统状态的提示,对于新手来说相当难以理解。基本上,整个采集和跟踪阶段应该“正常工作”,而现在它需要相当程度的专业知识。以更连贯的“包”来执行操作的正确方法是将这种体验作为特定用例的实际应用程序推进。AirBNB 装饰用例似乎是正确的用例。
  • 头戴式显示器 (HMD) 支持。 Magic Leap 或 Hololens 甚至可能包括 Northstar 支持。这种体验最适合在真正的增强现实眼镜中实现。现在已经可以实现,并且值得去做。当然,每个开发者也会编写相同的应用程序,但将从浏览器的角度进行编写,并且基于浏览器的持久性解决方案具有价值。
  • 装饰。有一些小的功能可以轻松快速地实现。例如,显示人们在空间中移动的轨迹会很不错。此外,能够让人们在便签上键入或输入自己的文本(现在你可以将 gltf 对象或图像放置在网格之外)也很不错。而且,对于其他媒体类型,能够提供更丰富的代理支持也是不错的。在这种情况下,我还想澄清一些内容的许可问题。改进手动重新定位(或使用二维码)也可能有所帮助。
  • 导航。我没有做应用程序内的路线查找和导航;这是可以帮助讲述故事的另一个环节。我认为它不像基本放置那么重要,但它有助于说明用例。
  • 过滤。我们对社交网络抱有期望,例如按我们没有测试过的同伴进行过滤。这在未来将非常重要。

几个架构观察结果

这项研究不仅侧重于用户体验,还探索了内部架构。一般来说,我认为 MVP 背后的架构应该反映完整应用程序将交付的成熟的作业划分。在早期阶段,MVP 必须在架构上反映更大的代码库。此应用程序的当前实现包含以下部分(我认为这些部分反映了更成熟系统的重要部分)

  • 云内容服务器。必须存在一个服务器来托管来自任意参与者的任意数据对象。我们需要某种形式的托管,人们可以向其发布内容。在更成熟的宇宙中,可能会有许多服务器。服务器可以仅仅是 WordPress,内容可以仅仅是 GeoRSS。但是,目前我只有一个服务器,但同时,该服务器并没有太多责任。它只是一个共享数据库。还有一个第三方的 ARCloud 计划 也谈到了这一点。
  • 内容过滤器。过滤内容是 MVP 的一个极其重要的需求。我们必须能够证明用户可以控制他们看到的内容。我认为这个过滤器是一个完美的代理,就像你的一个复制品,它有时间仔细检查每个数据对象,并思考是否值得与你分享。内容过滤器是你意志的代理。它具有完美的偶然性、完美的理解和对所有事物的完美了解。当然,现实与之相差甚远,但这是我对这里工作的精神模型。过滤器可以存在于设备上或云端。
  • 渲染器。客户端渲染层负责在你视野中绘制内容。它处理争夺你注意力的对象之间的争用解决。它处理呈现语义,即某些对象希望在特定位置显示,以及围绕人们如何与 AR 交互的基本 UX 范式的理念。基本上,它创造了一个 AR 桌面——一个基本的 AR 界面——来协调人机交互。当然,我们无法做到这一切,但这是我对这里工作的精神模型。
  • 身份管理。这对整个网络来说是一个未解决的问题,并且正在破坏网络上的通信。可以说,这是当今世界上最严重的问题之一,因为如果我们无法沟通,并且不知道其他方是真实的,那么我们就不会拥有文明。对于 AR 来说,这也是一个关键问题,因为你不能在脸上看到垃圾邮件和垃圾内容。我上面提到的方法是让用户对自己所说的话进行自签名。在此基础上,将是传统的服务来建立人们(或我称之为发射器)的关注列表,然后使用一种策略来仲裁这些发射器,该策略根据他们所说内容的质量对发射器进行评分,有点像加权上下文网络图。

关于所有对象地理定位的架构观察结果

另一个技术要点值得进一步阐述。在开始之前,我们必须回答“我们如何表示或存储虚拟对象的位置?”这个问题。也许这并不是周六晚上在酒吧里聊天的一个好话题,但无论如何都很重要。

我们在现实世界中理所当然地接受了很多事情——标志、路灯、建筑物。我们希望即使你转过身,它们也仍然存在。但编程就像建造宇宙,你必须手动完成所有事情。

我们采用的方法似乎很明显:使用 GPS 坐标定义对象位置。我们为每个对象提供纬度、经度和海拔(以及方向)。

但问题是,今天的手机没有精确的地理定位。我们不得不自己编写一个包装器。当用户启动我们的应用程序时,我们会构建(或加载)该区域的增强现实地图。该地图可以保存到服务器上,并具有精确的地理定位。一旦有了房间的地图,地图中的所有内容都会非常精确地进行地理定位。这意味着你在我们的应用程序中放置或执行的任何操作实际上都指定在地球全球坐标系中。

Blair 指出,尽管现代智能手机(或设备)目前没有非常精确的 GPS,但这种情况很可能很快就会改变。我们预计,在未来一两年内,GPS 将变得非常精确,通过景观的 3D 深度地图进行增强,这将使我们的包装器成为可选的。

结论

我们的探索一直在对话和代码中进行。我个人喜欢这种实践——花一些时间谈论,然后实现一个可行的概念验证。没有什么比真正尝试构建一个例子更能澄清思路了。

从一万英尺的高度来看,在光谱的理想主义一端,很明显我们对 AR 的定义或未来都持有不同的看法。我渴望的 AR 视图是来自许多不同提供者的许多不同信息对象的集合——个人提醒、城市交通叠加、天气机器人、朋友位置通知器、我在空间中先前轨迹的轨迹等等。感觉就像一种创造性的媒介。我看到用户想要创作对象,不同的对象具有不同的优先级,不同的对象“活着”,即它们有自己的意志、移动性和彼此之间的交互。这样,AR 视图就与默认世界的自然视图相呼应——各种实体都在争夺我们的注意力。

退一步,从十万英尺的高度来看,人类在创造性地使用几种基本沟通模式。我们使用视觉媒体(标识)和音频(说话、语音聊天)。我们拥有高分辨率、高保真度的表达能力,包括我们的肢体语言、手势,特别是非常丰富的面部表情。我们还有基于文本的媒体,以及许多其他类型的媒体。感觉就像是,任何构建一种通信媒介的人,只要能够轻松地让人类通过该管道传递一些高带宽需求,那么该媒介就会变得非常流行。Skype、消息、维基、甚至音乐——所有这些东西都满足了人类的基本表达需求;它们是输出和表达的渠道。

在这种情况下,一个正在浮现的问题是“在空间中共享 3D 对象是否是一种基本的通信媒介?”。如果是这样,那么问题就变成了“为什么不构建一种最小能力来表达对象在空间中的持久 3D 位置?”。显然,工作需要赚钱,并且对于制作工作的人来说是可持续的。我们是否在触及一些足够基本、足够有价值的东西,即使在早期阶段,人们也会为此花钱(或付出精力)?我认为,如果我们帮助表达人类的基本沟通模式,那么我们都会取得成功。

令人惊讶的是持久性的力量。当体验效果很好时,我的脑海中会产生一种错觉,认为我的房间确实存在这些虚拟图像和物体。我们的思维似乎被持久性的错觉深深地愚弄了。类似于使用 Magic Leap,有一种“魔法”的感觉——你有一种感觉,认为另一个世界就在那里,只要你眯起眼睛就能看到它。即使你放下了设备,这种感觉仍然萦绕不去。增强现实开始变得真实了。

关于 Anselm Hook

在 Twitter 上联系我,我的用户名是 @anselm。我在加拿大落基山脉长大,我仍然非常热爱户外活动,并觉得它让我踏实。如果非要让我选择一件我最感兴趣的事情的话,那就是“帮助人们看得更清楚”,在嘈杂的数字景观中互相发出信号,并且一起做出更明智的决定。

更多 Anselm Hook 的文章...