Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
ANIMATION MANAGEMENT IN APPLICATIONS
Document Type and Number:
WIPO Patent Application WO/2017/117145
Kind Code:
A1
Abstract:
Techniques and arrangements for managing animations (e.g., chrome) on an application of a computing device are described. The application may dynamically adjust the number of animations to process information at a faster and/or slower rate. The application may adjust the number of animations based on various factors, such as a rate of input events, a rate of outbound signals, a type of user, an experience level of a user, a time of day, a time of year, and/or other factors.

Inventors:
RENKE CHRISTOPHER PHILIP (US)
Application Number:
PCT/US2016/068748
Publication Date:
July 06, 2017
Filing Date:
December 27, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SQUARE INC (US)
International Classes:
G06Q30/06; G06Q50/12
Foreign References:
EP2590391A22013-05-08
US20120290435A12012-11-15
Other References:
None
Attorney, Agent or Firm:
COOMBES, Melissa, J. et al. (US)
Download PDF:
Claims:
CLAIMS

WHAT IS CLAIMED IS:

1. A merchant point-of-sale (POS) device comprising:

a display;

one or more processors;

one or more non-transitory computer-readable media storing instructions executable by the one or more processors, wherein the instructions program the one or more processors to perform acts comprising:

presenting, on the display, a user interface of an application configured to facilitate payment transactions between a merchant associated with the merchant POS device and one or more customers, the user interface including one or more animations; receiving a plurality of inputs via the user interface of the application, the plurality of inputs being associated with the payment transactions;

calculating a number of transactions processed over a first period of time; determining that the number of transactions is above a threshold number; and based at least in part on the determining that the number of transactions is above the minimum threshold number, disabling at least one of the one or more animations of the user interface to increase a processing speed of the merchant POS device.

2. The merchant POS device as claim 1 recites, the acts further comprising:

calculating a number of transactions processed over a second period of time;

determining that the number of transactions is less than the threshold number; and based at least in part on the determining that the number of transactions is less than the threshold number, enabling the at least one of the one or more animations of the user interface.

3. The merchant POS device as either claim 1 or claim 2 recites, the acts further comprising prior to presenting the user interface of the application, setting an initial number of animations for the user interface based at least in part on a merchant type.

4. The merchant POS device as any one of claims 1-3 recites, wherein the application includes a first applet and a second applet, and the disabling the at least one of the one or more animations of the user interface includes disabling animations of the first applet and maintaining animations of the second applet as enabled.

5. The merchant POS device as any one of claims 1-4 recite, wherein the one or more animations comprise at least one of an audio presentation or a visual presentation.

6. A method comprising:

presenting, on a display, a user interface of an application, the user interface including one or more animations;

receiving, by a merchant point-of-sale device, a plurality of inputs via the user interface of the application;

determining to increase a processing speed of the application based at least in part on the plurality of inputs;

based at least in part on the determining to increase the processing speed of the application, disabling at least one of the one or more animations of the user interface.

7. The method as claim 6 recites, wherein the determining to increase the processing speed for the application comprises:

calculating a rate of processing transactions over time; and

determining that the rate of processing transactions over time exceeds a threshold rate.

8. The method as claim 6 recites, wherein the determining to increase the processing speed for the application comprises:

calculating a rate of processing input events over time, the input events including selections on the display; and

determining that the rate of processing input events exceeds a threshold rate. 9. The method as any one of claims 6-8 recites, wherein the determining to increase the processing speed for the application is based at least in part on one or more of the following: a time of day;

a day of the week;

a merchant location;

a merchant type;

a user of the merchant point-of-sale device; or

an applet of the application being presented.

10. The method as any one of claims 6-9 recites, wherein the application is configured to facilitate payment transactions between a merchant and one or more customers.

11. The method as any one of claims 6-10 recites, further comprising:

determining to decrease the processing speed for the application; and

enabling at least one of the animations of the user interface. 12. The method as any one of claims 6-11 recites, wherein each of the one or more animations includes one of or more of:

a picture;

a drop-down menu;

a sound; or

a response to an input event.

13. A system comprising:

one or more processors;

one or more non-transitory computer-readable media storing instructions executable by the one or more processors, wherein the instructions program the one or more processors to perform acts comprising:

displaying a first number of animations in a user interface associated with an application;

determining to increase a processing speed of the application; based at least in part on the determining to increase the processing speed of the application, displaying a second number of animations in the user interface, wherein the second number of animations is less than the first number of animations.

14. The system as claim 13 recites, wherein the determining to increase the processing speed of the application is based at least in part on a time of day.

15. The system as claim 13 recites, wherein the determining to increase the processing speed of the application is based at least in part on a user profile.

Description:
ANIMATION MANAGEMENT IN APPLICATIONS

BACKGROUND

[0001] Mobile devices are ubiquitous in society today. Typically, mobile devices contain applications that allow users to conduct various activities on the mobile devices. For instance, a merchant may use a point-of-sale (POS) application on a mobile device, such as a mobile POS device, to engage in transactions with customers at various locations. Applications may include various animations, such as drop-down menus, pictures, motions, sounds, etc. The animations provide an enhanced user experience by including more information in an aesthetically pleasing manner. However, the amount of animation may be inversely proportional to the speed of the application. Thus, because the enhanced user experience may require more time to process due to the animation display time, the enhanced user experience may come at a cost of slower processing speeds. For various users, such as the merchant using a mobile POS device, the animation may be highly desirable, but may be too costly when the merchant wants to conduct transactions at a high rate.

BRIEF DESCRIPTION OF THE DRAWINGS

[0002] The detailed description is set forth with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items or features.

[0003] FIGS. 1A-B collectively illustrate a process for dynamically managing animations on a mobile device.

[0004] FIG. 2 illustrates an example environment that includes a merchant operating a mobile point-of-sale (POS) device to manage animations in a POS device application.

[0005] FIG. 3 illustrates an example display of a point-of-sale (POS) device with a touchscreen user interface presenting two levels of animation in an application.

[0006] FIG. 4 illustrates a flow diagram of a process for managing animations of an application on a computing device.

[0007] FIG. 5 illustrates a flow diagram of a process for managing animations of an application on a computing device.

[0008] FIG. 6 illustrates a flow diagram of a process for managing animations on a device by a transaction processing service.

