← 返回信息流
AI 资讯Hacker News·1 天前

Thi.ng:开源计算设计与艺术构建模块

原标题:Thi.ng – open-source building blocks for computational design and art

速览

Thi.ng 是一个专注于计算设计与艺术领域的开源项目,提供了一系列基础的构建模块。这些模块旨在帮助开发者和艺术家更高效地创建复杂的生成式作品和交互式体验。该项目通过开放源代码促进了创意技术的共享与创新。

AI 深度解读

Thi.ng:计算设计与艺术领域的开源基石

背景

Thi.ng 是一个长期致力于“计算设计”(Computational Design)的开源项目集合。它并非一个针对特定用例、环境或编程语言的单一框架,而是一套庞大且成熟的互补代码库。该项目由 Karsten Schmidt 于 2006 年创建并维护,经过近三十年的发展,已有机地成长为包含约 350 个子项目的庞大体系,其中至少有一半仍处于积极维护状态。

Karsten Schmidt 是一位在计算与生成式设计领域极具影响力的创作者。自 2006 年以来,他不仅创建了 thi.ng,还参与贡献了 Processing 和 Clojure 等知名开源项目。他的工作足迹遍布全球顶尖机构,包括伦敦巴比肯中心、维多利亚与阿尔伯特博物馆、纽约 MoMA、莫斯科 Garage 美术馆、特拉维夫 Holon 设计博物馆以及北京中央美术学院美术馆等。

最初,thi.ng 的诞生是为了实现 Karsten Schmidt 多样化的工作项目、委托创作以及实验性设计研究,旨在形成一个尽可能由社区共同生长和控制的开放工具包。随着时间推移,其概念范围大幅扩展。在计算设计尚处萌芽阶段、开源工具匮乏的背景下,thi.ng 的一些项目具有开创性,填补了市场空白,并逐渐将教学与推广确立为核心目标之一。

核心内容

Thi.ng 的核心哲学是“自下而上”的增长与设计。它由范围狭窄但效用明确的小型模块组成,这些模块可以重新组合,以满足不断变化的用例需求。这种灵活性使得项目能够以轮转方式开发,基于反馈和长期目标(这些目标可能会随时间推移而调整)。这种策略包括大规模的重构、采用新的语言或平台,以及在项目稳定后偶尔放弃某些旧技术。值得注意的是,其中一些最古老的项目在最后一次官方发布近十年后,依然拥有活跃的用户群。

技术栈与架构演进

目前,thi.ng 的主要开发重点在于基于 TypeScript 和浏览器技术的、以数据驱动的功能性工具。然而,整个项目集合涵盖了多种编程方法和语言,包括 Clojure、ClojureScript、C11 以及 Houdini VEX。

过去五年多来,至少一半的 thi.ng 项目是在 thi.ng/umbrella monorepo(单体仓库)中以 TypeScript 开发的。早在 2015 年,部分项目就已开始开发,并于 2018 年初决定合并 efforts,在统一的“伞状”架构下继续发展。尽管大多数包在很大程度上是独立的,但它们通过更连贯的哲学、共享的基础设施、类型定义、接口、发布周期、示例以及互连的文档,覆盖了大量主题。

该 monorepo 包含约 24.5 万行代码、丰富的文档图表以及 185 个完全记录的示例项目。除了极少数例外,这些包不使用第三方依赖,所有内部关系都在每个包的 readme 文件中明确声明。所有 umbrella 包均采用 Apache Software License 2.0 许可证发布。

设计哲学与特性

所有项目共享以下核心理念:

  • 组合性(Composition):强调模块间的灵活组合。
  • 互操作性(Interop):确保不同组件间的无缝协作。
  • 简洁性(Simplicity):保持代码和接口的清晰。
  • 数据转换与内省:重视数据的处理、自我检查及可视化。
  • 高效数据结构:利用强大的数据结构提升性能。

在编程范式上,大多数项目倾向于混合使用函数式(Functional)和声明式(Declarative)设计,而非经典的面向对象方法。同时,团队保持非教条主义态度,在合理的情况下拥抱混合解决方案。部分集合还专注于领域特定语言(DSL),并提供核心基础设施以辅助其实现。

教育与资源

教育一直是 thi.ng 的重要目标。该项目捆绑了 200 多个示例(随主要项目提供,并持续增加),这些资源被全球各地的学校、大学、工作坊和节日广泛用作教学工具。Karsten Schmidt 自 2008 年以来已举办了数十场工作坊。

目前,网站正在构建一个语义图谱,以展示所有项目、资产及其关系。在此之前,用户可以通过交互式标签云、模糊搜索框或点击标签来探索这 350 多个项目,支持多标签筛选以缩小搜索范围。

关键要点

  • 规模与成熟度:thi.ng 包含约 350 个子项目,代码量达 24.5 万行,是一个经过长期验证的成熟开源生态系统。
  • 去中心化与模块化:采用“自下而上”的设计哲学,由大量小型、高内聚的模块组成,支持灵活重组以适应不同需求。
  • 多语言支持:虽然目前重心在 TypeScript,但完整支持 Clojure、ClojureScript、C11 和 Houdini VEX 等多种语言。
  • 零第三方依赖:绝大多数包不依赖外部库,确保了代码的纯净性、安全性和可维护性,内部依赖关系完全透明。
  • Apache 2.0 许可:所有核心包均采用 Apache 2.0 许可证,允许广泛的商业和非商业使用。
  • 强大的教育属性:提供 185 个完整文档示例和 200+ 附加示例,长期服务于全球设计教育和工作坊。
  • 跨领域应用:从 2006 年的 toxiclibs 开始,其项目已广泛应用于建筑、产品设计、数据可视化、数字制造、游戏开发、音频制作及艺术装置等领域。

意义与影响

Thi.ng 在计算设计与生成式艺术领域具有深远的历史意义和现实影响力。

填补早期生态空白 在计算设计尚属新兴领域、开源工具极度匮乏的 2000 年代中期,thi.ng 通过提供开创性的工具填补了这一利基市场。它不仅解决了当时开发者面临的工具缺失问题,还通过教育和推广,帮助确立了该领域的技术标准和实践方法。

广泛的行业渗透与商业转化 thi.ng 的项目已跨越多个行业,包括建筑、交互设计、数据可视化、数字制造、室内设计、按需印刷、医疗、品牌设计、动态图形/VFX、游戏开发、音频制作和艺术装置等。其技术甚至帮助催生了多家初创公司。

国际奖项认可 基于 thi.ng 项目关键角色参与的作品,多次获得国际设计大奖的提名并获奖,包括戛纳狮子奖(Cannes Lions)、D&AD 奖、红点设计奖(Red Dot Design Award)、英国年度设计奖、照明设计奖、类型总监俱乐部奖(Type Directors Club Award)以及卫报媒体创新奖等。

全球教育基石 作为教学工具,thi.ng 在全球各地的教育机构中发挥了重要作用。Karsten Schmidt 及其贡献者通过数十年的工作坊和课程,培养了大量设计技术人员,推动了计算设计思维的普及。

开源社区的典范 thi.ng 展示了如何通过长期维护、清晰的文档、无第三方依赖的架构以及活跃的社区支持(通过 GitHub Sponsors 和 Patreon),构建一个可持续的开源生态系统。其从单一工具集演变为庞大 monorepo 的过程,为大型开源项目的架构演进提供了宝贵案例。

查看原文 →thi.ng