ABAB Pedia

Ricardo Cabello

Overview

Ricardo Cabello, who publicly uses names such as Mr.doob and mrdoob, is a graphics programmer, interactive web creator, and the creator of Three.js, an open-source JavaScript 3D graphics library. His work spans the demoscene, browser experiments, interactive music projects, and graphics tool development; Three.js, which organizes features such as scenes, cameras, geometries, and materials into reusable interfaces, is the signature project he continues to maintain.⁠[1][2]

Contents18 sections
Key facts

Early Years: Drawing, Education, and Self-Teaching

In a 2013 interview with Eric Haines, Cabello recalled that besides primary school he had studied at a comics school, then in secondary school first studied electronics before switching to art, and stopped formal education before university. His professional skills came mainly from personal experimentation rather than from university training in computing as recorded in that interview.⁠[3]

In a 2011 Canonical interview, he traced his first contact with a home computer to the early 1990s, when he was about ten or eleven. He watched his older brother program, while he himself initially preferred creating graphics, using tools such as Animator Pro, 3D Studio3ds Max3ds Max is Autodesk’s 3D modeling, animation and rendering software; descended from 3D Studio, a DOS program released in 1990, it has long been used in game development, film and television production, and design visualization such as architecture.Open the full entry, and Deluxe Paint. A Mozilla interview from the same year dated his brother’s introduction of demoscene culture to him to around the age of twelve.⁠[4][5]

Early Years: From the Demoscene to Web Work

The demoscene community was an important environment in which he learned graphics production. He initially leaned toward drawing, low-poly models, and creative concepts, and gradually moved toward programming. According to the 2011 Mozilla interview, he did work involving HTML and PHP, later moved to London, and worked as a designer and Flash developer; his personal experiments website also became a channel through which clients discovered his work.⁠[5]

The name Mr.doob is also tied to his time working in London. In an email interview, he explained that he often wore headphones at work and set his instant messaging nickname to do_ob and various emoticon variants. After a colleague began calling him Mr.doob, the name gradually stuck. The explanation comes from his own reply; the interview page gives no clear publication date.⁠[6]

Personal Experiments Website and Graphics Programming

His personal timeline of works marks the start of the Mr.doob website as April 2006. The site became his long-term gateway for showcasing interactive experiments and graphics work; in later interviews, he also linked continually publishing experiments with gaining opportunities for collaboration.⁠[7][5]

Looking back on his early learning in 2015, he explained how he got started through a progression from rotating the vertices of a cube and connecting line segments to drawing and sorting faces: first producing visible results, then gradually understanding the underlying graphics mechanisms. He also used Papervision3D, and later, because his projects needed a structure that was easier to adjust himself, went on developing his own engine.⁠[8]

The Johnny Cash Collaboration

Cabello’s timeline of works lists The Johnny Cash Project in March 2010. In an email interview, he said he first worked with Aaron Koblin and Chris Milk on this project, after which the team went on to make The Wilderness Downtown and 3 Dreams of Black. This collaboration explains how his browser experiments moved into larger-scale interactive music productions.⁠[7][6]

Releasing Three.js

On April 24, 2010, Cabello committed Three.js code on GitHub marked as the first public version. The project came from porting his existing ActionScript 3D engine to JavaScript; the early goal was to turn repeatedly needed graphics features into tools that could be reused over time, rather than writing a one-off engine for each demo.⁠[9][3]

The Wilderness Downtown

His personal timeline dates The Wilderness Downtown to August 2010. Cabello later showed its technical makeup in a FITC talk: Three.js was used for 3D elements such as low-poly birds and trees in panoramic scenes, and the project also had other Canvas code. The work illustrates the use of Three.js in early interactive music websites; the whole work was not built with this library alone or by him alone.⁠[7][8]

ROME / 3 Dreams of Black

In May 2011, his timeline of works includes ROME / 3 Dreams of Black. In later interviews, Cabello described it as a larger team project, more challenging in terms of collaboration, and one he was deeply invested in; his 2015 retrospective specifically noted that the animal morphing and animation requirements in the work drove related features in Three.js.⁠[7][6][8]

In the 2011 Canonical interview, he described the open tool pipeline used in the project, including handling conversions with Python, organizing scenes in BlenderBlenderBlender is free and open-source 3D creation software covering workflows including modeling, animation, rendering, 2D drawing, compositing and video editing. It originated as an in-house tool Ton Roosendaal developed for an animation studio, became open source in 2002, and is developed with the support of the Blender Foundation together with a worldwide community of developers and artists.Open the full entry, and publishing the project’s code. He regarded code as a creative tool and valued tools that work across platforms, so that works are not locked into a single proprietary program or operating system.⁠[4]

