from Hacker News

Show HN: Spark, An advanced 3D Gaussian Splatting renderer for Three.js

by dmarcos on 6/11/25, 5:02 PM with 86 comments

I'm the co-creator and maintainer of https://aframe.io/ and long time Web 3D graphics dev.

Super excited about new techniques to author / render / represent 3D. Spark is a an open source library to easily integrate Gaussian splats in your THREE.js scene I worked with some friends and I hope you find useful.

Looking forward to hearing what features / rendering techniques you would love to see next.

  • by erulabs on 6/11/25, 5:19 PM

    Super impressive looking demo, works well on my older iphone.

    As an only-dabbling-hobbiest game developer who lacks a lot of 3d programming knowledge, the only feedback I can offer is you might perhaps define what "Gaussian Splatting" is somewhere on the github or the website. Just the one-liner from wikipedia helps me get more excited about the project and potential uses: Gaussian splatting is a volume rendering technique that deals with the direct rendering of volume data without converting the data into surface or line primitives.

    Super high performance clouds and fire and smoke and such? Awesome!

  • by jasonthorsness on 6/11/25, 5:48 PM

    The food scans demo ("Interactivity" examples section) is incredible. Especially Mel's Steak Sandwich looking into the holes in the bread.

    The performance seems amazingly good for the apparent level of detail, even on my integrated graphics laptop. Where is this technique most commonly used today?

  • by ertucetin on 6/11/25, 8:22 PM

    This is cool also BabylonJS has nice gaussian splat support as well: https://doc.babylonjs.com/features/featuresDeepDive/mesh/gau...
  • by pvg on 6/11/25, 5:04 PM

    Slightly more obvious repo link https://github.com/sparkjsdev/spark
  • by fidotron on 6/12/25, 12:06 AM

    Very very cool.

    Do you have any insights into the current performance bottlenecks? Especially around dynamic scenes. That particle simulation one seems to struggle but then improves dramatically when the camera is rotated, implying the static background is much heavier than it appears.

    And as a counterpoint to the bottlenecks, that Sierpinski pyramid, procedurally, is brilliant.

  • by socalgal2 on 6/11/25, 9:47 PM

    I'm still highly skeptical of gaussian splatting as anything more than a demo. The files are too large. The steak sandwich is 12meg (as just one example)

    There was a guassain splat based Matterport port clone at least year's siggraph. To view a 2 bedroom apartment required streaming 1.5gig

    Cool demo

  • by moshegramovsky on 6/12/25, 4:19 PM

    Cool work, but I have to say the performance is pretty bad in Firefox on my laptop with an Nvidia RTX A3000 GPU. There are enough shader cores here to cause first degree burns.
  • by VikingCoder on 6/12/25, 5:22 PM

    Can I run around with my phone, and capture some Gaussian Splats of... grass... bushes... dirt...

    And then select one-meter square patches of land... and one-meter cubes of spots with bushes...

    And then make a "Minecraft-looking" world, repeating the grass block all over the place, with occasional dirt and bushes?

    I'm guessing I'd need some pretty beefy hardware to render thousands of blocks...

  • by two_handfuls on 6/11/25, 6:58 PM

    This looks super cool! Would this work in VR if someone opens the web page from a web browser? Because that would be even more awesome!
  • by westurner on 6/11/25, 5:45 PM

    PartCAD can export CAD models to Three.js.

    The OCP CAD viewer extension for build123d and cadquery models, for example, is also built on Three.js. https://github.com/bernhard-42/vscode-ocp-cad-viewer

  • by Epa095 on 6/12/25, 9:26 AM

    Slightly overloaded name. There is already Apache Spark, SPARK (Ada), sparklines, and SPARQL.
  • by mbo on 6/12/25, 9:52 AM

    Amazing stuff!

    Do you foresee this project getting a Web Components API like A-Frame and Google's <model-viewer> component (https://modelviewer.dev/)?

  • by moron4hire on 6/11/25, 5:16 PM

    That interactive demo on the front page running perfectly fine on my Pixel 7 was pretty sick!
  • by bryzaguy on 6/12/25, 10:49 AM

    Wish I could see this! My iPhone 16 blocked viewing because of, I think, expired certificate. At least, that’s the error I think I got initially and now it just says the page belongs to a category that is blocked. :(
  • by danybittel on 6/12/25, 3:37 AM

    How do you do the rendering? Is it sorted (radix?) instances? Do you amortize the sorting over a couple frames? Or use some bin sorting? Are you happy with the performance?
  • by akomtu on 6/11/25, 7:03 PM

    Cool stuff. Do you have examples with semi-transparent surfaces? Something like a toy christmas tree inside a glass sphere, with basic reflections and refractions calculated?
  • by 90s_dev on 6/11/25, 11:32 PM

    We seem to have to poles: extreme realism, and extremely minimalistic pixel art. I prefer the second camp. But your project looks really important in the first camp.
  • by _tqr3 on 6/11/25, 7:34 PM

    This is great, thanks!

    I have spent countless hours playing with the R3F - adding vertex and fragment shaders, eventually giving up. The math is just tedious.

  • by imachine1980_ on 6/12/25, 12:48 PM

    What's the difference in this and and .obj render? Does gaussian produce a different format?
  • by markisus on 6/11/25, 6:13 PM

    The demos look great! I imagine it's not pure javascript. Are you using webgpu?
  • by ge96 on 6/11/25, 9:56 PM

    That steak made my mouth water, mission accomplished
  • by praveen9920 on 6/11/25, 5:40 PM

    Any plans to extend support for triangle splats?
  • by feiss on 6/11/25, 7:57 PM

    Super cool! Congrats on the launch :))
  • by vmesel on 6/11/25, 7:36 PM

    hey @dmarcos! Congrats on the launch!

    from your fellow gh accelerator friend, vinnie!

  • by cchance on 6/12/25, 1:18 AM

    any chance this will support the video style 3d gaussian splats?
  • by nobbis on 6/11/25, 7:19 PM

    Wait, you renamed Forge (https://forge.dev) released last week by World Labs, a startup that raised $230M.

    Is this "I worked with some friends and I hope you find useful" or is it "So proud of the World Labs team that made this happen, and we are making this open source for everyone" (CEO, World Labs)?

    https://x.com/drfeifei/status/1929617676810572234