playcanvas / super-splat Goto Github PK
View Code? Open in Web Editor NEW3D Gaussian Splat Editor
Home Page: https://playcanvas.com/supersplat/editor
License: MIT License
3D Gaussian Splat Editor
Home Page: https://playcanvas.com/supersplat/editor
License: MIT License
The blue dots on a grey background are really hard to see.
The yellow for selected dots is great.
I suggest white, cyan, or a very pale red/green/blue would all work well and make selecting loose points at the edge of the object much easier.
Having some difficulty getting any of the downloadable PLY files from LumaLabs to work with your editor. When adding the file, it seems to indicate that processing is happening but then the screen remains empty.
Have attempted a few different scenes using each of the various PLY download options available.
From my tests, Volinga files are not yet supported, right? (Being new to all this; I might most likely is understand the difference in format - at the moment I think it is also a point cloud that gets exported...)
(Not sure if this is a place to ask questions. If not, would you please let me know, where the proper place for that is? Thank you!)
Edited lots of stuff and then accidentally pressed on "Reset Scene" ๐
It would be cool if SuperSplat allowed the user to install it as a Progressive Web App (PWA). In other word, to install it to the operating system's desktop or application launcher. This is especially true on mobile.
After some thorough cleaning, I tend to find that there are a number of large gaussian splats sticking out from surfaces and edges where an origin point is embedded somewhere in a tight group of valid points.
This suggestion is that it be possible to switch to a 'gaussian select' mode, and then individual mouse clicks will highlight the gaussian and it's origin point.
The approach would need to take into account alpha (ignore all overlapping gaussians which are too faint) and the gaussian value would need to be sufficiently strong (80%+) to avoid too many overlaps, but weak enough so that it's not necessary to find the middle too accurately (which would defeat the purpose).
Given that often it's just a single big splat sticking out, I'd be happy if it only ever picked the gaussian which is contributing the highest amount of colour to the region clicked... combining both requirements into one.
Sorry but does this limitation mean ?
Implement something like https://fennec-hub.github.io/ThreeOrbitControlsGizmo/ so that the camera can be rotated or snapped to an axis while a selection tool is in use.
While editing a Splat, mostly removing a lot of them because they are unwanted, i often end up with a scene where the origin is far away from the actual model. Rotating the scene becomes akward, especially after scaling the scene up. Is there a quick way to center the pivot/origin into the center of the remaining splats and keep it there?
I've cloned the repo and installed the submodules and packages, however can't seem to get the project to run locally, running npm run develop returns a 404.
npm run build seems to work, but it's unclear how to setup the development environment currently, any tips here?
this would be great to add to the readme ๐๐ป
Thanks!
Does Super Splat support poly.cam? I couldn't get my file to work (see error message in attached screenshot).
This is my file: https://dl.rowild.at/point_cloud.ply
Hello Team,
I am writing to express my admiration for the Splat Viewer you have developed; it's truly impressive and has been fascinating to use. The intuitive design and functionality have significantly enhanced my experience.
While exploring the viewer, I was reminded of the measurement tools available in Potree, which I found incredibly useful for detailed analysis. In this context, I would like to inquire if there are any plans to incorporate similar measurement functionalities into the Splat Viewer.
To provide a clearer idea of what I'm referring to, I have attached a screenshot showing the measurement tools in Potree. These tools allow for precise distance, area, and volume measurements within the 3D space, adding a valuable layer of interaction and data analysis.
Adding such features to Splat Viewer could greatly enhance its utility, especially for users who require detailed spatial analysis and measurements.
I am excited about the potential of integrating these functionalities and would be happy to provide more feedback or ideas if helpful.
Thank you for your time and the incredible work you are doing.
I'm still in shock by how well this works and how fast you've made it a reality. Thinking of random ways to contribute while reading it:
Engine 1.67 brings in support for splats. Want a PR to replace submodule with minimal dependency ?
I'll make sure you can dev off engine source directly too.
Hi, first of all, thank you for this tool ! Currently, most of my models are way too big (maybe this tool, or my alignment) but my scans are one or two order of magnitude too big.
Would it be possible to show a grid that would show scale (like the grid can be 200cm by default but maybe editable via slider)
Something like that could be useful :
That way I move the scene center and set scale more easily.
The sensitivity of the camera movement on mobile phone is too low. I am speaking of the two fingers control to move the camera sideways or up/down.
I'm finding that I often get a white fringe around the edge of the focus object - probably lifted from the walls or ceiling via a tracking inaccuracy.
To remove that kind of effect, it would be really helpful to be able to filter the currently selected dots by a colour range.
The dots would need to change colour as you adjust the colour range to show what will and won't be affected.
In the soft toy model, this feature would permit easy clean-up of all the white fuzz underneath (although I've just realised that may have been left there on purpose to indicate snow!)
When super-splat is launched in "remoteStorage" mode it only provides an option for exporting to remote storage. We still need the option in this case to download the file as well.
Currently the points are all the same size and colour. It is frequently the case that we have folds or awkward shapes where it is very difficult to arrange the model to eliminate the possibility of points on 'the other side' overlapping our selection area.
This suggestion is to draw the points as small circles, with radii ranging from perhaps 6 pixels at the very largest to 1 pixel as the smallest, based on distance.
This would enable quick eyeball identification of problematic overlaps, without needing to jiggle the camera up and down to view the parralax motions.
I believe it would work very well in combination with the previously suggested 'depth' selection mode. #29
Use ply exported from blender4.0 to load the unrecognized property data tyoe kust ub ply header
lightgaussian has a very small effect on quality (PSNR) and reduce size by 15 times, which btw improve FPS
https://github.com/VITA-Group/LightGaussian
it is made of 3 components
gaussian pruning is the only component with code released for now
both 1 and 2 are unique in that they selectively remove gaussians and SH with almost no loss of accuracy
most compression alternatives online act on step 3, as mostly non selective compression on attributes
the process though can be further optimized on the 40% unquantized gaussians if we follow aras-p blog https://aras-p.info/blog/2023/09/13/Making-Gaussian-Splats-smaller/
via BC7 partitioning and k-means on SH for truly SOTA compression but this is a digression as no one has combined both solutions ATM
Thanks for your great work.
I read the ply file's properties like this:
from plyfile import PlyData
plydata2 = PlyData.read('path/to/plyfile')
print(plydata1.elements[0])
I found that the ply file exported from super-splat only output the following information:
property float x
property float y
property float z
property float f_dc_0
property float f_dc_1
property float f_dc_2
property float opacity
property float scale_0
property float scale_1
property float scale_2
property float rot_0
property float rot_1
property float rot_2
property float rot_3
Compared with the format saved by 3DGS, there seem to be 45 properties starting with 'f_rest' missing. Is this caused by the way PlyData reads files? How should I find the 'f_rest' information?
Hello team, is there any plan to add more export options like GLTF?
Thanks
Hi, I have question about how to merge two gaussian splatting scene? when I load two scene into super-splat, they are sperated to differnt coordinate(cannot merge), and cannot be export to one ply.
I made a ply file by training Gaussian Splatting on Colab:
https://colab.research.google.com/github/camenduru/gaussian-splatting-colab/blob/main/gaussian_splatting_colab.ipynb
I downloaded points3D.ply and tried to browse it by super-splat.
When I tried to load the file, it failed with the following message:
TypeError: Cannot read properties of undefined (reading '0')
How can I fix this?
I accidentally pressed the "Reset Scene" after lots of edits...
A confirm dialog with "Are you sure you want to reset scene?" with YES/NO options would be great.
As a user editing a splat I may close a tab without intending to which will result in loss of data such as selection area or previous edits.
Workaround: don't close a tab
Alternative: a warning menu prior to closing a tab using system dialog box
Instead:
When I export ply file and try to view it in SIBR_gaussianViewer_app it returns the following
F:\Downloads\viewers\bin\SIBR_gaussianViewer_app.exe --model-path d:\export\point_cloud.ply
[SIBR] -- INFOS --: Initialization of GLFW
[SIBR] -- INFOS --: OpenGL Version: 4.6.0 NVIDIA 536.23[major: 4, minor: 6]
[SIBR] ## ERROR ##: FILE C:\projects\gauss2\SIBR_viewers\src\projects\gaussianviewer\apps\gaussianViewer\main.cpp
LINE 140, FUNC main
Could not find config file 'cfg_args' at d:\export\point_cloud.ply
This tool is really awesome. Thanks so much for making it.
However, I'm finding it super hard to easily clean up models because the selection tool selects everything under the selection tool, without any reference to depth; and since the gaussian models include background in all directions, it is quite hard to only select the noise points I want to delete that are near the camera, without also selecting everything behind it that I don't want to get rid of. If it was possible to set a depth of selection (maybe as in relation to the distance from the camera?) this might make cleaning up the model way easier.
I suspect the really easiest way to make cleanup easy would be to make a webVR interface so users could just go into the model in 3D and mark up and remove the bad splats by hand, but I'm assuming that is not technically easy to implement :)
I might have misunderstood the process, but my best interpretation of the gaussian splatting explainers is that we should always project the 3D gaussian as a 2D shape facing the camera.
When moving around in Super Splat it is common to see larger splats edge-on and it is then required to move the camera to view it's contribution properly.
For the giant splats that stick out from surfaces and edges, a useful option would be the ability to apply local limits on the min/max size of each splat. Some of the splats generated by Poly.cam are incredibly large (10cm or more), which will be very efficient when they're orientated correctly, but is a major hassle when they are not.
This suggestion is to add some edit boxes/sliders showing the current min/max limits in use, and the ability to adjust them for the current selection. This would probably cross over with another suggestion about rescaling the model.
#31
Very nice tool!!! Thank you so much for all the effort. Just curious what is the license of this project? I couldn't find it anywhere.
Thanks
Is it possible to to highlights splats realtime, when I move "splat size" and other sliders?
I am not familiar with 3D splats and the feasibility of this proposition but would it be possible to use segment-anything to recognise the main object on 2D projection with a click and remove all noise outside coordinates of the contour area?
I'm using the Apple 4th gen. Apple Wireless Keyboard (https://en.wikipedia.org/wiki/Apple_Wireless_Keyboard) , and the Backspace button should function as the "Delete" but currently it doesn't the delete the splats after selection has been made.
Exported PLYs with Super-Splat has broken compatibility. What exactly breaks is way above my knowledge level.
Impossible to open with https://www.unrealengine.com/marketplace/en-US/product/3d-gaussians-plugin for instance.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.