Lightweight Experiments and an Open-Tools Outlook

An interview published by Mozilla in July 2011 listed works such as Ball Pool and Harmony, as well as tools such as stats.js, tween.js, and sequencer.js. Cabello then stressed clear code and open sharing, and said he often developed on less powerful devices so that his works would not be viewable only on high-end graphics hardware. This was his design approach at the time, not a performance guarantee for all Three.js applications.⁠[5]

CSS3DRenderer and Browser Compatibility Experiments

In an article originally published on October 28, 2012 and later archived by him, Cabello introduced CSS3DRenderer. He was then trying to work around the limits of graphics support on iOS, demonstrated the effects of CSS 3D transforms through panorama and periodic table experiments, and also improved touch controls in TrackballControls.⁠[10]

The article also responded to how famo.us presented its 3D interface. Cabello offered a technical explanation based on his own reproduction experiment; it was part of a public discussion among developers about rendering implementation, the article cannot prove any unlawful conduct by the other party, and it should not be expanded into allegations about funding or fraud.⁠[10]

Freelancing and His Approach to Maintaining Three.js

In a January 2013 Real-Time Rendering interview, Cabello described himself as a freelance web developer working mainly with the Google Data Arts Team at the time. He placed considerable weight on the ease of use and extensibility of Three.js, and acknowledged that the API would change as the design improved, so users needed to follow migration notes. The freelance collaboration described here is clearly bounded in time and cannot be used to infer his current employer or position.⁠[3]

Obsidian

In July 2013, Experiments with GoogleGoogleGoogle is an American technology company founded by Larry Page and Sergey Brin and incorporated in 1998. It became an Alphabet subsidiary in 2015. Its businesses include internet search, advertising, software platforms, cloud computing, and artificial intelligence.Open the full entry featured his Obsidian, classifying it as a 3D demoscene work built with JavaScript and WebGL. The project shows how, alongside maintaining general-purpose graphics tools, he continued to pursue independent real-time visual work.⁠[11]

Looking Back on Five Years of Collaboration and the Editor

On April 20, 2015, FITC released his five-year retrospective talk. Cabello described the evolution from Canvas and SVG to a community-contributed WebGL renderer, and how application projects drove feature development. He also demonstrated a browser-based editor, aiming to let designers import models, organize scenes, and export results, lowering the barrier of having to start from code.⁠[8]

The retrospective explained the development of Three.js in terms of community collaboration: he started the early engine, while capabilities such as rendering, loading, and animation were driven jointly by real projects and other contributors. The ongoing contribution record of the official repository also shows that the library’s entire implementation cannot be attributed to its creator alone.⁠[2][8]

Talk on WebGPU and a Shading Language

In a JSConf JP talk that his personal timeline lists in November 2024, Cabello presented the opportunities and migration challenges of a new graphics back end under the title Moving Three.js from WebGL to WebGPU. The organizer’s abstract specifically mentioned a modular shading language that simplifies writing and customizing shaders while continuing Three.js’s goal of ease of use.⁠[7][1]

Browser Ports of Classic Games

His personal timeline of works lists Three.js Quake and Three.js Descent in February 2026, and Three.js Doom in May. Taking three-descent as an example, its repository explicitly calls it a port of Descent to Three.js, credits the original work to Parallax Software, and records that Mr.doob and Claude worked on the port.⁠[7][12]

three-descent distinguishes the terms of use for code and assets: the project code is MIT-licensed and ships with the shareware assets for the first chapter; the full game requires users to supply files from their own registered copy, and the OPL3 module is separately LGPL-licensed. The appearance of an open-source port therefore does not mean that all of the original game’s content has entered the public domain.⁠[12]

Porting fr-041: debris.

On August 26, 2026, Cabello announced on his X account that he had ported Farbrausch’s fr-041: debris. to JavaScript, and provided a demo link on Demoscene Ports. What this record confirms is the porting work; authorship of the original 2007 demo belongs to the Farbrausch group.⁠[13][14]

According to the port’s repository, the browser version uses JavaScript, WebGL2, and Web Audio to reimplement the procedural geometry, textures, timeline, and sound synthesis, rather than running the original Windows program. The repository also notes that font substitution, graphics drivers, and numerical precision can affect visual consistency, and it keeps the respective licenses of the original engine, the work, the music, and third-party components.⁠[14]

As of September 2026: Public Identity and Ongoing Work

As of September 6, 2026, Cabello’s public timeline of works still carried the name Ricardo Cabello, his X account used @mrdoob, and his personal experiments site was mrdoob.com. His public materials tie together his personal visual experiments, tool development, and his identity as the creator of Three.js; the playful bio on his personal account should not be taken as a formal job title.⁠[7][15]

Sources

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