GaussianSplats3D
GaussianSplats3D copied to clipboard
Initial editor
Hey,
I made a potential initial version of an editor class and added a tool for acquiring the up vector by selecting three points. Plan is to add more tool for editing the scene further.
Out of pure necessity for my old computers sake I added an option for an on-demand frame loop which is updated with the invalidate method. Attached the invalidation to the controls and some other events to not be noticeable.
Please let me know if you would like code to be structured in some other way.
Cool! I've been thinking about adding some editing functionality for a while; I'll take a look!
I'm still looking things over but I do have a few thoughts I want to share up-front.
I do want to transition to more of a proper release-based approach to development, which means I would like to only merge features into main that are fairly complete (and I'm thinking about a separate dev branch as well). I know development on something like an editor will be more open-ended, but I think we can break it up into smaller, well defined features. So in this case it might make sense to create another feature branch off of main in this repo, and we can work on that until we think it's ready to be merged into main.
I really like the idea of selecting three points to define a camera-up vector, but I think at the very least we need to have a nicely styled menu and some visuals/3D-markers in the scene that indicate where the user has selected those points. I also think that we need a better way to override the handling of mouse and keyboard events in the Viewer, which makes me think that Editor might be better off inheriting from Viewer (although I'm still thinking about that).
Another thing to keep in mind is that we're still trying to figure out a good format for .splat files and I think users will have the expectation to save any changes they make in the editor to a file. I'm not sure yet if we should hold off on releasing any editor-related stuff until that format is more finalized (or maybe we just make it clear to the user that changes made in the editor cannot be saved for now).
Since the editor will probably be a fairly large feature (eventually), I just want to make sure we think about these kinds of things ahead of time and get the design right (or close) up-front.
A thought about the ability to edit splats and saving the result.
I do think we can go ahead and do the exports just as you can do on the starting page. If we decide to not save changes in the editor I think we should also remove that functionality from the start page and keep them in sync.
At the very least I think it should be exportable to the original .ply format, cause that's going to be somewhat relevant for a while.
Adding to the UI/UX concerns you lifted about the up-finder. I've been thinking about adding a button to flip the normal, as it is sensitive to the winding of the points which might not be clear for everyone.
Good call on consistency between exporting .splat files on the main demo page and from the editor. At this point I suppose we can just add the same exporting capability to the editor. When the time comes to implement the universal .splat format we're currently designing we'll make sure to notify users (or maybe even retain support for importing the old format?).
As for flipping the camera-up normal, I think a button is a good idea. I didn't even think about winding-order problems :)
I think it would be a good idea to keep support for the older export. If we decide to do that we should somehow store version info in a header or something in the file.
To me it feels a little over the top when the format is not set at all. On the other hand I would get very annoyed if my previously exported file would work nowhere all of a sudden with no option to re-export it to a newer format.
edit: I see I contradict myself in this comment, and it reflects my feelings about this pretty closely
I feel we have something to work with now here after all discussions. I'm going to sit down and work on an updated version in 1 or 2 days and go for a second round of review.
Anything you'd like to add before I dig in?
Nothing comes to mind right now, I'll let you know if I think of anything :)
Any plans to continue with adding editing mode?
@LearnedVector I am not currently working on this