IP Library › Granted Patent US 12,749,205
Granted Patent B2
US 12,749,205 · App. 18/543,714 · Granted Sep 29, 2026

Concurrent editing for vector graphics

Inventors: Arushi Jain (Delhi, IN); Praveen Kumar Dhanuka (Howrah, IN)
Assignee: Adobe Inc.
G06T7/30
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,749,205
App. No.
18/543,714
Granted
Sep 29, 2026
Kind
B2
Abstract

The present disclosure relates to systems, non-transitory computer-readable media, and methods for identifying modifications to a segment within a vector graphic and contemporaneously propagating the modifications to similar segments within the vector graphic. For example, the disclosed systems detect a selection of an initial segment of a vector graphic. In some embodiments, the disclosed systems determine, in response to the selection, a set of candidate segments of the vector graphic that are within a threshold similarity in relation to the initial segment. In some embodiments, the disclosed systems generate a refined set of candidate segments by pruning, from the set of candidate segments, candidate segments with extensions that fail to satisfy the threshold similarity. Additionally, in response to a user interaction applying a modification to the initial segment, the disclosed systems propagate the modification to the refined set of candidate segments.

Claims (64)

1 . A computer-implemented method comprising:

determining, based on detecting a selection of an initial segment of a vector graphic, a first geometric region of the vector graphic, the initial segment forming a portion of the first geometric region of the vector graphic;

determining, in response to the selection, one or more additional geometric regions of the vector graphic that are within a threshold similarity in relation to the first geometric region;

receiving a user interaction to apply a modification to a geometry of the first geometric region of the vector graphic at the initial segment; and

in response to receiving the user interaction, applying the modification to the geometry of the first geometric region of the vector graphic and the one or more additional geometric regions contemporaneously.

2 . The computer-implemented method of claim 1 , further comprising:

determining a set of candidate segments by:

determining a translation from a candidate segment to the initial segment;

determining a scale transformation from the candidate segment to the initial segment; and

determining a rotation from the candidate segment to the initial segment; and

determining the one or more additional geometric regions from the set of candidate segments.

3 . The computer-implemented method of claim 2 , wherein determining the rotation from the candidate segment to the initial segment comprises determining a rotation angle of an anchor point within the candidate segment to a corresponding anchor point within the initial segment.

4 . The computer-implemented method of claim 1 , further comprising generating a refined set of candidate segments by:

generating an extension for a candidate segment from among a set of candidate segments by extending the candidate segment to include an additional anchor point;

generating a transformed extension by performing one or more of translation, scaling, or rotation to the extension to align with an extended version of the initial segment; and

determining that the transformed extension is within the threshold similarity in relation to the extended version of the initial segment.

5 . The computer-implemented method of claim 1 , further comprising:

receiving, from a client device, an indication of the user interaction applying the modification to the initial segment by receiving data from the client device indicating an augmentation to a shape of the initial segment; and

propagating the modification to a refined set of candidate segments by augmenting, contemporaneously with the user interaction modifying the initial segment, a shape of a candidate segment within the refined set of candidate segments to match the augmentation to the shape of the initial segment.

6 . The computer-implemented method of claim 1 , further comprising generating a refined set of candidate segments by:

transforming an extension of a candidate segment within a set of candidate segments to align with an extended version of the initial segment;

determining that the extension does not satisfy the threshold similarity after transforming to align with the extended version of the initial segment; and

in response to determining that the extension does not satisfy the threshold similarity, pruning the candidate segment from the set of candidate segments.

7 . The computer-implemented method of claim 1 , further comprising generating a refined set of candidate segments by pruning candidate segments whose extensions fail to satisfy the threshold similarity by pruning over a number of iterations up to an iteration that results in no remaining candidate segments.

8 . A non-transitory computer readable medium storing executable instructions which, when executed by a processing device, cause the processing device to perform operations comprising:

determining, based on detecting a selection of an initial segment of a vector graphic, a first geometric region of the vector graphic, the initial segment forming a portion of the first geometric region of the vector graphic;

determining, in response to the selection, one or more additional geometric regions of the vector graphic that are within a threshold similarity in relation to the first geometric region;

receiving a user interaction to apply a modification to a geometry of the first geometric region of the vector graphic at the initial segment; and

in response to receiving the user interaction, applying the modification to the geometry of the first geometric region of the vector graphic and the one or more additional geometric regions contemporaneously.

9 . The non-transitory computer readable medium of claim 8 , wherein the operations further comprise determining the first geometric region of the vector graphic from the initial segment by generating one or more extensions for the initial segment by adding one or more adjacent segments to the initial segment.

