Hacker Newsnew | past | comments | ask | show | jobs | submit | slimbuck's commentslogin

Hello, playcanvas developer here. May I ask what phone/device you're on? Might be a bug. (No pun intended).


I experience the same thing on Fennec F-Droid 143.0.3 (Firefox) on Android 14.


Right, thanks for confirming. It seems firefox related. We'll get this patched asap!


Also experiencing this issue in Fennec F-Droid


Hey I'm on Firefox too so I can't see how it's supposed to work without the bug.

But I just wanted to say the best way to interact with Gaussian Splats on mobile I've seen is with the Scaniverse app. Really, the UX is great there.


No issues here on iPhone 12 running iOS 18.6.2 and Firefox 143.2 (62218)


The orbiting sensitivity is a bit high when zoomed in a lot, which can lead to the model spinning out of control, as the other user mentioned.

Still manageable though, just very sensitive.


Have you tested the shader's runtime performance penalty after minification?

Also wondering how you handle named uniforms?


Most transformations don't change the code that's executed.

  const float x = sin(2);
  const float y = 2;
If you define these two consts, we can inline y everywhere it's used. But by default, we don't inline x as it would lead to more work at runtime (maybe it doesn't matter for sin, but other function calls can be expensive). If you notice performance issues, please file a bug.

Renaming uniforms is optional (there's a flag). If you use C++, you can generate a .h header file that contains both the minified shader and macros that tell you how they've been renamed.

So Shader Minifier will generate macros like:

  # define VAR_time "f"
to tell you that "time" is now called "f" and you can use VAR_time in your C++ code.


I cannot answer this for him, but I can speculate on the answer to your first question. The transformations he described his minifier applying do not change the code from the perspective of the compiler in any meaningful way, so the end result should have no performance difference. The only possible exception is the inlining, but the compiler likely would have done that anyway, so the end result should still have no difference.

To state that more precisely, everything is going to be translated into a SSA syntax in a compiler pass at some point. At that point, much of what he described should be either something the toolchain would have done (such as comment removal by the preprocessor) or effectively undone (such as the variable name reuse since by definition SSA makes each variable name be used exactly once). The rest should converge to the same result after subsequent optimization passes (such as an inlining pass). If you find a performance difference from using his tool, file a bug report with your compiler’s authors.


Some of these would be better converted to 3dgs.


This app was made in the PlayCanvas editor. The models were imported and a custom GLSL shader written to handle the particle animations.


I'm not really sure what you mean. Think of SuperSplat as the photoshop of gaussian splats?

- SuperSplat dev :)


I love this article! I used it as a basis for the multi-level grid in SuperSplat (https://playcanvas.com/supersplat/editor).



Yes Dreams is actually a huge inspiration with the realtime rendering side of gaussian splatting. Specifically this presentation by Alex Evans https://www.mediamolecule.com/blog/article/siggraph_2015.

Dreams doesn't use gaussian splats as such, but we still learn a lot about how to compress and render a huge number of particles efficiently. (We're not doing half of this on PlayCanvas... yet).


Splats change color based on direction, but opacity is constant.


Yes! We are using this clustering approach for position and scale data.


(maybe then a small credit for the initial work by Aras in your blog post?)


Did you see that we credit Aras at the end of the post and link to his website?


No. Apologies.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: