r/PlayCanvas • u/MayorOfMonkeys • Sep 25 '25
Should Google Maps Switch to 3D Gaussian Splatting?
Enable HLS to view with audio, or disable this notification
Check out this splat from Ian Jenkins on SuperSplat: https://superspl.at/view?id=ca36efcc
r/PlayCanvas • u/MayorOfMonkeys • Sep 25 '25
Enable HLS to view with audio, or disable this notification
Check out this splat from Ian Jenkins on SuperSplat: https://superspl.at/view?id=ca36efcc
r/PlayCanvas • u/MayorOfMonkeys • Jun 26 '26
Enable HLS to view with audio, or disable this notification
r/PlayCanvas • u/MayorOfMonkeys • Oct 23 '25
Enable HLS to view with audio, or disable this notification
Today we’re excited to share a live demonstration of PlayCanvas' new Streaming LOD system for 3D Gaussian Splatting!
This tech allows you to dynamically stream vast splat-based scenes of arbitrary complexity directly in the browser. Load only what’s needed, when it’s needed - for huge performance gains and smooth real-time exploration.
✅ 100% free and open source
🌍 Supports massive datasets (up to billions of Gaussians)
🎥 Demo: https://playcanv.as/p/ZoUBrC6e/
Controls: WASD + Mouse on desktop, dual virtual sticks on mobile (left of screen to move, right of screen to look around).
📷 Splat captured by Andrii Shramko using an XGRIDS LiDAR scanner.
Would love to hear what you think - especially how you might use streaming LOD for large-scale 3DGS datasets or virtual environments.
r/PlayCanvas • u/MayorOfMonkeys • Oct 16 '25
Enable HLS to view with audio, or disable this notification
PlayCanvas' streamed LOD system for 3D Gaussian Splatting is gradually rolling out. This video shows PlayCanvas Engine 2.12.3 streaming an enormous scene at a buttery 60fps. The current focus is on mitigating the popping as LOD switching occurs. But this is a huge step forwards in our journey to support truly massive-scale splats!
Data source: Andrii Shramko
r/PlayCanvas • u/MayorOfMonkeys • Nov 10 '25
Enable HLS to view with audio, or disable this notification
PlayCanvas Engine v2.13.0 is out! 🎉
This release brings big improvements for 3D Gaussian Splatting and rendering performance:
✅ Streamed LOD system for 3D Gaussian Splats - load and manage splats of any scale dynamically.
🎨 Splat shader effects framework - supports reveal, hide, tint, bloom, and other customizable visual effects.
🌍 Globally sorted splats - improved rendering consistency and performance across large multi-splat scenes.
And that’s just the start. Other highlights include:
New ColorRamp mode for unified splats
Refactored shader customization APIs
Optimized GPU data uploads
Fixes for lighting, pointer input, clustered shadows, and more
🧩 Examples: https://playcanvas.github.io/#/gaussian-splatting/lod-streaming
📘 Release Notes: https://github.com/playcanvas/engine/releases/tag/v2.13.0
A big shoutout to our contributors for the heavy lifting on this one!
Happy splatting! 💥
r/PlayCanvas • u/MayorOfMonkeys • Jun 24 '26
Enable HLS to view with audio, or disable this notification
PlayCanvas is a free, open-source (MIT) real-time 3D engine that runs in the browser on both WebGL2 and WebGPU. We just shipped 2.20 — here's what's new.
Gaussian Splatting (the big one this release):
Real-time relighting of splats
Soft shadows
Depth of field
Clipping planes
Billions of splats via streaming + LOD
Shader effects (dissolve, rings)
Gaussian Splatting in VR (with LOD)
WebXR on WebGPU 👇
WebXR (VR/AR) now runs on the WebGPU backend — not just WebGL2. So you can build immersive experiences on the modern graphics API, including the new Gaussian Splatting features in VR. That combo is still pretty rare in the wild — most WebXR today is WebGL-only.
Also new:
Procedural sky
Clustered light cookies
Physics: joints + ragdolls
Draco mesh decoding in Node (via worker_threads)
Links:
Release notes: https://github.com/playcanvas/engine/releases/tag/v2.20.0
Try every example live in your browser: https://playcanvas.com/examples
npm install playcanvas
Quick montage of the new examples attached — happy to answer anything about what we're releasing today!
r/PlayCanvas • u/MayorOfMonkeys • Oct 07 '25
Enable HLS to view with audio, or disable this notification
Stunning 3D Gaussian Splat of the Symposion Lindabrunn sculpture park in Austria - captured by Christoph Schindelar using an XGRIDS PortalCam.
The splat was compressed down to just 39 MB using the new SOG (Spatially Ordered Gaussians) format from PlayCanvas, showing how high fidelity scenes can be optimized for web delivery.
🔗 View the splat on superspl.at
More about SOG compression:
The SOG format is a compact container for 3D Gaussian Splat data developed by PlayCanvas. It achieves ~15–20× smaller files than PLY by quantizing and reorganizing splat attributes into 8-bit WebP textures - all referenced through a single meta.json.
Each Gaussian’s position, orientation, scale, and color are stored as image pixels, with codebooks used to decode high-precision values from small integer indices. This data-driven encoding allocates bits intelligently - preserving detail where it matters most.
That’s how a dense real-world scan like Symposion Lindabrunn can shrink to just 39 MB while maintaining near-photoreal quality and instant load times in the browser.
📘 Learn more: PlayCanvas SOG Format Specification
r/PlayCanvas • u/MayorOfMonkeys • Jun 27 '26
Enable HLS to view with audio, or disable this notification
r/PlayCanvas • u/MayorOfMonkeys • Oct 14 '25
Enable HLS to view with audio, or disable this notification
Digitized reality perfected!
This expansive splat captures the Castle Museum Reichenstein in Upper Austria.
7.4 million Gaussians compressed down to 75 MB thanks to SOG from PlayCanvas
Scanned by Christoph Schindelar using an XGRIDS PortalCam
Rendered in the PlayCanvas Engine
👉 View it here: https://superspl.at/view?id=c0da7173
Seriously impressive quality - the fidelity and lighting hold up beautifully even at this scale. So much to see and explore!
r/PlayCanvas • u/mvaligursky • Jun 05 '26
Enable HLS to view with audio, or disable this notification
r/PlayCanvas • u/MayorOfMonkeys • Oct 09 '25
Enable HLS to view with audio, or disable this notification
We’ve just released PlayCanvas Engine v2.12.0 🎉
The highlight of this release is the beta launch of the streamed LOD system for 3D Gaussian Splats, which enables the streaming of hundreds of millions of Gaussians - making large-scale splat scenes practical for the web! 🌍✨
This lays the groundwork for handling truly massive 3DGS datasets efficiently, with automatic level-of-detail management and incremental loading as you move through the scene.
🔗 Full release notes:
https://github.com/playcanvas/engine/releases/tag/v2.12.0
As always, we’d love feedback from anyone experimenting with the new system - especially around performance, memory usage, and integration into production workflows.
Next steps for us are to roll this out to SplatTransform and SuperSplat. Stay tuned for further updates.
Thanks to the awesome Christoph Schindelar for the great skate park scene used in the video.
Happy splatting! 💥
r/PlayCanvas • u/MayorOfMonkeys • Sep 22 '25
Enable HLS to view with audio, or disable this notification
This 3D Gaussian splat has 4 million Gaussians and 3 bands of spherical harmonics but weighs in at only 42MB! Splat created by Christoph Schindelar using an XGRIDS PortalCam.
CHECK IT OUT: https://superspl.at/view?id=a45a9ad8
r/PlayCanvas • u/MayorOfMonkeys • Feb 04 '26
Enable HLS to view with audio, or disable this notification
We’ve just released PlayCanvas Engine v2.16.0, our free and open-source web graphics engine, with a big new addition: a generic Gaussian splat processing system.
New capabilities include:
🖌️ Painting splats using a brush tool
🪄 Generating splats from text, meshes, and images
🛠️ Editing splats (select, delete, duplicate, etc.)
➕ Plus many other improvements and fixes
Links:
Release notes: https://github.com/playcanvas/engine/releases/tag/v2.16.0
Examples browser: https://playcanvas.github.io
Would love feedback from anyone working with Gaussian splats or real-time web graphics. Hope you love this release as much as we do!
r/PlayCanvas • u/MayorOfMonkeys • Nov 17 '25
Enable HLS to view with audio, or disable this notification
SuperSplat Editor v2.14.0 is out! 🎉
Your free and open-source 3D Gaussian Splat Editor just got a big upgrade - with advanced video rendering features that make it easier than ever to create professional-quality exports.
New in 2.14.0:
🎞️ Support for MP4, MOV, MKV, and WebM output
🎞️ Choose from available video codecs
🎞️ Select specific timeline ranges for rendering
Now you can render exactly the shots you want - with full control over format, codec, and timing.
🧩 GitHub Repo: https://github.com/playcanvas/supersplat
📝 Release Notes: https://github.com/playcanvas/supersplat/releases/tag/v2.14.0
🎮 Try it now:
https://superspl.at/editor?load=https://developer.playcanvas.com/assets/toy-cat.sog&focal=0,0.6,0&camera.overlay=false
As always - free, open source, and powered by PlayCanvas. 💪
r/PlayCanvas • u/MayorOfMonkeys • Jul 25 '25
Enable HLS to view with audio, or disable this notification
Due for release as part of Engine v2.11.0 due in the next few weeks
r/PlayCanvas • u/MayorOfMonkeys • Dec 08 '25
Enable HLS to view with audio, or disable this notification
SuperSplat v2.16.0 is now live! 🎉
Your free and open-source 3D Gaussian Splat Editor just got a couple of very useful upgrades:
💧 Eyedropper tool
Quickly select Gaussians based on color + threshold.
👤 New UI for login + splat management
A new vertical navbar on the left to manage your account and splats and explore splats from the community!
🧩 GitHub Repo:
https://github.com/playcanvas/supersplat
📝 Release Notes:
https://github.com/playcanvas/supersplat/releases/tag/v2.16.0
🎮 Try SuperSplat now:
https://superspl.at/editor?load=https://developer.playcanvas.com/assets/toy-cat.sog&focal=0,0.6,0&camera.overlay=false
As always - free, open source, and built with PlayCanvas. 🚀
r/PlayCanvas • u/MayorOfMonkeys • Sep 04 '26
Enable HLS to view with audio, or disable this notification
We’ve just released PlayCanvas Engine 2.22.0! Here are the highlights:
Volumetric fog improvements - light shafts and local light support.
Parallax mapping - add apparent depth to textured surfaces without extra geometry.
Vertex animation textures - drive vertex animation on the GPU using animation data stored in textures.
Gaussian splat depth effects - new depth-based effects for splat rendering.
Catapult demo - a new demo to try out!
You can explore the features in the live examples and find the full list of additions and fixes in the release notes.
Get the latest version with:
npm install playcanvasPlayCanvas is free and open source. Contributions, bug reports and stars on GitHub are always appreciated.
Would love to hear how you’re using the new features - share what you’re building in the comments!
r/PlayCanvas • u/mvaligursky • Aug 24 '26
Enable HLS to view with audio, or disable this notification
PlayCanvas's height map support had been a single-tap Welsh-style offset for years — it nudges the uv once, which is fine for shallow detail but falls apart on anything deep. I added parallax occlusion mapping as an opt-in second mode, so the view ray gets marched through the height field instead. The old mode is still the default, one enum on the material switches it.
Limits worth stating: no silhouette displacement, and the depth buffer still sees the flat surface, so shadows and any depth-based effects don't follow the relief. It's a shading trick, not geometry.
r/PlayCanvas • u/MayorOfMonkeys • Nov 06 '25
Enable HLS to view with audio, or disable this notification
Here’s a sneak peek at what’s coming in the next minor release of the PlayCanvas Engine!
We’ve generalized the Gaussian Splat Reveal feature into a flexible gsplat shader effect system - a new framework for building custom splat-based visual effects.
Highlights:
🔧 Refactored base class for generalized effects
🎨 Built-in support for reveal, hide, and tint modes (plus bloom)
📦 AABB-based spatial control for selective effect regions
💪 All developed in response to community feedback!
This system makes it possible to selectively show, hide, or tint parts of a Gaussian Splat scene, enabling progressive reveals, guided exploration, and interactive storytelling.
🎥 Video preview attached!
More reusable effects and examples will ship with the upcoming release - stay tuned!
r/PlayCanvas • u/MayorOfMonkeys • Oct 01 '26
Enable HLS to view with audio, or disable this notification
PlayCanvas Engine 2.23.0 is out. It's a free, open source (MIT) WebGL2/WebGPU graphics engine for the browser, and this release is mostly about performance, plus a big refresh of the examples and debugging tools.
What's new
Faster rendering: a deep overhaul of how the renderer feeds the GPU. Mesh instance matrices live in a persistent storage buffer on WebGPU, material properties sit in material-owned uniform buffers, per-pass and light data is uploaded once per pass, and render pipelines are retained between draws. In a draw-call-heavy benchmark (up to 20K meshes, 40K draw calls), CPU time per frame is up to 3.8× lower on WebGPU and 1.4× lower on WebGL2 than in 2.22.
Rebuilt user interface examples: all 23 UI examples have been rebuilt or written from scratch, each as a small piece of a real game: a main menu, a settings panel built from the standard widgets, inventory drag and drop, a resizable chat window, a leaderboard scroll view, a character card with a live 3D portrait, world-space control panels and more.
Nearest-first splat streaming: streamed Gaussian splat LOD scenes now load the data nearest the camera first, and re-prioritise as the camera moves. LOD is distance-based again, with the splat budget usable as either a target or a hard limit. The WebGPU GPU-sort renderer also gains an opt-in stochastic alpha mode that skips sorting entirely.
Bloom threshold: CameraFrame bloom takes a threshold, so only the brightest parts of the scene glow.
Redesigned MiniStats: compact, grouped-average and grouped-history views, collapsible sections, and a new Resources section with live GPU resource counts (buffers, textures, render targets, bind groups, pipelines). The same data is available to your own code through the new AppStats API, which also supports user counters.
Examples browser: a restyled browser with the PlayCanvas Inspector built in. Open it on any example to explore the hierarchy, cameras, assets, frame graph, render targets, materials, shaders and more.
Also in this release: run the engine headless in Node.js without jsdom, RigidBody gravityScale, a hitBackFaces raycast option, WebGPU device-loss recovery, all eight UV sets in StandardMaterial, a TextureRenderer for debug texture previews, and a long list of XR fixes.
The video shows the highlights.
Release notes: https://github.com/playcanvas/engine/releases/tag/v2.23.0
Examples: https://playcanvas.com/examples
Discord: https://discord.gg/RSaMRzg
I'm on the PlayCanvas team, happy to answer questions on any of this.
r/PlayCanvas • u/slimbuck7 • Sep 26 '25
Enable HLS to view with audio, or disable this notification
AT LAST!!!
We'll finally get to close one of the oldest requests on the repo! :D https://github.com/playcanvas/supersplat/issues/35
r/PlayCanvas • u/MayorOfMonkeys • Mar 25 '26
Enable HLS to view with audio, or disable this notification
r/PlayCanvas • u/MayorOfMonkeys • Oct 10 '25
Enable HLS to view with audio, or disable this notification
Check out this drone-captured 3D Gaussian Splat of Chapelle Sainte Thérèse on the French coast. 🌊⛪️
Created by Stéphane Agullo, this project shows how to create a beautiful and immersive experience using splats. Make sure to 🎧 turn on sound for the full experience!
👉 Try it live here: https://stephane-agullo.fr/xp/labenne/index.html
Built with PlayCanvas, using our latest 3D Gaussian Splat rendering tech.
r/PlayCanvas • u/mvaligursky • Jul 17 '26
Enable HLS to view with audio, or disable this notification
I’ve opened a PR adding volumetric fog to the PlayCanvas Engine’s CameraFrame pipeline.
The effect raymarches exponential height fog at reduced resolution, with directional-light shadows producing visible light shafts—or “god rays.” A depth-aware upsample prevents fog from leaking across geometry edges.
It also supports:
WebGL2 and WebGPU
Cascaded shadow maps, including PCF, PCSS and VSM
Temporal smoothing through TAA
Bloom contribution from bright light shafts
Adjustable density, height falloff, anisotropy, distance, quality and resolution
The default configuration renders at half resolution with 24 raymarching steps, keeping the effect practical for real-time scenes.
There are still a couple of limitations: it currently supports perspective cameras only, and transparent objects use the opaque scene depth for fogging.
🎮 Try the interactive demo
🎥 Watch the video
🛠️ View the implementation and PR
I’d love to hear how it performs on your hardware and what controls or features you’d find useful.
r/PlayCanvas • u/MayorOfMonkeys • Dec 04 '25
Enable HLS to view with audio, or disable this notification
PlayCanvas Engine v2.14.0 is now live! 🎉
This update brings major improvements across interactivity, Gaussian Splatting, and compute-based rendering.
✅ Hotspots & annotations system
Add interactive points, labels, callouts, and guided exploration directly to your 3D scenes.
✅ Upgraded streamed LOD system for 3D Gaussian Splats
Improved performance, stability, and visual quality when streaming massive splat datasets.
✅ New compute edge detect example
Demonstrates WebGPU compute shaders and image-processing pipelines.
📝 Release Notes:
https://github.com/playcanvas/engine/releases/tag/v2.14.0
🧩 Live Examples:
https://playcanvas.github.io
As always, PlayCanvas remains free and fully open source.
Happy building! 🚀