This issue proposes the addition of a ViewHelper to the JupyterCAD editor. This would greatly enhance user experience by providing a 3D viewport gizmo that allows users to interactively control and view camera orientations.
The ViewHelper can offer users a visual and interactive tool to change views, similar to the feature demonstrated in this repository: three-viewport-gizmo. A working example can be found here: three-viewport-gizmo example.
Expected Behavior
A small interactive sphere-like gizmo should appear in the top or bottom-right corner of the JupyterCAD canvas.
Users should be able to click on faces, edges, and corners of the gizmo to change the view orientation (top, bottom, left, right, front, back).
The ViewHelper should remain fixed on the screen and should not be affected by camera movements such as panning, zooming, or rotating the 3D model in the main scene.
It should provide smooth transitions between camera views, enhancing navigation in complex 3D scenes.
Proposed Implementation
The three-viewport-gizmo library can be utilized to integrate the ViewHelper functionality within the JupyterCAD editor.
The gizmo should be rendered separately from the main 3D scene to avoid interference with the model itself, and it should be responsive to user interactions (clicks and pointer movements).
This issue proposes the addition of a
ViewHelper
to the JupyterCAD editor. This would greatly enhance user experience by providing a 3D viewport gizmo that allows users to interactively control and view camera orientations.The
ViewHelper
can offer users a visual and interactive tool to change views, similar to the feature demonstrated in this repository: three-viewport-gizmo. A working example can be found here: three-viewport-gizmo example.Expected Behavior
ViewHelper
should remain fixed on the screen and should not be affected by camera movements such as panning, zooming, or rotating the 3D model in the main scene.Proposed Implementation
three-viewport-gizmo
library can be utilized to integrate theViewHelper
functionality within the JupyterCAD editor.