Version: 1.8.1


The VaySessionState is introduced to describe in what situation of the exercise the user is. The following session states are defined:

  • noHuman : The user is not recognized.
  • positioning : The user's pose does not match the pattern of the current exercise. In order to change to exercising, the user must reach starting position for the exercise.
  • exercising : The user reached the starting position and can conduct the exercise.

The ultimate goal for the user is to be in the session state exercising to conduct the exercise, profit from our form coaching and repetition count. In each session state, our system provides appropriate feedback to explain why the user is in this state or what to do next to reach the state exercising.

If the session state changes, the new session state is received within the onSessionStateChanged listener.

In an ideal case, the user follows the guidance instructions, reaches the state exercising and does not leave this session state anymore until all repetitions are performed. However, if the user moves out of frame, is suddenly hidden behind an obstacle or is for example not anymore positioned frontal to the camera, the user will leave the session state exercising. In this case, the user will be informed why she or he has fallen into positioning or noHuman state and will again receive guidance how to position correctly to continue exercising.

How are the feedback provided?

All feedback that guide the user into the session state exercising are received within the onFeedback listener.

Please note that the UX has to filter the feedback because they are received with every analysed frame. We recommend not to display all received feedback and change the displayed feedback only every second for example. However, we intend to change this in the near future for better usability.

How are feedback received in session state EXERCISING?

The onFeedback listener also provides real time form coaching feedback for every analysed frame in session state exercising. This is another option to coach the user during an exercise instead of listening to the onRepetition callback that provides the same feedback summarized after each repetition. Listening to onRepetition is however still recommended in session state exercising because no advanced feedback handling is needed on the UX side.

Additional important UX information

  • If the session state changes from exercising to positioning because the user left the optimal position for the exercise, a feedback explaining the reason for this state change is received. This feedback is however only received for one analysed frame exactly when the session state changes. Hence, to filter the feedback for this state change, the UX has to check the onFeedback when the onSessionStateChanged reported the new session state positioning. The same applies for the session state change from positioning to noHuman.

For example in a squat exercise, the user has to be positioned sideways to be in session state exercising. If she or he is in session state exercising and then positions frontal to the camera, the following unfiltered feedback are received:

  1. Frame: exercising - No feedback
  2. Frame: positioning - "You're not standing sideways, position yourself again" - Key = 3581
  3. Frame: positioning - "Position yourself sideways to the camera" - Key = 2042
  4. Frame: positioning - "Position yourself sideways to the camera" - Key = 2042
  5. Frame: positioning - "Position yourself sideways to the camera" - Key = 2042
  6. ...

results matching ""

    No results matching ""