# US 12,113,873 B2 · Techniques for analyzing the proficiency of users of software applications in real-time

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,113,873 B2
- Document ID: US12113873B2
- Status: Granted
- Kind: B2
- Application number: 17/069,334
- Filed: 2020-10-13
- Published: 2021-05-20
- Granted: 2024-10-08
- Earliest claimed: 2019-11-15
- Assignees: Autodesk, Inc.
- Applicants: Autodesk, Inc.
- Inventors: Justin Frank Matejka; Fraser Anderson; George Fitzmaurice; Tovi Grossman; Warren Karl Schrey; Christian Smitherman
- Web page: https://patentgrep.com/patent/US12113873B2

## CPC

- H04L 67/306: User profiles
- G06F 3/14: Digital output to display device {; Cooperation and interconnection of the display device with other functional units}
- G06F 9/451: Execution arrangements for user interfaces
- G06F 11/3438: {monitoring of user actions (tracking the activity of the user H04L67/535)}
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- G06F 2201/805: Real-time
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A command map GUI that illustrates command usage patterns of one or more entities. A server receives and stores command usage data from a plurality of users/clients, each user/client executing a software application having a set of commands. A current user/client displays, via a GUI, graphical representations of the command usage data received from the server. The server receives new command usage data from a user/client included in the one or more entities. In response, the server automatically updates command usage data for the one or more entities, pushes the updated command usage data to the current user/client, and causes the GUI to display graphical representations of the updated command usage data. Thus, the command usage data of the one or more entities is automatically updated and displayed in the GUI in real-time or near real-time as new commands are continually invoked by users in the one or more entities.

## Claims

### Claim 1

A computer-implemented method, comprising:
receiving, at a client device and from a server machine, initial command usage data for a first user entity that is executing commands on the client device and a second user entity that is executing commands on a second client device, the initial command usage data indicating how much the first user entity and the second user entity have used a set of commands of a software application, wherein the initial command usage data includes a number of times the first user entity has invoked a first command and a number of times the second user entity has invoked the first command;
displaying, via a command map graphical user interface (GUI), the command map GUI comprising a circle chart comprising one or more graphical representations of the number of times the first user entity has invoked the first command and one or more graphical representations of the number of times the second user entity has invoked the first command;
receiving, at the client device and from the server machine, updated command usage data for the first user entity and the second user entity that has been generated by the server machine based on a first new command that is executed by the second user entity on the second client device and has been pushed by the server machine over a first communication network to the client device in real-time or near real-time upon execution of the first new command; and
in response to receiving the updated command usage data:
generating a first value indicating a level of proficiency of the second user entity based on a command usage pattern associated with the updated command usage data;
generating a second value indicating a level of proficiency of the first user entity based on a command usage pattern of the first user associated with the updated command usage data, the second value indicating a greater level of proficiency than the first value;
automatically generating and displaying, by the client device using the generated first value and the second value, one or more graphical representations of the updated command usage data via the command map GUI in real-time or near real-time, wherein the one or more graphical representations of the updated command usage data visually illustrate the first value indicating the level of proficiency of the second user entity, wherein the second value is displayed as a second point that is a greater distance from a center of the circle chart than a first point corresponding to the first value.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein new command usage data is generated for a new invocation of a second command included in the set of commands by a user included in the first user entity.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
receiving, via the command map GUI, a selection of a time period, wherein an end time of the time period is subsequent to a current time; and
repeatedly receiving, at the client device, additional updated command usage data for the first user entity and the second user entity until the end time of the time period.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the first user entity comprises an individual user or a plurality of users.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the initial command usage data further indicates how much the second user entity has used the set of commands of the software application, the method further comprising:
receiving, at the client device, next updated command usage data for the first user entity and the second user entity that has been pushed to the client device and has been generated based on next command usage data not included in the updated command usage data; and
in response to receiving the next updated command usage data, automatically displaying one or more graphical representations of the next updated command usage data via the command map GUI.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein automatically displaying one or more graphical representations of the updated command usage data via the command map GUI comprises:
displaying a different data point for each command included in the set of commands, wherein a first data point represents the first command, and new command usage data is associated with the first data point and the first command; and
in response to receiving the updated command usage data, displaying the first data point with a highlighted appearance.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6, wherein displaying the first data point with the highlighted appearance comprises at least one of displaying an animation adjacent to the first data point or displaying command text adjacent to the first data point that specifies the first command.

### Claim 8 (depends on 6)

The computer-implemented method of claim 6, wherein displaying the first data point with the highlighted appearance comprises displaying the first data point in a plurality of stages, wherein each stage displays the first data point with a different highlighted appearance relative to one or more other stages in the plurality of stages.

### Claim 9

