Skip to content
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

Rework UI using ImGui #1245

Open
Tracked by #1243
mwestphal opened this issue Jan 31, 2024 · 7 comments
Open
Tracked by #1243

Rework UI using ImGui #1245

mwestphal opened this issue Jan 31, 2024 · 7 comments
Assignees
Labels
type:enhancement New feature or request
Milestone

Comments

@mwestphal
Copy link
Contributor

Context

F3D has a simple UI using VTK text actor. For many reasons, this UI is not satisfactory.
Lets create a new UI using ImGui

@mwestphal mwestphal mentioned this issue Jan 31, 2024
23 tasks
@mwestphal mwestphal added this to F3D Feb 3, 2024
@mwestphal mwestphal added this to the 3.0.0 milestone Feb 4, 2024
@mwestphal mwestphal moved this to Investigate in F3D Feb 4, 2024
@mwestphal mwestphal added the type:enhancement New feature or request label Feb 9, 2024
@lknknm
Copy link
Contributor

lknknm commented Feb 20, 2024

Hello,
For this matter, I would propose ourselves to ask and answer some questions of what we would like to achieve with the UI for F3D.
This way maybe we can understand what features to build, how they will look and feel to the User and also how it's going to make more sense with APIs/Bindings and F3D from CLI.
I can start with the following questions:

  • What type of visual clarity do we need (i.e. extreme minimalism, minimalistic, hideable, etc)?
  • Are we going to integrate it with CLI in any shape or form? Like adding a Console inside the program to execute commands (for example in games like CS2, Quake, etc).
  • Do we need the Cheatsheet to be more "visual", for example having a keyboard layout drawing with each hotkey? Or will it remain just the same with different styling?
  • Are we going to have PopUp windows for users to input/output data (like 3DSMax or Maya) or will all be condensed into the same window (Like Blender)?

In addition to the last question, I would like to point out that some of the Human Interface Guidelines from Blender would also make sense to F3D:

The Blender user interface is based on 3 main principles:

  • Non Overlapping: The UI permits you to view all relevant options and tools at a glance without pushing or dragging windows around.
  • Non Blocking: Tools and interface options do not block the user from any other parts of Blender. Blender doesn't pop up requesters that require the user to fill in data before things execute.
  • Non Modal: User input should remain as consistent and predictable as possible without changing commonly used methods (mouse, keyboard) on the fly.

For further reading: https://developer.blender.org/docs/features/interface/human_interface_guidelines/

@mwestphal
Copy link
Contributor Author

What type of visual clarity do we need (i.e. extreme minimalism, minimalistic, hideable, etc)?

minimalist, hidable

Are we going to integrate it with CLI in any shape or form?

Yes, #595

Do we need the Cheatsheet to be more "visual", for example having a keyboard layout drawing with each hotkey?

We will see what ImGui offers, but no need to get crazy here, info should just be clear.

Good link from blender imo.

@lknknm
Copy link
Contributor

lknknm commented Feb 25, 2024

In my personal opinion, I prefer the way Blender treats UI because you don't have "fluctuating", additional windows besides the main window of the application. This way, whenever you bring up a modifier in Blender or any other feature, it is all concentrated into the same window, much like a web browser or something the like, without the need of closing stuff nor pressing additional buttons with the mouse. We could use the same principle with F3D own features and UI design.

Integration with f3dCommand would be cool in form of a console. It could just slide down inside the F3D window when you press ~.

@JPLost
Copy link
Contributor

JPLost commented May 23, 2024

I've been looking for simple viewer that can have it's own built gui. Currently Open3D has the closest approach.
But probably I would need primarily check boxes, sliders, rgb value changer and textbox with buttons for file/models selection.
Trimesh or Numpy for data manipulation.

@mwestphal
Copy link
Contributor Author

@JPLost please note we will be using ImGui to create a similar UI to the current UI. No checkboxes or mouse driven UI.

@lknknm
Copy link
Contributor

lknknm commented Jun 18, 2024

UI Rework Figma file

As per our latest discussions, the new Figma File for the F3D UI Rework is located in the newest F3D Figma Account.
There I included my suggestions for a new UI design having in mind we'll be using ImGui, as well as previous discussions over Discord. Suggestions, help and insights are always appreciated!

You can find the file here

@mwestphal
Copy link
Contributor Author

Subtasks:

  • Create ImGUI VTK Backend -> deliverable ?
  • Feature Parity using ImGUI ->
  • Design UI
  • Implementation Design
  • CLI
  • Output message

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:enhancement New feature or request
Projects
Status: Investigate
Development

No branches or pull requests

4 participants