让每个人都能构建元宇宙?我们需要三维设计系统(3D Design Systems)
文章英文版
元宇宙似乎是一个迷人的未来主义命题,有朝一日我们将拥有数十亿人愿意“生活在其中”的虚拟世界。 显然,我们还没有看到真正的元宇宙产品,而且在短期内不太可能看到这样的产品。 那么是什么阻止了元宇宙在短期内成为现实呢? 我认为元宇宙最大的瓶颈是三维内容创作。元宇宙需要海量的 3D 内容,但是3D 复杂且昂贵。 我们需要简化创作工具,标准化内容创建流程,并利用成熟的设计系统来给终端用户赋能。
在本篇小作文中,从Christopher Alexandar的模式理论出发,到生成艺术和人工智能的具体操作,我尝试着勾勒出3D 设计系统的框架。
什么是设计系统(Design System)?
设计系统是一系列可重用的组件和它们的使用指导文档,使用这些组件能够快速地开发不同平台的产品。设计系统提供系统的解决方案来指导不同团队的合作,借助统一的视觉语言和可重用组件,设计人员和开发人员可以更好、更快地在所有平台上构建具有凝聚力的用户体验。
谷歌、Airbnb 和阿里巴巴等公司都开发了自己的设计系统。创建独特的开源设计系统不仅是品牌的视觉宣言,同时也培育了追随者的生态系统,和社区一起成长和迭代。
对于 2D 设计系统,我们有很多很好的例子,比如 Google 的 Material Design、阿里巴巴的 Ant Design、Shopify 的 Polaris 等等。在设计系统的工具方面,我们有 Figma、Sketch、InVision等等……
为什么我们需要元宇宙的设计系统?
让每个人都更轻松地创建3D内容
互联网已经从最初基于文本的静态网页发展为包含图像和视频的可以互动的2D目录,并且一定会走向 3D的时代——元宇宙。每个数字媒体时代都催生了用户可以轻松制作、编辑和共享内容的工具,例如我们手机上的照片和视频编辑应用程序,让公众可以积极参与到内容创作中。
元宇宙需要大量的 3D 内容来吸引用户,然而3D 的成本很高。 3D 内容的制作是一项艰巨的任务,通常委派给训练有素的专业人士。许多创作工具价格昂贵且学习曲线陡峭。你可能还需要学习编程和游戏引擎,每一个工具都是庞大而复杂的,但是在学习了所有工具之后,用户能否制作出高质量的场景呢?
使用户能够快速进行3D原型创作
我见过很多新兴的网页版的3D设计软件,初步解决了可访问性和实时协作的问题,但它们只是相当于将 Microsoft Office 变成了网页版的 Google Doc。不懂3D设计的用户仍然不知道从哪里开始,如何构建高质量的场景。我认为我们可以考虑开发三维的设计系统,并制作构建模块和规则(关系),以方便用户利用模块构建自己的场景。这种模块不仅包括空间形式、材质和着色器(shader),还包含生成逻辑、交互方法以及与其他模块的数据接口。一般用户只需拖放和点击即可生成 3D 内容。对于有一定技术能力的用户,我们可以为他们提供开发工具,让他们可以自定义和扩展功能,或者生成新的模块。在我看来,独立游戏 Townscraper 是一个设计系统。开发人员预先设置了中世纪城镇的模块及其规则。用户可以通过点击快速生成场景,学习成本基本为零。

