X Tutup
Skip to content

Add trackball-style rotation for 3D transform gizmo#109976

Merged
Repiteo merged 1 commit intogodotengine:masterfrom
Open-Industry-Project:trackball-gizmo
Jan 27, 2026
Merged

Add trackball-style rotation for 3D transform gizmo#109976
Repiteo merged 1 commit intogodotengine:masterfrom
Open-Industry-Project:trackball-gizmo

Conversation

@ryevdokimov
Copy link
Contributor

@ryevdokimov ryevdokimov commented Aug 26, 2025

Closes: godotengine/godot-proposals#7753

Requires and Includes: #108608 and #108576 (these were merged)

Common functionality in other 3D software that increases the usability of the rotation gizmo.

2025-08-26.04-36-01.mp4

@ryevdokimov ryevdokimov requested a review from a team August 26, 2025 00:59
@michaelharmonart
Copy link

great work! now that the code is already here it might be worth looking into having this style of point on sphere projection for calculating locked rotation axis adjustments as well. (like in maya for example)

it's very intuitive to use compared to the current gizmo behavior (which will be unstable when dragging near the origin)

@AThousandShips AThousandShips added this to the 4.x milestone Aug 26, 2025
@fire fire requested a review from a team August 26, 2025 20:44
@ryevdokimov ryevdokimov force-pushed the trackball-gizmo branch 3 times, most recently from a918b01 to 2de3c4e Compare November 20, 2025 00:56
Copy link
Member

@KoBeWi KoBeWi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The implementation looks fine (based on other gizmos).

I gave it some testing and compared it with Blender, the Blender's trackball rotation is much faster, but otherwise they seem to function the same. The old rotation mode is still available via the white rotation circle.

Note that this also changes the default free dragging behavior of Transform Mode, from move to rotate, idk which one should be preferable.

@Repiteo Repiteo modified the milestones: 4.x, 4.7 Dec 16, 2025
@Repiteo Repiteo merged commit 027d32f into godotengine:master Jan 27, 2026
20 checks passed
@Repiteo
Copy link
Contributor

Repiteo commented Jan 27, 2026

Thanks!

@ryevdokimov ryevdokimov deleted the trackball-gizmo branch January 28, 2026 01:49
@TokageItLab
Copy link
Member

TokageItLab commented Feb 2, 2026

This mode should not be the default. It significantly breaks the behavior from versions 4.0 through 4.6.

The priority assigned to the trackball's grabbing area is too high, severely compromising usability when selecting multiple points iteratively for transformation in Path3DEditor or SkeletonEditor. See also #115608 (comment).

If this PR is merged, a toggle button for the trackball should probably be added to viewport option tool area. That option should also handle free dragging mode whether it behaves move or rotation, as mentioned by @KoBeWi :

Note that this also changes the default free dragging behavior of Transform Mode, from move to rotate, idk which one should be preferable.

@GustJc
Copy link
Contributor

GustJc commented Feb 4, 2026

Are there any plans to make this work with the Begin Transformation hotkeys too?
When using Begin Transformation Rotation hotkey it defaults to the normal rotation over the viewplane.

I tried the new PR with the Node3D trackball toggle button, but it doesn't seem to affect the Begin Rotation Transformation hotkey.
Double pressing the hotkey like blender's RR would be nice. But even if it just worked with the toggle in the other PR would already be awesome.

Also, great work, I've been wanting this feature for years.

@ryevdokimov
Copy link
Contributor Author

@GustJc see link for PR above.

rivie13 pushed a commit to rivie13/Phoenix-Agentic-Engine that referenced this pull request Feb 16, 2026
Add trackball-style rotation for 3D transform gizmo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add trackball-style rotation for 3D gizmo (like in Blender)

7 participants

X Tutup