[0009] FIG. 7 illustrates example components of a POS device that a merchant may utilize .

DETAILED DESCRIPTION

[0010] Some implementations described herein include techniques and arrangements for managing animations on an application of a computing device. In some instances, the application may be a transaction application (e.g., point-of-sale application) operating on a point-of-sale (POS) device. The application may dynamically adjust the animations (e.g., the number of animations, the amount of graphics associated with an animation, etc.) to process information at a faster and/or slower rate. The application may adjust the animations based on an average rate of transactions processed over a pre -determined time, a rate of recognized input events, a type of user, an experience level of a user, a time of day, a time of year, or other factors. In some examples, the application may adjust the number of animations for a designated time interval. For example, a merchant application operating on a POS device may have a history of processing a relatively large number of transactions (e.g., more than a threshold) between 4pm and 6pm on weekdays. Consequently, the merchant application may decrease the number of animations in anticipation of processing transactions at a higher rate during the busy time.

[0011] A user profile may be maintained with a list of user specific criteria. The user profile may be used to control and/or adjust animations on applications. In some instances, a user may designate the criteria, and/or may update the user profile periodically. The user profile may include various sub-user profiles, and/or may vary animation levels based on the particular person operating the POS device. For instance, a merchant may maintain a user profile that includes one or more sub-profiles for employees of the merchant. Thus, each employee may adjust a baseline animation level (e.g., a default number of animations that may occur) corresponding to the employee. For example, a new employee on a merchant profile may desire more information and may set the animation at a relatively high level (e.g., specify that more than a threshold number of animations may occur). However, a more experienced employee on the merchant profile may not need as much information. Thus, the more experienced employee may set the baseline animation to a lower level in order to process transactions faster.

[0012] In many instances, the adjustment of animation (e.g., adjustment of chrome) as described herein may increase the efficiency of applications running on a mobile device (e.g., reduce processing, reduce battery usage, etc.). Additionally, the adjustment of animation may enhance a user experience by recognizing a desire to increase or decrease a processing speed, and adjust the animation to a lower or higher level to meet that desire. Further, in many instances (e.g., in merchant application examples), the adjustment in animation level may result in an improvement to the technology and/or technical field of processing transactions.

[0013] For discussion purposes, example implementations, such as a merchant POS device running a merchant application, are described below with reference to the corresponding figures. However, implementations herein are not limited to the merchant POS device running a merchant application. The techniques discussed herein may be extended to other environments, other system architectures, other types of applications, and so forth, as will be apparent to those of skill in the art in light of the disclosure herein. [0014] FIGS. 1A-B collectively illustrate a process 100 for dynamically managing animations on an application of a device.

[0015] FIG. 1A illustrates, at 102, an application of a mobile device receives input via a user interface of the application. In various examples, the application may comprise a merchant application configured to facilitate transactions between a merchant and one or more customers . In some examples, the application may include two or more applets, each applet being configured to perform a different function. For example, a merchant application for a restaurant may include a hostess applet to assist in seating customers, a wait-staff applet to provide desired food and drink to the customers, and a cook applet to report a food readiness status.

[0016] The application may be configured to process input received via the user interface . The input may include input events, e.g., a user of the mobile device touching or simulating a touch by placing a finger in proximity to a presence-sensitive display, or by using a keyboard or other input mechanism. In various examples, the input may comprise a series of input events related to processing transactions via a merchant application.

[0017] In some examples, the application and/or the applet of the application may be configured to present animations in response to various input events. The animations can include any visual and/or audio element. For example, the animations may comprise movements of graphical items (e.g., sliding, fading in, fading out, dropping down, raising up, rotating a graphical icon, graphical menus, or other items), sounds, and/or other information pertaining to the function and/or aesthetics of the application and/or the applet. In some instances, the number of animations (e.g., animation level) may have an inverse relationship with the processing speed of the application and/or mobile device. For example, an application set to a demonstration mode (e.g., high animation level) may experience a slower processing speed than the application set to a low animation level. As another example, but not a limitation, a food order that is input with three input events on a user interface may be processed faster than a food order that is input with four input events and three animations.

[0018] A baseline animation level (e.g., initial number of animations at a given time) of the application and/or the applet may be pre-defined by an application developer, application service provider, a user, and/or a sub-user of the application. For example, an application may be provided to a user in a demonstration (demo) mode. In the demo mode, the application may activate a high number of animations, in order to demonstrate to the merchant the capabilities of the application. In such an example, the user, once familiar with the animations and the capability of the application, may adjust the animation setting to a new baseline level. For another example, an employee of a merchant may set a baseline animation level based on an experience level of the employee. Thus, an experienced employee who may not need the extra information provided by the animation may prefer to set a baseline animation to a low level, thereby increasing the application processing speed. [0019] At 104, the application determines to increase a processing speed (e.g., the merchant is busy, there are multiple customers awaiting transactions, there are multiple employees simultaneously processing transactions, an Internet connection is week and/or slow). In various examples, the determination to increase processing speed may be predictive. In such examples, the application and/or a data store of the mobile device may store user information (e.g., known busy times of the day, week, month and/or year, a user type, a user location, sub- user information, etc.), and may vary animations based on the determination to adjust the processing speed of the application. For example, a restauranteur's mobile device may store information indicating an increase in transactions between 4pm and 6pm. The application may thus schedule a decrease in animations at or near 4pm in order to increase application processing speed during happy hour. For another example, a merchant application may store information indicating that Black Friday is a busy shopping day. The application may thus schedule a decrease in animations on or before an opening time for the merchant on Black Friday. Thus, the merchant application may increase the processing speed during busy shopping times, allowing the merchant to process an increased number of transactions.

[0020] Additionally or alternatively, the determination to increase the processing speed may be reactive. In such examples, the determination to increase processing speed may be based on pre-determined user-action criteria (e.g., a rate of input events, input events over a period, a rate of transactions, an average time between transactions, a change in sub-user, etc.). In various examples, the user-action criteria may be determined based on a type of user, a location of the user, or other user information. In some examples, the user-action criteria may be determined by one or more user-specified criteria. In such examples, the user-specified criteria may be stored in a user profile, and may be updated by the user periodically.

