Skip to content

Fly through selection #479

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open

Conversation

cs-util
Copy link

@cs-util cs-util commented Apr 18, 2025

Hi, here is a new selection mode I needed for my own work that I think would be useful to others, the current iteration works but the UX is not perfect yet, for my needs it was good enough. The idea is to fly through the scene and just select everything the camera hits, so the user just has to fly though artifacts he wants to be removed. Worked quite well for my indoor use case to cleanup some noise

Copilot summary of the code changes:

This pull request introduces a new "Fly Selection" tool to the application, enabling users to select elements based on proximity to the camera during a "fly-through" interaction. The changes include the implementation of the tool, integration into the UI, and support for multiple languages in tooltips.

Fly Selection Tool Implementation:

  • Added a new FlySelectionTool class in src/tools/fly-selection-tool.ts, which selects elements near the camera during a fly-through. The tool uses a broad-phase and narrow-phase approach for optimized selection and fires events for selected elements.

Integration with Application:

  • Registered the FlySelectionTool in the ToolManager within src/main.ts and added a keyboard shortcut (K/k) for activation. [1] [2] [3]
  • Updated the bottom toolbar in src/ui/bottom-toolbar.ts to include a button for the Fly Selection tool, complete with an SVG icon and event listeners for activation. [1] [2] [3] [4] [5] [6] [7]

Localization Updates:

  • Added translations for the Fly Selection tool tooltip in multiple languages, including German, English, French, Japanese, Korean, and Chinese, in src/ui/localization.ts. [1] [2] [3] [4] [5] [6]

@simonbethke
Copy link
Contributor

Hi, I just tried that PR. I think the idea is great, but it comes with multiple downsides. First of all, it is very hard to grasp and unusual, that changing the viewpoint changes the working state. This is nothing Supersplat or any other standard software uses.

Now I wanted to test it with my most current project. And while the framerate was generally okay for that scene, with this selection it dropped below 1fps. This is unusable, because I have to navigate the camera carefully....

@cs-util
Copy link
Author

cs-util commented Apr 21, 2025

Yes true the framerate I noticed to drop as well for my scenes, for me it was still around 10 fps but for larger scenes seems to be much more dramatic. For me the ux here was the simplest to clean up noise e.g. from heavy artifacts where the user does not expect any. Maybe I am using the other selection tools incorrectly but this new fly through ux was the only way to select such dense blobs in enclosed environments without selecting everything behind/around that blob

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants