← Back to team overview

ubuntu-phone team mailing list archive

Idea for better user experience on train/bus/car

 

Many people feel a little dizzy or nauseous when reading on a train or car.
This happens because your eyes see that the phone (or book) moves up and
down but your body doesn't feel that movement. (more info
<http://www.nytimes.com/2008/07/15/science/15qna.html>)

This is a pretty common situation. Particularly for me as a student I spend
hours of commuting time daily reading or browsing on my phone.

Now that Ubuntu has a goal of improving user experience on mobile and
desktop, I was thinking about what we can do to help people feel better in
these kinds of situation.

The logical solution to this is compensating phone movements by reading
input from accelerometer sensors and moving screen buffer a little bit to
compensate that movement.

Scenario goes like this:

   1. Every few seconds when phone is awake, it checks for vertical
   vibrations with frequencies in order of 1-2Hz. If we keep record of one
   second of data from sensor, measuring this is easy with a discrete Fourier
   transform or any other similar method.
   2. If the amount of vibrations passed a threshold and stayed more than
   that amount for a couple of seconds, phone shrinks the screen vertically
   for a small amount (a couple of millimeters)
   3. Every couple of frames phone reads from accelerometer and moves the
   screen vertically to compensate that movement.
   4. When phone detected that the vibrations have come down below the
   threshold, it will grow the screen back to its full size.


I have made some some assumptions here:

   - That reading constantly from accelerometer does not have a drastic
   effect on battery usage (compared to battery usage of screen, because this
   needs to happen only when screen is on).
   - That we can shrink the screen vertically a millimeter or two on the
   fly when device detects these movements or the feature is enabled.
   - That moving visual output on scale of millimeters is actually enough
   to make user feel less dizzy.
   - That we can read input and move buffer fast enough. If we don't act
   fast enough, we might be making it worse for the user :)
   - And that moving vertically is enough to help users. Maybe we should
   move horizontally too.

It is not something that is totally impossible to implement, for example
iOS has an eye-candy that it moves background picture a little bit (in real
time) when you tilt the device. (The difference is that we need to react to
movement and not angular movement.)

It's just an idea :) Let's talk about it.

Arash

Follow ups