[0021] In various examples, the application may monitor user-actions via the user interface to determine to increase a processing speed. For example, the application may calculate an input event rate, and may determine the input event rate exceeds a threshold number of touches per second per minute. For another example, the application may calculate a transaction rate (e.g., a number of times the application processes a transaction over a period) and determine that the transaction rate exceeds a threshold rate.

[0022] In various examples, the application may determine to increase the processing speed based on input from one or more components (e.g., a card reader, a camera, a sensor, etc.) internal and/or external to the mobile device. For example, an application may determine to increase the processing speed based on an amount of time between swipes or inserts of a payment instrument in a card reader coupled to a mobile device. For another example, an application may determine to increase the processing speed based on an amount of activity sensed via a camera and/or other sensors internal and/or external to the mobile device. [0023] At 106, the application reduces the amount of animation (e.g., animation level) associated with the user interface in order to increase the processing speed of the application (e.g., to process a transaction faster). To reduce the amount of animation, or the animation level, the application may disable one or more animations associated with the application.

[0024] In various examples, the reduction of animation may be applied throughout an application. In some examples, the reduction of animation may be applet specific. In such examples, a reduction in the animation level of an applet may apply to one or more applets of the application, but may not apply to other applets of the application. For example, a merchant application with a hostess applet, a wait-staff applet, and a cook applet may reduce an animation level of the wait-staff applet and the cook applet, but may maintain the animation level of the hostess applet.

[0025] In some examples, the reduction of animation may be user-specific. Thus, depending on the user currently using the application (e.g., the user logged in as using the application), the reduction of animation may be a greater or lesser reduction. For example, an experienced employee may be confident in processing transactions with little or no animation. Thus, the reduction of animation may drop to zero when the experienced employee is operating the POS device. Conversely, a new employee may not be capable of processing transactions without a minimum amount of animation. Thus, the reduction of animation with the new employee may not be as significant as the reduction of animation with an experienced employee.

[0026] Additionally or alternatively, the reduction of animation may include a combination of one or more previously independent animations and/or displays. For example, for a merchant application, the reduction of animation may include combining a tip page and a signature page.

[0027] FIG. IB continues the illustration of the process 100 and, at 108, the application determines to decrease the processing speed.

[0028] In various examples, the determination to decrease the processing speed may be predictive. In such examples, the application and/or a data store of the mobile device may store user information, and may vary animations based on the desire to adjust the processing speed of the application. For example, a restauranteur's POS device may store information indicating an increase in transactions between 4pm and 6pm. After a decrease in animation at or near 4pm, the application may schedule an increase in animations (e.g., decrease in processing speed) at or near 6pm in order to increase the amount of animation or chrome near the end of happy hour. The application may thus provide an enhanced user experience at a time when a processing speed may not be as important to the restauranteur as during a busy time of day. For another example, a merchant application may store information indicating that Black Friday is a busy shopping day. After decreasing animations to increase transaction processing capabilities during Black Friday, the application may schedule an increase in animations (e.g., decrease in processing speed) at or after a closing time for the merchant on Black Friday.

[0029] Additionally or alternatively, the determination to decrease the processing speed may be reactive. In such examples, the determination to decrease the processing speed may be based on pre-determined user-action criteria (e.g., a rate of input events, input events over a period, a rate of transactions, an average time between transactions, a change in sub-user, etc.). In various examples, the user-action criteria may be based on a type of user, a location of the user, or other user information. In some examples, the user-action criteria may be based on one or more user-specified criteria. In such examples, the user-specified criteria may be stored in a user profile, and may be updated by the user periodically.

[0030] In various examples, the application may monitor user-actions via the user interface to determine whether to increase animations. For example, the application may calculate an input event rate, and may determine the input event rate is less than a threshold number of touches per second per minute. For another example, the application may calculate a transaction rate (e.g., a number of times the application processes a transaction over a defined period) and determine that the transaction rate is less than a threshold rate.

[0031] In various examples, the application may receive input from one or more components internal and/or external to the mobile device to determine to increase animations. For example, a camera and/or other sensor may send an input of reduced activity in the area, resulting a determination to decrease a processing speed.

[0032] At 1 10, responsive to a determination to decrease a processing speed, the application may increase the amount of animation associated with the user interface. To increase the amount of animation, or the animation level, the application may enable one or more animations associated with the application. The one or more animations may be the same and/or different animations as those disabled at 106.

[0033] In various examples, the increase in animation may be applied throughout an application. In some examples, the increase in animation may be applet specific. In such examples, an increase in an animation level of the applet may apply to one or more applets of the application, but may not apply to other applets of the application. For example, a merchant application with a hostess applet, a wait-staff applet, and a cook applet may increase an animation level of the wait-staff applet and the cook applet, but may maintain the animation level of the hostess applet.

[0034] In some examples, the increase in animation may be user-specific. Thus, depending on the user operating the application on the mobile device (e.g., the user logged in as using the application), the increase in animation may be a greater or lesser reduction. For example, an experienced employee may be confident in processing transactions with little or no animation. Thus, the increase in animation may be at a lower level when the experienced employee is operating the mobile device. Conversely, the increase in animation with the new employee may be to a higher level than the increase in animation with an experienced employee.

[0035] FIG. 2 illustrates an example environment 200 that includes a merchant 202 operating a point-of-sale (POS) device 204 to process transactions between the merchant 202 and one or more customers 206.

[0036] The POS device 204 may include one or more processors 208, which can represent, for example, a CPU-type processing unit, a GPU-type processing unit, a field-programmable gate array (FPGA), another class of digital signal processor (DSP), or other hardware logic components that can, in some instances, be driven by a CPU. Additionally, the POS device 204 may include a memory 210, which can store instructions executable by the processor(s) 208. In various examples, the POS device 204 may include a memory 210, which can store instructions executable by external processing units, such as, for example, by an external CPU-type processing unit.

[0037] The POS device 204 may comprise any sort of mobile or non-mobile device that includes an instance of a merchant application 212 that executes on the respective device. The merchant application 212 may provide POS functionality to the POS device 204 to enable the merchant 202 (e.g., an owner, employee, individual user, etc.) to accept payments from customers. In some types of businesses, the POS device 204 may correspond to a store or other place of business of the merchant, and thus, may be a fixed location that typically does not change on a day-to-day basis. In other types of businesses, however, the POS device 204 may change from time to time, such as in the case that the merchant operates a food truck, is a street vendor, a cab driver, etc., or has an otherwise mobile business, e.g., in the case of merchants who sell items at buyer's homes, places of business, and so forth.

