Development of a Mobile Application for Testing the Effect of Vibration Feedback on Putting Performance

George K Hung*, Courtney Semkewyc, Shradha Suresh

Department of Biomedical Engineering, Rutgers University, Piscataway, New Jersey, United States

CitationCitation COPIED

Semkewyc C, Suresh S, Hung GK. Development of a Mobile Application for Testing the Effect of Vibration Feedback on Putting Performance. Adv Comput Sci. 2018 Nov;1(3):116


Many golfers have trouble with short putts. This could be either due to poor putting form, or they suffer psychologically from the yips. To reduce or potentially alleviate these issues, an application (app) was developed to provide vibration feedback for putter misalignment during the putting stroke. This was tested on three experimental subjects along with a control subject who did not receive vibration feedback. Five trials were conducted over a two-month period, where each trial consisted of 60 putt attempts. All experimental subjects showed an improvement in putting form, with both an increase in putts made, and a decrease in triggered vibration over the course of the trials. The average percentage of putts made for all three subjects improved from 25% to 50.6% over the five trials, while the average amount of vibration activation decreased from 35.1% to 32.2%. Conversely, the control subject showed a slight decline in performance through the five trials. The difference between the experimental group and the control was statistically significant (p<0.05). The results suggest that this app can be used by both novice and expert golfers to improve putting form by helping them maintain a straight putter swing path.


Putter; Vibration; Yips; Angular Deviation; Android Studio


In the sport of golf, learning the proper putting technique is crucial for success. This is because putting accounts for nearly 40% of the total strokes taken in a round of golf [1]. Good putting technique relies on the ability of a player to line up a shot, and then execute a stroke without moving off line. This involves not only effectively reading the putt initially, but also swinging the putter at the perfect angle and having the proper posture. The shoulders, hips, knees, and feet must be positioned parallel to the “target line;” throughout the stroke, the forearms must be parallel to each other. In order to “read the putt,” the golfer must be able to analyze the green, such as how far away the hole is, whether the putt has to be made uphill or downhill, etc. and then use this information to make a good putt [2-4]. These are some of the many factors that can make putting extremely difficult, even for the most experienced players. Thus, even the slightest misalignment off the target line can cause the ball to miss the hole. Another problem that comes into play is that any breaks in the wrist or angular changes in the joints can result in the face of the putter not making contact with the ball at an angle perpendicular to the intended line of the putt, thus causing a missed putt. Indeed, it has been found that putter face angle is one of the most important factors in maintaining directional consistency in the stroke [5].

It has been estimated that up to 30% of serious golfers have experienced the “yips”, which refers to a nervous condition that results in an inability to create a smooth putting stroke [6-8]. The yips are characterized by jerks or spasms of the hand that occur during the stroke, and consequently pushes the putt to one side or the other. One of the means to remedy this problem is to use a putter that does not require coordination between the two hands. For instance, many professional players who suffer from yips used long putters, which is effectively a one-handed putter (although this has been banned for professional golfers since January 01, 2016). Others use specially-designed “counterbalanced” putters [7,8]. Another suggested remedy is to practice putting with the eyes closed [7,9].

Due to the importance of putting in the game of golf, many inventions have been developed to help golfers with their stroke [10]. These include: portable practice putting greens [11], guiding tracks for assisting the putting stroke [12,13], and gyroscopic attachments. Putting greens allow players to practice their putting virtually anywhere, and helps to promote proper muscle memory. The idea behind this invention is that the more practice a player gets, the more he or she will be able to mimic these motions out on the green [3]. Guiding tracks allow the golfer to receive visual and mechanical feedback regarding their putting stroke, and to train on the device to improve performance. A gyroscopic attachment assists the golfer in judging the positioning of the putter and in maintaining a straight line to the ball. The gyroscope will provide some resistance against moving the putter out of line, thus helping the player follow the ideal trajectory [14]. The limitation of this approach is the size and weight of the gyroscope, and the requirement of an electrical startup before each run.

A novel approach developed for this study involves the use of a smartphone to provide vibration feedback regarding deviations from proper stroke direction. Currently, there is no product on the market that provides alignment feedback through vibration in an easy-touse mobile application (app). This method provides instantaneous alignment feedback during the putting stroke, and allows the player to make appropriate adjustments to the putter face angle and stroke path. It also helps the player to concentrate more on maintaining the swing path and divert their attention from nervous issues associated with the yips. Moreover, even golfers who do not have the yips may benefit from vibration feedback to improve their putting performance. 



The scope of the present study involves young naive subjects who show relatively poor initial putting performance. Subjects were selected from the student population in the biomedical engineering department. They are required to have normal vision, normal eyehand coordination, in general good health, and are able to participate in this study over at least a 2-months period. Excluded from this study are those who do not fit into one or more of these criteria. A total of 4 subjects who are novices in the game of golf and ranging in age from 18 and 28 years of age participated in the study, and were randomly divided into an experimental group and a control subject. The subjects ranged in height and weight from 5’ 3” and 120 pounds to 5” 8” and 150 pounds. The experimental group, which is comprised of 3  subjects, received vibration feedback from a smartphone attached to the putter during the putting stroke. On the other hand, the control subject did not receive vibration feedback, while the equipment setup remained the same as that for the experimental group. All subjects provided written consent in accordance with the Rutgers Human Subjects Protocol, and the study was approved by Rutgers University Electronic Institutional Review Board (eIRB). Data regarding made/missed putts and the occurrence of vibration were recorded manually. The collected data were input into Excel files for analysis, and the results were displayed as bar graphs for comparison among different conditions.


