Hacker News new | ask | show | jobs
by jerlam 1 day ago
It's been rumored that Google would build it into Android for years:

https://www.androidauthority.com/google-motion-cues-pixels-n...

I've tried some of those Android equivalents and they seemed to work on any motion, not on acceleration like the Apple one.

1 comments

That's physically impossible.
I think what he means is that the iPhone dots seem to move based on vehicle acceleration and deceleration, whereas the android ones use all phone motion.

If I move my iPhone around in my hands the dots don't move, but on my android they do (ie are simulating a stable horizon as the phone tilts, immediately). I don't know which is more effective. I thought the iPhone one was broken at first and didn't have the best results from it, I'm hoping the less-subtle android ones will work better for me.

Edit: I read from the docs that Apple's works best when facing forward, and I was often sitting sideways on a train

That's strange, any idea how it could be able to differentiate?

My only guess is some sort of processing, like wait and see if it follows the expected acceleration pattern (moderate initial acceleration from the unexpected-to-the-user car motion, followed by a stronger acceleration in the same direction as one's hands push the phone to keep it in the same visual place) but I'd assume such lag is precisely the issue VR etc. has and makes people extra sick. By the time you've counteracted it, your brain has clearly registered that the movement is disjointed from the visual input, so then it's too late for them dots to help right?! That couldn't possibly work (or could it). Very curious how this works. Like, surely it doesn't need to be connected to a compatible car?

Edit: wait, or the camera. That would be very battery-intensive (I guess theoretically it could turn on only 1% of 1 color channel on the sensor, but I'm not aware that this is a mode that the hardware/firmware supports), but when you move it yourself, then the camera would see motion in the opposite direction as when you're unexpectedly being moved such as in a car. Still seems unlikely

It doesn't seem to actually differentiate at all. If I move my iPhone around on a plane (table), the dots move. If I hold in in my hand and move left/right, the dots move. If I hold it in my hand and raise/lower my arm, the dots don't move. That's actually just an integration of acceleration/gyro, and possibly combined with a simple model of how a phone is held (e.g. assume rotations happen from a point 30cm away from the bottom of the phone).
The difference is very simple:

Apple uses the derivative (i.e. rate of change) of acceleration, while all the other (ineffective, in my experience) third-party apps simply use acceleration.

People with motion sickness can deal with speed just fine. While relaxing on an equatorial beach, you’ll have no qualms hurtling around the poles at 1600 km/h.

Acceleration is also perfectly fine for motion sickness. Most people are being pulled towards the centre of the earth at 1.0 G with no complaints whatsoever.

But the significance during motion sickness is the rate of change of the rate of change. That thing where the vehicle slows down, turns a corner, goes over a bump.

This is why Apple’s motion cues actually work, because they use what actually matters for motion sickness.

Seems unlikely/strange that all these clones would miss this little thing of using the derivative instead of the accelerometer directly so that it 'actually works'

> But the significance during motion sickness is the rate of change of the rate of change. That thing where the vehicle slows down, turns a corner, goes over a bump.

That's the same as being pulled towards the earth at 1 gee. Both are acceleration from the accelerometer's point of view. I'm not sure how to convey this well in text, but maybe try installing a sensor reader (e.g. https://f-droid.org/en/packages/de.rwth_aachen.phyphox/) and looking at how the accelerometer values change when you move it in various ways

It works in a plane, so it’s somehow able to detect the higher rate of speed, maybe by integrating, but I think it does use signals from CarPlay as well.
From an accelerometer's point of view, there is no observable difference between standing "still" (on earth's surface, moving some km/s around its axis, which also moves around the sun, which also moves around the milky way, which...) and being in an airplane. Both feel ~9.8m/s/s acceleration in the same direction because both are in a moving reference frame that stands still with respect to the accelerometer. The 'absolute' speed of the airplane (relative to the ground or air) is not something the accelerometer can measure, so it couldn't not work at 'higher rates of speed'. (If I understood your comment correctly!)
Yeah, probably could have phrased that better.

They are using completely different approaches. Apple seems to be mostly using the accelerometer, to draw dots and visualize inertia. The Android apps are using the gyroscope, to draw a horizon.

Ah, ok. Thanks for the clarification.
You can't only use the accelerometers. If you do as soon as you tilt the phone it will think you are rapidly accelerating.

Apple will be doing full 6 DoF sensor fusion, and then processing the result in a different way.