the present invention involves swinging a mobile device to simulate swinging of a golf club in order to evaluate a user &# 39 ; s golf swing for customized golf club fitting . as used herein , a mobile device refers to a hand - held device having a microprocessor , memory , and integrated motion sensors . examples of such mobile devices include the apple iphone , apple ipod and samsung galaxy smartphone . it is to be understood that such mobile devices mentioned herein are meant for illustrative purposes only . as used herein , calibration point refers to the location in time and space of the mobile device in a set - up position prior to the start of the golf swing . as used herein , impact point refers to the location in time and space of impact with a virtual golf ball . as used herein , a display device refers to any internet connected display capable of graphically displaying a web page . fig1 illustrates various types of rotational movement measured by the motion sensors of a mobile device 10 . these sensors include an accelerometer to capture x , y and z acceleration data ( expressed in g &# 39 ; s along a respective axis ), and a gyroscope to measure pitch , roll and yaw of the mobile device 10 as it moves ( expressed in radians with respect to a respective axis ). at present , the motion sensors sample at about 100 times per second ( 100 hertz ), with this data made available ( by either polling or having the data pushed ) to an application loaded on the mobile device 10 . a representative gyroscope useable in conjunction with the present invention is the l3g4200d gyroscope made by stmicroelectronics , inc . however , it is to be understood that the present invention is not limited to motion sensor technology currently available . fig2 illustrates how a golf shaft 50 bends during a golf swing where the user 1 is simulating the golf swing motion with a mobile device . the golf club 60 comprises a shaft 50 , a head 51 , and a grip 49 . the goal is to maximize the speed of the head 51 at the impact point so as to maximize the ball flight distance . therefore swing speed , which is related to club head speed , is a primary input to the customized golf club configuration . the golf club 60 variables that impact swing speed include the stiffness of the shaft 50 and flex point , the weight of the shaft 50 , and the weight of the club head 51 . weight is important because a lighter golf club can be swung faster than a heavier one . furthermore , the shaft acts like a spring and imparts an additional kick to the golf ball through impact ( 4 )-( 5 )-( 6 ) in fig2 , which is why the flex point is also important . there are three different possible flex points on a golf shaft that are commonly manufactured : high , medium and low . a high flex point means the bend of the shaft in the swing is close to the grip , typically used by professional players to ensure accuracy of a golf shot with a stiff shaft . a mid flex point is approximately a third of the way up from the club head , and is for average players with moderate swing speeds . a low flex point is close to the club head , and is good for low swing speed golfers as it “ kicks ” the ball into the air . the challenge is if there is too much bending of the shaft during a swing then the club head looses directional control ( accuracy ), and if there is not enough bending at low swing speeds the golfer does not benefit from any shaft kick . hence , the optimal custom golf club component selection is critically dependent on the swing speed of the golfer . once the swing speed is determined , the optimum flex point and optimal weight of the shaft 50 , for a specific club head 51 , can be determined that maximize the club head speed of the assembled fitted golf club with an acceptable accuracy . note that the swing speed defines the optimal shaft stiffness , flex point , and shaft weight . for example , a person with a low swing speed would benefit from a more flexible shaft with a low kick point ( increasing the kick through impact ) and a lighter shaft ( to swing faster thus increasing club head speed ). the linkage between swing speed and the components ( shaft flex point and weight ) is determined by empirical measurements and rules which define the optimal components to use for a particular swing speed . fig3 illustrates three different lie angles at the impact point and how the lie angle of the club head 51 is related to the yaw of the mobile device 10 in each case . the “ correct lie ” is when the clubface is square at the impact point and the difference in yaw of the mobile device 10 from the calibration point and impact point is zero . as depicted , the lie angle 52 is too flat , the lie angle 53 is too upright ; the respective relationships with the difference in yaw angles at the calibration point and the impact point of the mobile device 10 are shown . the optimal lie angle can be determined from the height of the golfer and the difference in yaw of the mobile device at calibration point and the impact point . fig4 ( a ) illustrates the loft angle 55 of a golf club head 51 . for each golf club , the optimal launch angle to maximize ball flight distance is a function of the club head speed and ball spin rate . for example for the driver , various manufactures have shown that for a 100 miles per hour ( mph ) club head speed the optimal drive distance is realized from a 150 mph ball velocity off the club face , an 11 to 13 degree launch angle at impact and a ball spin rate 2500 to 2900 revolutions per minute ( rpm ). thus empirical measurements define the optimal launch angle for a specific golf club type , club head speed and ball type . fig4 ( b )-( d ) illustrate how the loft angle of the mobile device 10 is related to the velocity vector of the mobile device at the impact point with a virtual golf ball 56 . fig4 ( b ) is the backswing motion of the golf club and / or mobile device . fig4 ( c ) illustrates the case where the club head path through impact is the same as the backswing . fig4 ( d ) illustrates the case where the downswing swing path is different from the backswing . the optimal club loft angle is a function of the swing path angle and club head speed through impact . that is , the club head loft should be adjusted so drives have consistent and optimum launch angles . the angle 54 , which is the difference in back swing and downswing velocity vectors through the impact point , is the key variable to optimize the loft angle 55 so as to create a specific launch angle . in an embodiment , the velocity vector in the backswing fig4 ( b ) and through impact fig4 ( d ) can be calculated by integrating the x , y , and z acceleration . fig5 illustrates how the speed of a virtual golf club head 51 can be calculated from the motion of the mobile device 10 . the top graph is the pitch of the mobile device through a complete golf swing where the minimum ( 5 ) is the impact point . the first step is to calculate the swing speed of the mobile device . this is accomplished by timing the motion through two known points , ( 4 ) and ( 6 ) in the pitch curve of fig5 . given the height of the golfer , their arm length ( swing radius ) can be approximated , and similar to a pendulum the mobile device angular velocity calculated by taking the arc length traveled per unit time . the mobile device velocity at the impact point is the angular velocity times the arc length . the mobile device velocity is then scaled by multiplying by the club head &# 39 ; s swing radius divided by the mobile device &# 39 ; s swing radius : this is , a first order approximation of the velocity of the virtual club head assumes the club is swung directly in line with the arms . expert golfers , however , amplify the velocity of the club head by rotating their forearms and hinging their wrists through impact . as depicted in the bottom of fig5 , the device has gone through a 90 ° arc length , the club head has traveled through nearly 180 °. a second set of multipliers are used to account for forearm rotation and wrist hinge . these multipliers were obtained empirically by video taping professional and amateur golfers using a camera shooting at 1000 frames per second . fig6 illustrates pitch and yaw data as a function of time through a complete golf swing . the impact point is the second minimum of pitch , swing position ( 5 ), and from the yaw at this point we calculate the difference in yaw relative to the calibration point . these data are used for the lie angle optimization , see fig3 . fig7 illustrates how the mobile device 10 roll can be used to measure the degrees of hook and slice of the mobile device , the roll difference , which in turn can be used to fit a golf club which custom corrects the accuracy error . in general , consistent hooks and slices can be corrected by modifying the weighting and angle of the club head relative to the shaft . for example , a person who consistently hooks the ball would benefit from a club head angled 2 - 4 degrees open and weighted such that the club head center of mass is as far as possible from the shaft : this weighting increases the moment of inertia around the shaft , and reduces the tendency to hook . one can also vary the thickness of the golf club grip 49 . a thicker grip tends to promote a slice or a fade , which can partially correct a hook , and conversely a thinner grip promotes a draw , which can correct a slice — although a thinner grip only improves the slice if the existing grip is too fat . the optimal adjustment can be determined by comparing roll data from set - up to impact , and applying the appropriate rules for the magnitude of the hook or slice taking into account other factors such as swing speed . in an alternate embodiment of the present invention , the mobile device 10 can be attached to a golf club . in this case , the user swings the golf club with the mobile device 10 attached thereto , instead of holding the mobile device 10 in the user &# 39 ; s hand . fig8 ( a ) to ( c ) show an exemplary mobile device holder 20 to securely mount the mobile device 10 to a golf club 60 . referring to fig8 ( a ) , the mobile device holder 20 comprises a two - piece assembly including a c - shaped coupler 24 and a frame 22 . as shown , the frame 22 is rectangular and includes a pair of grooved sides 25 and an open end 27 . the c - shaped coupler 24 is structured so as to snugly fit around the golf club 30 ( as shown ). as shown , the frame 22 includes hole 23 . the hole 23 is sized to accommodate collar wings 26 of the c - shaped coupler 24 , which can be fitted through the hole 23 such that the frame 22 is positioned perpendicularly relative to the longitudinal axis of the golf club 30 , as shown in fig8 ( b ) . next , the frame 22 is turned 90 degrees such that the open end 27 points away from the club head , as shown in fig8 ( c ) . once turned 90 degrees , the collar wings 26 settle into pockets 28 molded on the inside of the frame 22 . once the collar wings 26 are seated , the mobile device 10 can be slid into the frame , the grooved sides 25 providing a secure friction fit . in an embodiment the materials used for the frame 22 include a hard polycarbonate , most preferably , co - molded silicon together with the polycarbonate for an enhanced friction fit with the mobile device 10 . however , it is to be understood that various other materials may suffice , such as stainless steel , aluminum , or another metal ; polyethylene , acrylonitrile - butyl - styrene ( abs ), polyvinyl chloride , and nylon , or another plastic . further it is to be understood that the particular manner in which the mobile device 10 is mounted to the golf club 60 ( i . e ., using the mobile device holder 20 ) is presented for illustrative purposes , and is not meant to be limiting . fig9 illustrates an exemplary architecture of a virtual golf club fitting lab 100 , with the mobile device 10 in communication with a cloud - based server 110 . the swing data analyzer 130 is executed on the mobile device 10 and the data is passed via the network to the server 110 which uses a rules engine 140 with business rules to determine an optimal customized club built virtually by combining data from three sources : ( 1 ) customer database and user preferences 125 ( male vs . female , left vs . right handedness for example ), ( 2 ) the swing analysis vs . club attribution table 130 ( driver vs . wedge for example ), and ( 3 ) a product component database 120 ( all components such as shafts and heads to select from ). the club recommendation is then passed back to the mobile device user 1 via the mobile device 10 . alternately , the swing data analyzer 130 can also run entirely on the mobile device 10 , with the product component database 120 and analytic engine integrated into the “ app ”. fig9 also illustrates an embodiment with display output on the mobile device 10 . this display includes , but is not limited to , ball flight 85 for various swings and different club configurations , customized club recommendation 65 , which may include graphics , textual data , animations and video clips of professional golfers or instructors , and targeted marketing offers 180 . fig1 illustrates customized marketing 180 delivered to the mobile device with ( 1 ) the customized golf club fitting recommendation 65 , ( 2 ) the mapped location 190 of a golf store with the club ( s ), ( 3 ) a bundled product offering 180 and ( 4 ) a discount offer 185 for purchasing the bundled set . fig1 illustrates an exemplary architecture of a virtual golf club fitting lab 100 where , in an embodiment , the virtual golf club fitting lab also includes a networked web enabled display device 200 . in this embodiment the ball flight 85 and / or product recommendations 65 , and / or target marketing offers 180 and / or 185 are shown on the display device 200 responsive to the user mobile device swing motions and interactions with the system . fig1 illustrates an exemplary method for recommending custom golf clubs to different players a , b and c . each player has very different demographic traits and different swing data captured by their respective mobile devices . the rules engine 140 configures the custom golf club for each user by applying a set of rules , which are essentially filters , to the product component database . the rules are applied to sequentially select the optimal golf club head , shaft and grip , and iterate between possible components to optimize the system with constraints . the output is a recommended custom golf club 65 ( or plurality of clubs ) for each player that are optimized based upon user input data , swing data captured by the mobile device , and other data such as may be stored in a customer relationship management system or other database . these figures and the related methods for analysis are described in greater detail hereinafter . in an embodiment of the present invention , the virtual golf club - fitting lab 100 comprises two options : the mobile device can either be attached to the golf club in a customized holder ( see fig8 ), or simply held in the user &# 39 ; s hands . the former approach is more accurate for lie angle and loft analysis ; however , the latter has the advantage that no specialized holder is necessary and the results are nevertheless accurate for the most golfers . the virtual golf club fitting lab 100 comprises three major components : ( 1 ) the product component database 120 , ( 2 ) a motion sensor analyzer 75 , and ( 3 ) a rules engine 140 . the product component database 120 includes , but is not limited to , information identifying golf club components having specific shaft lengths and diameters , weights , stiffness , club head weights , loft angles , lie angles , etc . the motion sensor analyzer 130 has as inputs the x , y and z acceleration data from the accelerometer ( a x , a y and a z respectively ) and pitch , yaw and roll of the gyroscope in the mobile device 10 , measured during the swings . the motion sensor analyzer 130 takes the accelerometer and gyroscope data and outputs golf swing specific variables that are input to the rules engine 140 . the rules engine 140 analyzes the input gyroscope and accelerometer swing data and selects or builds a recommended customized dynamic golf club for a specific user , based on available component information stored in the component database 120 , the swing analysis vs . club attributes table 130 ( mapping swing motion characteristics for different clubs such as sand wedge , 7 iron or driver , to their respective components ) and using specific rules derived from empirical measurements . the rules engine 140 may be coded to run on the mobile device 10 , or may run on a server in the distributed architecture . the virtual club - fitting process is further clarified in the following example of a preferred embodiment . initially , a user touches an icon on the screen of the mobile device 10 to invoke the virtual golf club fitting lab 100 ( embodied herein as an application on the mobile device 10 ). in an exemplary embodiment , the user interacts with a virtual coach who guides the user through the club fitting process using one or more video clips . via a survey instrument , or voice recognition , the virtual guide collects data such as : gender , handedness ( left or right ), height , type of club to fit , etc . then , holding the mobile device 10 in the user &# 39 ; s hand as if a golf club , the user simulates an actual swing . for data collection , in a preferred embodiment , the user swings at least 20 times , each time holding the mobile device 10 at an address position and waiting for a vibration or audible “ swing ” indication . these multiple swings enable swing data that can be screened for outliers and averaged to smooth the motion data . it is anticipated that future releases of the iphone and android - based devices will include motion sensors that are more accurate , so that only a few swings ( less than 10 ) may suffice . data gathered by the internal gyroscope and accelerometer of the mobile device 10 is then analyzed via the motion sensor analyzer 75 and relevant feedback ( swing speed , orientation , acceleration , estimated ball flight path / distance etc .) can be given . in an embodiment , users can see ball flight simulations 85 on their mobile device 10 following each swing , or can connect to a web - based version built in html , css , and javascript from their personal computer , web - enabled television ( tv ) or tablet computer 200 . in a preferred distributed embodiment , the ball flight simulation is displayed on a web page that can be displayed on any web - enabled tv or computer screen 200 . the distributed application can be accomplished using a comet ( ajax push , http server push ) application that allows the iphone ( or other mobile device 10 ) to push golf swing data to the browser . as a user practices in the virtual golf club fitting lab 100 , their swing data can be added to a cloud - based database where it is accessible at a later “ history ” section of the app . several months after being fitted for new golf clubs , a golfer can then re - evaluate their swing as the optimal fitted clubs may have changed . in the distributed architecture , the user is connected to a server wherein the user has a unique account and identifier . this networked configuration enables the user to swing the mobile device 10 and see the ball flight and related data on any other web - enabled devices 200 such as an apple ipad , personal computer ( pc ), or web - enabled tv . that is , as the user swings the mobile device 10 the ball flight can be animated ( and video clips of the virtual coach displayed ) on a different display 200 from the mobile device 10 . this embodiment is described in detail in co - pending u . s . application ser . no . 13 / 659 , 774 to jeffery et al ., entitled method to provide dynamic customized sports instruction responsive to motion of a mobile device , filed oct . 24 , 2012 . as discussed earlier , the main variables used for club fitting are club head loft and weighting , lie angle , shaft weight , stiffness , and flex point , and ( potentially ) grip thickness . shaft stiffness and flex point is optimized so as to maximize the club head speed given the swing speed of the golf club : the shaft acts like a spring which can store energy and release this energy through impact . however , there is a tradeoff between accuracy and distance . for example , a high swing speed will bend a soft flex shaft past optimal , and this may cause a slice of the ball , which is a loss of accuracy . the optimal shaft stiffness and flex point is derived via a table look up based upon the overall swing speed of the golf club . in general , a high swing speed ( 100 mph or more ) will correspond to a stiff shaft and a low swing speed , of 60 mph or less , a soft shaft flex . however , various manufacturers have different golf club shaft stiffness and flex points that produce the maximum distance at specific speeds . hence , given the accurate measurement of a golfers swing speed , it is possible to select the optimal shaft for a specific golfer . so for example , a golfer with an 85 mph swing speed should be fitted with a shaft flex tuned between stiff and regular , which are possible given a vendor database of many different shafts , and / or by potentially cutting the end of a shaft to change its resonance characteristics . these specific product data are pre - loaded into a product table in the component database 120 to enable the swing speed to specific shaft product look - up . the mobile device swing speed analysis is a critical component of the invention , and is described in detail in the following section . the second major variable is the lie angle of the golf club . this is the angle that the face of the golf club should be adjusted to ensure the head of the club is square at impact , and is directly related to the yaw angle of the mobile device , pre and post impact . the angle of the mobile device 10 and the clubface are directly related so there is a one - to - one correspondence . in an embodiment , the yaw angle is compared at address ( just before starting the swing ) to the yaw angle at impact , see fig3 and 6 . how these two points of the swing are found is described in detail in the following section . we assume that the club at address is placed square to the ball so that the difference in degrees is the angle the club should be adjusted so that at impact it is square to the ball , which is most important . loft is the third major variables for custom club fitting . for the driver , for example , to achieve the maximum ball flight the optimal for a 100 mph club head speed is an 11 to 13 degree launch angle . other swing speeds have different optimal launch angles . the launch angle and loft of the club are related to the angle of approach of the club head to the ball at impact , see fig5 . for example , if the swing path through the ball is horizontal , as the club impacts the ball backspin is imparted to the ball and the ball spins off the clubface . complex physics are at play but experiments have shown for the driver that a 100 mph swing the ball will have a velocity of 150 mph . for maximum distance , the optimal launch angle is 11 to 13 degrees with a ball spin rate of 2500 to 2900 rpm . using a launch monitor , experiments tabulate the loft for each club that provides the maximum distance for various swing speeds . however , if the club head is moving in a steep downward path through the ball , so the velocity vector is pointing downward , for an optimal launch angle the club head loft should be increased by the difference in the angle of the velocity vector and the horizontal path . that is the club head is moving downward through impact so the loft angle should be increased to produce the optimal launch angle . conversely , if the club head is moving upward through impact the loft should be decreased . the calculation of angle through impact is discussed in the following section . in a preferred embodiment to fit the loft of the club , we combine a table look up of the optimal loft for a horizontal swing and a particular swing speed with a correction derived from the angle of approach through the ball , that is , the deviation from the horizontal swing path . finally , if the golfer consistently hooks or slices the golf ball there is an opportunity to at least partially correct the error through a custom fitted golf club . a person who slices the ball has the club head open at impact , whereas a golfer who hooks the ball has the club head closed at impact . the open or closed clubface can be calculated accurately from the roll angle of the mobile device 10 at impact , see fig5 . these data can then be used to select the optimal open or closed angle of the club head , and the weighting for a club head : a weighting with a club head center of mass closer to the shaft will encourage more angular rotation , correcting a slice , and a weighting farther from the shaft will reduce the angular rotation , correcting a hook . again , these data are compiled by vendors and are incorporated into product tables . in an embodiment , the rules engine 140 custom fits a golf club in a four step process given user and motion sensor input : ( 1 ) club head selection ; ( 2 ) shaft selection ; ( 3 ) grip selection ; and ( 4 ) iterative optimization with user input . in order to clarify the club component selection process we illustrate an example for three different users a , b and c custom fitting of a golf driver as follows , see fig1 . user a is a 73 year old male , is left handed , has a 12 handicap , is not price sensitive , and has a preference for ping golf clubs . the mobile device calculated club head speed for player a is 82 mph , with an average “ straight ” at impact , zero difference in lie angle , and zero difference in velocity vector direction from calibration point to impact point . as a first step user a inputs his existing club specifications , the “ base - case ”: a ping g15 driver with 9 . 5 degrees loft , and a stiff shaft with a mid flex point and standard ping grip . the player a next takes swings of his mobile device and the display on the mobile device 10 and / or web - enabled display 200 are ball flights for the base - case club given the swing speed , and other variables . the virtual club fitting lab 100 then presents user a custom club head recommendations by filtering the data base for ping left handed club heads with zero lie angle adjustment and neutral weighting ( no hook or slice ): the ping anser driver head with a 12 . 7 degree loft would be a primary recommendation . shaft recommendations are then given : the rule for a 82 mph swing speed , mid handicap player , will be for a lighter shaft senior ( softer ) stiffness and a low flex point . hence the recommendation would be to filter available ping shafts for a recommendation : a ping tfc 800d 50 gram shaft , senior stiffness , and low flex point . finally standard thickness grips are presented , which are selected predominantly based upon demographic and handicap data , and upon the user a preferences , by filtering the grips in the component database . the relatively high loft angle , lighter shaft and low kick point will maximize the ball flight for user a . total cost : approximately $ 400 . the rules engine 140 iterates between possible outcomes when multiple components are possible , goal seeking for the optimal ball flight distance . the completely assembled golf club ( s ) is / are displayed on the mobile device 10 and / or the display device 200 . as the final step the user a swings the mobile device and the ball flight of the customized virtual club is displayed in comparison to the original base - case club simulated ball flight data . the user then has the option to iterate between club components and compare virtual simulated ball flights before making a selection . marketing messaging and golf store mapping , see fig1 , or links to online purchase options , are presented on the mobile device 10 and / or web enabled display device . user a can see the difference in virtual ball flight , approximately 10 to 15 yards , compared to the base case . user b is a 35 year old male , right handed , 25 handicap player with price sensitivity of less than $ 250 . his swing speed is measured by the mobile device to be 92 miles per hour with an average 6 degree slice and a 3 degree positive lie angle difference . the process is the same as for user a , the rules engine filters club heads , shafts and grips including constraints and iterates resulting in the following recommendation : callaway razr hawk draw driver with 11 degree loft , flat lie angle , 4 degree closed head , with a regular stiffness 60 gram shaft and mid flex point , and standard grip — total cost approximately $ 200 . this custom club is lighter , will partially correct the slice , and will increase the ball flight distance by approx . 5 to 8 yards . user b then has the opportunity to test drive the virtual club and simulate the different ball flight , and will be presented with marketing messaging on where to purchase with promotional offers , online or at a physical store . finally user c is an expert 27 year old golfer with a 2 handicap and no price sensitivity . his swing speed is measured by the mobile device to be 110 miles per hour with an average 3 degree draw and zero lie angle difference , and 3 degree downward impact point velocity vector angle relative to the calibration point vector . the process is the same as for user a and user c : the rules engine filters club heads , shafts and grips including constraints and iterates . the recommendation is as follows : taylormade rbz driver head with 9 degree loft , flat lie angle , 1 degree open head , with a stiff 70 gram graffaloy x shaft with a high flex point , and tour grip — total cost approximately $ 900 . this golf club will maximize ball flight distance and accuracy for user c . note that in all three case examples the user input data , demographic data , and the swing analysis data was different . the process however is the same , as each major component is selected the data base of product components is filtered down and iteratively converging on the optimal golf club which maximizes the desired ball flight with constraints . this example is meant to be illustrative and not limiting . the component model numbers are expected to change over time and additional variables to those illustrated may be used by the rules engine to recommend customized golf clubs . while the method was illustrated for the case of a driver , it is understood that the same method is applicable to selection of multiple clubs , such as irons or wedges . furthermore , the example illustrated had three different users . the number of users is not limited and may be singular if the club fitting lab system 100 is installed locally on a particular user &# 39 ; s mobile device , see fig9 . in the cloud - based embodiment , see fig1 , the system 100 is scalable to millions of concurrent users , each with a simultaneous plurality of custom club fitted recommendations . as mentioned , the virtual fitting can be conducted with the mobile device 10 either held in the user &# 39 ; s hand or attached to a golf club . the methods are substantially similar ; however , the speed multipliers are different since a golf club with the mobile device 10 is heavier than just the mobile device 10 . hitting an actual ball gives confidence to the accuracy of the system , as users can see the actual ball flight . however , using the mobile device 10 alone is surprisingly accurate , and from our experiments , the simulated ball flight matches closely . referring again to fig8 , an exemplary mobile device holder 20 is shown . deficiencies of prior art mobile device holders include ( 1 ) the holder is open at the top so the mobile device can fall out during a full golf swing and ( 2 ) the holder is not easily attached / detached from the golf club . the mobile device holder 20 overcomes these shortcomings and is comprised of an injection molded mobile device case that completely encloses the sides of the mobile device 10 and a small collar that is mounted to the golf club shaft . an important advantage of this design is that the collar can be kept on the golf club , and the mobile device case kept permanently on the mobile device 10 . the mobile device 10 can also be quickly attached / detached to various different golf clubs if they have collars installed . in an embodiment , the virtual golf club fitting lab application can be loaded entirely onto the mobile device 10 , with the rules engine 140 ( comprising computer code ) and the product component database 120 ( comprising data ) downloaded onto the mobile device 10 . in other embodiments , the software of the invention can be run in a distributed application with the rules engine 120 and product component database 140 in the cloud . the cloud - based architecture has the advantage that the product component database 140 and the rules engine 120 can be updated independently of the mobile device application , so that as new product components are introduced , the user does not have to upgrade software on the mobile device 10 . an important element of the present invention is the motion analyzer that uses the accelerometer and gyroscope integral to the mobile device 10 . a particular challenge that the present invention overcomes , is how to accurately analyze a swing without actually hitting a golf ball or holding a golf club . the first challenge with analyzing golf swing data from a mobile device 10 is finding ball “ impact ” so that data around impact can be compared to other parts of the swing . an important component of the present invention is that we define “ zero ” at the start of the swing . specifically for the virtual golf club fitting lab 100 , the user first swipes the screen of the mobile device 10 which tells the app the user is getting ready to swing . the user then holds the mobile device 10 in the address position as if to hit an imaginary ball . when the mobile device 10 is held stationary for a predetermined length of time ( e . g ., one second ) it vibrates and / or emits an audible indicator . this signal is the “ zero ” of the golf swing , and the changes in the accelerometer and gyroscope sensors are relative to this “ zero ”. pitch data , or the rotation around the axis that cuts the mobile device into top and bottom halves when looking at the screen ( x - axis ) is the most telling data stream as a golfer moves through their swing , see fig5 . impact is found at the first major minimum that approaches our starting calibration ( we define zero by taking the average of all mobile device position / orientation data over the course of one second taken prior to the swing when the golfer is in their set - up position ). to bring context , in a golfer &# 39 ; s swing , pitch data rises as the golfer goes into their backswing , returns to calibration as he or she swing through impact , then rises again as he or she moves into their follow through . impact is the pitch position that gets closest to our set - up . this minimum is confirmed by aligning it with a spike in z - acceleration or a maximum in change in yaw ; this is in the event that more than one major minimum in pitch is found , the minimum selected as impact is determined by which point has the greatest z - acceleration . this confirmation helps in cases where a golfer &# 39 ; s backswing or follow - through rotation is so great ( near 360 degree rotation from set - up ) that the gyroscope flips completely and creates extra minimums near calibration . once impact is found , swing accuracy is determined by subtracting roll data at impact from roll data at calibration , see fig7 . roll data , or the rotation around the axis that cuts the mobile device into left and right halves when looking at the screen ( y - axis ) describes “ open and closed ” face positions on the club head . swings that return a negative difference mean that the user over - rotated at impact , this implies a closed face at impact and a resulting draw or hook depending on the amount . swings that return a positive difference mean that the user under - rotated at impact , this implies an open face at impact and a resulting fade or slice . swings that return a near zero value mean the club face very closely matched calibration orientation at impact and imply a straight ball flight . speed is approximated by analyzing pitch data , see fig5 . once we have found impact in pitch data we can look forward and back in pitch data by 45 degrees . these data points , assuming proper wrist hinging , align with positions in the swing . so if impact happens at pitch =− 65 degrees , we can look at pitch =− 25 degrees before and after impact ( 45 degrees in each direction ) and find how much time elapsed between each point . generally , about one tenth of a second passes between these two positions , so given arm length we can find mobile device speed around impact by dividing a 90 degree arc length where the radius = user arm length by time passed : this delivers device / hand speed . we have found , using high speed video clocking , that the driver club head speed can be as slow as 2 . 4 times handspeed ( this is in the case of a user swinging a club with rigid arms , forearms , and wrists ) or as fast as 6 times hand speed ( in the case of a world class professional golfer ). the difference between these two multipliers comes from the combination of forearm rotation and wrist hinge which allow golfers to force the club head to travel through a much greater arclength ( sometimes even close to 180 degrees ) in the time it takes the hands to travel through the 90 degrees of arclength around impact . the multiplier we choose is driven directly by gyroscope acceleration through impact on the z and y axis ( yaw and roll ) which account for wrist hinge and forearm rotation respectively . from our detailed experiments with the apple iphone 4 and 4s , we found that the gyroscope is particularly accurate , so that the roll data is very good to predict hook or slice within approximately half a degree . the accelerometer data from the iphone 4 however is noisy and is not particularly accurate over the entire golf swing , but does work well for measuring forearm rotation rate around impact . this is why we divide the swing into portions and calculate an average velocity , v , of the mobile device through impact through the last portion of the swing prior to ball “ impact ”: where d 2 − d 1 is the distance of the last portion of the golf swing before ball impact ; and t 2 − t 1 is the time taken to cover the distance d 2 − d 1 . this is an approximation of the actual instantaneous velocity of the mobile device , and is only a first order approximation of the speed of the golf club head , since it does not include the wrist hinge or forearm rotation described above . via detailed experiments with a high - speed video camera we were able to find multipliers for these variables , with the result of calculating club head speed within +/− 10 % for a variety of swing types . from club head speed we can predict ball flight distance in ideal conditions . we envision that the data quality output from the accelerometer will improve dramatically in future versions of iphone or android based mobile devices . when this technology becomes available we will more accurately calculate the velocity of the mobile device at impact by integrating the acceleration from the top of the backswing ( t bs ) to the zero ( t 0 ) of the mobile device : v =√{ square root over ( v x 2 + v y 2 + v z 2 )} ( 3 ) where t 0 − t bs is the time between the minimal at the top of the back swing ( t bs ) measured from the pitch data and the zero at the bottom of the swing at impact , t 0 . the integrals are calculating in the software using a fourth order runge - kutta algorithm . see for example , william h . press et al , numerical recipes 3rd edition : the art of scientific computing , 2007 . the velocity component vectors ( 2 ) are difficult to accurately calculate with the current version of the accelerometers , since the internal accelerometer has a noisy output . hence , for club fitting , we average at least 20 swings to obtain these values , and also employ a software - based high - pass filter , see for example william h . press et al , numerical recipes 3rd edition : the art of scientific computing , 2007 . with the current technology and our method we are able to calculate the velocity vector magnitudes and directions at the takeaway from the calibration point and in the region of the impact point , which enables the loft fitting discussed above , see fig4 . the user can also attach the mobile device to their golf club via a cradle and compare actual practice swings to the computed swings for distance and accuracy . we use a similar analysis when the mobile device is attached to the club , but the multipliers are different primarily due to users swinging the golf club slower than the mobile device : the mobile device is lighter than a golf club so ones hands naturally go faster . as an additional example of swing analysis we consider putting , rather than the full swing of a golf club . ping has previously created an iphone app for putting . their prior art has three significant limitations however : ( 1 ) they requires an attachment to a putter , ( 2 ) they require impact with a physical ball , and ( 3 ) their method is not accurate for long puts , greater than approximately 20 feet . our method does not have any of these limitations . similar to the full swing described above , the user holds the mobile device as if it were a putter , and after one second of being held still it vibrates : the mobile device is ready . the user then puts an imaginary ball . compared to the full swing , the pitch data from the mobile device is now a relatively smooth sine wave function with a minimum at impact . the putter stroke is analyzed similar to the full golf swing , but with average velocity calculated from eq . 1 where d 1 and d 2 are the respective maximum distances pull back and stroke through impact with the ball . an advantage of the putter stroke is that the function is smooth and the speed is relatively slow compared to the full golf swing . hence , equations ( 2 ) and ( 3 ) can also be used to calculate an instantaneous velocity at impact — we use both methods , integration of equations ( 2 ) and average velocity from eq . ( 1 ), with a scale multiplier for the length of the putter for speed at the putter head at impact with a ball . for long puts the acceleration method becomes increasingly inaccurate , hence the average velocity method provides better results with a multiplier derived from empirical measurements . from the speed of the putter head the distance the ball travels can be calculated assuming ideal conditions . most important , however , is that we are able to quantify mobile device roll angle differences at impact ( similar to hook or slice for the full swing ). we can also analyze the gyroscope acceleration data for errors such as deceleration through the put , or a left pull or right push ( these last two errors are identified from the combination of the second integral of acceleration , and the roll data ). customized club fitting is then delivered based upon the putting motion analysis . data on swing motion accuracy is also presented to the user and stored , local to the app and on the server in the users account , for longitudinal comparisons of putting consistency improvement . for greater detail , see , u . s . application ser . no . 13 / 655 , 366 to jeffery et al ., entitled method and system to analyze sports motions using motion sensors of a mobile device . one preferred embodiment of the invention provides targeted marketing based upon the swing analyzer data . that is , the user is presented with a display advertisement of a specific golf manufacturer &# 39 ; s product that they can touch to get detailed product information . marketing messages can be displayed on the mobile device 10 or on a device different from the mobile device ( e . g ., a web - enabled device 200 networked to the cloud - based server 110 ). testimonials of the expert golf instructors can further enhance the impact of the advertising , and increase the take rate of users ( the percent of users who accept the offer ). a particular feature of the invention is to combine custom club fitting recommendations with location awareness , so that specific golf stores and / or club fitting facilities are highlighted on a map in the local area , with the component availability . this can be accomplished using global positioning sensor data to provide nearest golf store location information , either displayed on the user &# 39 ; s mobile device 10 or a separate web - enabled device linked to the cloud - based server 110 , for example . we also provide a web - based solution , so that the user can immediately purchase the custom golf club via the internet . golf club fitting is an ideal opportunity for cross - sell and up - sell of high value golf equipment . see , for reference , mark jeffery , data - driven marketing : the 15 metrics everyone in marketing should know , wiley 2010 . for example , a customer selecting a driver is also an ideal candidate to also buy a three wood , or a customer purchasing a custom putter is ideal to target marketing to also buy wedges to enhance their short game , and both customers may need a new golf bag , clothes and golf balls . bundling of products is known to result in significantly increased wallet share and higher margins . see fig9 for an exemplary screenshot of the mobile device displaying these combined elements : ( 1 ) the custom fitted golf club , ( 2 ) mapped location of the nearest store with the product , and ( 3 ) bundling of related products with a marketing offer for purchase of the bundle . in a preferred embodiment , the analytic marketing component is enabled by augmenting the product component database with retail store names and locations , on - line channel options , and inventory data . the analytic rules engine then also includes business logic to target marketing depending upon the golf club that is being fitted , the global positioning sensor data output , and other data that is known about the user . the distributed system is an extension of the architecture described in co - pending u . s . patent application ser . no . 13 / 269 , 534 , filed oct . 7 , 2011 , and entitled “ method and system for dynamic assembly of multimedia presentation threads ”, and in u . s . application ser . no . 13 / 659 , 774 to jeffery et al ., entitled method to provide dynamic customized sports instruction responsive to motion of a mobile device , filed oct . 24 , 2012 . while this invention has been described in conjunction with the various exemplary embodiments outlined above , it is evident that many alternatives , modifications and variations will be apparent to those skilled in the art . accordingly , the exemplary embodiments of the invention , as set forth above , are intended to be illustrative , not limiting . various changes may be made without departing from the spirit and scope of the invention .
one aspect of the disclosure relates to a method of swinging a mobile device to simulate swinging of a golf club in order to evaluate a user &# 39 ; s golf swing for customized golf club fitting . in an embodiment , the method can be performed by a processor of the mobile device . in another embodiment , the method can be performed for multiple mobile devices concurrently , the method performed at least in part on a cloud - based server . according to an aspect of the invention , a method comprises swinging a mobile device having motion sensors integrated therein to simulate a golf swing ; evaluating the simulated golf swing to determine at least one characteristic of a custom - fitted golf club ; and outputting information related to the determined at least one characteristic . in an embodiment , the mobile device is held by a user . in an alternate embodiment , the mobile device is attached to a golf club .