Загрузка видео...

Не удалось загрузить видео

На главную

So i vibe coded a threejs webgpu splat renderer from scratch in an evening with gpt 5.4 Introducing Spark++ Give it a week or two, performance is slightly worse on fast camera movements but 60 fps on my toaster in less dense areas. Had to reduce overall density for...

32,650 просмотров • 7 месяцев назад •via X (Twitter)

Комментарии: 25

Фото профиля martin_casado
martin_casado7 месяцев назад

Amazing. Keep it up! Make sure it support LoD and streaming. Target size, 100 million splats. That's when things get difficult.

Фото профиля robot 2.0
robot 2.07 месяцев назад

it has LOD, no streaming, what is target size? It wouldn't ever render 100 million, it slices the entire splat into lots of small pages and only renders what's visible in the camera

Фото профиля martin_casado
martin_casado7 месяцев назад

Yeah, so LoD generally builds an LoD tree where splats close by are high resolution, and those far away are lower resolution. Generally this is done by having the highest resolution be leafs on a tree, which aggregate up and create blended colors (and increased size) as you go. You can set a splat budget (e.g. 2 million) for being on the screen at all times. However, they're all stored in memory since you're simply saving GPU time. Streaming is where you normally deal with memory and bandwidth contention by carving the scene into pages, and then loading them incrementally. This saves you loading time (e.g. you can see the scene immediately) and you can fix total memory usage by evicting pages that are too far away. Here is an example of a 16million splat scene with LoD and streaming. It also has a proxy mesh that takes a moment to load:

Фото профиля robot 2.0
robot 2.07 месяцев назад

isn't building, sorting and filtering the tree taking up massive cpu time?

Фото профиля martin_casado
martin_casado7 месяцев назад

Building the LoD tree(s) is generally done offline. But yeah, for traversal, sorting, multi-views etc it's really hard to get it performant. In particular if you have multi-device support. For example Spark supports VR and mobile. Spark is currently at or ahead of the state of the art. So there really isn't any literature or prior code for the models to draw from. It gets even harder if you want to implement portals. Because now you need multiple multiple LoD trees and clipping which has to happen with shaders to be performant. And all that has to interact with the streaming / paging system.

Фото профиля robot 2.0
robot 2.07 месяцев назад

do u have a large splat for me

Фото профиля martin_casado
martin_casado7 месяцев назад

Yeah. Will send in a bit

Фото профиля alyssa 🫪
alyssa 🫪7 месяцев назад

🗿🖤

Фото профиля Isaac Bratzel
Isaac Bratzel7 месяцев назад

Nice

Фото профиля loground
loground7 месяцев назад

banger

Фото профиля robot 2.0
robot 2.07 месяцев назад

just vibin lately

Фото профиля loground
loground7 месяцев назад

the only way

Фото профиля Nitin Khanna
Nitin Khanna7 месяцев назад

You got further than me using claude :) Claude just messed up all compute shaders of the base project so left. Will try codex on my claude wip and see if I can get it to work.

Фото профиля Tiger Abrodi
Tiger Abrodi7 месяцев назад

cracked 🔥

Фото профиля renderfiction
renderfiction7 месяцев назад

Bro what, how the..

Фото профиля jeantimex
jeantimex7 месяцев назад

Nice, I also vibe coded one:

Фото профиля Nicolas Craske
Nicolas Craske7 месяцев назад

Rad work.

Фото профиля Anish
Anish7 месяцев назад

lovely

Фото профиля Nick Oak
Nick Oak7 месяцев назад

I’ve coded splats viewer that renders in symbols in a same way 👀

Фото профиля Johannes Tscharn
Johannes Tscharn7 месяцев назад

What the hell I worked with SparkJS quite a bit and always considered it basically magic, especially the 2.0 version which has LODs (so you can limit the amount of splats drawn to n)

Фото профиля robot 2.0
robot 2.07 месяцев назад

it is magic still

Фото профиля Dan Monaghan
Dan Monaghan7 месяцев назад

Right now you just have a point cloud (a dark one at that) so they are not actual splats yet. You need to get the ellipsoid shape, scale and rotation working, which prob won’t effect render speed, just decoding.

Фото профиля robot 2.0
robot 2.07 месяцев назад

check the link i've updated it since

Фото профиля Evgeny Muryshkin
Evgeny Muryshkin7 месяцев назад

AI trap... you did not know how it work, now you have a thing, but still does not know how it works..

Фото профиля Sadi Moodi
Sadi Moodi7 месяцев назад

60fps on a toaster with webgpu splats? That's actually wild. The real question: did GPT 5.4 figure out the math or just copy-paste from threejs examples? Either way, the fact that it works at all is the real flex here.

Похожие видео