10 releases (6 breaking)

Uses new Rust 2024

0.7.0 Oct 19, 2025
0.6.1 Sep 2, 2023
0.6.0 Mar 22, 2022
0.4.0 Nov 12, 2021
0.3.0 Apr 28, 2021

#84 in No standard library

Download history 106/week @ 2025-10-15 20/week @ 2025-10-22

126 downloads per month

BSD-2-Clause-Patent

29KB
378 lines

kiss3d-trackball

Coherent Virtual Trackball Camera Mode for Kiss 3D

Build Documentation Downloads Version Rust License

Complements the trackball library with Kiss3D-specific Input resulting in a compound Trackball camera mode implementation for the Kiss3D graphics library.

Coherence

This is an alternative trackball technique using exponential map and parallel transport to preserve distances and angles for inducing coherent and intuitive trackball rotations. For instance, displacements on straight radial lines through the screen's center are carried to arcs of the same length on great circles of the trackball (e.g., dragging the mouse along an eights of the trackball's circumference rolls the camera by 360/8=45 degrees, dragging the mouse from the screen's center to its further edge linearly rotates the camera by 1 radian, where the trackball's diameter is the maximum of the screen's width and height). This is in contrast to state-of-the-art techniques using orthogonal projection which distorts radial distances further away from the screen's center (e.g., the rotation accelerates towards the edge).[^1]

[^1]: G. Stantchev, “Virtual Trackball Modeling and the Exponential Map”, S2CID 44199608 (2004) , Archived PDF

See the release history to keep track of the development.

License

The works are licensed under the BSD-2-Clause-Patent.

This license is designed to provide:

  • a simple permissive license,
  • that is compatible with the GPL-2.0-or-later, and
  • which also has an express patent grant included, but
  • unlike the Apache-2.0 without patent retaliation.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the works by you shall be licensed as above, without any additional terms or conditions.

Dependencies

~21–40MB
~657K SLoC