ABAB Pedia

Ricardo Cabello

概述

Ricardo Cabello,公开使用 Mr.doob、mrdoob 等名称,是图形程序员、网页交互创作者和开源 JavaScript 三维图形库 Three.jsThree.jsThree.js 是由 Ricardo Cabello(Mr.doob)于 2010 年公开发布、由开源社区共同开发的 JavaScript 三维图形库。它为网页中的三维场景提供相机、几何体、材质、纹理、灯光和渲染等抽象,减少开发者直接编写底层图形接口代码的负担。项目以 MIT 许可证发布,官网为 threejs.org,核心代码库为 mrdoob/three.js。点击查看完整词条 的创建者。他的工作横跨演示艺术、浏览器实验、互动音乐项目和图形工具开发;Three.js 将场景、相机、几何体、材质等功能整理为可复用的接口,是其持续维护的代表项目。[1][2]

本页目录18
词条资料

早期:绘画、教育与自学

Cabello 在 2013 年接受 Eric Haines 采访时回忆,自己除小学教育外曾在漫画学校学习,随后在中学阶段先学电子技术、再转向艺术,并在进入大学前停止了正规求学。其职业技能主要来自个人实验,而非该采访所记载的计算机专业大学训练。[3]

在 2011 年的 Canonical 访谈中,他把接触家庭电脑的时间追溯到 1990 年代初、约十岁或十一岁时。他看哥哥编程,自己起初更喜欢图形创作,接触了 Animator Pro、3D Studio 和 Deluxe Paint 等工具。Mozilla 的同年采访则将哥哥引介演示艺术文化的时间记为十二岁左右。[4][5]

早期:从演示艺术走向网页工作

演示艺术社群是他学习图形制作的重要环境。他最初偏向绘图、低多边形模型和创意构思,之后逐步转向程序开发。按 Mozilla 2011 年的访谈,他曾从事 HTML、PHP 相关工作,后来移居伦敦,担任设计师及 Flash 开发者;个人实验网站也成为客户发现其作品的渠道。[5]

Mr.doob 这一名称也与伦敦工作经历有关。他在一篇邮件采访中解释,自己工作时常戴耳机,并把即时通信昵称设为 do_ob 及不同表情变体。一位同事以 Mr.doob 称呼他后,这个名字逐渐固定下来。该解释出自本人答复,采访页面未给出明确发布日期。[6]

个人实验网站与图形编程

个人作品年表将 Mr.doob 网站的起点标为 2006 年 4 月。这个网站成为他展示交互实验和图形作品的长期入口;在此后访谈中,他也把持续发布实验与获得合作机会联系起来。[7][5]

他在 2015 年回顾早期学习时,用从旋转立方体顶点、连接线段到绘制和排序表面的过程解释自己的入门方式:先做出可见结果,再逐步理解底层图形机制。他也使用过 Papervision3D,后来因项目需要更容易自行调整的结构,继续开发自己的引擎。[8]

Johnny Cash 合作项目

Cabello 的作品年表将 The Johnny Cash Project 列在 2010 年 3 月。他在邮件采访中说,自己先在这个项目中与 Aaron Koblin、Chris Milk 合作,之后团队又制作了 The Wilderness Downtown 和 3 Dreams of Black。该合作关系解释了其浏览器实验如何进入更大规模的互动音乐制作。[7][6]

公开 Three.js

2010 年 4 月 24 日,Cabello 在 GitHub 提交了标记为首个公开版本的 Three.js 代码。项目来自其已有 ActionScript 三维引擎向 JavaScript 的迁移;早期目标是把反复需要的图形功能做成能够持续复用的工具,而不是为每次演示重新编写一次性引擎。[9][3]

The Wilderness Downtown

个人年表将 The Wilderness Downtown 记在 2010 年 8 月。Cabello 后来在 FITC 演讲中展示其技术构成:Three.js 被用于低多边形飞鸟以及全景画面中的树木等三维元素,项目还有其他 Canvas 代码。该作品体现了 Three.js 在早期互动音乐网站中的应用,并非整部作品均由这一库或由他一人完成。[7][8]

ROME / 3 Dreams of Black

2011 年 5 月,作品年表收录 ROME / 3 Dreams of Black。Cabello 在后来的采访中把它描述为规模更大、协作更具挑战、也让他非常投入的团队项目;其 2015 年回顾特别提到,作品中的动物变形与动画需求推动了 Three.js 的相关功能。[7][6][8]

在 2011 年 Canonical 采访中,他介绍了该项目采用的开放工具流程,包括以 Python 处理转换、使用 Blender 组织场景,并公开项目代码。他把代码视为创作工具,也重视工具能够跨平台使用,避免作品被锁定在单一专有软件或操作系统中。[4]

轻量实验与开放工具观

Mozilla 于 2011 年 7 月刊出的采访列举了 Ball Pool、Harmony 等作品,以及 stats.js、tween.js、sequencer.js 等工具。Cabello 当时强调代码清晰和开放共享,也表示自己常以性能较弱的设备开发,以免作品只能在高端图形硬件上展示。这是其当时的设计取向,而不是对所有 Three.js 应用的性能保证。[5]

