Every time I hear about Gaussian splatting, I think about triangle splatting[0] - GPUs were built to render triangles, so I wonder what games would be like if we supported generating and rendering them as much as we do Gaussian splats.
The Dreams game engine (only for PS4) does this and is able to achieve scenes that no other game engine can. Here's a technical talk about how they did it: https://www.youtube.com/watch?v=u9KNtnCZDMI
Actually sorry not sure if they use triangle splatting, but gaussian splats at least.
The Sony Dreams beta in 2018, was truly revolutionary and even today the world hasn't caught up with a lot of its breakthroughs. I'd been deeply involved in the design of high-end, pro digital media authoring tools for two decades and when I saw that beta it blew my fucking mind.
Media Molecule (LittleBigPlanet) spent over 8 years creating Dreams, which would never have happened without Sony's funding, but the tragedy was forcing what could have been a brilliant high-end authoring tool into a gamepad / lean-back interface. Even now, there are still innovative UX approaches in Dreams that could be adapted into high-end 2D, 3D, compositing and animation tools like Blender.
If I recall their talk correctly, models are unions of SDFs, which get sampled into a point cloud, and each point gets splatted as another SDF primitive called a "fleck".
I think SDFs is the data underneath, but baked into SDF voxel tiles at runtime and not always evaluating SDF shapes. The SDF tiles still get splatted.
At one point it used triangles for the large splats, and still compute shaders for the small ones due to quad overdraw. I'm not sure if the final version stuck with that or went all compute, but quad complexity is also why nanite does compute shaders for small triangles and traditional rasterization for the larger ones.
In my experience it isn't really about quad overdraw/helper lanes, but rather about primitive assembly. On my RTX 4090, vertex shaders max out at about 20M tris/ms, while mesh shaders, which bypass primitive assembly, can reach 40M tris/ms. Maybe quad draw might be the next bottleneck after primitive assembly.
But it's a bit difficult to find the exact reason since profilers won't really tell you a concrete bottleneck when drawing vast amounts of tiny tris.
I think that Gaussian splatting is generally better, as the Gaussians are smoother and easier to optimize, if you can use them.
Things like triangle splatting are useful if you have to integrate into an engine that only support triangles. But with modern graphics pipelines, you can implement Gaussians quite efficiently, including newer techniques like Gaussian point splatting that can scale up seamlessly to enormous scenes:
Yeah, there were other splats before Gaussian splats, so lots of cool possibilities depending on the style you're after. However, hard triangles have hard edges, and then you might be anti-aliasing those edges in some way. Gaussian splats can just be a triangle or two where the pixel shader feathers towards the edges.
No, nanite is just having different levels of detail for objects, and which LOD gets selected is done automatically by the engine. So users can use ultra-high-def models (including 3d scans of real-world objects), and the engine automatically generates and uses lower polygon versions for when the object is far away or whatever.
Strange, when I looked into it that seemed to be just a desirable side effect with the rendering being done via the triangles - which was also supposedly the reason why you could directly use scanned models, despite them having millions of triangles in their model
But again, I've really only super superficial understanding of this, I just understood it like that back then
I learned about gaussian splattering mere months before nanite was introduced and their technical talks and articles always sounded exactly like what I just learned about the splattering, that's why I got that impression
There are various papers on variants of Gaussian splatting (keyword "differential rendering") which replace the Gaussians with some other explicit geometric representation that can also be rendered in real time. A triangle soup is just one example. I recall one which uses some sort of tetrahedral foam instead.
Bundle support in geometry nodes is huge for complex pipelines and workflows, particularly when combined with lists and closures. I have been running on the alpha builds to get access to them in my workflows.
It took me a while to properly understand it, but it's genuinely great. It maps so much more of what I expect from traditional coding, scripting etc into the visual paradigm and makes an awful lot easier to use.
Also, should out to databpy and nodebpy, both of which are indispensable and make using nodes and blender so much nicer:
Tried the beta on my M4 a couple of weeks ago on a scene of 4M splats (exported from spirula studio, great tool) , and found that it's immediately very mature, fast, and well-integrated. I could not find anyinconstencies with the rest of the interface. Congrats to the team!
Their LazyPosy channel has a video about how they made this one, difficulties, etc if you're interested in that too. More practical than technical, though it wasn't done with Blender.
You show something to your boss, he pats you on the shoulder and says "Perfect! Just move chairs 2 feet left and ship it". How does one do it with gaussian splats?
You select the points involved in the chair and move them and then you fix the holes in the floor. Gaussian splats are just 3D point clouds with a bunch of extra values per point.
He is very frequently posting news about the splat world as well as quite many tests and demos with different software or hardware. I would expect him to cover Blender specific stuff soon, but it's a great source already for existing stuff.
Apparently, while Gaussian splatting is not the core technique for all world models, it has become a dominant representation and rendering backend for spatial and reconstructive world models.
Pretty cool that Gaussian Splatting is included in Blender. It always amazes me how many (sometimes pretty hidden) features Blender provides while still being rather a lean piece of software.
I believe though that Gaussian Splatting is not ideal for getting well-structured mesh data with limited vertices for typical video game usage. I'm wondering where this is going in the future.
We are converging on text specification to 3D world.
Gaussian Splat technology doesn't get as much hype as it deserves.
The killer app for VR headsets is still to come.
I've been using Claude to drive Blender with the official Blender MCP server. Mixed results; but some of them very good.
Claude Opus is very good at creating geometry nodes for specific applications. You have to know what to ask for. It's not a magic genie.
For example, I asked it to make a node setup to create the geometry for a table. It did a mediocre job of it. Then I told it to do research on the nomenclature for tables and create a parametric control interface to generate tables with the UI using the table nomenclature. It did a very good job of that. It set it up so that I could put the units in using Imperial or metric. I also asked it to come up with reasonable default values for the parameters and it did. With just a little tweaking I have a very useful table generator for greyboxing scenes.
I then did a similar round with it for book cases and straightback chairs with useful results.
I asked it to make material nodes for wood: oak, maple, etc. And it did a pretty good job of that. Nothing amazing, but a useful place to start.
It won't be replacing people that know what they are doing, but its useful for giving that person better specifications for what you want.
I had Claude keep notes on the project and it made a skill that has been useful for later projects.
Think of it as a very bright intern that works very fast but has very little practical experience.
The problem, of course, is that if AI replaces interns, then there may not be a future generation of experts. By then, though, the AIs may be good enough to replace the experts. Next year? Next week? Who knows. If you guide it right to learn as it works, it _does_ get better over time.
I have no idea what to expect or what the actual limits of this tech is. I've see it make really hilarious mistakes, then turn around and explain the math its using so well that I can ask for what I want "properly" and it's surprised that that was what I really wanted.
It is like dealing with a very well read alien.
If the AIs don't end up murdering us all in our sleep it could be an amazing world we are entering.
> By then, though, the AIs may be good enough to replace the experts. Next year? Next week? Who knows.
Lately, I've been pondering this question in general and I'm worried the answer might be "Never" for some kinds of work - at least if we don't change how LLMs are currently developed and improved. At a high-level, the problem is they don't 'learn on the job' like a human and writing their memory & learning in .md files works for some things but fails for others.
While the 'rising tide' of baseline LLM knowledge continues to grow, they are still FTIs (Factory Trained Intelligences), meaning they mostly learn from data which can be assembled/tagged or synthesized in mass bulk - plus specific abilities in certain domains which the factory has prioritized for more costly special training. For some broad categories of important work, I suspect there's a significant unfilled gap in our LLM instances being able to effectively crystallize knowledge acquired on-task. Without that, context files will remain helpful crutches not true substitutes.
I would argue that we have no idea how the technology will change. Humans have a poor record of predicting what human based technology can do in a given amount of time. This is non-human intelligences. All bets are off. Maybe the AI can give us a clue. If they feel like it.
Sci-fi stuff aside, it's not just a matter of the AI's telling the supporting tech what to do. We are already at the point where we can't predict what the AI will do to the supporting tech. Blender, for example, is mostly traditional computer science with some physics and art direction thrown in. It's damn hard to use.
This is not a criticism, that's just where we are in developing a UI for the math and physics and art direction. Just using the AI to make for me UI changes, convenience features, and special utilities has drastically changed not only the way I work, but the kind of projects I'll undertake. I think nothing of having Claude whip up a special physics based particle system or compositing stack these days. I could have done that in the past, but it would have been so much work for a one time job I wouldn't consider it. I'd just brute force a solution with manual keyframes and a lot of trial and error.
And while I can program and solve (simple) physics problems, its not my day job. My day job is telling stories and explaining things with animated narratives.
Earlier today I was asked to help with some animations explaining how musical scales worked and to come up with ways to visualize them. Using Claude I've already got Blender doing a credible job at creating musical notation and linking it up to a (sort of) physically accurate sound wave simulation/visualization. Not done yet, but it's looking promising. This is within a few tens of minutes of an instructional designer asking me what might be possible for the topic. And I already have a sound synthesizer written in javascript (by Claude) that I used for a project a while back. Hooking them together is just a json file or two away...
Even if the Super Intelligence never materializes, just using current LLMs as an amplifier for existing technology is going to change things into something unrecognizable. And something that is very dangerous in the hands of human bad actors.
> I would argue that we have no idea how the technology will change.
I didn't discuss how I think the tech will change. I pointed out a current gap in crystalizing knowledge acquisition gained on-task because I feel that gap is still under-appreciated. There's a lot of very interesting work trying to identify how to cost effectively narrow that gap (Dynamic Modular Adapters, Background Distillation, Test-Time Training, etc).
They all can be effective to varying degrees in different ways but they also all have their own gaps and trade-offs. As of now, there's no clear path to per-instance knowledge crystalization that's both broadly generalizable and scales cost-effectively. Will both be solved eventually? I think almost certainly. Will both be solved in the next 2-5 years? Maybe... but it smells like the kind of fundamental problem that's 'wicked' hard, so I wouldn't be surprised if the LLM you and I can afford to daily drive in 2 - 5 years is far more capable and 'smart' but isn't that much better at automatic crystalized learning from on-task knowledge acquisition than the best LLMs are today.
To be clear, LLMs are fabulously useful in myriad ways and I think they'll continue getting much more useful in many more ways. That's so much a given, it makes identifying which remaining gaps are so fundamental there's a good chance they won't be solved in 2-5 years especially interesting.
Fable 5.2 is really good at using Blender from my testing. That being said, even smaller models are good enough for junior level work, it just depends on what deliverable or metric you are looking at. Most agentic LLMs can now do low poly assets for example.
Blender can be guided with Opus 5.5 to do reasonably detailed buildings and generate textures, and modify existing models, say a car, and add doors. There is still a lot of handholding, but it's good enough!
Every time I hear about Gaussian splatting, I think about triangle splatting[0] - GPUs were built to render triangles, so I wonder what games would be like if we supported generating and rendering them as much as we do Gaussian splats.
[0] https://trianglesplatting.github.io/
The Dreams game engine (only for PS4) does this and is able to achieve scenes that no other game engine can. Here's a technical talk about how they did it: https://www.youtube.com/watch?v=u9KNtnCZDMI
Actually sorry not sure if they use triangle splatting, but gaussian splats at least.
The Sony Dreams beta in 2018, was truly revolutionary and even today the world hasn't caught up with a lot of its breakthroughs. I'd been deeply involved in the design of high-end, pro digital media authoring tools for two decades and when I saw that beta it blew my fucking mind.
Media Molecule (LittleBigPlanet) spent over 8 years creating Dreams, which would never have happened without Sony's funding, but the tragedy was forcing what could have been a brilliant high-end authoring tool into a gamepad / lean-back interface. Even now, there are still innovative UX approaches in Dreams that could be adapted into high-end 2D, 3D, compositing and animation tools like Blender.
Pretty sure they use SDFs, not triangle or gaussian splatting
If I recall their talk correctly, models are unions of SDFs, which get sampled into a point cloud, and each point gets splatted as another SDF primitive called a "fleck".
Ah thanks for the correction. The splat terminology they also use confused me.
I think SDFs is the data underneath, but baked into SDF voxel tiles at runtime and not always evaluating SDF shapes. The SDF tiles still get splatted.
At one point it used triangles for the large splats, and still compute shaders for the small ones due to quad overdraw. I'm not sure if the final version stuck with that or went all compute, but quad complexity is also why nanite does compute shaders for small triangles and traditional rasterization for the larger ones.
In my experience it isn't really about quad overdraw/helper lanes, but rather about primitive assembly. On my RTX 4090, vertex shaders max out at about 20M tris/ms, while mesh shaders, which bypass primitive assembly, can reach 40M tris/ms. Maybe quad draw might be the next bottleneck after primitive assembly.
But it's a bit difficult to find the exact reason since profilers won't really tell you a concrete bottleneck when drawing vast amounts of tiny tris.
They've made a follow up to that called MeshSplatting. https://meshsplatting.github.io/
I think that Gaussian splatting is generally better, as the Gaussians are smoother and easier to optimize, if you can use them.
Things like triangle splatting are useful if you have to integrate into an engine that only support triangles. But with modern graphics pipelines, you can implement Gaussians quite efficiently, including newer techniques like Gaussian point splatting that can scale up seamlessly to enormous scenes:
* Video: https://www.youtube.com/watch?v=2AWv_nIfp-U
* Paper: https://jorisar.nl/gaussian_point_splatting/gaussian_point_s...
* Repo: https://github.com/JorisAR/gaussian-point-splatting
Already done in 2023: https://mobile-nerf.github.io/
runs on a phone: https://storage.googleapis.com/jax3d-public/projects/mobilen...
Yeah, there were other splats before Gaussian splats, so lots of cool possibilities depending on the style you're after. However, hard triangles have hard edges, and then you might be anti-aliasing those edges in some way. Gaussian splats can just be a triangle or two where the pixel shader feathers towards the edges.
Isn't nanite in unreal engine exactly that?
To be clear, I'm not proficient in it's use, just watched a few videos about it's theory when it was initially announced
No, nanite is just having different levels of detail for objects, and which LOD gets selected is done automatically by the engine. So users can use ultra-high-def models (including 3d scans of real-world objects), and the engine automatically generates and uses lower polygon versions for when the object is far away or whatever.
Strange, when I looked into it that seemed to be just a desirable side effect with the rendering being done via the triangles - which was also supposedly the reason why you could directly use scanned models, despite them having millions of triangles in their model
But again, I've really only super superficial understanding of this, I just understood it like that back then
I learned about gaussian splattering mere months before nanite was introduced and their technical talks and articles always sounded exactly like what I just learned about the splattering, that's why I got that impression
Honestly there should be many more types of splatting imo...
Beta splatting seems pretty promising. It addresses the fuzziness aspect of gaussians among other things.
https://rongliu-leo.github.io/universal-beta-splatting/
https://linus-franke.com/hibs/
There are various papers on variants of Gaussian splatting (keyword "differential rendering") which replace the Gaussians with some other explicit geometric representation that can also be rendered in real time. A triangle soup is just one example. I recall one which uses some sort of tetrahedral foam instead.
Bundle support in geometry nodes is huge for complex pipelines and workflows, particularly when combined with lists and closures. I have been running on the alpha builds to get access to them in my workflows.
It took me a while to properly understand it, but it's genuinely great. It maps so much more of what I expect from traditional coding, scripting etc into the visual paradigm and makes an awful lot easier to use.
Also, should out to databpy and nodebpy, both of which are indispensable and make using nodes and blender so much nicer:
https://github.com/BradyAJohnston/databpy https://github.com/BradyAJohnston/nodebpy
Even works in XR, tried on Frame just yesterday https://video.benetou.fr/w/1z3RE28EGWB7ZeeAgdCaEY and don't trust the low FPS capture, was quite smooth.
Tried the beta on my M4 a couple of weeks ago on a scene of 4M splats (exported from spirula studio, great tool) , and found that it's immediately very mature, fast, and well-integrated. I could not find anyinconstencies with the rest of the interface. Congrats to the team!
If you enjoy or get value out of Blender please consider donating: https://fund.blender.org/
They have easy subscription options, even a monthly coffee adds up! Thanks!
Interesting discussion from start of this year of one of the first popular music videos made with this technology. Some decent explanations in there.
https://news.ycombinator.com/item?id=46670024
Wow, that video made me instantly nauseous.
If you'd like a somewhat more sedate example: https://youtu.be/J1-yToxKOzI
Their LazyPosy channel has a video about how they made this one, difficulties, etc if you're interested in that too. More practical than technical, though it wasn't done with Blender.
You show something to your boss, he pats you on the shoulder and says "Perfect! Just move chairs 2 feet left and ship it". How does one do it with gaussian splats?
You select the points involved in the chair and move them and then you fix the holes in the floor. Gaussian splats are just 3D point clouds with a bunch of extra values per point.
With about the same amount of ease as if you'd used photogrammetry - which is very widely used in game pipelines
I have seen techniques for smart selecting objects and moving them around in the scene.
Does anyone have recommendations for video / 4d splats? Are there softwares / techniques to check out? How to record, render, etc.
Thanks!
I am a fan of this channel: https://www.youtube.com/@RadianceFields
He is very frequently posting news about the splat world as well as quite many tests and demos with different software or hardware. I would expect him to cover Blender specific stuff soon, but it's a great source already for existing stuff.
Minimax H3 can do orbit videos + splats very well.
Apparently, while Gaussian splatting is not the core technique for all world models, it has become a dominant representation and rendering backend for spatial and reconstructive world models.
Pretty cool that Gaussian Splatting is included in Blender. It always amazes me how many (sometimes pretty hidden) features Blender provides while still being rather a lean piece of software. I believe though that Gaussian Splatting is not ideal for getting well-structured mesh data with limited vertices for typical video game usage. I'm wondering where this is going in the future.
We are converging on text specification to 3D world. Gaussian Splat technology doesn't get as much hype as it deserves. The killer app for VR headsets is still to come.
For those who use Blender for work, how far are models like Astra away from using Blender to create something good enough at a junior, senior level?
I've been using Claude to drive Blender with the official Blender MCP server. Mixed results; but some of them very good.
Claude Opus is very good at creating geometry nodes for specific applications. You have to know what to ask for. It's not a magic genie.
For example, I asked it to make a node setup to create the geometry for a table. It did a mediocre job of it. Then I told it to do research on the nomenclature for tables and create a parametric control interface to generate tables with the UI using the table nomenclature. It did a very good job of that. It set it up so that I could put the units in using Imperial or metric. I also asked it to come up with reasonable default values for the parameters and it did. With just a little tweaking I have a very useful table generator for greyboxing scenes.
I then did a similar round with it for book cases and straightback chairs with useful results.
I asked it to make material nodes for wood: oak, maple, etc. And it did a pretty good job of that. Nothing amazing, but a useful place to start.
It won't be replacing people that know what they are doing, but its useful for giving that person better specifications for what you want.
I had Claude keep notes on the project and it made a skill that has been useful for later projects.
Think of it as a very bright intern that works very fast but has very little practical experience.
The problem, of course, is that if AI replaces interns, then there may not be a future generation of experts. By then, though, the AIs may be good enough to replace the experts. Next year? Next week? Who knows. If you guide it right to learn as it works, it _does_ get better over time.
I have no idea what to expect or what the actual limits of this tech is. I've see it make really hilarious mistakes, then turn around and explain the math its using so well that I can ask for what I want "properly" and it's surprised that that was what I really wanted.
It is like dealing with a very well read alien.
If the AIs don't end up murdering us all in our sleep it could be an amazing world we are entering.
> By then, though, the AIs may be good enough to replace the experts. Next year? Next week? Who knows.
Lately, I've been pondering this question in general and I'm worried the answer might be "Never" for some kinds of work - at least if we don't change how LLMs are currently developed and improved. At a high-level, the problem is they don't 'learn on the job' like a human and writing their memory & learning in .md files works for some things but fails for others.
While the 'rising tide' of baseline LLM knowledge continues to grow, they are still FTIs (Factory Trained Intelligences), meaning they mostly learn from data which can be assembled/tagged or synthesized in mass bulk - plus specific abilities in certain domains which the factory has prioritized for more costly special training. For some broad categories of important work, I suspect there's a significant unfilled gap in our LLM instances being able to effectively crystallize knowledge acquired on-task. Without that, context files will remain helpful crutches not true substitutes.
I would argue that we have no idea how the technology will change. Humans have a poor record of predicting what human based technology can do in a given amount of time. This is non-human intelligences. All bets are off. Maybe the AI can give us a clue. If they feel like it.
Sci-fi stuff aside, it's not just a matter of the AI's telling the supporting tech what to do. We are already at the point where we can't predict what the AI will do to the supporting tech. Blender, for example, is mostly traditional computer science with some physics and art direction thrown in. It's damn hard to use.
This is not a criticism, that's just where we are in developing a UI for the math and physics and art direction. Just using the AI to make for me UI changes, convenience features, and special utilities has drastically changed not only the way I work, but the kind of projects I'll undertake. I think nothing of having Claude whip up a special physics based particle system or compositing stack these days. I could have done that in the past, but it would have been so much work for a one time job I wouldn't consider it. I'd just brute force a solution with manual keyframes and a lot of trial and error.
And while I can program and solve (simple) physics problems, its not my day job. My day job is telling stories and explaining things with animated narratives.
Earlier today I was asked to help with some animations explaining how musical scales worked and to come up with ways to visualize them. Using Claude I've already got Blender doing a credible job at creating musical notation and linking it up to a (sort of) physically accurate sound wave simulation/visualization. Not done yet, but it's looking promising. This is within a few tens of minutes of an instructional designer asking me what might be possible for the topic. And I already have a sound synthesizer written in javascript (by Claude) that I used for a project a while back. Hooking them together is just a json file or two away...
Even if the Super Intelligence never materializes, just using current LLMs as an amplifier for existing technology is going to change things into something unrecognizable. And something that is very dangerous in the hands of human bad actors.
> I would argue that we have no idea how the technology will change.
I didn't discuss how I think the tech will change. I pointed out a current gap in crystalizing knowledge acquisition gained on-task because I feel that gap is still under-appreciated. There's a lot of very interesting work trying to identify how to cost effectively narrow that gap (Dynamic Modular Adapters, Background Distillation, Test-Time Training, etc).
They all can be effective to varying degrees in different ways but they also all have their own gaps and trade-offs. As of now, there's no clear path to per-instance knowledge crystalization that's both broadly generalizable and scales cost-effectively. Will both be solved eventually? I think almost certainly. Will both be solved in the next 2-5 years? Maybe... but it smells like the kind of fundamental problem that's 'wicked' hard, so I wouldn't be surprised if the LLM you and I can afford to daily drive in 2 - 5 years is far more capable and 'smart' but isn't that much better at automatic crystalized learning from on-task knowledge acquisition than the best LLMs are today.
To be clear, LLMs are fabulously useful in myriad ways and I think they'll continue getting much more useful in many more ways. That's so much a given, it makes identifying which remaining gaps are so fundamental there's a good chance they won't be solved in 2-5 years especially interesting.
>>By then, though, the AIs may be good enough to replace the experts. Next year? Next week? Who knows.
>Lately, I've been pondering this question in general and I'm worried the answer might be "Never" for some kinds of work
Why are we worried that AIs might not be able to replace people? That seems like quite the dystopian statement.
Fable 5.2 is really good at using Blender from my testing. That being said, even smaller models are good enough for junior level work, it just depends on what deliverable or metric you are looking at. Most agentic LLMs can now do low poly assets for example.
Could you share any assets and prompts?
Blender can be guided with Opus 5.5 to do reasonably detailed buildings and generate textures, and modify existing models, say a car, and add doors. There is still a lot of handholding, but it's good enough!
We don't use "AI" for serious work.
Congrats! That's unrelated to the grandparent comment tho.
I don't know a about Blender, but frontier models already do a good job generating scenes in Three.js:
https://threejseval.com/
Most of these platforms support scripting, meaning software development strategies can be applied to iteratively developing graphics etc.
Though with some graphic design tools you have to proxy it with AppleScript because there is no other automatable interface with the design tool.
More skilled technology users get better results when asking LLMs to do technology things.
Wanted to get into GS for 2 years already, and I have no idea where to even start. It's such a fast-paced field.
I help maintain https://sparkjs.dev/ Nice way to ease into it and community to help out.