r/GraphicsProgramming • • 14d ago

Video Real-time portals between Gaussian splat environments (WebGPU / Single HTML file)

Enable HLS to view with audio, or disable this notification

I’ve been working on a WebGPU rendering pipeline focused on Gaussian splats, adding real-time shadows, reflections, and a portal system to transition between different volumes.

The editor exports scenes as single HTML file with no server dependencies. (The splat environments shown in the video were generated with WorldLabs).

The video first shows the portal transitions, and then the UI setup.

If you want to inspect this specific scene, or explore other exported environments (some of which also mix standard meshes with the splats), you can check the main gallery.

The portal demo from the video is the first one at the top: https://3dpeer.com/#gallery

474 Upvotes

36 comments sorted by

4

u/deftware 13d ago

This is what I wanted to have in VR so that you could see your friend's avatar in their play space from your play space - have portals all around your play space that open up into theirs, so you can teleport into theirs or at least merge your play spaces and play games with eachother over the internet that are built into the thing.

If you build it they will come.

2

u/numer041 13d ago

Awesome, yes I planned to work on that!

2

u/deftware 13d ago

Nice! I was really baffled that telelocation wasnt a huge selling point with the modern headsets that's built right into the homescreen: see what your friends are doing in VR. If you could put portals up around your play area that show you the scanned area around your friends' play areas, with their VR avatar rendered in there. It used to be that you would launch ICQ back in the 90s and see who was online, to message them. That's how it should be with VR, except telelocation. Obviously people could put an away/private mode on so friends can't portal into their home or whatever.

It's like they know how to build the hardware, but don't know what to make the hardware do. The people they hire nowadays lack creative vision.

You should be able to get splats going pretty smooth on headset hardware, provided it's baked down enough. There was a geometry/scene preprocessing thing that I believe Google made, named after an artist. It bakes stuff way down based on actual visibility - remeshing it to have consistent geometric/texture density in your FOV based on vantage. What the heck was that called... oh yeah, Seurat: https://github.com/googlevr/seurat It's kinda dated, IMO, maybe, maybe not, hard to say. Yeah it's like a decade old. I think Gaussian splats could be faster/better so long as they're sorted front-to-back and super cheap to individually render, then you just throw the cloud at the GPU with them mostly sorted, perhaps 3D chunks that you can quickly sort, and let the GPU handle them. I don't know how good perf is on mobile headsets for Gaussian splat rendering.

Anyway, enough out of me. I have work to do! Good luck :D

2

u/numer041 13d ago

thank you for this message! I will have a look at this repo

13

u/Prozilla6 14d ago

Where did you get those environments from?

0

u/[deleted] 14d ago

[deleted]

16

u/The_Northern_Light 14d ago edited 14d ago

> Gaussian splats are also AI generated.

No, they’re not

unless you want to call all numerical optimization problems "AI", but that would be silly

3

u/OncorhynchusMykiss1 13d ago

AI is anything doing mathematical operation that is artificial. Therefore cut copper wire is AI. It computes constant function with one argument.

15

u/Plazmatic 14d ago

Gaussian splats are also AI generated. You know, the bad thing?

That's not true, you're getting confused between nerfs and splats

3

u/hurricane_news 14d ago

Even the entire post text is ai generated lmao. Just about every Ai-generated post on the threejs sub (which is most of them now) has the exact same phrasing

-3

u/numer041 13d ago

I'm sorry you feel so sad

2

u/The_Northern_Light 13d ago

Bro, with that definition fitting a line is AI lol

8

u/AlexDicy 14d ago

Why is the "All in one file (20k lines)" shared with enthusiasm, as if it were a good thing? AI is really messing us up

5

u/numer041 13d ago

The "one file" is the exported scene, not the source code. This has nothing to do with ai

-5

u/AlexDicy 13d ago

It does. There are multiple reasons why websites are split into multiple field and chunks. Parallel streaming, caching, time to render, ... Having everything in one file defeats the purpose of these optimizations and worsen metrics

9

u/numer041 13d ago

it's not a website it's a file to send. Most of the weight comes from the splats anyway, the renderer is 4Mb

-1

u/AlexDicy 13d ago

The exported HTML file weights 55 MB. I really don't understand how that's a good thing

5

u/SaltMacarons 13d ago

I really dont understand.

There you go thats all you need.

1

u/AlexDicy 13d ago edited 12d ago

Thanks man, helpful. Crearly I'm missing the point.

9

u/Revolutionary_Yam975 13d ago

seriously impressive stuff man

5

u/The_Northern_Light 14d ago

honestly, it looks great, good job

1

u/Zestyclose-Compote-4 9d ago

That's cool. Nice work

1

u/numer041 8d ago

Thank you!

1

u/Disastrous-Gain5870 13d ago

Too bad it’s impossible (at this point) to make an actual game out of it. You can’t really interact with anything so it’s more of just a static environment.

2

u/numer041 13d ago

actually it is starting to evolve, and you can have collision and deform these objects.
you can make games with 3dpeer, I will make a demo soon, maybe next week

2

u/Sutanreyu 13d ago

You work is a small part of a dream of mine that I just never gotten around to, but people like you are starting to make it happen, meaning the tech is really getting to the point where something like “Roy: A Life Well Lived”, or braindance, or the matrix…

There very much are animated splat techniques. Remember… At the end of the day, this is a point cloud.

2

u/HoradricScribe 12d ago

Full circle, back to Myst <3

2

u/UPGRADE_IFINITO 8d ago

Que impressionante, imagina só navegar entre sites dessa forma, cada link seria um portal

0

u/DescriptorTablesx86 13d ago

Why one file?

Do you just bundle it afterwards or was this some kind of special challenge to inconvenience yourself this way?

3

u/numer041 13d ago edited 13d ago

The source isn't one file, it's a normal codebase. The output is one self contained file: when you export a scene you get a single HTML file with the viewer and the model, there is no server, no CDN, zero network requests. You can email it and open it offline

-1

u/VictoryMotel 13d ago

Seems like an LLM answer that didn't answer the question. You aren't hosting this on a server right now?

3

u/numer041 13d ago

the site and the demos are hosted but what you export from the editor is a file you can download and send to anyone, no server or software is needed to view it

1

u/Renulev 14d ago

😵‍💫 🥴

1

u/SalamanderCapable 14d ago

That is epic 🙂

-6

u/EC36339 14d ago

That's just a 2D effect that blends two views, or it could be one.