The experimental setup is shown in Figure 2. It consists of wood platforms covered with artificial-green material. The subject’s starting putting location is positioned 6 ft from a standard 4-¼ inch hole (Figure 2).

A smartphone is attached to the shaft of the putter at the lower portion of the grip, and is oriented so that the plane of the face of the smartphone is parallel to the intended swing plane. The app is programmed within the Android Studio platform to use the geomagnetic rotation vector sensor of the smartphone to provide the angular orientation of the clubface relative to the line of the putt. A detailed description of programming using Android Studio has been provided by one of the authors (Hung) in a recent publication [15].

The app screen is shown in Figure 2. The top panel contains the “Set Center Position” button, which when pressed will show the actual angular value associated with the player’s swing plane referenced to the geomagnetic rotation vector. This becomes the relative 0° for calculating putter path angular deviation. The middle panel controls the amount of deviation via the “Decrement” and “Increment” buttons. Any angle outside of the deviation range will trigger vibration by the smartphone. The value of the deviation range is shown in the bottom panel.

The format of feedback to the subject is that of a 50-msec-duration vibration whenever the putter angular deviation is beyond the threshold (see SENSOR DETECTION AND VIBRATION ACTIVATION under Programming Codes below). This provides the sensation of a continuous vibration when the angular deviation exceeds the threshold (the app allows for control over the angular threshold for vibration and the center reference oreintation of the putter). Whereas the threshold can be set over a range of values, we limited this to one setting (± 20°) based on preliminary tests as explained in the Discussion section.

In adjusting the deviation range, there is a tradeoff among range magnitude, sensitivity, and responsiveness. A smaller range provides greater sensitivity, but also makes it more difficult to remain within the allotted deviation range. On the other hand, a larger range provides greater freedom of movement, but at the expense of providing insufficient feedback. Based on preliminary tests, it was determined that ± 20° (with a sensitivity of 2°) was the most effective value. The more experienced players may want a more fine adjustment, and can set the app to ± 15°, which provides increased sensitivity to alignment. Conversely, a novice player may want to start with a greater range so as not to trigger vibration excessively.

Programming codes

JAVA programming codes for two main components of the Android Studio software are provided below. The Screen Buttons Control code first registers the needed smartphone internal sensors. It then activates the on-click listeners for the 3 buttons whose functions have been described above. The SENSOR DETECTION AND VIBRATION ACTIVATION code activates the change detection attribute in the internal sensors. Upon change detection, the smartphone screenplane angle is compared with the center reference value to provide the resultant deviation angle. If the deviation angle is either greater than 20° or less than -20°, the smartphone vibration mode will be activated to alert the user that the deviation threshold has been exceeded.