3D设计系统是丰富多彩和依托社区的
由于三维世界的丰富性,设计系统必然五花八门,各种细分垂直化的系统可能无穷无尽, 二维互联网中几个大厂的设计系统就主导市场的可能性不大。我们可以有哥特式设计系统、赛博朋克设计系统,或者特定的交通规划系统、植被系统、角色系统…无限可能。如果你开发了一个自己风格的设计系统,就可以进而建立一个社区,甚至建立一个自己的虚拟世界。
Christopher Alexander的模式理论和生命世界的生成
模式理论
“拥有模式语言的人不需要是‘专家’。专业性在于语言。他/她可以为规划和设计做出贡献,因为他们知道相关的模式、如何组合它们,以及特定的部分如何融入更大的整体。” — Christopher Alexandar,一种模式语言当谈到如何扩展设计(scale design)时,我脑海中浮现的第一个灵感就是 Christopher Alexander。他是一位建筑师和设计理论家,同时影响了建筑以外的领域,包括城市设计、软件和社会学。具有讽刺意味的是,亚历山大被老本行里的一些主流建筑师和评论家认为是有争议的,而他的思想在其他领域获得了更大的认可。在软件方面,Alexander 被视为模式语言运动之父。Alexander 的工作也影响了敏捷软件开发的发展。
Alexander 最出名的可能是他 1977 年出版的《A Pattern Language》一书,旨在为普通人(不仅是专业人士)提供一种设计美好环境的方法。他的书直接启发了城市建设模拟游戏 SimCity 的创造者 Will Wright,“我对设计的过程和策略很感兴趣。建筑师 Christopher Alexander 在他的《A Pattern Language》一书中,将许多空间关系形式化为设计语法。我很想研究为复杂系统所用的语法,并为人们提供设计复杂事物的工具。”
正如 A Pattern Language 解释的那样:“每个模式都描述了一个在我们的环境中反复出现的问题,然后描述了该问题解决方案的核心,您可以使用该解决方案一百万次,而每次都不必相同。”
对于 UX 设计师来说,这个概念听起来非常熟悉——它是每个设计系统的基础。设计模式是最佳实践、良好设计元素的通用资源,最重要的是,它提供了一个存储库,以便其他人可以轻松地反复使用这些解决方案。当一个完美的轮子已经存在时,为什么还要发明轮子¹?
建筑环境中的“生命”
什么是好的设计以及如何评估设计?我们可以客观地研究“感觉”吗?Alexander的目标是创造一种科学的世界观,在这个世界观中,这个概念——万物都有一定程度的生命——得到了很好的定义。在他后来的著作《秩序的本质》(*The Nature of Order)*中,亚历山大试图定义建筑环境中的“生命”,并确定为什么一个建筑环境可能比另一个有更多的生命。
可悲的是,他认为我们不再有能力生产“生命结构”(living structure),尤其是在二战之后。许多现代建筑是无生命的,让人感觉心若死灰。曾经在传统社会、农村社区和早期城市定居点中存在的维持和养育我们所需的“生命结构”已经消失。
出了什么问题,我们该如何纠正?什么进程是普遍存在于自然界中而迷失于当代?特别是迷失于现代的城市建设和当代建筑中?从他的设计模式开始,他发现最能激起人们感情的设计,他称之为生命结构的设计,具有某些共同的特质。这不仅仅是一种直觉,而是一种可检验的经验理论,他从 1970 年代后期到世纪之交都对其进行了验证和完善。他确定了 15 种特质,每种特质都有一个技术上的定义和许多示例。作为模式理论的补充,只要建筑物有生命,这 15 种几何特性似乎就递归地存在于空间中。这 15 个属性似乎定义了一种更基本的东西。类似于我们之前提到的模式,但更浓缩、更重要——所有好的模式都是由某些特质组成的²。
这些特质是:(这些翻译的可能不是特别贴切,请高人指教 )
规模级别 (Levels of scale)
强大的中心 (Strong centers)
边界 (Boundaries)
交替重复 (Alternating repetition)
正空间 (Positive space)
好的形态 (Good shape)
局部对称 (Local symmetries)
深刻的连锁和模棱两可 (Deep interlocking and ambiguity)
对比渐变 (Contrast gradients)
粗糙度 (Roughness)
回声 (Echoes)
虚空 (The void)
简单而内心平静 (Simplicity and inner calm)
不分离 (Not separateness)

