lumalabs / luma-web-examples

Luma Interactive Scenes (captures) Web Examples, use lumalabs.ai captures directly in your three.js or other WebGL projects!
https://lumalabs.ai/luma-web-library
MIT License
345 stars 38 forks source link

Editing splat created from lumalabs app #9

Open ericrius1 opened 10 months ago

ericrius1 commented 10 months ago

I've been experimenting with integrating splats from the lumalabs app into a threejs experience, and it's amazing! I found a splat editor online and would love to use this to edit my splats. It looks like I need to upload a file, and just provide a link to the capture as in the webgl library. I was wondering if there's a way to get the file from the luma app downloaded so I can edit it before importing it to my threejs app?

Thanks!

Xurxowski commented 10 months ago

I'm going to try to export an .ply file from Luma.ai and import it into Unreal Engine, saw some nice results.

koktavy commented 10 months ago

@ericrius1 you've probably figured this out by now, but for anyone else wondering: Go to https://lumalabs.ai/dashboard/captures and hover over a capture, then click the download arrow. Download the Gaussian Splat under the Unreal Engine section, then unzip the PLY. Don't be fooled, this is a special PLY for the splat and not just a point cloud.

You can edit the splat in various programs from there, though I believe you can only use the semantic mask to "edit" the splats received from the Luma three.js importer: splats.semanticsMask = LumaSplatsSemantics.FOREGROUND;

koktavy commented 9 months ago

@haxiomic @lovelovetrb Is there any way aside from a Luma link to load in other PLY or SPLAT files?

KZeni commented 8 months ago

While splats.semanticsMask = LumaSplatsSemantics.FOREGROUND; (per https://github.com/lumalabs/luma-web-examples?tab=readme-ov-file#background-removal) is great, I wish there was a quick way to effectively apply what that masking does directly to the splat itself so it's removed from the splat entirely (as my use case is just an object scan anyway.)

As it is now, it seems like it's still downloading all of the additional background data/assets/etc. while then just hiding it from the render output when the masking is set (causing the splat to take much longer to show than it otherwise would as it still downloads & processes all of that data that's then just not being output.)

Also, the splat still technically has that data available if anyone were to check out the splat data without that masking parameter set when one might want to not have that additional scanned background be accessible to anyone. Hiding via the masking method works okay, but actually removing the background from the splat itself would be best.

Is there anything out there that would make this possible?

Edit: I imported the Gaussian Splat from Luma into Spline.Design (curious if there are other, potentially better, tools out there for this) and then used the "Crop Areas" tool it offers for splats where it seemingly turned my ~260MB splat export from Luma into something that's ~2MB and is much friendlier to be embedded within a webpage (also allowing for a viewer to be more readily customized). It would be great if Luma enriched its offerings with some of these aspects, but it's still my go-to for actually generating the splat to then use as needed.

jakerator commented 8 months ago

Any way to load externaly edited Splat files? E.g. I crop unnecessary points in https://playcanvas.com/supersplat/editor and want to import edited splat back to Lumalabs Js library?