Play it in your browser (desktop and mobile):
instanced-mesh-showcase.verc…
How it works:
• 4 LODs simplified at runtime with meshoptimizer
• BVH for culling and raycasts (0.2 ms vs 90 ms linear)
• sub-pixel culling with onFrustumEnter
• flame, smoke, sparks and lasers in one InstancedMesh2
• same API on WebGPURenderer and WebGLRenderer
npm i @three.ez/instanced-mesh@beta
Library: github.com/agargaro/instance…
Demo source: github.com/agargaro/instance…
Andrea Gargaro retweeted
Working on new examples and showcases for the InstancedMesh2 docs.
First up: a friendly robot army showing off instanced skinning + per-instance culling!
Built with @threejs. Robots by @KayLousberg.
#threejs #webgl #gamedev
Today I started rewriting InstancedMesh2 to make it compatible with WebGPURenderer.
InstancedMesh2 has been used more widely than I expected, and I’m grateful to you all.
#threejs
My best friend @LuigiDenora’s enthusiasm after the three.js conf convinced me to get back to my open-source projects. I’ll use AI sparingly, so progress may be slow, but I’m really happy to be working on this again. Repo + findings soon.
Andrea Gargaro retweeted
Thanks to @mrdoob, three-gpu-pathtracer now includes a drag-and-drop viewer for binary glTF files 🚀 I've added a link to the viewer in the repo!
#threejs #webgl #raytracing
Andrea Gargaro retweeted
With WebGPU, AAA graphics on the web isn’t a dream anymore.
Devs just need native-grade tools. That’s why I’m building Three.js Plus.
Today I added GPU culling. Here 5M PBR cubes distributed in <10ms on a convex geo, running at 120fps thanks to object culling & indirect draws.
Today’s work reminded me: tossing more OSS into the void isn’t it. Too often it fades without support.
So instead, I’m putting care into how I share, bundling the code I use daily at @utsuboco into Threejs Plus: advanced, always-up-to-date WebGPU-first components.
1/4
Andrea Gargaro retweeted
I did something → samsy.ninja
Sound on & bring friends with you.
Open to new opportunities.
WebGPU @threejs
Andrea Gargaro retweeted
New #threejsJourney challenge means new addictive mini #webgame! 🎣
Hook a Fish! is live: catch as many fish as you can and beat your high score.
Try it out on desktop or mobile and don’t forget to share! 📸👉 hook-a-fish.vercel.app
#threejs #webgl #indiegames #r3f
Andrea Gargaro retweeted
Excited to announce that I've shipped my first game! Written from the ground up in @threejs in 3 months and published on @VIVERSEofficial
Some tech stuff that I'm really proud of:
- fully custom spherical harmonics prt lighting. Giving a baked diffuse look while still allowing for dynamic objects
- Runs completely inside a WebWorker (rendering & simulation) using OffscreenCanvas
- Supports all input types: desktop, mobile, gamepad (non-trivial if your app runs in a worker!)
- No Postprocessing! No bloom - everything you see is faked via mesh based shaders for performance reasons
Huge thanks to @VIVERSEofficial who have made this possible by letting me into their Creator Program. It's not easy to make a living off gamedev on the web yet, so this is great for the ecosystem. All links below: #VIVERSE #threejs #IndieGameDev
Playing with my octahedral impostors library 🤓
There are still things to improve, should I continue?
I created a demo with a terrain 3072 x 3072 and 200k trees. It should work on mobile too!
Demo: octahedral-impostor.vercel.a…
Github ⭐️: github.com/agargaro/octahedr…
#threejs #webgl
Andrea Gargaro retweeted
Octahedral imposters mentioned yesterday @agargaro_dev. In the shader, I compute the quad the sprite is in, barycentric coordinates, then intepolate between frames.
First pass, not super robust. They're alpha-tested and the blending could use work.
#threejs #gamedev
Andrea Gargaro retweeted
Disfigure doesn't modify skeletons & skins, instead it deforms the whole space. Imagine a space where each point is a matrix. Disfigure figures out these matrices and space gets entangled beyond comprehension.
Live: boytchev.github.io/disfigure…
#ThreeJS #TSL #disfigure #FMI #SU #js
Andrea Gargaro retweeted
Reimplemented Hi-Z via TEXTURE_BASE_LEVEL to avoid ping-ponging during the downsample. This is all hacked into three.js. Not perfect but finally conservative. Next is to implement two-pass occlusion culling and then hierarchical clustering with recent Meshoptimizer improvements.
Just added LODs to batched-mesh-extensions!
This scene goes from 14 to 1 million triangles in a single draw call — LODs are generated on the fly with meshoptimizer 😁
Demo: glitch.com/edit/#!/three-ez-…
Github: github.com/agargaro/batched-…
#threejs #webgl #webgpu













