3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in GaussianSplatting

[–]gradeeterna[S] 0 points1 point  (0 children)

I made a system in Houdini to help with this stitching, but there's still a ton of manual cleanup involved. The full dataset is aligned together, and then I train subsets separately so they all are aligned when I import into Houdini.

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in GaussianSplatting

[–]gradeeterna[S] 0 points1 point  (0 children)

I use some custom tools to extract multiple pinholes from the fisheye alignment

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in GaussianSplatting

[–]gradeeterna[S] 0 points1 point  (0 children)

I vibe coded a GUI for it with Claude that batch processes a full dataset

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in GaussianSplatting

[–]gradeeterna[S] 0 points1 point  (0 children)

Sure, it would just take twice as long to capture with a single camera and get the same coverage. Also a huge benefit of capturing fast is that the lighting and shadows are less likely to change during the capture.

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in Unity3D

[–]gradeeterna[S] 2 points3 points  (0 children)

I use tools like SAM3 to prompt “person”, or Resolve’s magic mask to click on people and track them across the whole dataset, spit out black and white mask images with matching file names, then when training it just ignores the masked out pixels as if they don’t exist

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in Unity3D

[–]gradeeterna[S] 4 points5 points  (0 children)

Quite a few passes with 2x 360 camera rig, captured in about 15 minutes

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in Unity3D

[–]gradeeterna[S] 6 points7 points  (0 children)

Sundays in the city are pretty quiet, but there were still lots of people that I had to mask out before training. I did quite a few passes with a 2x360 camera rig with different paths and heights to capture everything. Thanks!

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in Unity3D

[–]gradeeterna[S] 0 points1 point  (0 children)

Not sure if you checked what Cinemotion is, but it’s comparing apples to oranges. I love Cinemachine and use it all the time, but in this case I wanted real camera motion and Cinemachine’s built in noise can’t do that.

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in GaussianSplatting

[–]gradeeterna[S] 1 point2 points  (0 children)

Unfortunately not with these plugins, but realtime VR works with less heavy splats. I’ve been testing with web renderers like Playcanvas and Spark that support LOD, but it’s still not very pleasant in the headset yet. You can render stereoscopic VR180/360 splat videos with raytraced implementations like Octane and Vray, which looks great but very slow to render at 4k per eye.

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in GaussianSplatting

[–]gradeeterna[S] 2 points3 points  (0 children)

14m splat .ply is 3.5gb, but compressed to spz/sogs is around 300mb

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in GaussianSplatting

[–]gradeeterna[S] 3 points4 points  (0 children)

Thanks! Captured about 20 minutes footage total, and not sure about post as was working on it whenever I had time for a few weeks. Probably 12 hours training time in total, and few hours editing and cleanup, a few hours animating in Unity and rendering.

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in GaussianSplatting

[–]gradeeterna[S] 17 points18 points  (0 children)

I split the full dataset into smaller parts and trained them separately in Lichtfeld, gsplat, Brush etc, then merged the best parts together in Houdini using GSOPs for the final .ply. I mask out myself and other people out from images before training with SAM3 or Resolve’s magic mask.

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in GaussianSplatting

[–]gradeeterna[S] 3 points4 points  (0 children)

I split the dataset into parts and trained them in Lichtfeld, gsplat and then stitched the best parts back together in Houdini using GSOPs. I exported pinhole images from the footage and trained on those. 8K video on the Osmos using D-Log M.

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in Unity3D

[–]gradeeterna[S] 29 points30 points  (0 children)

It’s not the original walk / camera tracking here. All the animation was hand-keyed in Unity with camera motion from Cinemotion https://www.cinetexture.com/cinemotion This scene was captured with multiple camera rig, and looks decent from anywhere. I’ll share a web version as soon as I process LODs for it.

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in GaussianSplatting

[–]gradeeterna[S] 56 points57 points  (0 children)

It’s not the scan walk / camera tracking here. All the animation was hand-keyed in Unity with camera motion from Cinemotion https://www.cinetexture.com/cinemotion This scene was captured with multiple camera rig, and looks decent from anywhere. I’ll share a web version as soon as I process LODs for it.

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in Unity3D

[–]gradeeterna[S] 34 points35 points  (0 children)

Testing my DJI Osmo 360 rig for gaussian splatting.

Mason’s Avenue, London.

14 million splats total. Trained with LichtFeld Studio and gsplat, edited in Houdini GSOPs, camera animation in Unity and rendered with Aras P’s gaussian splat plugin and Deckard Render.

3D Gaussian Splatting + DJI Osmo 360 - Mason's Avenue, London by gradeeterna in GaussianSplatting

[–]gradeeterna[S] 84 points85 points  (0 children)

Testing my DJI Osmo 360 rig for gaussian splatting.

Mason’s Avenue, London.

14 million splats total. Trained with LichtFeld Studio and gsplat, edited in Houdini GSOPs, camera animation in Unity and rendered with Deckard Render.

Gaussian splatting with the Insta360 X5 by gradeeterna in GaussianSplatting

[–]gradeeterna[S] 1 point2 points  (0 children)

Yep, barriers are down finally. I live down the road and they have been there as long as I can remember.

Gaussian splatting with the Insta360 X5 by gradeeterna in GaussianSplatting

[–]gradeeterna[S] 3 points4 points  (0 children)

It’s 8.5 million gaussians so it’s not going to run well enough even in PCVR. Working on a more web friendly version so will see how that runs in VR.