[0038] As used herein, a merchant 202 may include any business engaged in the offering of goods or services for acquisition by customers. Actions attributed to a merchant 202 may include actions performed by owners, employees, or other agents of the merchant 202 and thus no distinction is made herein unless specifically discussed. In addition, as used herein, a customer may include any entity that acquires goods or services from a merchant, such as by purchasing, renting, leasing, borrowing, licensing, or the like. Hereinafter, goods and/or services offered by merchants 202 may be referred to as items. Thus, a merchant 202 and a customer 206 may interact with each other to conduct a transaction in which the customer acquires an item from a merchant 202, and in return, the customer 206 provides payment to the merchant. A transaction may include a financial transaction for the acquisition of goods and/or services that is conducted between a customer 206 and a merchant 202.

[0039] In some examples, the merchant application 212 may comprise a merchant profile 214 configured to store merchant information (e.g., known busy times of the day, week, month and/or year, a merchant type, a merchant location, transaction history, and other information relevant to the merchant), sub-user information (e.g., profiles for employees of the merchant), a demonstration profile, a training profile, and other application data. In the illustrative example, the merchant profile 214 is stored in the merchant application 212 on a memory 210. In other examples, the merchant profile 214 may be stored in a separate data store on the memory 210 or a different memory on the POS device 204.

[0040] In various examples, the application 212 may include an animation module 216 and a transaction module 218. Though illustrated as two separate modules, it is understood that the application may combine the functionality of the two modules into one module and/or API, or split the functionality into a greater number of modules and/or APIs.

[0041] In various examples, animation module 216 may include logic to program the one or more processors 208 to present animations on a display of the POS device 204. The animations may comprise movements (e.g., sliding, fading in, fading out, dropping down, raising up, rotating, etc.), sounds, menus, and/or other information pertaining to the function and/or aesthetics of the application and/or applet. In various examples, the animations may provide information to the user and/or enhance a user experience of the POS device 204. Thus, the animations may be beneficial and desirable to the user. The number of animations (e.g., animation level), however, may have an inverse relationship with the processing speed of the application (e.g., time to process a transaction). For example, an application set to the demo mode (e.g., high animation level) may experience a slower processing speed than the application set to a low animation level. Thus, in some examples, to realize the benefit of the animations, the user may need to sacrifice some processing speed.

[0042] In various examples, the animation module 216 may set a baseline animation level. The baseline animation level may be determined by the application service provider (e.g., a transaction processing service), an application developer, and/or information stored in the merchant profile 214. The information affecting the baseline animation level may include a merchant type, an employee profile, a demonstration profile, and/or a training profile. For example, an experienced employee who may not need the extra information provided by the animation may prefer to set a baseline animation to a low level (e.g., less animation). For another example, a new employee may prefer to use a training profile with a high level of animation geared toward teaching as a baseline, in order to view more information through the animations, and/or to slow the transaction process.

[0043] In various examples, the animation module 216 may adjust the animation level from the baseline level to a second level. The second level may be lower (e.g., fewer animation) or higher (e.g., more animations). In various examples, the animation module 216 may adjust the animation level based on a recognized desire to increase a processing speed of the merchant application 212. The desire to increase the processing speed may be based on a known period of high transaction activity for the merchant, a recognized period of high transaction activity for the merchant, and the like. The animation module 216 may adjust the animation level in a predictive mode and/or a reactive mode.

[0044] In a predictive mode, the animation module 216 may determine that the time is approaching a known period of high transaction activity. In various examples, the known period of high transaction activity may be stored as merchant information in the merchant profile 214 (e.g., known busy times of the day, week, month and/or year). The known period of high transaction activity may be based on merchant input of known busy times, and/or a merchant type. For example, a coffee shop merchant profile may include a known period of high transaction activity from 7am- 10am, Monday through Friday.

[0045] In some examples, the known period of high transaction activity may be based on transaction history. In such examples, the animation module 216 may monitor the transaction history over a period of time (e.g., day, week, month, year, etc.), and may determine that a transaction rate exceeded a threshold rate at a point in time and/or over a span of time during the period. The threshold rate may be determined by the application service provider, the application developer, and/or the merchant. Responsive to the determination of exceeding the threshold rate at the point in time and/or over the span of time, the merchant profile 214 may store the point in time and/or the span of time as a known period of high transaction activity.

[0046] In the predictive mode, the animation module 216 may decrease the animation level of the application and/or an applet of the application at or prior to the known period of high transaction activity. In various examples, the animation module 216 may disable one or more animations associated with the merchant application 212. In some examples, the animation module 216 may disable one or more animations of the applet of the merchant application 212, while maintaining the number of animations in other applets. In various examples, the animation module 216 may combine of one or more previously independent animations and/or displays. For example, for a merchant application, the reduction of animation may include combining a tip page and a signature page.

[0047] The number of disabled and/or combined animations may be based on multiple criteria, such as, for example, an employee using the device, a merchant type, a merchant input setting, a degree of known transaction activity. For example, a merchant operating a bar may have saved, in the merchant profile, known periods of high transactions between 4pm and 6pm, Monday through Friday, for happy hour, and Thursday evenings between 10pm and lam. Because the Thursday evening crowd is more active than the happy hour crowd, the animation module and/or the merchant profile may recognize a higher transaction rate during the period of high transactions on Thursday evening. Consequently, the animation module may reduce more animations Thursday evening than it does during happy hour. For another example, a particular merchant may have set, in the merchant profile a busy transaction period level of animation. The merchant application associated with the particular merchant, via the animation module, may determine a known period of high transaction activity is approaching and may adjust the animation to the busy transaction period level of animation.

[0048] In some examples, the animation module 216 may disable some animations, but may maintain other animations determined to be important to the merchant 202. As such, certain animations may be maintained even during known periods of high transaction activity. In some examples, the animations that are important to the merchant 202 may be stored in the merchant profile 214 as set by the application service provider, the application developer, and/or the merchant. Additionally or alternatively, one or more tasks of the application may maintain the animation level. For example, due to an increased likelihood of error while splitting tickets between multiple customers, a restauranteur application may maintain animations associated with a split ticket task to assist the user in correctly processing the split ticket transaction.