One or more non-transitory computer-readable media including instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of:
receiving, at a client device and from a server machine, initial command usage data for a first user entity that is executing commands on the client device and a second user entity that is executing commands on a second client device, the initial command usage data indicating how much the first user entity and the second user entity have used a set of commands of a software application, wherein the initial command usage data includes a number of times the first user entity has invoked a first command and a number of times the second user entity has invoked the first command;
displaying, via a command map graphical user interface (GUI), the command map GUI comprising a circle chart comprising one or more graphical representations of the number of times the first user entity has invoked the first command and one or more graphical representations of the number of times the second user entity has invoked the first command;
receiving, at the client device and from the server machine, updated command usage data for the first user entity and the second user entity that has been generated by the server machine based on a first new command that is executed by the second user entity on the second client device and has been pushed by the server machine over a first communication network to the client device in real-time or near real-time upon execution of the first new command; and
in response to receiving the updated command usage data:
generating a first value indicating a level of proficiency of the second user entity based on a command usage pattern associated with the updated command usage data;
generating a second value indicating a level of proficiency of the first user entity based on a command usage pattern of the first user associated with the updated command usage data, the second value indicating a greater level of proficiency than the first value;
automatically generating and displaying, by the client device using the generated first value and the second value, one or more graphical representations of the updated command usage data via the command map GUI in real-time or near real-time, wherein the one or more graphical representations of the updated command usage data visually illustrate the first value indicating the level of proficiency of the second user entity, wherein the second value is displayed as a second point that is a greater distance from a center of the circle chart than a first point corresponding to the first value.

### Claim 10 (depends on 9)

The one or more non-transitory computer-readable media of claim 9, wherein new command usage data is generated for a new invocation of the first command included in the set of commands by a user included in the first user entity.

### Claim 11 (depends on 9)

The one or more non-transitory computer-readable media of claim 9, wherein automatically displaying one or more graphical representations of the updated command usage data via the command map GUI comprises:
displaying a different data point for each command included in the set of commands, wherein a first data point represents a second command included in the set of commands, and new command usage data is associated with the first data point and the second command; and
in response to receiving the updated command usage data, displaying the first data point with a highlighted appearance.

### Claim 12 (depends on 11)

The one or more non-transitory computer-readable media of claim 11, wherein displaying the first data point with the highlighted appearance comprises displaying the first data point in a plurality of stages, wherein each stage displays the first data point with a different highlighted appearance relative to one or more other stages in the plurality of stages.

### Claim 13 (depends on 12)

The one or more non-transitory computer-readable media of claim 12, wherein a transition between each stage in the plurality of stages is triggered by at least one of elapsed time or receiving next updated command usage data for the first user entity.

### Claim 14 (depends on 12)

The one or more non-transitory computer-readable media of claim 12, wherein a first stage in the plurality of stages includes displaying an animation adjacent to the first data point and a command text specifying the first command adjacent to the first data point.

### Claim 15 (depends on 14)

The one or more non-transitory computer-readable media of claim 14, wherein a second stage in the plurality of stages includes displaying the command text adjacent to the first data point and not displaying the animation adjacent to the first data point.

### Claim 16

A system comprising:
a server machine comprising:
a server memory that includes instructions; and
a server processor that is coupled to the server memory and, upon executing the instructions, performs the steps of:
sending, to a client device, initial command usage data for a first user entity that is executing commands on the client device and a second user entity that is executing commands on a second client device, the initial command usage data indicating how much the first user entity and the second user entity have used a set of commands of a software application, wherein the initial command usage data includes a number of times the first user entity has invoked a first command and a number of times the second user entity has invoked the first command;
receiving new command usage data based on a first new command that is executed by the second user entity on the second client device; and
in response to receiving the new command usage data, pushing updated command usage data for the first user entity and the second user entity that has been generated based on the first new command over a first communication network to the client device in real-time or near real-time upon execution of the first new command; and
the client device connected to the server machine, the client device comprising:
a client memory that includes instructions; and
a client processor that is coupled to the client memory and, upon executing the instructions, performs the steps of:
displaying, via a command map graphical user interface (GUI), the command map GUI comprising a circle chart comprising one or more graphical representations of the number of times the first user entity has invoked the first command and one or more graphical representations of the number of times the second user entity has invoked the first command;
receiving the updated command usage data for the first user entity and the second user entity; and
in response to receiving the updated command usage data:
generating a first value indicating a level of proficiency of the second user entity based on a command usage pattern associated with the updated command usage data;
generating a second value indicating a level of proficiency of the first user entity based on a command usage pattern of the first user associated with the updated command usage data, the second value indicating a greater level of proficiency than the first value;
automatically generating and displaying, using the generated first value and the second value, one or more graphical representations of the updated command usage data via the command map GUI in real-time or near real-time, wherein the one or more graphical representations of the updated command usage data visually illustrate the first value indicating the level of proficiency of the second user entity, wherein the second value is displayed as a second point that is a greater distance from a center of the circle chart than a first point corresponding to the first value.

### Claim 17 (depends on 16)

The system of claim 16, wherein second command usage data is generated for a new invocation of the first command included in the set of commands by a user included in the first user entity.

### Claim 18 (depends on 16)

The system of claim 16, wherein the server machine automatically generates the updated command usage data based on the new command usage data in real-time or near real-time in response to receiving the new command usage data.
