Loading video...

Video Failed to Load

Go Home

Utter and total insanity(!!!) My vote for most hardcore splat demo ever. DOOM entirely in splats. Sprites, status bar, characters, gun rendering, all splats. Rendering and sorting with WebGPU. Dynamic lighting updating splats in real time. Sparkjs LoD to render entire levels.

29,875 views • 5 days ago •via X (Twitter)

28 Comments

martin_casado's profile picture
martin_casado5 days ago

demo built by the legendary

Jon Barron's profile picture
Jon Barron5 days ago

Say more? How are the walls represented? Are there texture maps? Do the splats have opacity maps? I don't get how the walls seem to have pixel shaped texture maps on them, are ~10 colored Gaussians being used to flesh out each texel?

martin_casado's profile picture
martin_casado5 days ago

Each texel from the texture maps are turned into exactly one Gsplat, so a wall with a texture becomes a rectangular grid of splats. The splats are drawn as regular 3DGS with a Gaussian opacity profile. But every frame the Gsplats also change their color / shade, coming from the Doom game code, which would have drawn the texture mapped quads with real time lighting/shading but now that code modifies each splat color so it looks like the original. The object sprites and the bottom status bar and the gun also are made the same way: texture mapped pixels where each pixel becomes exactly one splat. Near the beginning of the video I adjust a debug slider to "flatten" the 3DGS opacity profile to make the splats render like disks... You can really see each individual splat in that mode. Then Andreas unflattened them and you can see they softly blend together, almost like antialiased texture mapping.

Mazeyar's profile picture
Mazeyar5 days ago

It’s so over for ray casting

Alexander Mcneilly's profile picture
Alexander Mcneilly5 days ago

omg

Udi Wertheimer's profile picture
Udi Wertheimer5 days ago

WHAT

robot 2.0's profile picture
robot 2.05 days ago

ok im sold on retro splatting

na's profile picture
na5 days ago

Is this different from having 1 poly per pixel? Does the lighting change based on angle?

martin_casado's profile picture
martin_casado5 days ago

Yes lighting changes. Lighting updates are on all splats in real time. Also ...

Mazeyar's profile picture
Mazeyar4 days ago

@sameh_khamis also just built this tool for GS in a CLI 😳

Nathan Lands's profile picture
Nathan Lands5 days ago

what...

Sloyd's profile picture
Sloyd5 days ago

That looks sick!

Kartik's profile picture
Kartik5 days ago

Love it ! ♥️

Perceptron.cloud's profile picture
Perceptron.cloud5 days ago

based

Isaac Bratzel's profile picture
Isaac Bratzel4 days ago

Rad

Joshua J. Bouw 🇦🇪's profile picture
Joshua J. Bouw 🇦🇪5 days ago

w t f

Umbrella's profile picture
Umbrella5 days ago

DOOM continues its sacred duty of making every rendering technique prove itself 😂

Patrick Devine's profile picture
Patrick Devine5 days ago

OK, that's just wild.

John D. Villarreal, JD, MBA, MA's profile picture
John D. Villarreal, JD, MBA, MA5 days ago

OG Doom was incredible and John C and John R et al. were fantastic.

Bryant's profile picture
Bryant5 days ago

so cool

cdawk's profile picture
cdawk4 days ago

sparkjs is webgl ryt?

martin_casado's profile picture
martin_casado4 days ago

traditionally yeah. Although currently doing porting work to webgpu for some cases.

Mindblown 🤯's profile picture
Mindblown 🤯5 days ago

this is mindblowing! all splats... 🤯

Shokunin - Product Craftsmanship's profile picture
Shokunin - Product Craftsmanship5 days ago

Why not port the voxel sprites to this

Scott Stevenson's profile picture
Scott Stevenson5 days ago

Wow

Irfan's profile picture
Irfan5 days ago

is there a link to try it?

martin_casado's profile picture
martin_casado4 days ago

Here ya go:

Irfan's profile picture
Irfan4 days ago

fascinating

Related Videos