Julien Sulpis

Julien Sulpis

@jsulpis.dev

💻 Front-end engineer & speaker 💡 I explore ways to make the web more fun and performant for everyone. #WebGL #WebGPU #JS #CSS www.jsulpis.dev

329 followers107 following91 posts

Julien Sulpis reposted

C’est officiel : le DevFest Lyon revient 🚀 📅 4 décembre 2026 au Palais de la Bourse, lieu emblématique du patrimoine lyonnais ✨ 400 participant·e·s, des talks tech, des retours d’expérience et des échanges de qualité 🤝 Dossier de sponsoring bientôt disponible ⏳ Réservez la date 🌟 #DevFestLyon

📣 call for feedback! I'm having second thoughts about the naming of the functions in my #webGL library. TL;DR: is it ok to have functions starting with "use" in a vanilla JS library ? explanation in thread 🧵

I like the hook-style naming with "use" because the functions actually behave like hooks (output destructuring, re-render when updated etc), but I wonder if they could be confused with "real" hooks or composables in a react or vue codebase. I'm not sure if it would be a big issue though.

Also, I don't know what other names to use: I can't remove the "use" because the functions would have the name of the object they return. e.g, "const compositor = compositor(...)" is not possible. And I don't want to prefix "createXXX" on all functions. So yeah, I would appreciate some feedback!

OK I've finally made some progress, my trails effect works on a transparent background (dark or light), and the bloom effect too. The trails effect is kind of experimental though, it can produce artifacts in scenes with lots of particles. But I think those two make a great combo ! #WebGL #shaders

I did some tests to fully understand the effect of premultiplied alpha combined with the gamma correction (linear RGB -> sRGB). It seems that the only right way to blend rgba colors is to mix them in linear RGB with premultiplied alpha, and then convert to sRGB. However ⬇️

I see that #threejs has premultipliedAlpha false by default on their Material, so I'm not sure how they handle that throughout the render pipeline, especially with postprocessing. For my lib I think I'm going to assume premultiplied alpha everywhere, but I would be glad to get some feedback on this

As expected the trails effect looks cool with particles ! I still struggle with the blending on semi-transparent surfaces, I need to fix that before shipping the effect #WebGL #Shaders #buildInPublic

I've been working on a #WebGL light trail effect lately, and it turns out better than expected ! I just need to refine it a little and make it easy to reuse as a regular post-processing effect, and it should bring particles animations to a new level #buildInPublic

Debugging #WebGL shaders is hard, but debugging a multi-pass postprocessing effect, well... that's next level 😅 I spent like 2h checking every texture, render target, sampling algorithm... only to find out that I did not returned the right variable in a shader 🤦‍♂️ BUT I think I'm almost there !

I have finished setting up Umami on my home server for my websites analytics ✨ It's oddly satisfying to self-host things ! I'm starting small with a simple public API

I made this planet shader after completing @simondev.bsky.social's shader course, and now he has a new bundle including more advanced techniques and maths ? Let's do this ! 🚀 Give me just 10 years to complete all the courses I bought, and I should come up with interesting stuff...

Julien Sulpis reposted

Replying to @mixitconf.org

🎤 Tu te mets combien en responsive CSS ? (Édition 2025) avec @jsulpis.dev et Théo Gianella C’est la base, non ? Mais entre breakpoints, container queries et unités modernes… on s’y perd un peu. Une session en live-coding pour tout remettre à plat. 👉 mixitconf.org/2025/tu-te-m...

I've been playing with the #WebGPU API recently, it's crazy powerful ! A useGPU lib is right around the corner 😂 PS : I will publish the code soon (vanilla WebGPU, OBJ file loader, compute shader and stuff)

I am thrilled to give my first talk outside of France at @futurefrontend.bsky.social ! Thanks to m4dz.net for the opportunity 🙏🏻 I will be talking with him about Design Systems. Can’t wait !

Future Frontend@futurefrontend.bsky.social

How to develop design systems without tying your hands too much technically? That's something that @jsulpis.dev will explore at #FutureFrontend (27-28.5, Espoo, Finland). futurefrontend.com/speakers/#ju...

It took me a while, but I finally implemented a boids behavior with the ping pong FBO technique. Still need a bit of time to polish the API and make it straightforward to use, and I will publish that in useGL

TIL: there is an equivalent of `requestAnimationFrame` for videos : `requestVideoFrameCallback`, called for each video frame. Could be useful to... automatically re-render a WebGL shader when a video texture is played \o/

Julien Sulpis reposted

Il nous a régaler avec des conférences toujours excellentes, gagnant du dernier Code In The Dark, il nous paraissait normal d'inviter @jsulpis.dev pour nous parler cette fois de couleurs.

It looks like it's #PortfolioDay ! I'm a front-end engineer currently focusing on making polished UIs and animations with #WebGL. I'm building a lightweight, reactive WebGL library for working with shaders : usegl.vercel.app (WIP, #buildInPublic) See you 👋

I really like Astro, but for documentation I prefer the UI and UX of VitePress over Starlight 🤔 Also the lack of top navigation bothers me. I will try to migrate the documentation of useGL 🤞

I'm trying to switch from #Notion to #Obsidian for Personal Knowledge Management (because Notion is slow, owns the data and Obsidian has a better way of linking notes). First impression : it's fast ! Local first + sync via iCloud (or any other cloud) is such a great combo ✨

I spent way too much time making sure that the playground for the examples looks good on all screen sizes. Yes, even the absolute evil landscape phones ☠️ #buildInPublic

It's starting to look good 😊 I wanted to have many little examples like in the Three.js docs, but where you can directly see and edit the code. I made this with Sandpack and I think it's good enough for now. Maybe one day I will try to add autocompletion with the Monaco editor