# US 12,002,133 B2 · Vector object jitter application

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

- Number: US 12,002,133 B2
- Document ID: US12002133B2
- Status: Granted
- Kind: B2
- Application number: 17/862,956
- Filed: 2022-07-12
- Published: 2024-01-18
- Granted: 2024-06-04
- Earliest claimed: 2022-07-12
- Assignees: Adobe Inc.
- Applicants: Adobe Inc.
- Inventors: Reena Agrawal; William C Eisley, Jr.; Rohit Kumar Guglani; Paul A George; Gourav Tayal; Deep Sinha
- Web page: https://patentgrep.com/patent/US12002133B2

## CPC

- G06T 11/23: using straight lines or curves
- G06T 5/70: Denoising; Smoothing
- G06T 7/62: of area, perimeter, diameter or volume
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Jitter application techniques are described for vector objects as implemented by a vector object jitter application system. In an implementation, the vector object jitter application system receives an input defining a stroke to be drawn on a user interface. A vector object is then generated representing the stroke and having a variable width determined by applying jitter to the stroke. The vector object having the variable width is displayed in the user interface as the input is received.

## Claims

### Claim 1

A method comprising:
receiving, by a processing device, an input defining a stroke to be drawn on a user interface;
determining, by the processing device, a variable width of the stroke by leveraging a smooth noise function to apply jitter to adjust an initial width of the stroke at corresponding portions along the stroke;
generating, by the processing device, a vector object representing the stroke, the vector object having the variable width; and
displaying, by the processing device as the input is received, the vector object having the variable width in the user interface.

### Claim 2 (depends on 1)

The method of claim 1, further comprising determining the initial width of the stroke by varying a constant width of the stroke based on pressure data and velocity data associated with the input.

### Claim 3 (depends on 1)

The method of claim 1, wherein the smooth noise function is a Perlin noise function.

### Claim 4 (depends on 1)

The method of claim 1, wherein:
the determining the variable width includes applying the jitter at locations along the stroke separated by a uniform distance interval,
the receiving the input includes receiving a plurality of input points defining the stroke in the user interface, and
the generating the vector object includes adding at least one additional input point between a pair of proximate input points separated by greater than a threshold distance that is a function of the uniform distance interval.

### Claim 5 (depends on 4)

The method of claim 4, wherein the determining the variable width includes controlling respective amounts of jitter to be applied to the vector object at the locations.

### Claim 6 (depends on 5)

The method of claim 5, wherein the controlling the respective amounts of the jitter includes:
determining, for each respective location at which the jitter is to be applied, a maximum jitter amount as a function of the initial width at the respective location;
determining, for each respective location, a variable jitter amount using the smooth noise function that is less than the maximum jitter amount; and
applying the variable jitter amount to the vector object at the locations.

### Claim 7 (depends on 6)

The method of claim 6, wherein the maximum jitter amount is different at different locations along the stroke at which the jitter is to be applied.

### Claim 8 (depends on 6)

The method of claim 6, wherein the determining the variable jitter amount at a respective location includes determining a first variable jitter amount and determining a second variable jitter amount that are less than the maximum jitter amount, and the applying the variable jitter amount includes applying the first variable jitter amount to a first side of the vector object at the respective location and applying the second variable jitter amount to a second side of the vector object at the respective location.

### Claim 9 (depends on 4)

The method of claim 4, wherein the adding the at least one additional input point includes adding a number of additional input points between the pair of the proximate input points to maintain less than the threshold distance between input points along the stroke.

### Claim 10 (depends on 4)

The method of claim 4, wherein adding the at least one additional input point includes adding up to a threshold number of additional input points between the pair of the proximate input points.

### Claim 11

A system comprising:
a processing device; and
a computer-readable storage medium storing instructions that are executable by the processing device to perform operations comprising:
receiving an input defining a stroke to be drawn on a user interface;
determining locations along the stroke, at which, jitter is to be applied to the stroke;
determining a variable width of the stroke by leveraging a smooth noise function to apply the jitter to adjust an initial width of the stroke at the locations along the stroke;
generating a vector object representing the stroke, the vector object having the variable width; and
displaying the vector object in the user interface.

### Claim 12 (depends on 11)

The system of claim 11, the operations further comprising determining the initial width of the stroke by varying a constant width of the stroke based on pressure data and velocity data associated with the input.

### Claim 13 (depends on 12)

The system of claim 12, wherein determining the variable width of the stroke includes controlling respective amounts of the jitter to be applied at the locations by:
determining, for each respective location at which the jitter is to be applied, a maximum jitter amount as a function of the initial width at the respective location;
determining, for each respective location, a variable jitter amount using the smooth noise function that is less than the maximum jitter amount; and
applying the variable jitter amount to the vector object at the locations.

### Claim 14 (depends on 11)

The system of claim 11, wherein the smooth noise function is a Perlin noise function.

### Claim 15 (depends on 11)

The system of claim 11, wherein the receiving the input includes receiving a plurality of input points placed along the stroke in the user interface at defined time intervals.

### Claim 16 (depends on 15)

The system of claim 15, wherein the generating the vector object includes adding at least one additional input point between a pair of proximate input points separated by greater than a threshold distance.

### Claim 17

A non-transitory computer-readable medium storing instructions that are executable by a processing device to perform operations comprising:
receiving an input defining a stroke to be drawn on a user interface;
determining amounts of jitter to be applied to an initial width of the stroke;
determining a variable width of the stroke by applying the amounts of the jitter at corresponding portions along the stroke and smoothing the variable width between the corresponding portions;
generating a vector object having the variable width; and
displaying the vector object in the user interface.

### Claim 18 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the determining the amounts of the jitter includes determining the initial width of the stroke by varying a constant width of the stroke based on pressure data and velocity data associated with the input.

### Claim 19 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein the determining the variable width includes determining locations separated by a uniform distance interval along the stroke, at which, the jitter is to be applied, the variable width including the determined amount of the jitter applied at the determined locations.

### Claim 20 (depends on 19)

The non-transitory computer-readable medium of claim 19, wherein:
the receiving the input includes receiving a plurality of input points placed along the stroke in the user interface at defined time intervals; and
the generating the vector object includes adding at least one additional input point between a pair of proximate input points separated by greater than a threshold distance that is a function of the uniform distance interval.
