Category: Process

  • Three.js Journey from Blender: notes from a student with 25 years of 3D

    Three.js Journey from Blender: notes from a student with 25 years of 3D

    I’d known about Three.js for a while. I’d seen demos, understood roughly what it was for, circled around it more than once. But I hadn’t sat down to learn it properly until now. The trigger was javivega.com — I needed a space for real experiments, and for that I needed to actually know what I was doing.

    The course I chose was Three.js Journey by Bruno Simon. It’s not the only resource out there, but it’s the most complete and best maintained in the ecosystem. Over 93 hours of content, updated with every relevant Three.js release.

    I’ve finished Chapter 01 and I’m halfway through Chapter 02, currently on the Haunted House lesson. It’s the first real integrative project in the course — lights, shadows, textures, fog, displacement maps, everything together in a single scene. Two hours and fifty minutes of lesson. It’s no small exercise.

    What’s surprised me most so far isn’t the difficulty — it’s the opposite. Coming from Blender, the mental model clicks almost immediately. When Bruno builds a scene in code and the camera, meshes, geometries and materials appear — it’s Blender’s Outliner written in JavaScript. Same concepts, same hierarchy, different syntax. Years working in 3D turn out to be an unexpected advantage.

    The Haunted House is a really fun exercise. You learn a lot of concepts at once, and even though the lesson is long, you never feel overwhelmed. Seeing a project built from start to finish like this, with Bruno guiding it, is something else.

    I’ll keep posting notes as I go. The Haunted House doesn’t finish itself.

    Foto de Joel Filipe en Unsplash

  • Three.js and the circle that closes after 25 years

    Three.js and the circle that closes after 25 years

    In the early 2000s I was already trying to put 3D on the web. Back then, the technology was called Viewpoint Experience Technology — VET. We built some interesting things at SC Estudio Digital, the studio I co-founded with three partners. But the barrier was impossible to ignore: to see anything, the user had to install the Viewpoint Media Player plugin. In an era when browsers couldn’t agree on basic standards and Flash already demanded its own plugin, asking someone to install yet another one was asking too much. The technology was ahead of its time. It quietly disappeared. I moved on.

    I wrote about that era in this post on Zao3D a few years ago, when another attempt at 3D on the web was making noise. The pattern was familiar.

    Twenty-five years later I’m doing the same thing — 3D in the browser — except now it works. No plugin. No negotiation. Just JavaScript and WebGL, available in every modern browser by default. That’s what Three.js is.

    What I didn’t expect was how familiar the mental model would feel coming from Blender. When you look at a Three.js scene in code and you already know Blender’s Outliner, something clicks immediately. Cameras, scenes, meshes, geometries, materials — the same objects, the same hierarchy, different syntax. The 3D knowledge transfers almost directly. The gap is JavaScript, not 3D.

    That’s also what makes Three.js genuinely interesting to me, beyond the technical side. It closes a circle that’s been open for 25 years. The two worlds I’ve worked in separately — 3D and web — finally have a real meeting point. Not a plugin, not a workaround. A proper standard that works everywhere.

    That’s enough reason to take it seriously.