[0049] In various examples, the animation module 216 may adjust the animation level in the reactive mode. In such examples, the animation module 216 may adjust the animation level based on inputs from one or more input/output (I/O) interfaces 220. The I/O interfaces 220 can include peripheral input devices (e.g., a keyboard, a mouse, a pen, a game controller, a voice input device, a touch input device, a gestural input device, and the like).

[0050] In some examples, the animation module 216 may adjust the animation based on pre- defined user-action criteria associated with the I/O interfaces 220 (e.g., a rate of input events, input events over a period, a rate of transactions, an average time between transactions, a change in employee, etc.). In such examples, the user-action criteria may be stored in the merchant profile 214, and monitored by the animation module 216. In various examples, the user-action criteria may be based on the type of user, a location of the user, Internet connection speed, and/or other user information. For example, a particular merchant type may include a threshold rate of input events such that if a number of input events per second per minute exceeds the threshold, the animation module disables one or more animations. For another example, the user-action criteria, such as a rate of transactions threshold, may change based on an Internet connection speed. Thus, if the Internet connection speed drops below a threshold, the rate of transaction threshold may be lower than with a faster Internet connection speed.

[0051] In various examples, the application service provider and/or the application developer may determine the user-action criteria, such as the threshold rate of input events or rate of transactions. In some examples, the user-action criteria may be based on one or more user-specified criteria. In such examples, the user-specified criteria may be stored in the merchant profile and may be updated by the user. For example, the merchant may input a threshold rate of input events, rate of transactions, an average time between transactions and various other user-action criteria as desired. [0052] In various examples, the animation module 216 may adjust the animation level of the merchant application 212 based on instructions from an application service provider. In such examples, the application service provider may send instructions via a network interface, for the animation module 216 to increase and/or decrease the animation level of the merchant application 212. The application service provider may determine an animation adjustment in a predictive and/or reactive manner. For example, the application service provider may store a merchant profile with transaction history data, and may determine that a period of known high transaction activity is approaching. Based on the determination, the application service provider may send an instruction to the animation module 216 to decrease the animation level.

[0053] In various examples, the animation module 216 may monitor the merchant application 210 to determine that the merchant application 210 may increase the animation level (e.g., decrease the processing speed). The determination to increase the animation level may be based on recognizing that a known period of relatively high transaction activity has passed and/or by monitoring user-actions via the I/O interfaces 220. For example, the animation module 216 may calculate an input event rate and/or a transaction rate, and may determine the input event rate and/or the transaction rate is less than a threshold number of touches per second per minute. For another example, the animation module 216 may recognize that the known period of high transaction activity was from 4pm to 6pm, and a current time is after 6pm.

[0054] Based on the determination to increase animation level, the animation module 216 may enable one or more animations. In various examples, the animation module 216 may resume the baseline animation level for the merchant and/or the employee. In some examples, the animation module 216 may set an animation level above and/or below the baseline animation level.

[0055] In various examples, the increase in animation level may be incremental, such that animation level adjusts over time. In such examples, the animation module 216 may increase animations by engaging one or more animations periodically until the desired number of animations are capable of being presented. For example, an application may have a reduced animation level of 2 and a baseline animation level of 6. An animation module corresponding to the application may increase the animation level to 3 for a first period of time, then to 4 for a second period of time, and then to five for a third period of time, before reaching the baseline animation level of 6.

