I have recently been reading about quaternions and was wondering if it is possible to create a system which allows you to create a twist system which doesn't flip at +/-180 and allows for 360 degree twisting?
Every test I've done keeps coming back to calculating an angle between two vectors which always gives you an angle between 0 and 180.
If you're unsure of exactly what I'm looking for then this video from Jorn-Harald Paulsen should make it clear, I'd like to do it with quaternions but I'm not sure what method he uses.
I've read Felix Joleanes' article on his website about preventing flipping, he has a section dedicated to a twist setup, but it's more like an aim/lookAt constraint and this setup wouldn't work for distributing twist along for multiple joints. It's also depends on using some tricks/hacks with Euler angles which I would rather avoid in favour of quaternions.
Quaternions represent "Orientation" , angular position in space. But it can't represent 360 degree "rotation" as orientation changing during time.
If you want to represent angular motion (rotation) about fixed axis you can use "Axis Angle" representation https://en.wikipedia.org/wiki/Axis%E2%80%93angle_representation
or "exponential map" https://en.wikipedia.org/wiki/Rotation_group_SO(3)#Exponential_map
If your axis of rotation fit to frame axis , than you can use "Euler angels"
All this representations can be converted to quaternions or rotation matrices.