Three.js 周下载量破 400 万:艺术生 Mr.doob 如何用 Web 3D 引领潮流

Three.js 周下载量突破 400 万!这个由艺术生创建的开源 3D 库,在 AI 的助力下,迎来了爆发式增长,让更多开发者轻松拥抱 3D 世界。

原文标题:中途退学的艺术生,开发Web 3D项目,周下载量破400万

原文作者:机器之心

冷月清谈:

Three.js 是一个基于 WebGL 的 JavaScript 3D 图形库,由 Ricardo Cabello(Mr.doob)于 2010 年创建,旨在简化浏览器中 3D 内容的创建和展示。近期,Three.js 周下载量突破 400 万,呈指数级增长。其快速增长部分归功于 AI 的发展,AI 降低了 3D 开发的门槛,使得更多前端开发者能够轻松上手。Ricardo Cabello 的个人经历也颇具特色,他从艺术生到投身 demoscene 社群,再到创造 Three.js,其经历塑造了他追求精简代码和惊艳视觉效果的风格。他对开源的克制和对代码质量的严格把控,保证了 Three.js 的清晰结构和一致的设计理念。如今,Three.js 依然在 Web 技术栈中扮演着关键角色。

怜星夜思:

1、Three.js 的成功,除了 AI 降低门槛,还有哪些其他因素?
2、Mr.doob 从艺术生到 Web 3D 大神的经历,对我们有什么启发?
3、Three.js 的未来发展方向会是什么?

原文内容

图片
机器之心编辑部


一个并不常被普通用户提起的开源项目,刚刚刷新了自己的历史纪录。


近日,Three.js 官方 X 账号公布:Three.js 每周下载量突破 400 万。


链接:https://x.com/threejs/status/2013044943909191680


你或许没用过 Three.js ,也未必听过它的名字,但你大概率已经见过它的作品。


那些可以旋转的 3D 商品展示页、会随鼠标晃动的官网首页、可交互的数据可视化,甚至一些看似只是酷炫动画的 Web 页面背后,Three.js 正默默地承担着核心的 3D 渲染工作。


注:Three.js 是一个基于 WebGL 的 JavaScript 3D 图形库,由 Ricardo Cabello(网名 Mr.doob)于 2010 年创建。它的核心目标是让开发者能够在浏览器中轻松创建和展示 3D 内容,而无需直接处理复杂的 WebGL 底层 API。


图片

在官网示例里,同一个图形界面你可以选择不同的状态如跑、跳。


图片


图片

来源:https://threejs.org/examples/_loader_gltf_transmission


我们再回到官方发布的那张图,其展示了 Three.js 从 2016 年到 2026 年的周下载量变化,呈现出非常典型的指数级增长曲线:


  • 2016-2018:起步阶段,下载量很低

  • 2019-2020:开始缓慢爬升,达到约 20-50 万 / 周

  • 2021-2022:增长明显加速,突破 100 万大关

  • 2023-2024:进入快速增长期,从 100 万攀升至 200 万

  • 2025-2026:爆发式增长,从 200 万直冲 400 万


Three.js 快速增长的时间点很微妙,在 2022 年末,正好是 ChatGPT 问世之后,此后生成式 AI 快速爆发,Three.js 也趁着这股热潮疯狂吸引用户。


回想一下,在 AI 介入之前,用 Three.js 开发 3D 内容简直是一场劝退之旅。光是理解四元数、矩阵变换这些数学概念,再加上手工建模、展 UV、调材质的繁琐流程,就足以把 90% 的前端开发者挡在门外。那时候,一个简单的光照渲染或材质效果,往往需要耗费数小时调试。


但 AI 的出现彻底改变了游戏规则。你只需要在 ChatGPT 等大模型里随口描述需求:「用 Three.js 写一个赛博朋克风格的旋转发光立方体,背景要动态粒子星空」。AI 不仅能秒懂你的意图,还能在几秒钟内生成 95% 可用的代码,让那些原本只存在于脑海中的创意,瞬间在浏览器里转起来。


这样一来,AI 大模型极大地降低了 Three.js 的准入门槛,让大量前端开发者(而非图形学专家)敢于尝试 3D 开发。这也是 Three.js 下载量暴增的原因之一。


Ricardo Cabello 介绍


Ricardo Cabello,以网名 Mr.doob 更为人熟知。是 Three.js 的创始人和长期核心维护者,也是 Web 前端与创意编程领域最具影响力的人物之一。可以说,他一个人,直接改变了 Web 世界对 3D 的理解方式。



但与今天清晰的技术标签不同,他的成长路径并不循规蹈矩,甚至可以用他自己的话来形容 —— 有点灾难。


Ricardo 在一次采访中表示,他读完小学后,在后期还同时进入了一所学院学习漫画绘画;中学阶段一度转向电子工程,后来又改读艺术方向。然而那段时间并不适合系统性学习,最终在进入大学之前便选择了退学。