protected void on Create (Bundle saved Instance State) {
super.on Create (saved Instance State);
// Register the sensor listeners (only the ones needed for this application)
mSensorManager = (SensorManager)
accelerometer =
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELERO METER);
magnetometer =
mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC _FIELD);
// Find button 1 by association with specific button on screen layout
b1 = (Button) findViewById(R.id.btn1);
// Find button 2 by association with specific button on screen layout
b2 = (Button) findViewById(R.id.btn2);
// Find button 3 by association with specific button on screen layout
b3 = (Button) findViewById(R.id.btn3);
// Activate On Click Listener for Button Pushed
// BUTTON 1 - Center Position
b1.setOnClickListener(new View.OnClickListener()
public void onClick(View v) {
Button b = (Button) v;
// Get Value of Actual Present Orientation
center1 = roll; // Represents absolute geomagnetic angle of smartphone face plane (in deg)
// Once button 1 is pushed, center1 will represent the reference angle for detecting deviation
// Text string for display
String ce = Float.toString(center1);
// Provide value of roll with 3 decimal point accuracy if (ce. length() < 4)
s_ce = ce; else
s_ce = ce.substring(0, 5); b.setText(s_ce);
// BUTTON 2 - Decrement Alignment Angle
// Vibration deviation threshold +/- delta deg. (Nominally set at delta = 20)
// Decrement will decrease value of delta.
b2.setOnClickListener(new View.OnClickListener() {public void onClick(View v){ 
delta = delta + dec;
String de = Float.toString(delta);
String s_de = de.substring(0, 2);
} );
// BUTTON 3 - Increment Alignment Angle
// Vibration deviation threshold nominally set at +/- 20 deg.
// Increment will increase value of delta.
b3.setOnClickListener(new View.OnClickListener()
{ public void onClick(View v){ 
delta = delta + inc;
String de = Float.toString(delta);
String s_de = de.substring(0, 2);
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() ==
mGravity = event.values;
if (event.sensor.getType() ==
mGeomagnetic = event.values;
if (mGravity != null && mGeomagnetic != null) {
float R[] = new float[9]; 
float I[] = new float[9];
boolean success = SensorManager.getRotationMatrix(R, I, mGravity, mGeomagnetic);
if (success) {    
 float orientation[] = new float[3]; SensorManager.getOrientation(R, orientation);
// orientation [0] = azimuth, orientation[1] = pitch, orientation[2] = roll
// roll corresponds to plane of putter motion
// Multiply by 100 to result in degrees
float gain = 100;
float azimut = orientation[0] * gain;
float pitch = orientation[1] * gain;
roll = orientation[2] * gain;
String az = Float.toString(azimut);
String pi = Float.toString(pitch);
String ro = Float.toString(roll);
String s_az = az.substring(0, 5);
String s_pi = pi.substring(0, 5);
String s_ro = ro.substring(0, 5);

if ( (roll < center1 - delta) || (roll > center1 + delta)) { try { // Vibrate when outside range

 RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTI FICATION);

Vibrator v = (Vibrator)
} catch (Exception e) {
// Log roll information when within range Log.i("Test", "CHECK + "Roll= " + s_ro +
"Center1 = " + center1);

Experimental procedure

Prior to each experiment, the subjects were allowed to practice 10 putts (without vibration feedback) to a hole 6 ft away to provide a feel for the distance range and setup environment of the green. For the experiments, they were instructed to align the putt and naturally putt the ball toward the hole. Prior to the start of the experimental trial, the subject was instructed to press the “Set Center Position” button. This sets the present geomagnetic plane value to be the new center reference for the intended swing plane. Each trial consisted of 60 putt attempts, with a ½ min break after 30 putts to reduce any effects of inattention following the repetitive tasks. After each attempt, the subject reported whether vibration took place during the putting stroke. This, along with whether the putt was made or missed, was manually recorded. The subjects returned at approximately weekly intervals for a total of 5 sessions.

Figure 1: Experimental setup showing smartphone attached to the putter shaft and subject preparing to putt the ball to a hole (the further distance one) 6 ft away

Figure 2: (Top Panel) Button resets center reference position for detecting putting stroke deviation. (Middle Panel) Buttons for increasing or decreasing threshold delta value. (Bottom Panel) Displays current delta value.


The data for each of the experimental subjects is shown in Figure 3A-C. Each trial was separated into 2 categories: made and missed putts and each category were further delineated into “vibration” and”non-vibration” modes. A composite of all the subject data is shown in Figure 4.

Regarding performance in terms of putts made, Figure 3A shows the data for Subject 1 over the five trial period. Initially the subject made only 36.7% of the putts, with improvement the next week, and a slight decline in performance during the third trial. On the other hand, the next two trials showed a steady increase in performance with the subjecting making 48.3% of the putts in the final trial. The data for Subject 2 in Figure 3B begins with the subject making 53.3% of the putts in the first trial. The following two weeks resulted in lower percentage of made putts, but the final two weeks showed a significant increase in putts made, ending with 66.7% in the final trial. Figure 3C shows the data for the third subject. Again, following a similar trend to that of the first subject, initially the subject made only 31.7% of the putts, but by the fifth trial, the putts made increased to 51.7%.

Regarding the effect of vibration, initially the triggering of vibration for putts made for Subject 1 (Figure 3A) was 11.7%, and that for putts missed was 17.6%. The subject then exhibited less vibration for both putts made and missed over the next 4 trials. In the final trial, vibration for putts made was 5%, and for putts missed was 15%. Figure 3B shows the data for Subject 2. It can be seen that initially the vibration for putts made was 30%, and that for putts missed was 26.6%. The subject then showed a decrease in vibration for both putts made and missed ending with 10% vibration for putts made, and 13.3% vibration for putts missed. Figure 3C shows the data for Subject 3. It can be seen that initially vibration for putts made was 5%, and that for putts missed was 30%. The subject then progressed over the next four trials, decreasing the amount of vibration for both putts made and missed. In the final trial, vibration for putts made was 0% and for putts missed was 8.33%.

A composite graph of the average of all three subjects is shown in Figure 4. The numerical percentage values are shown to provide direct quantitative comparisons. The general trend was an improvement in performance over the 5 trials, with only the 3rd trial showing a slight decline in performance. But this could be explained by the fact that there was a 2 week spring-break interval between trials 2 and 3. Indeed, following that trial, performance continued to improve. With respect to vibration, there was a consistent decline over the 5 trials for all subjects for both made and missed putts.

Figure 5 shows the data for the control subject, who received no vibration feedback over the five trial period. The control subject began making 36.7% of the putts taken during the first trial, which is comparable to the 40.4% of putts made by the experimental group during the first trial. Whereas the experimental group began to progress and make more putts over the next four trials ending with 50.6%, the control subject demonstrated a slight decrease in putts made ending with 31.7%. Student’s t-test showed that for putts made, the experimental and control groups were significantly different (p<0.05).