事实证明,这 15 个属性是所有模式的基础,并开始在他的作品中越来越清晰地显示为场所、建筑物、物体、空间等生命结构的主要关联物³。
生成一个完整的、有生命力的世界
在Alexander看来,事物不是孤立的实体,而是相互关联的整体的一部分。 要了解这件事有多“好”,必须根据该事物的背景对其进行整体评估。 例如,房间是建筑物的子结构,建筑是街道的子结构,街道是城市的子结构,城市是国家乃至地球或宇宙的子结构,以此类推。 另一方面,同一个房间还包含比不同规模(或层次结构)级别的大型子结构更多的小型子结构。 例如,一堵挂着画的墙可能比“大”包含更多的“小”。 因此,那个房间的好坏取决于它相邻的房间和东西,取决于那个房间里的小东西,以及包含那个房间的更大的东西(或建筑物)。 它本质上是对空间优度的递归定义⁴。
运用世界创建算法的生成艺术系统(Generative art system with worldbuilding algorithms)
生成艺术是指艺术家使用系统的任何艺术实践,例如一组自然语言规则、计算机程序、机器或其他程序发明,这些系统以某种程度的自主性启动,有助于或导致一件完成的艺术品。 ——Philip Galanter我们有许多成熟的生成技术,每一个都可以用无穷无尽的论文和研究来阐述。在本章中,我将通过 3D 内容生成中的示例对这些概念进行简要介绍。
随机性和噪声(Randomness and noise)
使用随机性和噪声可能是生成艺术最古老、最简单和最常见的方法。艺术家使用各种参数来定义一个变化的空间,它可以取一定范围内的值,随机选择的值影响被操纵的元素,形成最终的作品。
噪声的基础来自随机数。随机数的特点是每个点的值都是离散的,彼此无关,而噪声使离散的随机数连续。
有不同种类的噪音,如白色,红色,柏林噪音..等。有关噪声理论的更多详细信息,您可以查看这篇文章:
Perlin噪声
Perlin 噪声是由 Ken Perlin 发明的程序生成算法。它可用于生成具有自然品质的各种效果,例如云、火焰、地形、景观和大理石等图案纹理。该算法可以在不同的维度上实现。

您还可以试验下面的交互网页用Perlin噪声生成3D地形。
混沌理论和分形(Chaos theory and fractals)
混沌是关于惊奇、非线性和不可预测的科学。它教会我们期待意外。虽然大多数传统科学都处理所谓的可预测现象,如重力、电或化学反应,但混沌理论处理实际上无法预测或控制的非线性事物,如湍流、天气、股市、我们的大脑状态等。这些现象通常用分形数学来描述,它捕捉到了自然界的无限复杂性。许多自然物体表现出分形特性,包括风景、云、树木、器官、河流等,我们生活的许多系统表现出复杂、混乱的行为。
分形是一种永无止境的模式。分形是无限复杂的模式,在不同的尺度上是自相似的。它们是通过在持续的反馈循环中一遍又一遍地重复一个简单的过程来创建的。由递归驱动,分形是动态系统的图像——混沌的图像。在几何上,它们存在于我们熟悉的维度之间。分形图案非常熟悉,因为自然界充满了分形。例如:树木、河流、海岸线、山脉、云层、贝壳、飓风等⁵
在 3D 中扩展分形时,有许多很好的示例和工具。印度教寺庙具有自相似的分形结构。 Mandelbulb 是一种三维分形,由 Jules Ruis 于 1997 年首次构建,并于 2009 年由 Daniel White 和 Paul Nylander 进一步开发。 Mandelbulb 3D 是为 3D 分形成像创建的免费软件应用程序。


L系统
生物学家 Aristid Lindenmayer 于 1968 年创建了 Lindenmayer 系统或 L 系统,以正式确定细菌的生长模式。 L-systems 是一种递归的字符串重写框架,目前普遍用于计算机图形学中用于可视化和模拟有机生长,并应用于植物开发、程序内容生成和类似分形的艺术。⁶
L-system经常被艺术家用来生成植物形态或模拟植物的生长过程。

这是一个交互式在线工具,用于调参和使用 2d L 系统生成器:
Michael Hansmeyer 是一名建筑师和程序员,他探索使用算法来生成建筑形式。 受细胞分裂的启发,Michael Hansmeyer 编写了一个设计算法,生成惊人的华丽形状和无数的面。 没有人可以手工绘制它们,但它们可以被制作出来——它们可以引发对传统建筑形式的思考。