相比教育体系,真正塑造他的,是长期活跃于 demoscene(演示场景) 社群的经历。在那个以技术与创意竞赛为核心的文化中,创作者必须不断拿出新作品,逼着自己把想法真正做出来。


这段经历深刻影响了他后来的创作风格,追求用精简代码实现惊艳的视觉效果。正是在 demoscene 的环境里,Cabello 系统性地学习了计算机图形学,从最初的视觉创作,到逐渐理解其背后的技术原理,再到最终回到编程本身。艺术与代码不再是对立的两端,而是开始在他身上汇合。


工作之余,Cabello 也会关注一些关于艺术、插画、装置艺术的博客,这会时不时的激发他的创作灵感:能不能把这些东西做成实时的?而在实现的过程中,又会衍生出更多新的点子。


此外,Ricardo Cabello 还是 Web 创意文化的重要推动者。他长期维护的个人网站 mrdoob.com 汇集了大量实验性项目,涵盖物理模拟、粒子系统、交互艺术和声音可视化等方向。这些作品并不以商业化为目的,而是持续探索浏览器作为创意与表达平台的边界,这种对可玩性和表达力的重视,也深刻塑造了 Three.js 的气质,实用、开放,同时鼓励创造。


在开源上,Ricardo 以风格克制、标准严格著称。在他看来,把代码分享出来,让整个互联网都能受益,是一件非常有成就感的事。


他长期亲自把控 Three.js 的 API 设计与代码质量,宁可引入破坏性更新,也避免无序堆叠功能和历史包袱。这种近乎守门人的角色,使 Three.js 在十余年的演进中始终保持清晰的结构和一致的设计理念,避免了许多大型开源项目常见的复杂化和碎片化问题。


而这种工程上的克制,其实可以追溯到 Three.js 诞生之初的动机。Ricardo 曾回忆,创建 Three.js 一方面源于他的好奇心,如果亲手写一个 3D 引擎,究竟能做到什么程度;另一方面也是对自我能力的一次挑战。从 ActionScript 时代开始,他便反复尝试搭建 3D 引擎,在不断试错中学习图形学基础,并逐步摸索出更合理、可扩展的架构方式。更重要的影响则来自 demoscene 的经历:在那个圈子里,创作者往往为一两个 demo 临时写一套引擎,用完即弃。Ricardo 觉得这种方式过于浪费,于是产生了一个更长期的想法,做一个真正可以被反复使用、不断演进的 3D 引擎。这一想法,最终催生了 Three.js,也奠定了它至今仍在坚持的设计哲学。


直到今天,随着 AI 生成内容、WebXR 和 3D 可视化的兴起,Three.js 依然处在 Web 技术栈的关键位置。



© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:liyazhou@jiqizhixin.com

我觉得这取决于项目的定位。如果是一个面向企业用户的成熟项目,兼容性可能更重要,因为企业用户更看重稳定性。但如果是一个面向开发者、追求创新的项目,代码质量可能更重要,因为开发者更需要灵活性和可扩展性。Three.js 作为一个图形库,显然属于后者。所以,Ricardo 的做法是合理的。

楼上说的很有道理!我觉得除了技术手段,社区治理也很重要。要建立一个积极健康的社区氛围,鼓励大家参与讨论,共同维护项目的健康发展。可以参考 Rust 社区的做法,制定明确的 RFC (Request for Comments) 流程,让每个重要的决策都经过充分的讨论和审查。

我觉得 Three.js 还会继续引领 Web 3D 的发展。现在 WebGPU 呼声这么高,Three.js 肯定也会积极拥抱新技术,性能肯定会更上一层楼。但是,它也面临着来自其他 3D 引擎的竞争,比如 Babylon.js,所以需要不断创新才能保持领先地位。

从另外一个角度来说,可能也正是因为不是科班出身,所以Mr.doob在设计Three.js的时候才会更加注重易用性和可玩性,而不是一味地追求技术上的极致。这种以用户为中心的设计理念,使得 Three.js 能够吸引更广泛的开发者。

AI 的参与将会更加深入。未来,我们可能不需要手写 Three.js 代码,只需要用自然语言描述需求,AI 就能自动生成 3D 场景。这将会极大地降低 3D 开发的门槛,让更多的人可以参与到 3D 内容的创作中来。当然,这也意味着程序员需要学习如何更好地与 AI 协同工作。

抛开技术层面,Three.js 的成功也离不开 Mr.doob 本人的魅力。一个从艺术领域跨界到编程的开发者,本身就充满了故事性。他对创意和表达的追求,以及对开源的热情,都深深地感染了社区。这种人文情怀,在技术圈子里其实是很稀缺的,也是 Three.js 能够持续吸引开发者的重要原因。

随着 WebXR 和 3D 可视化的兴起,Three.js 在虚拟现实、增强现实和数据可视化等领域将会有更大的发展空间。可以预见的是,Three.js 将会更加注重与这些新兴技术的融合,提供更强大的功能和更便捷的开发体验。想象一下,未来的网页可以直接在你的手机上呈现 AR 效果,是不是很酷?