CSS3DRenderer 与浏览器兼容实验

在原发表于 2012 年 10 月 28 日、后来由本人存档的文章中,Cabello 介绍了 CSS3DRenderer。他当时希望应对 iOS 的图形支持限制,并通过全景图和元素周期表实验展示 CSS 三维变换的效果,也改进了 TrackballControls 的触摸操作。[10]

这篇文章同时回应了 famo.us 对其三维界面的展示方式。Cabello 以自己的重现实验提出技术解释;它属于开发者对渲染实现的公开讨论,文章并不能证明对方存在违法行为,也不应被扩写为资金或欺诈指控。[10]

自由职业与 Three.js 的维护取向

2013 年 1 月的 Real-Time Rendering 采访中,Cabello 自述是一名自由职业网页开发者,当时主要与 Google Data Arts Team 合作。他把 Three.js 的易用性和可扩展性看得较重,也承认 API 会随着设计改进发生变化,使用者需通过迁移说明跟进。此处的自由职业合作身份有明确时间边界,不能据此推定其现任雇主或职务。[3]

Obsidian

2013 年 7 月,Experiments with Google 收录其 Obsidian,并将其归为使用 JavaScript、WebGL 的三维演示艺术作品。该项目展示了他在维护通用图形工具之外继续进行独立实时视觉创作的路线。[11]

回顾五年协作与编辑器方向

FITC 于 2015 年 4 月 20 日发布其五周年回顾演讲。Cabello 介绍了从 Canvas、SVG 到社区贡献 WebGL 渲染器的演变,以及应用项目对功能发展的推动。他同时展示浏览器编辑器,希望让设计者能导入模型、组织场景并导出成果,降低必须从代码开始制作的门槛。[8]

这次回顾把 Three.js 的发展放在社区协作中解释:早期引擎由他发起,渲染、加载、动画等能力则由实际项目与其他贡献者共同推动。官网代码库的持续贡献记录也表明,不能把库的全部实现归为创建者个人成果。[2][8]

WebGPU 与着色语言演讲

在个人年表列于 2024 年 11 月的 JSConf JP 演讲中,Cabello 以 Moving Three.js from WebGL to WebGPU 为题介绍新图形后端的机会与迁移挑战。主办方摘要特别提及模块化着色语言,用于简化着色器编写和定制,并延续 Three.js 易于使用的目标。[7][1]

经典游戏的浏览器移植

2026 年 2 月的个人作品年表列出 Three.js Quake 和 Three.js Descent,5 月又列出 Three.js Doom。以 three-descent 为例,仓库明确将其称为 Descent 到 Three.js 的移植,署名原作为 Parallax Software,并记载 Mr.doob 与 Claude 参与移植。[7][12]

three-descent 区分了代码和素材的使用条件:项目代码采用 MIT 许可,随附第一章的共享软件素材;完整游戏需要使用者自行提供已注册副本中的文件,OPL3 模块另有 LGPL 许可。开源移植的出现因此不代表原游戏的全部内容变成公共领域。[12]

移植 fr-041: debris.

2026 年 8 月 26 日,Cabello 在自己的 X 账号宣布将 Farbrausch 的 fr-041: debris. 移植到 JavaScript,并给出 Demoscene Ports 的演示链接。该记录所确认的是移植工作;2007 年原始演示作品的创作归属于 Farbrausch 团队。[13][14]

按移植仓库的说明,浏览器版本使用 JavaScript、WebGL2 与 Web Audio,重新实现程序化几何、纹理、时间线和声音合成,而非执行原 Windows 程序。仓库也说明字体替代、图形驱动和数值精度等会影响画面一致性,并分别保留原引擎、作品、音乐及第三方组件的许可。[14]

截至2026年9月:公开身份与持续创作

截至 2026 年 9 月 6 日,Cabello 的公开作品年表仍以 Ricardo Cabello 为名,X 账号使用 @mrdoob,个人实验入口为 mrdoob.com。其公开资料将个人视觉实验、工具开发和 Three.js 创建者身份联系在一起;个人账号中的戏谑式简介不宜作为正式职称。[7][15]

来源

  1. Moving Three.js from WebGL to WebGPU — Mr.doob(在新窗口打开)
  2. Three.js 官方代码库与 README(在新窗口打开)
  3. Interview with three.js Creator(在新窗口打开)
  4. Interview with Mr Doob(在新窗口打开)
  5. People of HTML5 – Mr. Doob(在新窗口打开)
  6. An interview with Mr.doob(在新窗口打开)
  7. Ricardo Cabello:个人作品与演讲年表(在新窗口打开)
  8. Ricardo Cabello (Mr doob) — 5 years of three.js(在新窗口打开)
  9. Three.js 首个公开版本提交(在新窗口打开)
  10. CSS3DRenderer:原 2012 年 Google+ 文章存档(在新窗口打开)
  11. Obsidian by Mr.doob(在新窗口打开)
  12. three-descent README(在新窗口打开)
  13. Mr.doob:移植 Farbrausch 的 fr-041: debris.(在新窗口打开)
  14. fr-041: debris. browser port README(在新窗口打开)
  15. Mr.doob 的公开 X 资料(在新窗口打开)