10 . The non-transitory computer readable medium of claim 8 , wherein the operations further comprise:

determining a set of candidate segments by performing one or more of:

a translation from a candidate segment of the set of candidate segments to the initial segment;

a scale transformation from the candidate segment to the initial segment; or

a rotation from the candidate segment to the initial segment; and

determining the one or more additional geometric regions from the set of candidate segments.

11 . The non-transitory computer readable medium of claim 10 , wherein performing the scale transformation comprises resizing the candidate segment to align with a size of the initial segment.

12 . The non-transitory computer readable medium of claim 10 , wherein performing the rotation comprises:

determining a rotation angle of a single anchor point within the candidate segment to align with a corresponding anchor point within the initial segment; and

not determining rotation angles for other anchor points within the candidate segment.

13 . The non-transitory computer readable medium of claim 8 , further comprising generating an extension of a candidate segment of a set of candidate segments by extending the candidate segment to include an additional anchor point adjacent to an anchor point of the candidate segment.

14 . The non-transitory computer readable medium of claim 8 , wherein the operations further comprise determining that an extension of a candidate segment of a set of candidate segments is not within a threshold similarity in relation to an extended version of the initial segment comprises:

generating a transformed extension by performing one or more of translation, scaling, or rotation to the extension for aligning with the extended version of the initial segment; and

comparing the transformed extension with the extended version of the initial segment.

15 . A system comprising:

one or more memory devices comprising a vector graphic and a vector similarity algorithm; and

one or more processors configured to cause the system to:

determine, in response to a selection of an initial segment of a vector graphic forming a portion of a first geometric region of the vector graphic, the first geometric region of the vector graphic and a set of candidate segments of the vector graphic that are within a threshold similarity in relation to the initial segment;

determine, based on the set of candidate segments, one or more additional geometric regions of the vector graphic that are within a threshold similarity in relation to the first geometric region;

receive a user interaction to apply a modification to a geometry of the first geometric region of the vector graphic at the initial segment; and

in response to receiving the user interaction, applying the modification to the geometry of the first geometric region of the vector graphic and the one or more additional geometric regions contemporaneously.

16 . The system of claim 15 , wherein the one or more processors are further configured to cause the system to generate an extension for a candidate segment from among the set of candidate segments by:

extending the candidate segment in a first direction along a Bezier spline to include a first additional anchor point adjacent to a first anchor point of the candidate segment; and

extending the candidate segment in a second direction along the Bezier spline to include a second additional anchor point adjacent to a second anchor point of the candidate segment.

17 . The system of claim 15 , wherein the one or more processors are further configured to cause the system to:

receive, from a client device, an indication of an augmentation to a shape of the initial segment; and

in response to the indication, augment a shape of an additional candidate segment within a refined set of candidate segments to match the augmentation to the shape of the initial segment.

18 . The system of claim 15 , wherein the one or more processors are further configured to cause the system to generate an extended version of the initial segment by extending the initial segment along a Bezier spline to include an additional anchor point adjacent to an anchor point of the initial segment.

19 . The system of claim 15 , wherein the one or more processors are further configured to cause the system to generate a refined set of candidate segments by:

pruning a candidate segment from the set of candidate segments in a first pruning iteration; and

pruning an additional candidate segment from the set of candidate segments in a second pruning iteration.

20 . The system of claim 15 , wherein the one or more processors are further configured to cause the system to determine that an extension is not within the threshold similarity in relation to an extended version of the initial segment by:

transforming the extension by performing one or more of translation, scaling, or rotation to align with the extended version of the initial segment; and

in response to transforming the extension, comparing the extension with the extended version of the initial segment to determine a similarity score.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2023
From: JAIN, ARUSHI; DHANUKA, PRAVEEN KUMAR
To: ADOBE INC.
Reel/Frame 065899/0880 →
Continuity (1)
Related Publication 20250200766A1 · Jun 19, 2025
References Cited (7)
US 10200598B2 · Penha · 2019 [cited by examiner]
US 11055810B1 · Dhingra et al. · 2021 [cited by applicant]
US 11095808B2 · Kim · 2021 [cited by examiner]
US 20200211148A1 · Mackinnon · 2020 [cited by examiner]
US 20220215642A1 · Batra · 2022 [cited by examiner]
US 20240168604A1 · Son · 2024 [cited by examiner]
W. Kabsch. A discussion of the solution for the best rotation to relate two sets of vectors. Acta Crystallographica Section A, 34(5):827-828, Sep. 1978. [cited by applicant]