Michael Hansmeyer 在 2012 年的 TED 演讲:构建难以想象的形状, 请自行搜索。。
形状语法(Shape grammars)
计算中的形状语法是生成几何形状的特定类别的生产系统。 通常,形状是 2 维或 3 维的,因此形状语法是研究 2 维和 3 维语言的一种方法。 1971 年,George Stiny 和 James Gips 在一篇开创性的文章中首次介绍了形状语法。
形状语法是 2D 和 3D 空间中“以逐步方式应用以生成一组设计或语言的形状规则“, 它们可以作为复杂设计的简单起点。⁷
这是一个重新创建帕拉第奥别墅的形状语法。 Palladian 语法最初是由 Stiny 和 Mitchell 提出的。

在 Unreal 的 The Matrix Awakens 中,建筑生成器使用形状语法来设置建筑的样式。 每种不同的建筑风格都有一套不同的规则。


您还可以观看 The Matrix Awakens: Generate a world 的技术讲座。
CityEngine 是一个用形状语法来程序生成的工具,通过描述它们的规则而不是直接创建它们的几何图形。 当需要大量创建遵循某些标准化规则的形状时,这种基于语法的建模特别有用,这使得它非常适合城市环境的生成。 CityEngine 提供自己的编程语言,称为 CGA 形状语法,专门用于编写生成建筑 3D 内容的规则。
波函数坍缩算法 (Wave function collapse)
Wave function collapse 是 Maxim Gumin 开发的一种算法,作为基于简单配置或样本图像的纹理合成方法。 它是一种基于约束的程序算法,其灵感来源于量子物理学中波函数坍缩的概念并命名。 在量子物理学中,波函数坍缩是指粒子的未观察状态可以是任何东西。 一旦观察到粒子,可能性就会消失,波函数就会崩溃。 同样的想法是过程算法的支柱。
下面这篇文章很好地解释了波函数坍缩算法:
开发者 Marian 使用波函数坍缩算法构建了一个无限城市生成器:
使用波函数坍缩算法开发的最著名的游戏之一是 Townscrape。 这是一个小游戏,有很大的野心。 玩家可以在其中简单地在游戏世界中添加或删除一个块。 使用这个工具,您可以制作从田园诗般的海滨城镇到跨越地平线的大都市的一切。

您可以在这里尝试玩 Townscaper 的网络版本:
马尔可夫算法(Markov algorithm)
在理论计算机科学中,马尔可夫算法是一种字符串重写系统,它使用类似语法的规则对符号字符串进行操作。 马尔可夫算法已被证明是图灵完备的,这意味着它们适合作为通用计算模型,并且可以从其简单的符号表示任何数学表达式。 马尔可夫算法以苏联数学家 Andrey Markov, Jr. 的名字命名⁸
基于 Markov 算法,开发者 Maxim Gumin 提出了 MarkovJunior,一种基于模式匹配和约束传播的概率语言。

