Move Over, Lithophane: 3D Printed 3D Photos With Gaussian Splats

If you had asked us yesterday “How do you 3D Print a Photo”, we would have said “well, that’s easy, do a lithophane”– but artist, hacker and man with a very relaxing voice [Wyatt Roy] has a much more impressive answer: Gaussian splats, rendered in resin.

Gaussian splats are a 3D scanning technique aimed at replicating a visual rather than geometry, like the mesh-based 3D-scanning we usually see on Hackaday. Using photogrammetry, a point cloud is generated with an associated 3D Gaussian function describing the colour at that point. Blend these together, and you can get some very impressive photorealistic 3D environments. Of course, printing a Gaussian smear of colour isn’t trivial, which is where the hacking comes in.

14-face isospheres do a good job of replicating the complicated Gaussian, as seen with this experimental long-exposure shot.

[Wyatt] first generates the Gaussian splats with an app called Polycam, which outputs inscrutable binary .ply files. With AI assistance of dubious quality, [Wyatt] first created a python script to decompile this data into an ASCII file, which is then fed into a Rhino script to create geometry for printing. Rather than try and replicate the Gaussian splat at each point perfectly, which would melt his PC, [Wyatt] uses 14-face isospheres to approximate the 3D Gaussian functions. These then get further postprocessing to create a printable mesh.

Printing this isn’t going to be easy for most of us, because [Wyatt] is using a multi-color DLP resin printer. The main body is clear resin, and black or white resin used for the space defined by the isospheres created from the Gaussian Splat. When the interior color is white, the effect is quite similar to those acrylic cubes you sometimes see, where a laser has etched bubbles into their depths, which makes us wonder if that might be a more accessible way to use this technique.

We talked about Gaussian splats when the technique was first announced, but it’s obvious the technology has come a long way since then. We did feature a hack with multicolor resin prints last year, but it was much more manual than the fancy machine [Wyatt] uses here. Thanks to [Hari Wiguna] for the tip.

24 thoughts on “Move Over, Lithophane: 3D Printed 3D Photos With Gaussian Splats

  1. And he didn’t notice that his idea of Gaussian splats is wrong? They are not the Gaussian distribution curve rotated around the x axis, which looks like an onion. He has to take that function, give it the distance from the center of the splat as parameter, and will receive the density of the blob at that distance. It’s more like the electron orbitals you learn about in chemistry.

    1. Yeah, that shape is really weird. What you’re looking for is a fuzzy sphere, where the density falls off as a Gaussian in any direction.

      (Or heck, I bet you could approximate it any sort of other way that would work well for your situation, or the math, depending on which you’re aiming for.)

        1. Love pedantry! And precision! So wait — you’re all exactly the kind of people whose input i actually want for the next iteration of this project — what 3D shape would you choose to represent a gaussian? – Wyatt, the guy in the video

    2. I think this fellow is an artist, so I think it’s to his credit to recognize that the “Gaussian” in “Gaussian” splat related to the normal distribution. That said, the solution he stumbled upon– an ellipsoidal isosphere– did a good job of erasing his misconceptions.

      1. Hi Tyler! Thank you for writing this, and resonating with my project! Genuinely curious what mesh shape you’d make a ‘gaussian’ — the reason i initially chose that onion-shaped thing was that i’m printing it in semi-transparent material, which means that opacity is modulated according to thickness, meaning that the pointy bits turn almost transparent. Like a digital gaussian. Thoughts?

    3. THAT makes sense. Thank you! The only question is… what would that function look like if you HAD to constrain a mesh around it? I think it might look like an onion? – Wyatt, the guy in the video

    1. indeed.

      not to mention that 3D printed lithophanes use 3D relief + light to generate a projection of a 2D photograph.
      I suppose you could argue that a 3D printed “3D photograph” is an improvement on this technique, but I don’t personally see it that way. A sculpture is not an improvement on a painting, they’re both perfectly fine forms of art.

  2. Just print the 3D model itself? Am I missing some quality of this technique that captures something nuanced that the full color 3D model doesn’t have? He seems absolutely amazed at being able to “hold this moment in time” but that would be true even if he’d just printed the color splat as a standard 3D model. I don’t… get it…

    1. What you’re missing is that the splats technique is usable for point clouds, like those which come out of 3D scanners.

      If you want to print a standard 3D model, you have to take the point cloud and turn it into a mesh, and then slice it, etc. The splats idea cuts out the middleman by smoothing out the point cloud directly, which is probably a more appropriate technique when you have a printer that does basically the same, like these resin printers do.

    2. Motion blur, transparency, like smoke for example, visible objects smaller than the resolution of the printer are the first things that come to mind that a standard printed 3D model would not be able to represent.
      The the rest is about having a different toolset for art making, which would take a few thousand words to explain.

    1. That is not a DLP resin printer, that is a Stratasys Polyjet printer. They use piezoelectric printheads to jet resin onto the deck and, cure it with a UV lamp on the same carriage. I am not sure what model but I know the J8/J7 series can do full color and multi material printing.

  3. The past few weeks, I’ve been using a Miraco Plus to 3D scan. Using infrared reflected back from the scanned objects it creates a point cloud of every object which it maps to “blobs” of color captured photogrammetrically.

    I tried scanning our pet rabbit, which would keep moving his ears as I circled around him with the scanner. After doing a fusion of the point clouds, the resulting rendering is of one rabbit with four sets of ears facing in different directions.

    I suppose that’s a 4D capture — the 3D scanner’s version of a long exposure! I found that if I could capture the orientation of his fur (via the texture mapping) that reflects light differently depending on angle of capture, I could get each set of ears to catch the light (in a subsequent 3D print) in sequence as the figurine is rotated — and using silk PLA for heightened effect.

    The result is stunning. As I move the figurine, the light highlights a different set of ears giving the illusion that it is moving a pair of ears to follow the light.

    It’s quite mesmerizing, and a remarkable way to capture movement in a stationary object. 🤗

  4. The ideea of 3D object in a transparent block is not new. You could have anything: a plane, your child’s head, and so on. It was done using lasers.

    In this case you can add colour to the printer (there is already an article about full colour 3D printing on an image, where also transparency is used).

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.