Patent Publication Number: US-2023140611-A1

Title: Methods, systems, apparatuses, and devices for facilitating simulating golf play on golf courses

Description:
FIELD OF THE INVENTION 
     Generally, the present disclosure relates to the field of amusement devices. More specifically, the present disclosure relates to methods, systems, apparatuses, and devices for facilitating simulating golf play on golf courses. 
     BACKGROUND OF THE INVENTION 
     Throughout the world, golf is a sport and pastime that is constantly growing in popularity. As individuals attempt to improve their game and achieve better swings, countless hours are placed into practice. Most of this practice requires going to a golf driving range to practice hitting golf balls a far distance or hitting the golf balls within a golf simulator booth. Going to the driving range requires the user to take time out of their day to get to the driving range which requires a large amount of space and the need to purchase balls to hit. Furthermore, the user has to observe and track the golf ball once hit to estimate how far their shot has landed and is unable to get any additional information about the flight trajectory of the golf ball. Additionally, if the user practices in a golf simulator there is a significant amount of space needed to set up the simulator booth to practice golf swings. 
     Therefore, there is a need for improved methods, systems, apparatuses, and devices for facilitating simulating golf play on golf courses that may overcome one or more of the above-mentioned problems and/or limitations. 
     SUMMARY OF THE INVENTION 
     This summary is provided to introduce a selection of concepts in a simplified form, that are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter. Nor is this summary intended to be used to limit the claimed subject matter&#39;s scope. 
     Disclosed herein is an apparatus for facilitating simulating golf play on golf courses, in accordance with some embodiments. Further, the apparatus may include a golf mat, a golf ball, at least one external sensor, a processing device, a storage device, and a communication device. Further, the golf mat may be configured to be disposed on at least one surface. Further, the golf ball may be configured to be movably attached to a playing surface of the golf mat using at least one attachment element. Further, the golf ball may include at least one internal sensor disposed in the golf ball. Further, the at least one internal sensor may be configured for generating at least one internal sensor data associated with the golf ball based on detecting at least one striking parameter of a striking of the golf ball with at least one golf club. Further, the at least one external sensor may be configured for generating at least one external sensor data associated with the golf ball based on detecting at least one motion parameter of a motion of the golf ball. Further, the processing device may be communicatively coupled with the at least one internal sensor and the at least one external sensor. Further, the processing device may be configured for analyzing the at least one internal sensor data and the at least one external sensor data. Further, the processing device may be configured for generating at least one path parameter of a path of the golf ball based on the analyzing. Further, the processing device may be configured for generating a representation of the golf ball and the path of the golf ball in an environment representation of at least one golf course based on the at least one path parameter and at least one golf course data associated with the at least one golf course. Further, the storage device may be communicatively coupled with the processing device. Further, the storage device may be configured for retrieving the at least one golf course data associated with the at least one golf course. Further, the communication device may be communicatively coupled with the processing device. Further, the communication device may be configured for transmitting the representation and the environment representation to at least one output device. 
     Further disclosed herein is an apparatus for facilitating simulating golf play on golf courses, in accordance with some embodiments. Further, the apparatus may include a golf mat, a golf ball, at least one external sensor, a processing device, a storage device, and a communication device. Further, the golf mat may be configured to be disposed on at least one surface. Further, the golf ball may be configured to be movably attached to a playing surface of the golf mat using at least one attachment element. Further, the golf ball may include at least one internal sensor disposed in the golf ball. Further, the at least one internal sensor may be configured for generating at least one internal sensor data associated with the golf ball based on detecting at least one striking parameter of a striking of the golf ball with at least one golf club. Further, the at least one external sensor may be configured for generating at least one external sensor data associated with the golf ball based on detecting at least one motion parameter of a motion of the golf ball. Further, the processing device may be communicatively coupled with the at least one internal sensor and the at least one external sensor. Further, the processing device may be configured for analyzing the at least one internal sensor data and the at least one external sensor data. Further, the processing device may be configured for generating at least one path parameter of a path of the golf ball based on the analyzing. Further, the processing device may be configured for generating a representation of the golf ball and the path of the golf ball in an environment representation of at least one golf course based on the at least one path parameter and at least one golf course data associated with the at least one golf course. Further, the processing device may be configured for generating at least one recommendation associated with a swinging of the at least one golf club for the striking of the golf ball based on the at least one path parameter of the golf ball. Further, the storage device may be communicatively coupled with the processing device. Further, the storage device may be configured for retrieving the at least one golf course data associated with the at least one golf course. Further, the communication device may be communicatively coupled with the processing device. Further, the communication device may be configured for transmitting the representation and the environment representation to at least one output device. Further, the communication device may be configured for transmitting the at least one recommendation to the at least one output device. 
     Both the foregoing summary and the following detailed description provide examples and are explanatory only. Accordingly, the foregoing summary and the following detailed description should not be considered to be restrictive. Further, features or variations may be provided in addition to those set forth herein. For example, embodiments may be directed to various feature combinations and sub-combinations described in the detailed description. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate various embodiments of the present disclosure. The drawings contain representations of various trademarks and copyrights owned by the Applicants. In addition, the drawings may contain other marks owned by third parties and are being used for illustrative purposes only. All rights to various trademarks and copyrights represented herein, except those belonging to their respective owners, are vested in and the property of the applicants. The applicants retain and reserve all rights in their trademarks and copyrights included herein, and grant permission to reproduce the material only in connection with reproduction of the granted patent and for no other purpose. 
       Furthermore, the drawings may contain text or captions that may explain certain embodiments of the present disclosure. This text is included for illustrative, non-limiting, explanatory purposes of certain embodiments detailed in the present disclosure. 
         FIG.  1    is a top perspective view of an apparatus for facilitating simulating golf play on golf courses, in accordance with some embodiments. 
         FIG.  2    is a top perspective view of the apparatus for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  3    is a top perspective view of the apparatus for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  4    is a top perspective view of the apparatus for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  5    is a top perspective view of the apparatus for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  6    is a top perspective view of the apparatus for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  7    is a top perspective view of the apparatus for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  8    is a top perspective view of the apparatus for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  9    is a top perspective view of the apparatus for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  10    is a side view of the golf ball with the at least one attachment element detached from the golf mat, in accordance with some embodiments. 
         FIG.  11    is a side view of the golf ball with the at least one attachment element attached to the golf mat, in accordance with some embodiments. 
         FIG.  12    is a side view of the golf ball with the at least one attachment element attached to the golf mat and the at least one LiDAR sensor, in accordance with some embodiments. 
         FIG.  13    is a schematic of a system for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  14    is a schematic of the system for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  15    is a top perspective view of an apparatus for facilitating simulating golf play on golf courses, in accordance with some embodiments. 
         FIG.  16    is a front view of the apparatus for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  17    is a rear view of the apparatus for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  18    is a left side view of the apparatus for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  19    is a right side view of the apparatus for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  20    is a top view of the apparatus for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
         FIG.  21    is a top perspective view of an apparatus for facilitating simulating golf play on golf courses, in accordance with some embodiments. 
         FIG.  22    is an illustration of an online platform consistent with various embodiments of the present disclosure. 
         FIG.  23    is a block diagram of a computing device for implementing the methods disclosed herein, in accordance with some embodiments. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     As a preliminary matter, it will readily be understood by one having ordinary skill in the relevant art that the present disclosure has broad utility and application. As should be understood, any embodiment may incorporate only one or a plurality of the above-disclosed aspects of the disclosure and may further incorporate only one or a plurality of the above-disclosed features. Furthermore, any embodiment discussed and identified as being “preferred” is considered to be part of a best mode contemplated for carrying out the embodiments of the present disclosure. Other embodiments also may be discussed for additional illustrative purposes in providing a full and enabling disclosure. Moreover, many embodiments, such as adaptations, variations, modifications, and equivalent arrangements, will be implicitly disclosed by the embodiments described herein and fall within the scope of the present disclosure. 
     Accordingly, while embodiments are described herein in detail in relation to one or more embodiments, it is to be understood that this disclosure is illustrative and exemplary of the present disclosure, and are made merely for the purposes of providing a full and enabling disclosure. The detailed disclosure herein of one or more embodiments is not intended, nor is to be construed, to limit the scope of patent protection afforded in any claim of a patent issuing here from, which scope is to be defined by the claims and the equivalents thereof. It is not intended that the scope of patent protection be defined by reading into any claim limitation found herein and/or issuing here from that does not explicitly appear in the claim itself. 
     Thus, for example, any sequence(s) and/or temporal order of steps of various processes or methods that are described herein are illustrative and not restrictive. Accordingly, it should be understood that, although steps of various processes or methods may be shown and described as being in a sequence or temporal order, the steps of any such processes or methods are not limited to being carried out in any particular sequence or order, absent an indication otherwise. Indeed, the steps in such processes or methods generally may be carried out in various different sequences and orders while still falling within the scope of the present disclosure. Accordingly, it is intended that the scope of patent protection is to be defined by the issued claim(s) rather than the description set forth herein. 
     Additionally, it is important to note that each term used herein refers to that which an ordinary artisan would understand such term to mean based on the contextual use of such term herein. To the extent that the meaning of a term used herein—as understood by the ordinary artisan based on the contextual use of such term—differs in any way from any particular dictionary definition of such term, it is intended that the meaning of the term as understood by the ordinary artisan should prevail. 
     Furthermore, it is important to note that, as used herein, “a” and “an” each generally denotes “at least one,” but does not exclude a plurality unless the contextual use dictates otherwise. When used herein to join a list of items, “or” denotes “at least one of the items,” but does not exclude a plurality of items of the list. Finally, when used herein to join a list of items, “and” denotes “all of the items of the list.” 
     The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar elements. While many embodiments of the disclosure may be described, modifications, adaptations, and other implementations are possible. For example, substitutions, additions, or modifications may be made to the elements illustrated in the drawings, and the methods described herein may be modified by substituting, reordering, or adding stages to the disclosed methods. Accordingly, the following detailed description does not limit the disclosure. Instead, the proper scope of the disclosure is defined by the claims found herein and/or issuing here from. The present disclosure contains headers. It should be understood that these headers are used as references and are not to be construed as limiting upon the subjected matter disclosed under the header. 
     The present disclosure includes many aspects and features. Moreover, while many aspects and features relate to, and are described in the context of methods, systems, apparatuses, and devices for facilitating simulating golf play on golf courses, embodiments of the present disclosure are not limited to use only in this context. 
     In general, the method disclosed herein may be performed by one or more computing devices. For example, in some embodiments, the method may be performed by a server computer in communication with one or more client devices over a communication network such as, for example, the Internet. In some other embodiments, the method may be performed by one or more of at least one server computer, at least one client device, at least one network device, at least one sensor and at least one actuator. Examples of the one or more client devices and/or the server computer may include, a desktop computer, a laptop computer, a tablet computer, a personal digital assistant, a portable electronic device, a wearable computer, a smart phone, an Internet of Things (IoT) device, a smart electrical appliance, a video game console, a rack server, a super-computer, a mainframe computer, mini-computer, micro-computer, a storage server, an application server (e.g. a mail server, a web server, a real-time communication server, an FTP server, a virtual server, a proxy server, a DNS server etc.), a quantum computer, and so on. Further, one or more client devices and/or the server computer may be configured for executing a software application such as, for example, but not limited to, an operating system (e.g. Windows, Mac OS, Unix, Linux, Android, etc.) in order to provide a user interface (e.g. GUI, touch-screen based interface, voice based interface, gesture based interface etc.) for use by the one or more users and/or a network interface for communicating with other devices over a communication network. Accordingly, the server computer may include a processing device configured for performing data processing tasks such as, for example, but not limited to, analyzing, identifying, determining, generating, transforming, calculating, computing, compressing, decompressing, encrypting, decrypting, scrambling, splitting, merging, interpolating, extrapolating, redacting, anonymizing, encoding and decoding. Further, the processing device may be a processing unit. Further, the server computer may include a communication device configured for communicating with one or more external devices. The one or more external devices may include, for example, but are not limited to, a client device, a third party database, public database, a private database and so on. Further, the communication device may be a communication interface. Further, the communication device may be configured for communicating with the one or more external devices over one or more communication channels. Further, the one or more communication channels may include a wireless communication channel and/or a wired communication channel. Accordingly, the communication device may be configured for performing one or more of transmitting and receiving of information in electronic form. Further, the server computer may include a storage device configured for performing data storage and/or data retrieval operations. Further, the storage device may be a memory device. In general, the storage device may be configured for providing reliable storage of digital information. Accordingly, in some embodiments, the storage device may be based on technologies such as, but not limited to, data compression, data backup, data redundancy, deduplication, error correction, data fingerprinting, role based access control, and so on. 
     Further, one or more steps of the method disclosed herein may be initiated, maintained, controlled and/or terminated based on a control input received from one or more devices operated by one or more users such as, for example, but not limited to, an end user, an admin, a service provider, a service consumer, an agent, a broker and a representative thereof. Further, the user as defined herein may refer to a human, an animal or an artificially intelligent being in any state of existence, unless stated otherwise, elsewhere in the present disclosure. Further, in some embodiments, the one or more users may be required to successfully perform authentication in order for the control input to be effective. In general, a user of the one or more users may perform authentication based on the possession of a secret human readable secret data (e.g. username, password, passphrase, PIN, secret question, secret answer etc.) and/or possession of a machine readable secret data (e.g. encryption key, decryption key, bar codes, etc.) and/or or possession of one or more embodied characteristics unique to the user (e.g. biometric variables such as, but not limited to, fingerprint, palm-print, voice characteristics, behavioral characteristics, facial features, iris pattern, heart rate variability, evoked potentials, brain waves, and so on) and/or possession of a unique device (e.g. a device with a unique physical and/or chemical and/or biological characteristic, a hardware device with a unique serial number, a network device with a unique IP/MAC address, a telephone with a unique phone number, a smartcard with an authentication token stored thereupon, etc.). Accordingly, the one or more steps of the method may include communicating (e.g. transmitting and/or receiving) with one or more sensor devices and/or one or more actuators in order to perform authentication. For example, the one or more steps may include receiving, using the communication device, the secret human readable data from an input device such as, for example, a keyboard, a keypad, a touch-screen, a microphone, a camera and so on. Likewise, the one or more steps may include receiving, using the communication device, the one or more embodied characteristics from one or more biometric sensors. 
     Further, one or more steps of the method may be automatically initiated, maintained and/or terminated based on one or more predefined conditions. In an instance, the one or more predefined conditions may be based on one or more contextual variables. In general, the one or more contextual variables may represent a condition relevant to the performance of the one or more steps of the method. The one or more contextual variables may include, for example, but are not limited to, location, time, identity of a user associated with a device (e.g. the server computer, a client device etc.) corresponding to the performance of the one or more steps, environmental variables (e.g. temperature, humidity, pressure, wind speed, lighting, sound, etc.) associated with a device corresponding to the performance of the one or more steps, physical state and/or physiological state and/or psychological state of the user, physical state (e.g. motion, direction of motion, orientation, speed, velocity, acceleration, trajectory, etc.) of the device corresponding to the performance of the one or more steps and/or semantic content of data associated with the one or more users. Accordingly, the one or more steps may include communicating with one or more sensors and/or one or more actuators associated with the one or more contextual variables. For example, the one or more sensors may include, but are not limited to, a timing device (e.g. a real-time clock), a location sensor (e.g. a GPS receiver, a GLONASS receiver, an indoor location sensor etc.), a biometric sensor (e.g. a fingerprint sensor), an environmental variable sensor (e.g. temperature sensor, humidity sensor, pressure sensor, etc.) and a device state sensor (e.g. a power sensor, a voltage/current sensor, a switch-state sensor, a usage sensor, etc. associated with the device corresponding to performance of the or more steps). 
     Further, the one or more steps of the method may be performed one or more number of times. Additionally, the one or more steps may be performed in any order other than as exemplarily disclosed herein, unless explicitly stated otherwise, elsewhere in the present disclosure. Further, two or more steps of the one or more steps may, in some embodiments, be simultaneously performed, at least in part. Further, in some embodiments, there may be one or more time gaps between performance of any two steps of the one or more steps. 
     Further, in some embodiments, the one or more predefined conditions may be specified by the one or more users. Accordingly, the one or more steps may include receiving, using the communication device, the one or more predefined conditions from one or more and devices operated by the one or more users. Further, the one or more predefined conditions may be stored in the storage device. Alternatively, and/or additionally, in some embodiments, the one or more predefined conditions may be automatically determined, using the processing device, based on historical data corresponding to performance of the one or more steps. For example, the historical data may be collected, using the storage device, from a plurality of instances of performance of the method. Such historical data may include performance actions (e.g. initiating, maintaining, interrupting, terminating, etc.) of the one or more steps and/or the one or more contextual variables associated therewith. Further, machine learning may be performed on the historical data in order to determine the one or more predefined conditions. For instance, machine learning on the historical data may determine a correlation between one or more contextual variables and performance of the one or more steps of the method. Accordingly, the one or more predefined conditions may be generated, using the processing device, based on the correlation. 
     Further, one or more steps of the method may be performed at one or more spatial locations. For instance, the method may be performed by a plurality of devices interconnected through a communication network. Accordingly, in an example, one or more steps of the method may be performed by a server computer. Similarly, one or more steps of the method may be performed by a client computer. Likewise, one or more steps of the method may be performed by an intermediate entity such as, for example, a proxy server. For instance, one or more steps of the method may be performed in a distributed fashion across the plurality of devices in order to meet one or more objectives. For example, one objective may be to provide load balancing between two or more devices. Another objective may be to restrict a location of one or more of an input data, an output data and any intermediate data therebetween corresponding to one or more steps of the method. For example, in a client-server environment, sensitive data corresponding to a user may not be allowed to be transmitted to the server computer. Accordingly, one or more steps of the method operating on the sensitive data and/or a derivative thereof may be performed at the client device. 
     Overview: 
     The present disclosure describes methods, systems, apparatuses, and devices for facilitating simulating golf play on golf courses. 
     Further, the present disclosure describes a portable golf driving range, to help the user practice their golf in a variety of locations. The present disclosure intends to provide users with a device that can simulate each golf ball trajectory onto a real-world golf course. Further, the disclosed apparatus accurately predicts the golf ball trajectory, without the ball actually traveling the entire path. Further, the disclosed apparatus comprises a golf mat, a golf ball, a computer system, and a remote computer system. Further, the golf ball allows the user to practice their golf swing with the same ball while seeing where the ball trajectory would end up on a real golf course. Thus, the portable driving range utilizes various sensors to predict the trajectory of the golf ball once struck to provide information to the user to improve their golf swings. 
     Further, the present disclosure describes a portable golf driving range to help with practicing a golf swing. The disclosed apparatus seeks to provide users with a device that can be used indoors and within confined spaces where large open fields are not accessible. In order to accomplish this, the disclosed apparatus comprises a golf mat that allows the user to practice on either a grass like surface or with sand. Further, the golf ball contains sensors that allow the force the golf ball is struck with to be recorded. Additionally, the computer system tracks the initial movement of the golf ball when struck. Further, the remote computer system shows the predicted flight trajectory of the golf ball displayed on a real golf course. Thus, the disclosed apparatus is a portable driving range that utilizes various sensors and Artificial Intelligence (AI) software to predict the trajectory of the golf ball once struck to provide information to the user to improve the user&#39;s golf swing. 
     Further, the present disclosure describes a portable driving range. Further, the portable driving range displays the predicted trajectory of the golf ball once struck. The present disclosure intends to provide users with a device that can be used anywhere to allow a golf swing practice under various scenarios. To accomplish this the portable driving range comprises a golf mat, a golf ball that includes a Micro-electromechanical system (MEMS) sensor, a computer system, and a remote computer sensor. Many of these components allow the user to observe where the golf ball would land once struck. The golf ball is attached to the golf mat via the spring or a bungee cord. Behind the golf ball along the mat is the computer system that wirelessly communicates with the remote system. Thus, the portable driving range utilizes various sensors to predict the trajectory of the golf ball once struck to provide information to the user to improve their golf swings. 
     The portable driving range simulates the flight path of a golf ball when struck. The golf mat is made of sturdy material, with a rectangular shape creating a space to practice the golf swing. In its preferred embodiment, the golf mat has a spring, an artificial turf section, and a sand box. The spring is attached to the top side of the golf mat along the front side. The spring is made of an elastic metal material that allows the spring to stretch and bend when a force acts upon it until returning to its original upright position. Additionally, around the spring on the top side of the golf mat is the artificial turf section that is created with a green thin plastic material designed to mimic the feel of actual grass to ensure the user has a natural golf swing practice impact feeling. Further, along the opposite end of the golf mat is the sand box. The sand box is designed with a rectangular shape to create an alternative swinging area to mimic a sand trap or bunker that would be seen on the golf course. It should be further noted that the golf mat can be created in many various shapes and sizes and spring could be designed with many variations. 
     The golf ball connects with the golf mat via the spring. The golf ball is designed with a spherical shape with a plurality of dimples along the surface to best match the shape and look of a standard golf ball. In its preferred embodiment, the golf ball comprises a MEMs sensor and a fastener. The MEMs sensor is positioned within the golf ball so as not to be visible from the outside allowing the golf ball to retain its spherical shape. The MEMs sensor emits a Wi-Fi signal when the golf ball is struck by a club, and the force at which the ball is struck is translated into a Wi-Fi signal that contains the initial velocity of the golf ball and the initial force received. In its preferred embodiment, the MEMs sensor is a phoenix WEPS03 device that accurately tracks various data about the forces acting upon the golf ball and its initial movement. The golf ball is secured to the spring of the golf mat by the fastener which permanently joins the two components. This design allows the golf ball to be struck by a club, moving the golf ball forwards allowing its motion to be recorded, until returning to its original position due to the force of the spring. The fastener can comprise a variety of securing methods that allow the golf ball to retain its connection to the spring under a large amount of initial force. 
     The computer system is positioned behind the golf ball within the golf mat. In its preferred embodiment, the computer system comprises a LiDAR sensor and a wireless device. The LiDAR system is positioned directly behind the golf ball allowing it to track the flight of the golf ball when struck by a golf club. Multiple LiDAR systems can be positioned at different angles, to accurately get a 3D vision of the ball trajectory. As the golf ball is hit the golf ball launch angle with respect to the ground is recorded as well as the golf ball launch angle with respect to a straightforward line motion and the golf ball spin. These various statistics will indicate if the ball was with straight forward, with a left curve or with a right curve, allowing for a more accurate indication of the golf ball flight path. Within the computer system is a wireless device. The wireless device allows the recorded information to be wirelessly sent to the remote computer system. The wireless device in its preferred embodiment is Bluetooth compatible, ensuring constant connection with the remote computer system. 
     The remote computer system receives data from the computer system connected to the golf mat. In its preferred embodiment, the remote computer system is a cell phone application that receives the data from the computer system to calculate the predicted flight path of the golf ball using a computer algorithm. The remote computer system will also account for the force of the spring pulling back on the golf ball after it is struck to ensure an accurate prediction of the golf ball landing. Additionally AI based software will project the trajectory just before the ball is struck, so the golfer can use this during a real game to check using a practice swing. This design allows the user to visually see where the golf ball they hit would land in real life. Additionally, to supplement the visualization of the golf ball flight path, golf courses from all over the world can be mapped using cartographers on a golf cart, much like the mapping done by autonomous vehicles. These golf course maps can be stored on the computer and selected, to play on with this indoor golf driving range. This also allows for the user to complete an entire game of golf, hitting each ball and tracking where on the course it would land. Furthermore, the remote computer system allows the user to connect with other players around the world so that the user can play an entire round of golf with others from the comfort of their home. With all the components working in tandem with each other, it can be seen that the portable driving range utilizes various sensors to predict the trajectory of the golf ball once struck to provide information to the user to improve their golf swings. 
     Further, the present disclosure describes a portable golf driving range. More specifically, the present disclosure describes a device that utilizes light detection and ranging (LiDAR) sensors to estimate where the golf ball will land and display the information to the user. 
     Further, the present disclosure describes a personal golf coach application. The AI software of the personal golf coach application will evaluate the golfer&#39;s swing, and compare it to an ideal swing. It will then instruct the golfer via a video on what needs to change for the ideal swing. This will be tailored to each golfer based on his physique, flexibility, and golf club. 
     Further, the disclosed apparatus may include a nail to fasten the bungee cord (or a spring) “B” and WEPS03 MEMS from Phoenix sensors or similar. Further, one end of the bungee cord (or spring) is attached to the golf ball. The other end is firmly attached to the embedded nail (or golf Tee) on 4×10′ portable golf mat. The ball is struck with a golf club, just as on a regular golf course. After being hit the bungee (or spring) stretches then recoils bringing the golf ball back to the mat. When the golf ball is struck, it extends in a similar trajectory as if it was untended. 
     The angle Theta made by the bungee cord is determined from the LiDAR tracking, more on this later. The initial velocity V 0  is calculated from the impact of the club on the ball as sensed by the MEMs and transmitted to the receiver. The initial velocity V 0  is proportional to the pressure that the ball is stuck with, as measured by the MEMs. From Theta and V 0 , the predicted flight of the golf ball can be calculated. Some calibration will be needed to account for the bungee drag before it is fully tended, as well as after it stretches to the max length (l). Further, the disclosed apparatus may include a phoenix Sensors PS9W (WIFI) receiver, a computer/cell phone, and a LiDAR sensor. The PS9W receives the pressure measurement from the MEMs via blue tooth and sends it to the computer/cellphone for processing. The LiDAR sensor tracks the entire trajectory of the golf ball, until it is fully extended to length l. From the time of flight at the strike position to the time of flight at the extended length (l) of the golf ball, the LiDAR sensor data is processed and the initial velocity V 0  is calculated. The computer calculates the complete trajectory of the golf ball from the PS9W data and the LiDAR sensor data. Further analysis of the data determines the extended trajectory of the golf ball as if it was free. 
     This portable driving range can be extended to play a virtual game of golf with very precise strokes on any course in the world. A cartography of golf courses can be mapped and used as part of the kit. A simpler version can download golf courses from the web pages or Google™ earth and be used for the virtual course. The Cell phones with an app can be networked with other players to extend the virtual golf to a virtual tournament. 
     Further, the present disclosure describes the measuring of a trajectory of the golf ball using two or more LiDAR sensors. Further, the two or more LiDAR sensors are placed around the outside of the golf mat. Further, the present describes movement sensing of the golf ball from LiDAR sensors and MEMs sensors present inside the golf ball. Further, the present disclosure describes the usage of the two or more LiDAR sensors to triangulate the position of the golf ball. Further, the present disclosure describes the usage of one or more LiDAR sensor and AI to sense the movement of the golf ball. Further, the one or more LiDAR sensors are positioned around the golf mat. Further, the golf mat may include a sand box. Further, the spring associated with the golf ball is fastened to the ground beneath both the sand box and the grass. Further, the present disclosure describes a software application to facilitate simulating the golf play by capturing wind from a forecast in that area of the golf courses, capturing trees present in the line of sight associated with the golf ball, and displaying the trees along with wind speed. Further, the software application uses deep learning to predict where the golf ball will land before a golfer strikes the golf ball, just looking at swing data. Further, the software application may collect data. Further, the software application may use software perception, prediction, and control to determine the path of the golf ball. Further, the software application may use deep learning techniques and neural network analysis to predict the path of the golf ball. Further, data associated with the golf course may be collected by driving on the golf course to do cartography of the golf course to capture details of the golf course. 
     Further, the present disclosure describes connecting a player with other players and allows competition between the player and the other players in real time. 
       FIG.  1    is a top perspective view of an apparatus  100  for facilitating simulating golf play on golf courses, in accordance with some embodiments. Further, the apparatus  100  may include a golf mat  102 , a golf ball  104 , at least one external sensor  106 , a processing device  108 , a storage device  110 , and a communication device  112 . 
     Further, the golf mat  102  may be configured to be disposed on at least one surface. 
     Further, the golf ball  104  may be configured to be movably attached to a playing surface  114  of the golf mat  102  using at least one attachment element  116 . Further, the golf ball  104  may include at least one internal sensor  118  disposed in the golf ball  104 . Further, the at least one internal sensor  118  may be configured for generating at least one internal sensor data associated with the golf ball  104  based on detecting at least one striking parameter of a striking of the golf ball  104  with at least one golf club. Further, the golf ball  104  may include at least one golf ball characteristic similar to a standard golf ball used in a game of golf. Further, the at least one golf ball characteristic may include a mass of 45.9 g, a diameter of 42.7 mm, a material of a solid rubber core with a durable thermoplastic (ionomer resin) cover, a surface comprising dimples, etc. Further, the at least one attachment element  116  may include a bungee cord, a spring, an elastic implement, etc. Further, the at least one internal sensor  118  may include Micro Electro-Mechanical System (MEMS) sensors. Further, the Micro Electro-Mechanical System (MEMS) sensors may include a MEMS Accelerometer, a MEMS Gyroscope, a MEMS Magnetometer, a MEMS pressure sensor, a MEMS microphone, etc. Further, the at least one striking parameter may include an impact force on the golf ball  104 , a speed of the golf ball  104 , an acceleration of the golf ball  104 , an orientation of the golf ball  104 , an angle of the impact force, etc. 
     Further, the at least one external sensor  106  may be configured for generating at least one external sensor data associated with the golf ball  104  based on detecting at least one motion parameter of a motion of the golf ball  104 . Further, the at least one motion parameter may include a rotation of the golf ball  104 , an axis of the rotation, a movement of the axis of the rotation, an initial trajectory of the golf ball  104 , an angle of an initial flight of the golf ball  104 , etc. 
     Further, the processing device  108  may be communicatively coupled with the at least one internal sensor  118  and the at least one external sensor  106 . Further, at least one of the at least one internal sensor  118  and the at least one external sensor  106  may be connected to the processing device  108  over at least one of a wireless communication channel and a wired communication channel Further, the processing device  108  may be configured for analyzing the at least one internal sensor data and the at least one external sensor data. Further, the processing device  108  may be configured for generating at least one path parameter of a path of the golf ball  104  based on the analyzing. Further, the at least one path parameter may include a range of the path, an angle of ascent of the path, an angle of descent of the path, a trajectory of the path, etc. Further, the processing device  108  may be configured for generating a representation of the golf ball  104  and the path of the golf ball  104  in an environment representation of at least one golf course based on the at least one path parameter and at least one golf course data associated with the at least one golf course. Further, the representation may include a visual representation, an aural representation, a haptic representation, an Augmented reality (AR) representation, a virtual reality (VR) representation, etc. of the golf ball  104  and the path of the golf ball  104 . Further, the environment representation may include an environment visual representation, an environment aural representation, an environment haptic representation, an environment Augmented reality (AR) representation, an environment virtual reality (VR) representation, etc. of the at least one golf course. 
     Further, the storage device  110  may be communicatively coupled with the processing device  108 . Further, the storage device  110  may be configured for retrieving the at least one golf course data associated with the at least one golf course. Further, the at least one golf course data may include a topography of the at least one golf course. 
     Further, the communication device  112  may be communicatively coupled with the processing device  108 . Further, the communication device  112  may be configured for transmitting the representation and the environment representation to at least one output device  202 , as shown in  FIG.  2   . Further, the at least one output device  202  may include a presentation device, a display device, a speaker, etc. 
     Further, in some embodiments, the analyzing of the at least one internal sensor data and the at least one external sensor data may include analyzing the at least one internal sensor data and the at least one external sensor data using at least one machine learning model. Further, the at least one machine learning model may be trained using a plurality of striking parameters of the striking and a plurality of motion parameters of the motion with a plurality of corresponding paths of the golf ball  104 . Further, the generating of the at least one path parameter may include predicting the at least one path parameter of the path of the golf ball  104  based on the analyzing of the at least one internal sensor data and the at least one external sensor data using the at least one machine learning model. 
     Further, in some embodiments, the processing device  108  may be configured for generating at least one recommendation associated with a swinging of the at least one golf club for the striking of the golf ball  104  based on the at least one path parameter of the golf ball  104 . Further, the communication device  112  may be configured for transmitting the at least one recommendation to the at least one output device  202 . 
     In an embodiment, the apparatus  100  may include at least one sensor  302 , as shown in  FIG.  3   . Further, the at least one sensor  302  may be communicatively coupled with the processing device  108 . Further, the at least one sensor  302  may include an image sensor, a motion sensor, a microphone, etc. Further, the at least one sensor  302  may be configured for generating at least one sensor data based on detecting at least one swinging parameter of the swinging of the at least one golf club for the striking of the at least one golf ball  104 . Further, the at least one swinging parameter may include a speed of the at least one golf club, a swinging action of the at least one golf club, etc. Further, the storage device  110  may be further configured for retrieving at least one user data associated with at least one user. Further, the at least one user data a body weight of the at least one user, a height of the at least one user, etc. Further, the at least one user swings the at least one golf club for the striking of the at least one golf ball  104 . Further, the processing device  108  may be further configured for analyzing the at least one sensor data and the at least one user data. Further, the generating of the at least one recommendation associated with the swinging may be further based on the analyzing of the at least one sensor data and the at least one user data. 
     In an embodiment, the apparatus  100  may include at least one first sensor  402 , as shown in  FIG.  4   . Further, the at least one first sensor  402  may be communicatively coupled with the processing device  108 . Further, the at least one first sensor  402  may be configured for generating at least one first sensor data based on detecting at least one golf club parameter of the at least one golf club. Further, the at least one golf club parameter may include a type of the at least one golf club, a length of the at least one golf club, a weight of the at least one golf club, etc. Further, the processing device  108  may be configured for analyzing the at least one first sensor data. Further, the generating of the at least one recommendation associated with the swinging may be based on the analyzing of the at least one first sensor data. 
     Further, in some embodiments, the at least one attachment element  116  may be configured for detachably and movably attaching the golf ball  104  in at least one location on the playing surface  114  of the golf mat  102 . 
     Further, in some embodiments, the playing surface  114  may include a first playing surface  502  and a second playing surface  504 , as shown in  FIG.  5   . Further, the first playing surface  502  may include artificial grasses and the second playing surface  504  may include sand. 
     Further, in some embodiments, the at least one attachment element  116  allows movably returning of the golf ball  104  to a first position from at least one second position after the striking. Further, the first position may include an upright position of the golf ball  104  in relation to the playing surface  114 . Further, the at least one internal sensor  118  may be configured for generating at least one first internal sensor data based on a force imparted on the golf ball  104  based on the movably returning of the golf ball  104 . Further, the processing device  108  may be configured for analyzing the at least one first internal sensor data. Further, the generating of the at least one path parameter may be based on the analyzing of the at least one first internal sensor data. 
     Further, in some embodiments, the storage device  110  may be configured for retrieving at least one environment data associated with the at least one golf course. Further, the processing device  108  may be configured for analyzing the at least one environment data. Further, the generating of the at least one path parameter may be based on the analyzing of the at least one environment data. 
     In an embodiment, the apparatus  100  may include at least one primary sensor  602 , as shown in  FIG.  6   . Further, the at least one primary sensor  602  may be communicatively coupled with the processing device  108 . Further, the at least one primary sensor  602  may include a temperature sensor, a pressure sensor, an airflow direction sensor, etc. Further, the at least one primary sensor  602  may be configured for generating at least one environmental condition data based on detecting at least one environmental condition of the at least one golf course in real time. Further, the at least one environment data may include the at least one environmental condition data. Further, the at least one environmental condition may include a temperature, a pressure, an airflow direction, etc. in the at least one golf course. 
     In an embodiment, the apparatus  100  may include at least one secondary sensor  702 , as shown in  FIG.  7   . Further, the at least one secondary sensor  702  may be communicatively coupled with the processing device  108 . Further, the at least one secondary sensor  702  may include an image sensor, a motion sensor, etc. Further, the at least one secondary sensor  702  may be configured for generating at least one object data based on detecting at least one parameter of at least one object present in the at least one golf course in real time. Further, the at least one environment data may include the at least one object data. Further, the at least one parameter of the at least one object a type of the at least one object, a size of the at least one object, a movement of the at least one object, a position of the at least one object, etc. 
     Further, in some embodiments, the at least one external sensor  106  may include at least one Light Detection and Ranging (LiDAR) sensor  802 , as shown in  FIG.  8   . Further, the at least one motion parameter may include an initial path of the golf ball  104 . Further, the at least one LiDAR sensor  802  may be configured for detecting the initial path of the golf ball  104  in three-dimensional space. Further, the generating of the at least one external sensor data may be based on the detecting. 
     Further, in some embodiments, the representation of the golf ball  104  and the path of the golf ball  104  may be associated with a primary user. Further, the communication device  112  may be configured for receiving at least one secondary representation of at least one secondary golf ball  104  and at least one secondary path of the at least one secondary golf ball  104  associated with at least one secondary user and the environment representation from at least one secondary device  902 , as shown in  FIG.  9   . Further, the transmitting of the representation and the environment representation to the at least one output device  202  further may include transmitting the representation, the at least one secondary representation, and the environment representation to the at least one output device  202  and at least one secondary output device  904 , as shown in  FIG.  9   , associated with the at least one secondary user. 
     Further, in some embodiments, the at least one attachment element  116  may include a first end  1002  and a second end  1004 , as shown in  FIG.  10   . Further, the golf ball  104  may be attached to the first end  1002 . Further, the at least one attachment element  116  may include a connector  1006 , as shown in  FIG.  10   , comprised in the second end  1004 . Further, the connector  1006  connects the second end  1004  to the golf mat  102 . Further, the connector  1006  may include a nail, a wedge, etc. 
       FIG.  2    is a top perspective view of the apparatus  100  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
       FIG.  3    is a top perspective view of the apparatus  100  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
       FIG.  4    is a top perspective view of the apparatus  100  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
       FIG.  5    is a top perspective view of the apparatus  100  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
       FIG.  6    is a top perspective view of the apparatus  100  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
       FIG.  7    is a top perspective view of the apparatus  100  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
       FIG.  8    is a top perspective view of the apparatus  100  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
       FIG.  9    is a top perspective view of the apparatus  100  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
       FIG.  10    is a side view of the golf ball  104  with the at least one attachment element  116  detached from the golf mat  102 , in accordance with some embodiments. 
       FIG.  11    is a side view of the golf ball  104  with the at least one attachment element  116  attached to the golf mat  102 , in accordance with some embodiments. 
       FIG.  12    is a side view of the golf ball  104  with the at least one attachment element  116  attached to the golf mat  102  and the at least one LiDAR sensor  802 , in accordance with some embodiments. 
       FIG.  13    is a schematic of a system  1300  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. Further, the system  1300  may include Micro Electro Mechanical system (MEMS) sensor  1302  and a wireless receiver  1304 . Further, the MEM sensor  1302  may be the at least one internal sensor  118 . Further, the wireless receiver  1304  may include a computing device. 
       FIG.  14    is a schematic of the system  1300  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. Further, the system  1300  may include a computer system  1402  and a LiDAR sensor  1404  (the at least one LiDAR sensor  802 ). 
       FIG.  15    is a top perspective view of an apparatus  1500  for facilitating simulating golf play on golf courses, in accordance with some embodiments. 
       FIG.  16    is a front view of the apparatus  1500  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
       FIG.  17    is a rear view of the apparatus  1500  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
       FIG.  18    is a left side view of the apparatus  1500  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
       FIG.  19    is a right side view of the apparatus  1500  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
       FIG.  20    is a top view of the apparatus  1500  for facilitating the simulating golf play on the golf courses, in accordance with some embodiments. 
       FIG.  21    is a top perspective view of an apparatus  2100  for facilitating simulating golf play on golf courses, in accordance with some embodiments. Further, the apparatus  2100  may include a golf mat  2102 , a golf ball  2104 , at least one external sensor  2106 , a processing device  2108 , a storage device  2110 , and a communication device  2112 . 
     Further, the golf mat  2102  may be configured to be disposed on at least one surface. 
     Further, the golf ball  2104  may be configured to be movably attached to a playing surface  2114  of the golf mat  2102  using at least one attachment element  2116 . Further, the golf ball  2104  may include at least one internal sensor  2118  disposed in the golf ball  2104 . Further, the at least one internal sensor  2118  may be configured for generating at least one internal sensor data associated with the golf ball  2104  based on detecting at least one striking parameter of a striking of the golf ball  2104  with at least one golf club. 
     Further, the at least one external sensor  2106  may be configured for generating at least one external sensor data associated with the golf ball  2104  based on detecting at least one motion parameter of a motion of the golf ball  2104 . 
     Further, the processing device  2108  may be communicatively coupled with the at least one internal sensor  2118  and the at least one external sensor  2106 . Further, the processing device  2108  may be configured for analyzing the at least one internal sensor data and the at least one external sensor data. Further, the processing device  2108  may be configured for generating at least one path parameter of a path of the golf ball  2104  based on the analyzing. Further, the processing device  2108  may be configured for generating a representation of the golf ball  2104  and the path of the golf ball  2104  in an environment representation of at least one golf course based on the at least one path parameter and at least one golf course data associated with the at least one golf course. Further, the processing device  2108  may be configured for generating at least one recommendation associated with a swinging of the at least one golf club for the striking of the golf ball  2104  based on the at least one path parameter of the golf ball  2104 . 
     Further, the storage device  2110  may be communicatively coupled with the processing device  2108 . Further, the storage device  2110  may be configured for retrieving the at least one golf course data associated with the at least one golf course. 
     Further, the communication device  2112  may be communicatively coupled with the processing device  2108 . Further, the communication device  2112  may be configured for transmitting the representation and the environment representation to at least one output device. Further, the communication device  2112  may be configured for transmitting the at least one recommendation to the at least one output device. 
     Further, in some embodiments, the analyzing of the at least one internal sensor data and the at least one external sensor data may include analyzing the at least one internal sensor data and the at least one external sensor data using at least one machine learning model. Further, the at least one machine learning model may be trained using a plurality of striking parameters of the striking and a plurality of motion parameters of the motion with a plurality of corresponding paths of the golf ball  2104 . Further, the generating of the at least one path parameter may include predicting the at least one path parameter of the path of the golf ball  2104  based on the analyzing of the at least one internal sensor data and the at least one external sensor data using the at least one machine learning model. 
     In further embodiments, the apparatus  2100  may include at least one sensor. Further, the at least one sensor may be communicatively coupled with the processing device  2108 . Further, the at least one sensor may be configured for generating at least one sensor data based on detecting at least one swinging parameter of the swinging of the at least one golf club for the striking of the at least one golf ball  2104 . Further, the storage device  2110  may be configured for retrieving at least one user data associated with at least one user. Further, the at least one user swings the at least one golf club for the striking of the at least one golf ball  2104 . Further, the processing device  2108  may be configured for analyzing the at least one sensor data and the at least one user data. Further, the generating of the at least one recommendation associated with the swinging may be based on the analyzing of the at least one sensor data and the at least one user data. 
     In further embodiments, the apparatus  2100  may include at least one first sensor. Further, the at least one first sensor may be communicatively coupled with the processing device  2108 . Further, the at least one first sensor may be configured for generating at least one first sensor data based on detecting at least one golf club parameter of the at least one golf club. Further, the processing device  2108  may be configured for analyzing the at least one first sensor data. Further, the generating of the at least one recommendation associated with the swinging may be based on the analyzing of the at least one first sensor data. 
     Further, in some embodiments, the at least one attachment element  2116  may be configured for detachably and movably attaching the golf ball  2104  in at least one location on the playing surface  2114  of the golf mat  2102 . 
     Further, in some embodiments, the storage device  2110  may be configured for retrieving at least one environment data associated with the at least one golf course. Further, the processing device  2108  may be configured for analyzing the at least one environment data. Further, the generating of the at least one path parameter may be based on the analyzing of the at least one environment data. 
     Further, in some embodiments, the at least one external sensor  2106  may include at least one Light Detection and Ranging (LiDAR) sensor. Further, the at least one motion parameter may include an initial path of the golf ball  2104 . Further, the at least one LiDAR sensor may be configured for detecting the initial path of the golf ball  2104  in three-dimensional space. Further, the generating of the at least one external sensor data may be based on the detecting. 
       FIG.  22    is an illustration of an online platform  2200  consistent with various embodiments of the present disclosure. By way of non-limiting example, the online platform  2200  to facilitate simulating golf play on golf courses may be hosted on a centralized server  2202 , such as, for example, a cloud computing service. The centralized server  2202  may communicate with other network entities, such as, for example, a mobile device  2206  (such as a smartphone, a laptop, a tablet computer, etc.), other electronic devices  2210  (such as desktop computers, server computers, etc.), databases  2214 , sensors  2216 , and an apparatus  2218  (such as the apparatus  100 , the apparatus  1500 , the apparatus  2100 , etc.) over a communication network  2204 , such as, but not limited to, the Internet. Further, users of the online platform  2200  may include relevant parties such as, but not limited to, end-users, administrators, service providers, service consumers, and so on. Accordingly, in some instances, electronic devices operated by the one or more relevant parties may be in communication with the platform. 
     A user  2212 , such as the one or more relevant parties, may access online platform  2200  through a web based software application or browser. The web based software application may be embodied as, for example, but not be limited to, a website, a web application, a desktop application, and a mobile application compatible with a computing device  2300 . 
     With reference to  FIG.  23   , a system consistent with an embodiment of the disclosure may include a computing device or cloud service, such as computing device  2300 . In a basic configuration, computing device  2300  may include at least one processing unit  2302  and a system memory  2304 . Depending on the configuration and type of computing device, system memory  2304  may comprise, but is not limited to, volatile (e.g. random-access memory (RAM)), non-volatile (e.g. read-only memory (ROM)), flash memory, or any combination. System memory  2304  may include operating system  2305 , one or more programming modules  2306 , and may include a program data  2307 . Operating system  2305 , for example, may be suitable for controlling computing device  2300 &#39;s operation. In one embodiment, programming modules  2306  may include image-processing module, machine learning module. Furthermore, embodiments of the disclosure may be practiced in conjunction with a graphics library, other operating systems, or any other application program and is not limited to any particular application or system. This basic configuration is illustrated in  FIG.  23    by those components within a dashed line  2308 . 
     Computing device  2300  may have additional features or functionality. For example, computing device  2300  may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in  FIG.  23    by a removable storage  2309  and a non-removable storage  2310 . Computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. System memory  2304 , removable storage  2309 , and non-removable storage  2310  are all computer storage media examples (i.e., memory storage.) Computer storage media may include, but is not limited to, RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store information and which can be accessed by computing device  2300 . Any such computer storage media may be part of device  2300 . Computing device  2300  may also have input device(s)  2312  such as a keyboard, a mouse, a pen, a sound input device, a touch input device, a location sensor, a camera, a biometric sensor, etc. Output device(s)  2314  such as a display, speakers, a printer, etc. may also be included. The aforementioned devices are examples and others may be used. 
     Computing device  2300  may also contain a communication connection  2316  that may allow device  2300  to communicate with other computing devices  2318 , such as over a network in a distributed computing environment, for example, an intranet or the Internet. Communication connection  2316  is one example of communication media. Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” may describe a signal that has one or more characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media. The term computer readable media as used herein may include both storage media and communication media. 
     As stated above, a number of program modules and data files may be stored in system memory  2304 , including operating system  2305 . While executing on processing unit  2302 , programming modules  2306  (e.g., application  2320  such as a media player) may perform processes including, for example, one or more stages of methods, algorithms, systems, applications, servers, databases as described above. The aforementioned process is an example, and processing unit  2302  may perform other processes. Other programming modules that may be used in accordance with embodiments of the present disclosure may include machine learning applications. 
     Generally, consistent with embodiments of the disclosure, program modules may include routines, programs, components, data structures, and other types of structures that may perform particular tasks or that may implement particular abstract data types. Moreover, embodiments of the disclosure may be practiced with other computer system configurations, including hand-held devices, general purpose graphics processor-based systems, multiprocessor systems, microprocessor-based or programmable consumer electronics, application specific integrated circuit-based electronics, minicomputers, mainframe computers, and the like. Embodiments of the disclosure may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. 
     Furthermore, embodiments of the disclosure may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. Embodiments of the disclosure may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to mechanical, optical, fluidic, and quantum technologies. In addition, embodiments of the disclosure may be practiced within a general-purpose computer or in any other circuits or systems. 
     Embodiments of the disclosure, for example, may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process. Accordingly, the present disclosure may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.). In other words, embodiments of the present disclosure may take the form of a computer program product on a computer-usable or computer-readable storage medium having computer-usable or computer-readable program code embodied in the medium for use by or in connection with an instruction execution system. A computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. 
     The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific computer-readable medium examples (a non-exhaustive list), the computer-readable medium may include the following: an electrical connection having one or more wires, a portable computer diskette, a random-access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, and a portable compact disc read-only memory (CD-ROM). Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. 
     Embodiments of the present disclosure, for example, are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to embodiments of the disclosure. The functions/acts noted in the blocks may occur out of the order as shown in any flowchart. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. 
     While certain embodiments of the disclosure have been described, other embodiments may exist. Furthermore, although embodiments of the present disclosure have been described as being associated with data stored in memory and other storage mediums, data can also be stored on or read from other types of computer-readable media, such as secondary storage devices, like hard disks, solid state storage (e.g., USB drive), or a CD-ROM, a carrier wave from the Internet, or other forms of RAM or ROM. Further, the disclosed methods&#39; stages may be modified in any manner, including by reordering stages and/or inserting or deleting stages, without departing from the disclosure. 
     Although the present disclosure has been explained in relation to its preferred embodiment, it is to be understood that many other possible modifications and variations can be made without departing from the spirit and scope of the disclosure.