MarkovJunior 中的概率推理允许对未来状态施加约束,并且只生成那些导致受限未来的运行。 例如,推箱子规则 {RWB=BRW RB=BR} 中的推理使一组(红色)代理将(白色)板条箱组织成指定的形状。使用这些想法,我们构建了许多地牢、建筑、谜题和有趣模拟的概率生成器。
这是MarkovJunior的源代码:
镶嵌(Tessellation)
镶嵌或平铺是使用一种或多种几何形状覆盖表面(通常是平面),没有重叠和间隙。 在数学中,曲面细分可以推广到更高维度和各种几何形状。 镶嵌产生了许多类型的拼图游戏,从传统的拼图游戏(使用不规则的木头或纸板)和七巧板到通常具有数学基础的更现代的拼图。
在建筑中,镶嵌自古以来就被用来创造装饰图案。 马赛克瓷砖通常有几何图案。 镶嵌经常出现在 M. C. Escher 的图形艺术中; 他在 1936 年访问西班牙时受到摩尔人在阿尔罕布拉宫等地使用对称性的启发。⁹
Tessellation 可以扩展到三个维度。 某些多面体可以堆叠成规则的晶体图案以填充(或平铺)三维空间,包括立方体、菱形十二面体、截断八面体、三角形、四边形和六边形棱柱。。
遗传算法 (Genetic algorithm)
遗传算法 (GA) 是一种受自然选择过程启发的元启发式算法,属于较大的进化算法 (EA) 类别。 遗传算法通常用于生成高质量的优化和搜索问题解决方案,它依赖于受生物学启发的算子,例如变异、交叉和选择。¹⁰
典型算法的单循环基本上是从初始选择,经过交叉,依次到变异。 如果结果不符合标准,算法循环将重新开始,使用新的后代作为染色体的初始种群。 下图显示了 GA 的工作逻辑。
遗传算法特别适用于解决具有大量可能解的优化问题。 我考虑了候选者的多样性和遗传算法的选择系统,以使架构进化过程受益。
下面的示例显示,Nathaniel Louis Jones 使用 GA 作为进化工具来创建更适合的一代房屋,这些房屋按照明、供暖和功能标准进行排名。 “经过几次算法运行后,架构师有许多合适的设计选项可供选择…… GA 发现的一些解决方案以其机器创造力的展示而著称,即使没有人类智能,这些适应性似乎也经过深思熟虑。”,N. Jones 说。¹¹
元胞自动机(Cellular automaton)
元胞自动机在 1950 年代早期被研究作为生物系统的可能模型。 元胞自动机是特定形状网格上“彩色”单元的集合,这些单元根据一组基于相邻单元状态的规则,通过多个离散时间步长演化。 然后将规则迭代地应用到所需的多个时间步长。 von Neumann 是最早考虑这种模型的人之一,并将细胞模型纳入他的“通用构造函数”中。¹²
在二维中,最著名的元胞自动机是康威的生命游戏,由 J.H.Conway在 1970 年发明。

在将元胞自动机扩展到 3d 的同时,下面的项目演示了使用神经元胞自动机生长的类似 Minecraft 的 3d 工件。

