amazing: 100 ms was not great, but 5, even 1, is magnificient!
@cvabds8 сағат бұрын
Now create a gaussian splatting feature and use the data to feed a neural networks brain
@trashtrash2169Күн бұрын
Cool.
@GeorgiKrastevMusic2 күн бұрын
insane work, good job
@bradhammond9232 күн бұрын
Wow man, you just keep dialing it up. Been following for a good while now and this is seriously super impressive work.
@cyber-gate2 күн бұрын
Very nice work, i am sure this doesn't come easy. Nice to see liquid physics again!
@RujiKtheComatose2 күн бұрын
Would it be plausible to add some kind of an octree setup for more liquid further away from the camera? So the further away the camera is, the fewer liquid particles there are. Or do you already have some plans for liquid chunking?
@GrantKot2 күн бұрын
Yeah I do have a level of detail system I will try to bring over. I had to rewrite the engine to make it more WebAssembly friendly
@kaliyuga14surfer883 күн бұрын
amazing work! good luck with future optimizations
@pleka3 күн бұрын
Was seriously impressed by this projects months ago, and continued be amazed by all the new capabilities and performance improvements.
@TimothyDavison3 күн бұрын
This is one of my favorite projects to follow. It is quite cool that you are compressing in realtime on the CPU, and 1-5ms is amazing, wow. Compression is on my mind these days too.
@GrantKot3 күн бұрын
Thanks! In addition to zstd you might be interested in the blosc library. Had trouble using it in Cloudflare workers though so I did something similar for my specific case.
@Muzzled3 күн бұрын
That's really good stuff man. Hope you keep it up, its very impressive!
@toxiccan1753 күн бұрын
Incredible stuff, Grant! Will you be spending any time on the way players appear, move, and interact? I think some basic player models (colorful gnomes instead of humans?) and positional voice chat would be cool, as well as FOV options. Adding a basic fog shader could give a sense of depth and scale as well. Just some ideas. Keep up the good work!
@GrantKot3 күн бұрын
Thanks for the ideas! Yeah, would like to improve on that aspect, the players should at least be able to tell where other players are facing and to be able to nod yes or no. I was stuck for a bit with some WebAssembly multithreading quirks for a bit but have mostly figured it out.
@Adam-zt4cn3 күн бұрын
Oh wow, this is an unprecedented level of amazing. It feels almost alien!
@sjoerdev3 күн бұрын
where is the source code?
@lommix-games3 күн бұрын
Very impressive as always. What web backend are you using Webgl2 or WebGpu?
@GrantKot3 күн бұрын
Thanks! I'm currently using WebGL2 to target more devices. In the future I plan to have an optional WebGPU renderer as well.
@surrendering2within3 күн бұрын
Looking fantastic. Wishing you well as you make progress ✨
@jcalderwood13 күн бұрын
WHATTTTT. This is crazy bro.
@ben28233 күн бұрын
This looks amazing
@jean-philippegrenier1203 күн бұрын
super interesting video. Amazing work
@chasemarangu3 күн бұрын
Hi, question: for the compute, are you using WebGL rendered to a canvas and then extract pixel color, a WebGPU compute shader, WebAssembly, or just pure JavaScript, or something else? Because it runs fast and you said it is a shader but I don't think WebGL compute shaders ended up becoming an official W3C standard.
@GrantKot3 күн бұрын
The physics is simulated using multithreaded WebAssembly and then the data is transferred to the GPU to render.
@chasemarangu2 күн бұрын
@@GrantKot awesome thank you! Also cool, I for some reason did not realize assembly supported multithreading
@GeorgiKrastevMusic7 күн бұрын
Mate, I am really curious about something. Your particle simulation is legendary. What if you used that implementation to create earth, stone, metal, etc. as really really "dense particles" -- adding the possibility of a destructible solid environment where the particles act the same way atoms do in real life (albeit much much larger)?
@GrantKot7 күн бұрын
Yeah, if you're talking about combining the particle-based physics with this, that's going to be very soon, probably within this month. And then I also want to set up a WebGPU based renderer. I think things are coming together in a good way and I'm very optimistic with this now being cross-platform on the web.
@GeorgiKrastevMusic7 күн бұрын
@@GrantKot Oh my god man you are literally creating the engine I have always dreamed of for my dream fantasy sandbox MMO. Amazing work!
@MyEarsHurts9 күн бұрын
Liquid crystal on mobile real?!
@GrantKot9 күн бұрын
Yes, I went on a major compatibility binge this summer and all of my tech builds via WebAssembly and is cross platform including mobile. Demos are on my site
@pawelczubinski641312 күн бұрын
That’s an incredible performance for cpu!
@rafa_br3416 күн бұрын
Damn, I wish I had such skills but I can barely render a cube.
@atlasua202116 күн бұрын
amazing
@pierreseaumaire698820 күн бұрын
Hello ! This is Raytracing ? I'm VOXOKING btw nice to meet you !
@GrantKot19 күн бұрын
Hi, nice to meet you! Yeah, raytracing but just the simplest form, just primary hit, haven't added other lighting for it yet.
@J.A.R.V.I.S-MK4322 күн бұрын
How do I play this?
@GrantKot19 күн бұрын
I have a link to my itch io page in the description for this demo (first one there) and some other demos I've shown on my channel.
@BIOKhongpumphol22 күн бұрын
You are Minecraft
@Ironsight53523 күн бұрын
Ayo 0:52
@Ironsight53523 күн бұрын
These little balls probably will get me ball cancer
@Ironsight53523 күн бұрын
nice dude
@BogusLarry24 күн бұрын
So the next logical step is an infinite ocean of liquid crystal, right? Heh heh
@nicks472724 күн бұрын
This is awesome! What is this written with? Straight Vulkan? or are you using a library like raylib or bevy to handle it?
@GrantKot24 күн бұрын
Thanks! This is TypeScript and WebGL2. Once the physics system is there it will be a bit of C++ -> WebAssembly.
@arthurzhu2924 күн бұрын
I thought it was a cool thing but you don’t really sell it so I was positively surprised to see that you had set up a demo and it works great on my phone.
@arthurzhu2924 күн бұрын
Personal opinion (because I had the idea to do something similar to what you did which is why I am thrilled to see it): I like editing stuff with high detail, because you can create things very well that way. So I would have made it block-by-block placement but I guess this works fine as a demo. You stole my idea but at least your a good programmer in contrast to me ;)
@GrantKot24 күн бұрын
The editing experience will be improved soon :) I'll be working on adding things like grids and the ability to customize their block tiles. Mostly here is just load testing
@Mystixor24 күн бұрын
Isn't it always just the best feeling when you finally figure out a solution and it works nicely ^^ nice work.
@GrantKot24 күн бұрын
Thanks! Actually, I wonder if this will be useful to do cross-worker physics!
@surrendering2within24 күн бұрын
Impressive
@jcalderwood124 күн бұрын
Yeah boi!! 🎉
@jeremymetzler7224 күн бұрын
maybe do client predicted voxel placement
@ÓdhranGillespie-s4q24 күн бұрын
Cool (pls update blobs)
@GrantKot24 күн бұрын
Switching back to a durable object per region. But now I have some issues with my pubsub design.
@delphicdescant25 күн бұрын
Happy to see you continuing your work on this, even if it gets frustrating from time to time. I can't stand working with databases, so I feel you.
@ethanhermsey25 күн бұрын
Finally, we've been waiting :p How many time I saw the cube get filled or emptied, I don't know.
@trashtrash216925 күн бұрын
Latencyyyyyyyyyy. I hate working with online, so I don't, lol. If I made a game I would specifically implement local multiplayer just so I don't have to work with networking garbage. Graaaaaah! Thinking about it makes me mad!!
@GrantKot25 күн бұрын
Yeah, I think I did anticipate this design might not work out but I wanted to try it out to better understand what having a central D1 database would be like. While this was a fail, I learned about the speed characteristics of D1 and KV and now have a better architecture planned.
@dottedboxguy25 күн бұрын
especially with voxel engines it almost makes more sense to use video streaming than streaming the voxel data, considering the unbelievable amount of data trafic needed
@trashtrash216925 күн бұрын
@@GrantKot All the respect for tackling it! It's good to push yourself. I'm not a genius, though, so I just stay in my lane and relax. (Excuses! I'm simply lazy!)
@trashtrash216925 күн бұрын
@@dottedboxguy Here's a crazy idea: Could you extract voxel data from an image to rerender it with the cloent/viewer's settings? Like if it were a simplified render with no lighting only voxel position and color data, using player coordinants and camera angle, could you fit a grid to the image and quickly extract the visible blocks and then fully render them? Obviously this doesn't seem practical for an actual anything because the server would have to rerender for every player's view at 60fps or more, but would yhe comcept work? For fun?
@trashtrash216925 күн бұрын
Actually, if you only render at, like, 15fps and low resolution (480p?) and had the client store the possible voxels and update them as voxel came into better view and render from that it would probably be viable for a test. Still a bad idea, but workable, I think. To cover up errors on far away blocks you could have fog. Definitely a funny idea.
@GrantKot25 күн бұрын
Flawed architecture. Region snapshots load faster but edits applications are really slow.