←back to thread

184 points mikhael | 2 comments | | HN request time: 0s | source
Show context
voxleone ◴[] No.45661522[source]
Quaternion libraries have work to do now.

Positive potential:

Simplified “undo” mechanism: this result suggests that a given traversal (sequence of rotations) might be “reset” (i.e., returned to origin) using a simpler method than computing a full inverse sequence. That could simplify any functionality in libraries, like SpinStep[0], that deal with “returning to base orientation” or “undoing steps.”

The libraries could include a method: given a sequence of quaternion steps that moved from orientation A to orientation B, compute a scale factor λ and then apply that scaled sequence twice to go from B back to A (or A to A). This offers a deterministic “reset” style operation which may be efficient.

Orientation‐graph algorithms: in libraries used in robotics/spatial AI, the ability to reliably reset orientation (even after complex sequences) might enhance reliability of traversal or recovery in systems that might drift or go off‐course.

[0] https://github.com/VoxleOne/SpinStep

replies(4): >>45662416 #>>45662420 #>>45665206 #>>45674767 #
ginko ◴[] No.45662416[source]
I must be missing something major here, but given a sequence of rotations combined into a quaternion orientation, can’t you just get the inverse rotation back to the original orientation by inverting the quaternion?
replies(2): >>45662820 #>>45662824 #
1. cormacrelf ◴[] No.45662824[source]
You can absolutely do that and there is nothing for general linear algebra libraries to do.

The actual paper is very clear about what it's for: https://fiteoweb.unige.ch/~eckmannj/ps_files/ETPRL.pdf

It says:

    Consider now a general time-dependent field B(t) of duration T. The pulse B(t) may be extremely convoluted ... Can one make the field B(t) return the system to its original state at the end of the pulse...?
This pulse is modelled as a long sequence of rotations. For maths purposes if you had such a sequence, you can obviously just multiply all the rotations together and find the inverse very easily. For physics purposes, you don't really have access to each individual rotation, all you can do is tune the pulse. Creating an "inverse pulse" is quite unwieldy, you might literally need to create new hardware. The paper asks "what if we just amplified the pulse? Can we change this alone and make it not impart any rotation?"

They are trying to take any pulse B(t) and zero out any rotation it imparts on some particle or whatever by

    uniformly tuning the field’s magnitude, B(t) → λB(t) or by uniformly stretching or compressing time, B(t) → B(λt)
And the answer is that you can do that, but you might have to perform the pulse twice.
replies(1): >>45663364 #
2. oh_my_goodness ◴[] No.45663364[source]
So it’s similar thinking to spin echoes.

https://en.wikipedia.org/wiki/spin_echoes