涌现和群体智能(Emergence and swarm intelligence)
群体智能系统通常由一群简单的智能体或生物群组成,它们在本地相互之间以及与它们的环境进行交互。灵感往往来自大自然,尤其是生物系统。智能体遵循非常简单的规则,尽管没有集中控制结构来规定个体智能体的行为方式、局部性和一定程度的随机性,但这些智能体之间的交互会导致个人不知道的“智能”全局行为的出现代理。自然系统中群体智能的例子包括蚁群、蜂群、鸟群、鹰狩猎、动物放牧、细菌生长、鱼类群落和微生物智能。
与大多数人工生命模拟一样,Boids 是涌现行为的一个例子。也就是说,Boid 的复杂性源于遵循一组简单规则的个体代理(在本例中为 Boid)的交互。在最简单的 Boids 世界中应用的规则如下:
分离:避免拥挤当地的羊群
对齐:转向当地羊群的平均航向
凝聚力:引导向当地群友的平均位置(质心)移动
可以添加更复杂的规则,例如避障和寻找目标。¹³
在现代娱乐产业中,越来越多的电影和游戏中的人群、战争、动物集群等大型场景在群体计算的帮助下产生。
3D 内容生成中的人工智能
人工智能是一个快速发展的领域。 我现在正在敲的字的可能在 6 个月后完全过时。 尽管听起来很可怕,但我相信 AI 赋能的 3D 内容创建工具将会腾飞,让用户能够生成虚拟世界,这只是时间问题。
对于文本到2d的图像生成,DALL·E、Midjourney 等 AI 工具已经可以完成令人惊叹的工作。 用户只需键入文本提示即可生成完成度很不错的图像。
NVIDIA GET3D 仅使用 2D 图像进行训练,可生成具有高保真纹理和复杂几何细节的 3D 形状。
Google Research 推出了 DreamFusion,这是一种从文本提示生成 3D 模型的新方法。 该方法将文本到 2D 图像的扩散模型与神经辐射场 (NeRF) 相结合,生成质量适合在 AR 项目中使用的纹理 3D 模型,或作为雕刻的基础网格。¹⁴
至关重要的是,它不需要使用一组真实的 3D 模型作为训练数据——这可能为开发实用的、大众市场的基于 AI 的文本到 3D 工具铺平了道路。
您还可以使用 AI 工具制作 3D 资产动画、进行运动跟踪和自动绑定。
我们能把内容和形式分开么? 在二维互联网里我们可以把内容和形式分开,比如html是内容,css是形式,在三维空间中如何把体量和风格分开呢,又该如何定义三维中的体量和风格?在二维画作中,我们可以通过机器学习(style transfer)去把一幅画变成莫奈,毕加索的风格,那么在三维空间中,我可以把一个平平无奇的立方体变成高迪的风格么?
也许在不久的将来,用户可以结合一套 AI 工具,在文字提示中描述场景,轻松生成高质量的 3D 资产,这将从根本上改变内容创作格局,让 3D 沉浸式虚拟世界成为现实。
产品愿景、可用性和可扩展性
易于使用和访问
3D 设计系统的产品需要对没有设计经验的用户来说是直观的,暴露最小的复杂性的同时具有灵活性,以降低用户的学习曲线。
可视化编程语言可能是一个用户友好的界入点。 基于节点的界面在设计/开发工具中非常常见,例如 Scratch、Houdini、Unreal Blueprint、Grasshopper、Blender geometry nodes等。 用户可以组合和调整预定义的设计节点来构建场景并应用交互和视觉效果。
她应该易于访问和支持团队协作,我们需要开发基于浏览器的几何引擎。
以下是一些我认为很有前景的网页版的 3D 设计产品:
易于集成、扩展和互操作性
3d 设计系统需要利用现有工具构建的设计解决方案,并为高级用户提供扩展功能的选项。 3D 资产互操作性是确保每个人都在同一基础上构建的关键。
元宇宙标准论坛是标准组织和行业之间协调的场所,其使命是促进实用和及时的标准化,这对于开放和包容的元宇宙至关重要。”“技术和标准是虚拟世界的基石。”
设计驱动、系统思考和社区维护
3d 设计系统是关于探索可扩展设计的流程和策略。 系统思维是一种理解世界复杂性的方法,通过从整体和关系的角度来看待它,而不是把它分解成各个部分。 我们可以利用和集成大量设计解决方案,无需从头开始造轮子。 我们只需要使系统非常易于使用和拓展。
没有社区的支持,设计系统就不会蓬勃发展。 我们需要各种设计解决方案、风格、动作和交互来填充“系统库”,从而为最终用户赋能。
感谢您阅读到这里! 3D 设计系统需要跨学科的研究,将在设计和技术的交汇处发展。 期待您的关注和反馈!
参考:
参考 00:生成式艺术和算法创作01-概述 系列文章
Christopher Alexander: The father of pattern languageTim Gorichanaz, How living architecture could help the world avoid a soul-deadening digital futureKeynote Speech to the 1996 OOPSLA Convention By Christopher Alexander, The origins of pattern theory, the future of the theory, and the generation of a living worldBin Jiang, Christopher Alexanders Pursuit of Living Structure in CitiesWhat is chaos theory, https://fractalfoundation.org/resources/what-is-chaos-theory/https://jsantell.com/l-systems/https://en.wikipedia.org/wiki/Shape_grammarhttps://github.com/mxgmn/MarkovJuniorhttps://en.wikipedia.org/wiki/Tessellationhttps://en.wikipedia.org/wiki/Genetic_algorithmSiyuan Jing, Architectural evolutionary system based on Genetic Algorithmshttps://mathworld.wolfram.com/CellularAutomaton.htmlhttps://en.wikipedia.org/wiki/Swarm_intelligenceGoogles DreamFusion turns text into 3D models
发表回复