herbst Profile picture
May 23 5 tweets 2 min read Read on X
Casually rendering ~a hundred million triangles, in the browser.

All thanks to @sea3dformat's cool Nanite-style renderer for @threejs.

I've added GLB-to-meshlet and PBR rendering to it, very exciting to see where this is going!
@sea3dformat @threejs You can try it out here, and drop GLBs to see them processed + rendered: .…ee-meshlets-z23hmxbz1jwlff.needle.run
@sea3dformat @threejs Meshlets are basically chunks of meshes, that get rendered with a mix of rasterization and compute.

So despite tons of stuff being on screen, actual rendering is more like "the pixels you see" Image
@sea3dformat @threejs Everything is pretty custom at the moment – a custom shader that is able to render the meshlet instances with their original data / texture / UVs etc – but the overall direction feels good Image
@sea3dformat @threejs Meshlets are generated via @zeuxcg MeshOptimizer, not sure if I'm doing everything right there but I get small compressed meshlets and can render them.

Hacked browser-based meshlet generation into meshopt, too, so that you can drop your own GLBs to pulverize them! Image

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with herbst

herbst Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @hybridherbst

Sep 13, 2025
Apple's 3D viewer is based on @threejs, uses @glTF3D and gets more impressive every year!

CAD meshes, environment blends, reflection probes, occlusion: let's take a look at what's special this time –

(long thread ahead) Image
First, some eyecandy. The viewer looks CLEAN. Why?

- the viewer snaps to canonical angles (side, front, etc.)
- there's likely some blending of environments, with specifically tuned environments per canonical view
There's also a clean transition when selecting the "Color" options, where the phone fills more of the screen.

Only that first part is 3D – all the other menu entries are videos that fade to/from black.

Let's dive into the 3D part...
Read 25 tweets
Sep 9, 2024
The new 3D models at Apple's website are using @glTF3D, @threejs r165 and gltf-transform 4.0.8 by @donrmccurdy on the iPhone 16 page 🔥

The files aren't really valid though, and won't load in many viewers – but we will fix that.

Let's take a look under the hood –
Image
Image
When downloading the files, you get a bunch of .gltf and .ktx2 files. Curiously, the glTF files are invalid – there are hundreds of errors, for example

– not declaring extensions (KHR_texture_basisu)
- wrong image MIME types (some JPEGs are named PNG!)
- accessor and normals errorsImage
Image
So when loading the files, they'll have no textures... Fortunately we can fix that quite easily.

First, we open the file in a text editor (VS Code here)
Then, format (ctrl + p, > format)

Now that's easier to work with. The structure of glTF is basically JSON.
Image
Image
Read 13 tweets
May 30, 2023
When Apple releases a new AR scene for their events, there's often interesting tech art in those files!

Let's do a little digging ⚒️👀We'll venture into browser debugging, Blender, usdview, Unity, three.js, Needle Engine :)

And the animation is live at apple-event-file-2023.glitch.me
The file is hidden behind the main logo (on iOS, it launches in AR). Since it's just a link we can take a peek at the USDZ file from a browser's inspector.

Also, it looks like they limit the AR experience to iPhones for some reason. Image
After unpacking the USDZ (yes, USDZ is literally USD-zipped):

Like some previous event files, this is actually a frame-by-frame animation! Each texture here is a ~50-100kB, 1024x1024 JPEG. There's 150 of them. Image
Read 15 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(