Blog

  • Three.js Conf Paris: why I’m going and what I expect to find

    Three.js Conf Paris: why I’m going and what I expect to find

    On September 10 and 11, the first official Three.js conference takes place in Paris. The venue is the Maison de la Chimie, in the 7th arrondissement. Two days of talks, panels, drinks and an afterparty on a boat on the Seine. I’ve had my tickets for a while and the accommodation in the centre is sorted — my wife took care of that, as she’s considerably more organised than I am when it comes to these things.

    The lineup is not that of just any conference. mrdoob, the creator of Three.js, will be there. Bruno Simon, the author of the course I’m taking right now. Patrick Heng, one of the creative developers I admire most for how he uses 3D as an accent rather than the main event. And many more still to be confirmed. This isn’t an event where one figure carries the weight — it’s a community meeting in person for the first time.

    There’s another detail that says a lot about this ecosystem: the conference website itself, threejs.paris, was built by David Ronai and Hervé Studio as an experiment in its own right. Every visitor becomes a 3D sphere inside the scene. Speakers and attendees share the same visual space, no hierarchy. It’s a statement of intent about what kind of community this is.

    I’m going alone. In this kind of event, that’s an advantage. No shared agenda, free to stay in whatever conversations are worth staying in.

    What I hope to find are hybrid profiles. People who work at the intersection of 3D and web, who understand both worlds and build in both. That profile exists but it’s not common, and generalist events are not where it concentrates. A Three.js-specific conference is exactly where it should be.

    I’ll write a second part when I’m back.

  • 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.

  • Going headless after 15 years with WordPress

    Going headless after 15 years with WordPress

    My first website was plain HTML. Every tag written by hand, every layout built with tables. Full control, zero abstractions. Then came Joomla, which solved things but added layers I didn’t always want. When I migrated my own sites to WordPress, I did it because it made more sense for what I needed — not because it was the trend.

    The sites I migrated were zao3d.com — back then a 3D services portfolio and tutorials, the seed of what is now the academy — and gpcstudio.es, which started as an excuse to teach a course on e-commerce portal management. The original domain was gestionportalescomercio.com, which says everything about how you named things in 2010. Over the years it became gpcstudio.es. Zao3D was available in Spanish, English and Polish. The reasons for the Polish are a story for another post.

    That was around 2010. And as I tend to do when something convinces me, I taught it. I ran a WordPress course while I was still figuring it out myself. I’ve always learned better that way — explaining something forces you to actually understand it.

    Fifteen years later I’m still using WordPress. Just not on the frontend anymore.

    The decision to build javivega.com headless didn’t come from a specific frustration. It came from wanting to recover something: full control over the HTML that reaches the browser. With a classic stack — WordPress, theme, builder — the result can be good, but there’s always a layer between what I want and what comes out. The theme decides things. The builder decides others. With Next.js on the frontend and WordPress only as a CMS, the HTML is what I write.

    There’s another reason. Three.js pushed me to take JavaScript seriously again. And when you start understanding JS properly, Next.js stops feeling complicated. The pieces fall into place.

    The argument that carried the most weight was practical: if I ever want to go back to classic WordPress, there’s nothing to migrate. The content is already in WordPress. I just change the frontend. 95% of my clients use WordPress and that’s not going to change. I’m not interested in leaving the ecosystem — I’m interested in using it differently.

    javivega.com is where I try that. No client waiting, no deadline. Just to see what comes out.