Discuss ways to validate the kaleidocycle configuration space

Vectornaut 2025-05-27 20:03:52 +00:00
parent 7c034db3f1
commit 02724d0923

@ -85,6 +85,12 @@ According to Dan Piker, the configuration space of right-angled equilateral hept
A kaleidocycle has seven degrees of freedom: six from the Euclidean motions and one from twisting.
#### Solution
The unit test [`tangent_test_kaleidocycle`](../src/commit/2adf4669f47ab8f2bff8d64ac011a2bd09f632fa/app-proto/src/engine.rs#L814-L881) uses a kaleidocycle and initial configuration for which the infinitesimal twist motion can be written algebraically and verified by hand. To verify it, take the derivatives of the distances between the connected vertices of the kaleidocycle and confirm that they vanish at the configuration space tangent vector that we claim generates the twist motion.
To find the full configuration space of a kaleidocycle, rather than just its tangent space at a particular point, one could use the procedure that Shizuo Kaji, Kenji Kajiwara, and Shota Shigetomi describe in the preprint [“An explicit construction of Kaleidocycles by elliptic theta functions”](https://doi.org/10.48550/arXiv.2308.04977) (2024). The paper comes with an [implementation](https://github.com/shizuo-kaji/Kaleidocycle) of the procedure.
#### Coverage
As of pull request #84, the function [`engine::examples::realize_kaleidocycle`](../src/commit/2adf4669f47ab8f2bff8d64ac011a2bd09f632fa/app-proto/src/engine.rs#L575-L618) sets up a kaleidocycle using distance constraints between points and finds its tangent space. The unit test [`tangent_test_kaleidocycle`](../src/commit/2adf4669f47ab8f2bff8d64ac011a2bd09f632fa/app-proto/src/engine.rs#L814-L881) confirms that the tangent space includes the twist motion. The example [`kaleidocycle.jl`](../src/commit/2adf4669f47ab8f2bff8d64ac011a2bd09f632fa/app-proto/examples/kaleidocycle.rs) finds the twist motion.