[0056] As illustrated in FIG. 2, the POS device 204 may include a transaction module 218. In various examples, the transaction module 218 may include logic to program the one or more processors 208 to process transactions between the merchant 202 and one or more customers 206. In some examples, the transaction module 218 may receive transaction information (e.g., payment amount, payment type (e.g., credit card, debit card, gift card, cash), card number tip, split ticket, etc., and may process the transaction accordingly. For example, a merchant may input a number of a payment instrument (e.g., credit card, debit card, gift card, etc.) associated with the customer. The input may be manual, or electronic through a magnetic strip card reader, a chip card reader, a proximity device, and the like. Based on the input, the POS device may send the transaction information to a payment service to complete the transaction. The payment service may send an approval for the transaction to the POS device, and the merchant and the customer may complete the transaction.

[0057] FIG. 3 illustrates an example display 300 of a POS device with a touch-screen user interface presenting two levels of animation in an application. In the illustrative example, the application is a merchant application for processing transactions between a coffee shop merchant and one or more customers.

[0058] At 302, the display 300 operates at a first animation level. In some examples, the first animation level may be a baseline animation level. The baseline animation level may be based on a type of merchant, an employee of the merchant operating the POS device, or other factors. The first animation level may be a number of animations enabled for display in the application and/or an applet of the application. The animations may comprise movements of graphical items (e.g., sliding, fading in, fading out, dropping down, raising up, rotating a graphical icon, graphical menus, or other items), sounds, and/or other information pertaining to the function and/or aesthetics of the application and/or applet.

[0059] A user (e.g., an employee of the merchant) may tap the display 300 while the display is operating at the first animation level. In the illustrative example, the first tap is on an icon, indicating that a customer would like a coffee. In response to the first tap, a first animation may be presented on the display. In the illustrative example, the first animation slides in from a right hand side of the display and comprises a coffee menu. In other examples, the first animation may comprise any other movement of the coffee menu.

[0060] The user may select the coffee desired by the customer, such as a latte, which may trigger a second animation. In the illustrative example, the second animation slides down to a space below the first menu and comprises a milk menu for the latte. The user may then select the desired milk, which may trigger a third animation. As illustrated, the third animation slides to a left hand side of the screen and comprises additional options for the latte. Therefore, in the illustrative example, the coffee order may include the processing time associated with four taps by the user, and three animations. In other examples, the baseline animation level may comprise more or less animations of a similar or a different type of animation.

[0061] At 304, the display 300 operates at a second animation level. In various examples, the second animation level may be set based on one or more criteria stored in a merchant profile and/or determined by an application service provider and/or an application developer. The second animation level may include fewer animations than the first animation level, thereby increasing a processing speed of the application. In some examples, the adjustment to the second animation level may include disengaging one or more animations. In various examples, the second animation level may include combining one or more previously independent animations and/or displays. For example, for a merchant application, the second animation level may include combining a tip page and a signature page.

[0062] As illustrated in FIG. 3, the second animation level results in the animation module disabling the movement of various menus across the display 300. Additionally or alternatively, the second animation level may result in the animation module disabling one or more sounds or other animations associated with the merchant application.

[0063] The user may tap the display 300 while the application is operating at the second animation level, to select various options. In the illustrative example, the second animation level setting includes three menus displayed on the screen 300. The user selects a latte with 2% milk for the customer with no additional options. The processing time for the coffee order while the application is operating at the second animation level may be the time required for the user to tap the display three times. Because the coffee order at 304 requires only three taps to process, the processing time of the coffee order at 304 may be less than that at 302, which included the time for four taps and three animations.

[0064] FIGS. 4-6 illustrate flow diagrams of processes for presenting animations of an application operating on a computing device. Processes 400, 500, and 600 are illustrated as collections of blocks in logical flow diagrams, which represent a sequence of operations, some or all of which can be implemented in hardware, software or a combination thereof. In the context of software, the blocks may represent computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, program the processors to perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures and the like that perform particular functions or implement particular data types. The order in which the blocks are described should not be construed as a limitation. Any number of the described blocks can be combined in any order and/or in parallel to implement the process, or alternative processes, and not all of the blocks need be executed. For discussion purposes, the processes are described with reference to the environments, architectures and systems described in the examples herein, although the processes may be implemented in a wide variety of other environments, architectures and systems.

[0065] FIG. 4 illustrates a flow diagram of a process 400 for managing animations of an application on a computing device. At 402, a device, such as a POS device, presents a user interface of an application operating at a first animation level. In various examples, the user interface may comprise a touch-screen interface presented on a display of the device. In some examples, the user interface may comprise a cursor of external input device, such as a keyboard or a mouse, on the display of the device.

[0066] In various examples, the first animation level may be a baseline animation level. The baseline animation level may be based on a type of merchant, an employee of the merchant operating the device, or other factors. The first animation level may be a number of animations enabled for display in the application and/or an applet of the application. The animations may comprise movements of graphical items (e.g., sliding, fading in, fading out, dropping down, raising up, rotating a graphical icon, graphical menus, or other items), sounds, and/or other information pertaining to the function and/or aesthetics of the application and/or the applet.

[0067] At 404, the device may receive inputs via the user interface. The inputs may be input events (e.g., taps), clicks of a mouse or other input device, and/or other inputs indicating a selection.

[0068] At 406, the device may determine whether to increase a processing speed. In various examples, the device may monitor one or more parameters associated with the user interface and/or the application, and, based on the one or more parameters, may determine whether to increase the processing speed (e.g., the application may be able to process more transactions). In various examples, the determination may be based on a calculation of a transaction rate, an input event rate, input from a component of the device and/or a second device, or other parameter rate associated with the application. In some examples, the determination may be based on a known period of high usage of the application, such as a known period of high transaction activity.

[0069] At 408, the device determines to not increase the processing speed, and maintains the animation level. The determination to not increase the processing speed may be based on a failure of a parameter rate to exceed a threshold value. The threshold values may be determined by the user (e.g., the merchant), an application developer, and/or the application service provider. In various examples, the threshold values may be saved to a user profile, and updated by the user and/or the application service.

[0070] At 410, the device determines to increase the processing speed, and consequently disables one or more animations associated with the application. The determination to increase the processing speed may be based on a parameter rate exceeding a threshold and/or a determination of an approaching period of high usage of the application.

[0071] In various examples, the device may disable some animations while maintaining other animations. In some examples, the animations which are maintained may be deemed important to the user and/or the application, such as those deemed important for accuracy of use.

[0072] In some examples, the device may disable animations based on an amount of exceedance a parameter rate. In such examples, the device may disable a first set of animations for a parameter at or slightly above the threshold value, whereas the device may disable a second set of animations (e.g., a higher number of animations) for the parameter at a higher amount (e.g., at or above a threshold amount) above the threshold value.

[0073] FIG. 5 illustrates a flow diagram of a process 500 for managing animations of an application on a computing device.

[0074] At 502, the device sets an initial animation level in a user interface of a merchant application. In various examples, the initial animation level may be a baseline animation level. The initial animation level may be determined by merchant information stored on a merchant profile, including, but not limited to, a merchant type, an employee profile, a baseline desired processing speed, a demonstration level, and a training profile.

[0075] At 504, the device may process transactions via the merchant application using the user interface. The transaction processing may include calculating an order, providing a total amount due for the order, receiving payment information, calculating change, and/or communicating with a transaction processing service for transaction approval.

[0076] At 506, the device may calculate a transaction rate over a period. The period may comprise 5 minutes, 10 minutes, 15 minutes, 30 minutes, or another interval of time as determined by a user, the application, an application developer, and/or the application service provider.

[0077] At 508, the device determines if the transaction rate exceeds a threshold rate for the application and/or an applet of the application. The threshold rate may be determined by the merchant, the application, the application developer, and/or the application service provider.

In various examples, the threshold rate may be saved in the merchant profile. In such examples, the threshold rate may be based on the employee operating the device. Additionally, the threshold rate may be updated by the merchant, an employee of the merchant, and/or the application service.

[0078] At 510, the device determines that the transaction rate does not exceed a threshold, and maintains the animation level.

[0079] At 512, the device determines that the transaction rate does exceed a threshold rate, and adjusts the animation level. In various examples, the device adjusts the animation level by disabling one or more animations. In various examples, the animation level may be adjusted based on the amount of exceedance of the threshold rate. In some examples, the animation level may be adjusted to a pre -determined animation level. In such examples, the adjustment may include disabling a pre-determined set and/or number of animations.

[0080] In various examples, information about the animation level adjustment may be saved in the merchant profile . The information may include a pre-determined set of animations to disable, animations to not disable, employee information (e.g., a minimum number and/or set of animations necessary for the employee to process transactions), etc. [0081] At 514, the device determines whether the transaction rate has dropped below the threshold rate.

[0082] At 516, the device determines that the transaction rate has not dropped below the threshold rate (e.g., still exceeds the threshold rate), and maintains the reduced animation level.

[0083] At 518, the device determines the transaction rate has dropped below the threshold rate, and adjusts the animation level. In various examples, the device may adjust the animation level to the initial animation level. In some examples, the device may adjust the animation level to a baseline level for the employee operating the device.

[0084] In various examples, the device may adjust the animation level incrementally, such that animation level adjusts over time. In such examples, the animation level may increase animations by engaging one or more animations periodically until the desired number of animations are capable of being presented. For example, an application may have a reduced animation level of 2 and a baseline animation level of 6. An animation module corresponding to the application may increase the animation level to 3 for a first period of time, then to 4 for a second period of time, and then to five for a third period of time, before reaching the baseline animation level of 6.

[0085] FIG. 6 illustrates a flow diagram of a process 600 for managing animations on a mobile device by a transaction processing service.

[0086] At 602, a transaction processing service may receive transaction data from a POS device. The transaction data may include an amount of the transaction and payment instrument information.

[0087] At 604, the transaction processing service may calculate a transaction rate over a period. The period may comprise 5 minutes, 10 minutes, 15 minutes, 30 minutes, or another interval of time as determined by a user, the application, the application developer, and/or an application service provider.

[0088] At 606, the transaction processing service may determine that the transaction rate exceeds a threshold rate. The threshold rate may be a predefined number of transactions over a period, as set by the user, the application, the application developer, and/or the application service provider.

[0089] At 608, the transaction processing service may send instructions to the POS device to disable one or more animations associated with the application and/or an applet of the application. The animations of the one or more disabled animations may be determined by the user, the application, the application developer, and/or by the transaction processing service.

[0090] FIG. 7 illustrates select example components of an example POS device 700 according to some implementations. The POS device 700 may be any suitable type of computing device, e.g., mobile, semi-mobile, semi-stationary, or stationary. Some examples of the POS device 700 may include tablet computing devices; smart phones and mobile communication devices; laptops, netbooks and other portable computers or semi-portable computers; desktop computing devices, terminal computing devices and other semi -stationary or stationary computing devices; dedicated register devices; wearable computing devices, or other body-mounted computing devices; or other computing devices capable of sending communications and performing the functions according to the techniques described herein.

[0091] In the illustrated example, the POS device 700 includes at least one processor 702, which may be processor 208, at least one memory 704, such as memory 210, a display 706, one or more input/output (I/O) interfaces 708, such as I/O interfaces 220, one or more network interfaces 710, at least one card reader 712, at least one location component 714, and at least one power source 716. Each processor 702 may itself comprise one or more processors or processing cores. For example, the processor 702 can be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. In some cases, the processor 702 may be one or more hardware processors and/or logic circuits of any suitable type specifically programmed or configured to execute the algorithms and processes described herein. The processor 702 can be configured to fetch and execute computer-readable processor-executable instructions stored in the memory 704.

[0092] Depending on the configuration of the POS device 700, the memory 704 may be an example of tangible non-transitory computer storage media and may include volatile and nonvolatile memory and/or removable and non-removable media implemented in any type of technology for storage of information such as computer-readable processor-executable instructions, data structures, program modules or other data. The memory 704 may include, but is not limited to, RAM, ROM, EEPROM, flash memory, solid-state storage, magnetic disk storage, optical storage, and/or other computer-readable media technology. Further, in some cases, the POS device 700 may access external storage, such as RAID storage systems, storage arrays, network attached storage, storage area networks, cloud storage, or any other medium that can be used to store information and that can be accessed by the processor 702 directly or through another computing device or network. Accordingly, the memory 704 may be computer storage media able to store instructions, modules or components that may be executed by the processor 702. Further, when mentioned, non-transitory computer-readable media exclude media such as energy, carrier signals, electromagnetic waves, and signals per se.

[0093] The memory 704 may be used to store and maintain any number of functional components that are executable by the processor 702. In some implementations, these functional components comprise instructions or programs that are executable by the processor 702 and that, when executed, implement operational logic for performing the actions and services attributed above to the POS device 700. Functional components of the POS device 700 stored in the memory 704 may include a merchant application 718, discussed above . The merchant application 718 may present an interface on the POS device 700 to enable the merchant to conduct transactions, select items, display animations, receive payments, and so forth, as well as communicating with a payment service for processing payments and sending transaction information. Further, the merchant application 718 may present an interface to enable the merchant to manage a merchant profile 712, a merchant account, and the like. Additional functional components may include an operating system 720 for controlling and managing various functions of the POS device 700 and for enabling basic user interactions with the POS device 700. The memory 704 may also store transaction data 722 that is received based on the merchant associated with the POS device 700 engaging in various transactions with customers. The memory 704 may also store various animation levels of the merchant application 718, such as a demonstration animation level, training animation levels, baseline animation levels, minimum animation levels, and the like.

[0094] In addition, the memory 704 may also store data, data structures and the like, that are used by the functional components. For example, this data may include item information that includes information about the items offered by the merchant, which may include images of the items, descriptions of the items, prices of the items, and so forth. Depending on the type of the POS device 700, the memory 704 may also optionally include other functional components and data, which may include programs, drivers, etc., and the data used or generated by the functional components. Further, the POS device 700 may include many other logical, programmatic and physical components, of which those described are merely examples that are related to the discussion herein.

[0095] The one or more network interface(s) 710 may include one or more interfaces and hardware components for enabling communication with various other devices over the network or directly. For example, network interface(s) 710 may enable communication through one or more of the Internet, cable networks, cellular networks, wireless networks (e.g., Wi-Fi) and wired networks, as well as close-range communications such as Bluetooth®, Bluetooth® low energy, and the like, as additionally enumerated elsewhere herein.

[0096] FIG. 7 further illustrates that the POS device 700 may include the display 706 mentioned above. Depending on the type of computing device used as the POS device 700, the display 706 may employ any suitable display technology. For example, the display 706 may be a liquid crystal display, a plasma display, a light emitting diode display, an OLED (organic light-emitting diode) display, an electronic paper display, or any other suitable type of display able to present digital content thereon. In some examples, the display 706 may have a touch sensor associated with the display 706 to provide a touchscreen display configured to receive touch inputs for enabling interaction with a graphical user interface presented on the display 706. Accordingly, implementations herein are not limited to any particular display technology.

[0097] The I/O interfaces 708, meanwhile, may include speakers, a microphone, a camera, and various user controls (e.g., buttons, a joystick, a keyboard, a keypad, etc.), a haptic output device, and so forth.

[0098] In addition, the POS device 700 may include or may be connectable to a payment instrument reader 712. In some examples, the reader 712 may plug in to a port in the merchant device, such as a microphone/headphone port, a data port, or other suitable port. In other instances, the reader 712 is integral with the entire POS device 700. The reader may include a read head for reading a magnetic strip, a chip and/or a proximity sensor of a payment card, and further may include encryption technology for encrypting the information read from the magnetic strip, the chip and/or the proximity. Alternatively, numerous other types of card readers may be employed with the POS devices 700 herein, depending on the type and configuration of a particular POS device 700.

[0099] The location component 714 may include a GPS device able to indicate location information, or the location component 714 may comprise another other location-based sensor. The POS device 700 may also include one or more additional sensors (not shown), such as an accelerometer, gyroscope, compass, proximity sensor, and the like. Additionally, the POS device 700 may include various other components that are not shown, examples of which include removable storage, a power control unit, and so forth.

[0100] Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claims. EXAMPLE CLAUSES

[0101] A: A merchant point-of-sale (POS) device comprising: a display; one or more processors; one or more non-transitory computer-readable media storing instructions executable by the one or more processors, wherein the instructions program the one or more processors to perform acts comprising: presenting, on the display, a user interface of an application configured to facilitate payment transactions between a merchant associated with the merchant POS device and one or more customers, the user interface including one or more animations; receiving a plurality of inputs via the user interface of the application, the plurality of inputs being associated with the payment transactions; calculating a number of transactions processed over a first period of time; determining that the number of transactions is above a threshold number; based at least in part on the determining that the number of transactions is above the minimum threshold number, disabling at least one of the one or more animations of the user interface. [0102] B: A merchant POS device as paragraph A describes, the acts further comprising: calculating a number of transactions processed over a second period of time; determining that the number of transactions is less than the threshold number; and based at least in part on the determining that the number of transactions is less than the threshold number, enabling the at least one of the one or more animations of the user interface.

[0103] C: A merchant POS device as either of clause A or B describes, the acts further comprising prior to presenting the user interface of the application, setting an initial number of animations for the user interface based at least in part on a merchant type.

[0104] D: A merchant POS device any of paragraphs A-C describe, the acts further comprising: prior to presenting the user interface of the application, selecting an employee profile from a merchant profile database, the employee profile indicating an experience level of the employee; and setting an initial number of animations for the user interface based at least in part on the employee profile.

[0105] E: A merchant POS device any of paragraphs A-D describes, wherein the application includes a first applet and a second applet, and the disabling the at least one of the one or more animations of the user interface includes disabling animations of the first applet and maintaining animations of the second applet as enabled.

[0106] F: A merchant POS device any of paragraphs A-E describes, wherein the one or more animations comprise at least one of an audio presentation or a visual presentation.

[0107] G: A method comprising: presenting, on a display, a user interface of an application, the user interface including one or more animations; receiving, by a merchant point-of-sale device, a plurality of inputs via the user interface of the application; determining to increase a processing speed of the application based at least in part on the plurality of inputs; based at least in part on the determining to increase the processing speed of the application, disabling at least one of the one or more animations of the user interface.

[0108] H: A method as paragraph G describes, wherein each of the plurality of inputs are associated with a payment transaction.

[0109] I: A method as either of paragraphs G or H describes, wherein the determining to increase the processing speed for the application comprises: calculating a rate of processing transactions over time; and determining that the rate of processing transactions over time exceeds a threshold rate.

[0110] J: A method as any of paragraphs G-I describes, wherein the determining to increase the processing speed for the application comprises: calculating a rate of processing input events over time, the input events including selections on the display; and determining that the rate of processing input events exceeds a threshold rate .

[0111] K: A method as any of paragraphs G-J describes, wherein the determining to increase the processing speed for the application is based at least in part on one or more of the following: a time of day; a day of the week; a merchant location; a merchant type; a user of the merchant point-of-sale device; or an applet of the application being presented.

[0112] L: A method as any of paragraphs G-K describes, wherein the application is configured to facilitate payment transactions between a merchant and one or more customers.

[0113] M: A method as any of paragraphs G-L describes, further comprising prior to presenting the user interface of the application, setting an initial number of animations for the user interface based at least in part on a merchant type.

[0114] N: A method as any of paragraphs G-J describes, further comprising: determining to decrease the processing speed for the application; and enabling at least one of the animations of the user interface .

[0115] O: A method as any of paragraphs G-N describes, wherein each of the one or more animations includes one of or more of: a picture; a drop-down menu; a sound; or a response to an input event.

[0116] P: A system or device comprising: a processor; and a computer-readable medium coupled to the processor, the computer-readable medium including instructions to configure the processor to perform a method as any of paragraphs G-0 describes.

[0117] Q: A device or system comprising: means for processing; and means for storing coupled to the means for processing, the means for storing including storing instructions to configure one or more devices to perform a method as any of paragraphs G-0 describes.

[0118] R: A system comprising: one or more processors; one or more non-transitory computer-readable media storing instructions executable by the one or more processors, wherein the instructions program the one or more processors to perform acts comprising: displaying a first number of animations in a user interface associated with an application; determining to increase a processing speed of the application; based at least in part on the determining to increase the processing speed of the application, displaying a second number of animation in the user interface, wherein the second number of animations is less than the first number of animations.

[0119] S. A system as paragraph R describes, wherein the determining to increase the processing speed of the application is based at least in part on a time of day.

[0120] T: A system as either of paragraphs R or S describes, wherein the determining to increase the processing speed of the application is based at least in part on a user profile.

[0121] U: A system as any of paragraphs R-T describes, wherein the acts further comprise: receiving a plurality of inputs via the user interface of the application; and the determining to increase the processing speed of the application includes: calculating a rate of processing the plurality of inputs over time; and determining that the rate of processing the plurality of inputs exceeds a threshold rate. [0122] V: A system as any of paragraphs R-T describes, wherein the acts further comprise: processing a plurality of transactions via the application; and the determining to increase the processing speed of the application includes: calculating a rate of processing the plurality of transactions over time; and determining that the rate of processing the plurality of transactions exceeds a threshold rate .

[0123] W: A system as any of paragraphs R-V describes, wherein the acts further comprise: determining that the processing speed is above a threshold speed for the application; and displaying the first number of animations in the user interface.

[0124] X: A computer-readable medium having thereon computer-executable instructions that responsive to execution configure a computer to perform a system as any one of paragraphs R-W describes.