Sign in

Julien Sulpis

@jsulpis.dev
327 followers 107 following 90 posts

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

PostsRepliesMedia
Reposted by Julien Sulpis
DevFest Lyon @devfestlyon.bsky.social · 27/02/2026
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
Affiche DevFest Lyon 2ème édition : Vendredi 4 décembre – Palais de la Bourse”, sur fond de l’intérieur du Palais de la Bourse.
01511
Julien Sulpis @jsulpis.dev · 26/11/2025
jsulpis.dev is not empty anymore ! For now there is mostly my talks library (in French) and a few side projects. I will probably add a blog in there some day. Of course I am always open to feedbacks
jsulpis.dev
Julien Sulpis
Front-End Engineer
030
Julien Sulpis @jsulpis.dev · 25/10/2025
📣 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 🧵
code snippet with a sample of the functions starting with "use"
100
Julien Sulpis @jsulpis.dev · 23/10/2025
Bloom + trails effects on my boids demo ✨ #webGL #shader
140
Julien Sulpis @jsulpis.dev · 22/10/2025
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
010
Julien Sulpis @jsulpis.dev · 20/10/2025
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 ⬇️
110
Julien Sulpis @jsulpis.dev · 16/10/2025
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
2121
Julien Sulpis @jsulpis.dev · 09/10/2025
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
4152
Julien Sulpis @jsulpis.dev · 26/08/2025
It took me AGES but I finally implemented a decent bloom effect, along with a few tone mapping operators. You can play with it here: usegl.vercel.app/examples/post-processing/builtin-bloom/ #webGL #buildInPublic
screenshot of the bloom example showing a few bright colorful dots with a bloom effect
062
Julien Sulpis @jsulpis.dev · 13/08/2025
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 !
git diff showing a change in the returned value of a fragment shader
030
Julien Sulpis @jsulpis.dev · 12/08/2025
3D Gaussian Splatting, but with video. I did not know that was possible 😮 www.4dv.ai
4dv.ai
4DV.ai视维智能 - 官方网站
At 4DV.ai, we are working on 4D video creation, playing and editing tools based on Gaussian Splatting. We envision 4D video to be the future of visual media and ultimate medium for immersive storytell...
010
Julien Sulpis @jsulpis.dev · 28/07/2025
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
000
Julien Sulpis @jsulpis.dev · 19/06/2025
I should put something at jsulpis.dev 🤔 It's currently used only for my git email and Bluesky handle. Anything you would like to see in there ? Talks library, tech demos, blog...
000
Julien Sulpis @jsulpis.dev · 09/06/2025
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...
090
Reposted by Julien Sulpis
MiXiT @mixitconf.org · 17/04/2025
🎤 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...
142
Julien Sulpis @jsulpis.dev · 02/04/2025
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)
030
Julien Sulpis @jsulpis.dev · 06/03/2025
Implementing Conway's Game of Life in useGL is relatively easy : I taught Claude the API by feeding it with the boids example, and after a few iterations... you have it, in less than 80 lines of code 😊 Interactive demo : usegl.vercel.app/examples/gpg... #webGL #buildInPublic #gameOfLife
060
Julien Sulpis @jsulpis.dev · 04/03/2025
The function to make boids animations, or any other thing using the ping pong FBO technique, is published in usegl ! As always you can play with the interactive example : usegl.vercel.app/examples/gpg... #WebGL #buildInPublic #boids
060
Julien Sulpis @jsulpis.dev · 19/02/2025
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 !
382
Julien Sulpis @jsulpis.dev · 11/02/2025
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
040
Reposted by Julien Sulpis
Xor @xordev.com · 27/01/2025
Subtle things to make your shaders better: 1) Anti-aliasing - Real life is not limited to pixels so unless you're specifically going for a pixelated style, you should be anti-aliasing everything! mini.gmshaders.com/p/antialiasing
715523
Julien Sulpis @jsulpis.dev · 22/01/2025
Phew, I made an example of a multi-pass bloom effect to showcase the API for creating effect passes and update their uniforms. You can play with it in the interactive example (without types and autocompletion unfortunately) : usegl.vercel.app/examples/pos... #buildInPublic #shaders #WebGL
120
Julien Sulpis @jsulpis.dev · 17/01/2025
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/
sample code for video.requestVideoFrameCallback()
020
Reposted by Julien Sulpis
LyonJS @lyonjs.org · 17/01/2025
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.
021
Julien Sulpis @jsulpis.dev · 15/01/2025
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 👋
1293
Julien Sulpis @jsulpis.dev · 09/01/2025
The migration to VitePress is complete ! I hope you will like it as much as I do 😊 usegl.vercel.app/ (yeah it's missing a preview image) #buildInPublic #webGL
usegl.vercel.app
useGL
Lightweight, reactive WebGL library for working with shaders
130
Julien Sulpis @jsulpis.dev · 07/01/2025
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 🤞
110
Julien Sulpis @jsulpis.dev · 07/01/2025
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 ✨
030
Julien Sulpis @jsulpis.dev · 20/12/2024
The documentation is live ! Well, a first draft... only examples for now. I will continue to add features and break a few things before writing the documentation. Any feedback on these first examples would be very appreciated 🙏 usegl.vercel.app #WebGL #buildInPublic
usegl.vercel.app
Home | useGL
Lightweight WebGL library for working with shaders.
050
Julien Sulpis @jsulpis.dev · 07/12/2024
I'm playing with particles for an example with useGL. It's crazy that the code fits in my screen ! (useGL helps with that)
000
Reposted by Julien Sulpis
marmelab @marmelab.bsky.social · 03/12/2024
🧵 What’s the key to building successful open-source projects? For @react-admin.bsky.social, it’s been all about a strong documentation.🏆 💡Here are our top tips for writing great documentations:👇
155
Julien Sulpis @jsulpis.dev · 26/11/2024
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
example setup on landscape iPadexample setup on portrait iPadexample setup on portrait phoneexample setup on landscape phone
280
Julien Sulpis @jsulpis.dev · 21/11/2024
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
020
Julien Sulpis @jsulpis.dev · 19/11/2024
OK I think the documentation is done 🤡 What would you need more ?
empty documentation website
030
Julien Sulpis @jsulpis.dev · 19/11/2024
Learning web APIs is a never-ending journey ! A thread about binary data, JavaScript ArrayBuffer, typed arrays and parallel algorithms on web workers:
130
Reposted by Julien Sulpis
LyonJS @lyonjs.org · 18/11/2024
🎉 LyonJS 💯 , la conférence by LyonJS arrive ! 🎉 Pour célébrer notre 100ème événement, LyonJS organise une journée de conférence ! 🎙️ Nous avons déjà 80% de nos sponsors 📅 Si tout se passe bien, la billetterie ouvrira le 6 décembre pour un événement le 21 février. 🎟️ N’hésitez pas à partager ! 🌟
Poster d'annonce de la conférence LyonJS 100 reprenant les info du post.
Une photo du hall de l'UGC Part-Dieu est également intégrée pour illustrer.
12215
Julien Sulpis @jsulpis.dev · 18/11/2024
I learned the existence of anisotropic texture filtering, that reduces the blurriness of the textures caused by mipmaps. I will make sure to integrate that feature in useGL 😉
demo showing the effect of anisotropic filtering, borrowed from the Three.js website
000
Julien Sulpis @jsulpis.dev · 12/11/2024
Still working on the DX of useGL, I guess removing code from the demos is a good sign 🎉
before/after view of a sample code, showing a reduction of the quantity and complexity of code after a change in useGL API
010
Julien Sulpis @jsulpis.dev · 11/11/2024
Request for Comments ! 📣 The main "hook" of my upcoming lib, useGL, was originally called "useWebGLCanvas". You give it your canvas, shaders, uniforms etc. Now I think "Web" is unnecessary. But I don't like "useGLCanvas". Maybe... "useGL", like the lib ? 🤯 What y'all think ?
sample code of the "useWebGLCanvas" hook, with a canvas and fragment shader as arguments
000
Julien Sulpis @jsulpis.dev · 11/11/2024
I bought a domain name and used it as my handle, but don't bother to search for a website, there is nothing there (yet !) Maybe I should deploy a simple page just so that the url resolves to something ? 🤔
000
Julien Sulpis @jsulpis.dev · 05/11/2024
I eventually managed to setup visual testing for useGL 🎉 making consistent screenshots tests on 3 browsers with WebGL and git LFS has been quite a ride 🥲 But now I'm pretty happy with the dev setup : Astro playground with all pages automatically tested ✨ code: github.com/jsulpis/usegl
020
Julien Sulpis @jsulpis.dev · 28/10/2024
Sooo I bought 5 courses about creative coding on @awwwards 👀 They add to a 26h long chapter about shaders on #threejsJourney that I have to catch up, @iced_coffee_dev's 2 courses, and 2 Humble bundles with Blender courses.. I think I'm good with learning material until 2026 😅
110
Julien Sulpis @jsulpis.dev · 07/06/2024
No surprise here, I would rather write code than tweets 😅 Just found this little app, what are your stats ?! 💬⬇️ (don't take that too seriously of course)
diagram showing that I have a much higher commit count than tweets count
100
Julien Sulpis @jsulpis.dev · 05/06/2024
yet another developer on MacOS 🙄 I forgot two things last time: - always use `overflow: auto` instead of `overflow: scroll` unless you specifically want a scrollbar even when there is no scroll - if you have a dark mode, use `color-scheme: dark` to have dark scrollbars
screenshot of a page with many scrollbars
000
Julien Sulpis @jsulpis.dev · 28/05/2024
New performance optimization on my reveal.js slide deck : - replace the 3 code snippets I had with screenshots - remove the highlight.js plugin - reduce the weight of the main script by 92% 😅 The plugin loads all languages, I opened an issue to allow loading specific languages
screenshot of the build of my slide deck with the highlight plugin, showing that the largest script weights 332kB (minzipped)screenshot of the build of my slide deck without the highlight plugin, showing that the largest script weights 28kB (minzipped)
000
Julien Sulpis @jsulpis.dev · 28/05/2024
I investigated performance issues with the reveal.js slide deck of my latest talk, and I turns out that each slide change created like 1500 DOM nodes 😳 I ended up with ~100k DOM nodes at the end... I guess every layout/style recalculation was taking forever. solution:
100
Julien Sulpis @jsulpis.dev · 21/05/2024
After a little break, I'm back in the #WebGL game ! Working on color science for my next talk 🎨 Here is a little HSV cone (links in comments):
120
Julien Sulpis @jsulpis.dev · 01/03/2024
Hello world 👋
040