IP Library Granted Patent US 12,555,280
Granted Patent B2
US 12,555,280 · App. 18/349,346 · Granted Feb 17, 2026

Vector graphics based live sketching methods and systems

Inventors: Tony Severenuk (Kemptville, CA); Paul Legomski (Toronto, CA); Tekin Ozbek (Ottawa, CA); Thomas Jackson (Ottawa, CA); Boban Bogdanic (Banja Luka, BA); Andrew Stacey (Ottawa, CA)
Assignee: Corel Corporation
G06T11/203G06F3/016G06V30/32G06V30/347
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,555,280
App. No.
18/349,346
Granted
Feb 17, 2026
Kind
B2
Abstract

Vector format based computer graphics tools have become very powerful tools allowing artists, designers etc. to mimic many artistic styles, exploit automated techniques, etc. and across different simulated physical media and digital media. However, hand-drawing and sketching in vector format graphics is unnatural and a user's strokes rendered by software are generally unnatural and appear artificial. In contrast to today's hand-drawing and sketching which requires significant training of and understanding by the user of complex vector graphics methods embodiments of the invention lower the barrier to accessing computer graphics applications for users in respect of making hand-drawing or sketching easier to perform. Accordingly, the inventors have established a direct vector-based hand-drawing/sketching entry format supporting any input methodology.

Claims (94)

1 . A method comprising:

acquiring data points relating to a plurality of discrete user generated strokes made with a mark making tool within a computer based graphics software application in execution upon a microprocessor based computer;

converting the plurality of discrete user generated strokes to a plurality of vector poly-curve lines by:

comparing original un-approximated pairs of polylines presenting pairs of discrete user generated strokes of the plurality of discrete user generated strokes to each other to generate a set of properties of a plurality of sets of properties for that compared original un-approximated pair of polylines;

feeding the plurality of sets of properties into a trained feed-forward neural network to determine a plurality of groupings; and

applying a curve fitting routine to each grouping of the plurality of groupings to generate a vector poly-curve line of the plurality of vector poly-curve lines; and

processing the plurality of groupings from the trained feed-forward neural network with a process comprising:

applying a graph theory technique to derive weighted connections between each pair of points;

algorithmically dynamically tuning parameters to tailor for known drawing types and scenarios;

utilizing a minimum spanning tree variant to infer the overall intent of each grouping of the plurality of groupings; and

determining trunk branches within the minimum spanning tree and pruning away smaller branches in at least one stage of a plurality of stages.

2 . The method according to claim 1 , wherein

acquiring the data points relating to the plurality of discrete user generated strokes comprises:

a) establishing a timer having a defined time duration;

b) starting the timer;

c) acquiring the data points relating to the plurality of discrete user generated strokes within the duration of the time;

d) analyzing multi-dimensional properties of the acquired data points to infer an overall intent;

e) converting the plurality of discrete user generated strokes established within the duration of the timer to a vector poly-curve line of the one or more vector poly-curve lines in dependence upon at least the inferred overall intent;

f) resetting the timer; and

g) repeating steps (b) to (e) in an iterative process to generate additional poly-curve lines; and

the inferred overall intent is established in dependence upon a control setting of the graphics software application.

3 . The method according to claim 1 , wherein

acquiring the data points relating to the plurality of discrete user generated strokes comprises:

a) establishing a timer having a defined time duration;

b) starting the timer;

c) acquiring the data points relating to the plurality of discrete user generated strokes within the duration of the time;

d) analyzing multi-dimensional properties of the acquired data points to infer an overall intent;

e) converting the plurality of discrete user generated strokes established within the duration of the timer to a vector poly-curve line of the one or more vector poly-curve lines in dependence upon at least the inferred overall intent;

f) resetting the timer; and

g) repeating steps (b) to (e) in an iterative process to generate additional poly-curve lines; and

the inferred overall intent is established in dependence upon user learnt behaviour established by the graphics software application.

4 . The method according to claim 1 , wherein

acquiring the data points relating to the plurality of discrete user generated strokes comprises:

a) establishing a timer having a defined time duration;

b) starting the timer;

c) acquiring the data points relating to the plurality of discrete user generated strokes within the duration of the time;

d) analyzing multi-dimensional properties of the acquired data points to infer an overall intent;

e) converting the plurality of discrete user generated strokes established within the duration of the timer to a vector poly-curve line of the one or more vector poly-curve lines in dependence upon at least the inferred overall intent;

f) resetting the timer; and

g) repeating steps (b) to (e) in an iterative process to generate additional poly-curve lines; and

the inferred overall intent is established in dependence upon a series of loops within a defined footprint laterally represent a user preference for drawing a single stroke.

5 . The method according to claim 1 , wherein

acquiring the data points relating to the plurality of discrete user generated strokes comprises:

a) establishing a timer having a defined time duration;

b) starting the timer;

c) acquiring the data points relating to the plurality of discrete user generated strokes within the duration of the time;

d) analyzing multi-dimensional properties of the acquired data points to infer an overall intent;

e) converting the plurality of discrete user generated strokes established within the duration of the timer to a vector poly-curve line of the one or more vector poly-curve lines in dependence upon at least the inferred overall intent;

f) resetting the timer; and

g) repeating steps (b) to (e) in an iterative process to generate additional poly-curve lines; and

the inferred overall intent is established in dependence upon a continuous series of motions in one direction and then reversing to form a loop represents an intended action of the user rather than the user defining multiple strokes.

6 . The method according to claim 1 , wherein

the computer based graphics software application provides a user of the computer based graphics software application with an option to handle or ignore complex strokes with an arbitrary number of loops when converting the plurality of discrete user generated strokes to a plurality of vector poly-curve lines.

7 . The method according to claim 1 , wherein

the computer based graphics software application dynamically tunes control parameters for converting the plurality of discrete user generated strokes to a plurality of vector poly-curve lines in dependence upon a drawing type established by a user of the computer based graphics software application.

8 . The method according to claim 1 , further comprising

smoothing the final result in dependence upon a polynomial form of a vector poly-curve line of the one or more vector poly-curve lines.

9 . The method according to claim 1 , further comprising

applying aggressive smoothing in areas where multiple strokes join.

10 . The method according to claim 1 , further comprising

algorithmically dynamically tuning parameters of the conversion of plurality of discrete user generated strokes to the plurality of vector poly-curve lines in dependence upon a known drawing type associated with a canvas within the computer based graphics software application to which the mark making tool is applied.

11 . The method according to claim 1 , further comprising heuristically connecting relevant points based on time, spatial, and relational proximity to establish each original un-approximated pair of polylines.

12 . A method comprising:

acquiring data points relating to a plurality of discrete user generated strokes made with a mark making tool within a computer based graphics software application in execution upon a microprocessor based computer; and

converting the plurality of discrete user generated strokes to a plurality of vector poly-curve lines; wherein

converting the plurality of discrete user generated strokes to a plurality of vector poly-curve lines comprises:

a) establishing a timer having a defined time duration;

b) starting the timer;

c) acquiring a subset of the plurality of discrete user generated strokes established within the duration of the timer;

d) processing the subset of the plurality of discrete user generated strokes acquired within the duration of the timer to create a subset of the plurality of vector poly-curve lines;

e) resetting the timer; and

f) repeating steps (b) to (e) in an iterative process to generate other subsets of the plurality of vector poly-curve lines; and

step (d) comprises:

comparing original un-approximated pairs of polylines presenting pairs of discrete user generated strokes with the subset of the plurality of discrete user generated strokes to each other to generate a set of properties of a plurality of sets of properties for that compared original un-approximated pair of polylines;

feeding the plurality of sets of properties into a trained feed-forward neural network to determine a plurality of groupings; and

applying a curve fitting routine to each grouping of the plurality of groupings to generate a vector poly-curve line of the subset of the plurality of vector poly-curve lines.

13 . The method according to claim 12 , wherein

the acquired subset of the plurality of discrete user generated strokes established within the duration of the timer are those remaining at the expiration of the timer such that a user can delete one or more discrete user generated strokes during the duration of the timer.

14 . The method according to claim 12 , wherein

the acquired subset of the plurality of discrete user generated strokes established within the duration of the timer are those at the expiration of the timer such that a user can modify one or more discrete user generated strokes of the plurality of discrete user generated strokes generated during the duration of the timer.

15 . The method according to claim 12 , further comprising

providing a user of the computer based graphics software application with an option within a graphical user interface to reset the timer prior to its expiration; wherein

the user is able to at least one of adjust one or more discrete user generated strokes of the subset of the plurality of discrete user generated strokes generated prior to the resetting of the timer and delete one or more other discrete user generated strokes generated prior to the resetting of the timer.

16 . A method comprising:

acquiring data points relating to a plurality of discrete user generated strokes made with a mark making tool within a computer based graphics software application in execution upon a microprocessor based computer; and

converting the plurality of discrete user generated strokes to a plurality of vector poly-curve lines by:

comparing original un-approximated pairs of polylines presenting pairs of discrete user generated strokes of the plurality of discrete user generated strokes to each other to generate a set of properties of a plurality of sets of properties for that compared original un-approximated pair of polylines;

feeding the plurality of sets of properties into a trained feed-forward neural network to determine a plurality of groupings; and

applying a curve fitting routine to each grouping of the plurality of groupings to generate a vector poly-curve line of the plurality of vector poly-curve lines; wherein

the trained feed-forward neural network was trained with a process comprising:

receiving from a user a sketch comprising a plurality of other discrete user generated strokes;

rendering within a graphical user interface the plurality of other discrete user generated strokes and highlighting pairs of other discrete user generated strokes of the plurality of other discrete user generated strokes;

receiving from a user for each highlighted pair of other discrete user generated strokes of the plurality of other discrete user generated strokes an indication of whether the highlighted pair of other discrete user generated strokes of the plurality of other discrete user generated strokes are in a group or not; and

training the feed-forward neural network with the plurality of other discrete user generated strokes and the indications from the user with respect to the pairs of other discrete user generated strokes of the plurality of other discrete user generated strokes.

Assignments (2)
SECURITY INTEREST Recorded May 1, 2026
From: COREL CORPORATION
To: FIRST-CITIZENS BANK & TRUST COMPANY
Reel/Frame 075315/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2023
From: SEVERENUK, TONY; LEGOMSKI, PAUL; OZBEK, TEKIN; JACKSON, THOMAS; BOGDANIC, BOBAN; STACEY, ANDREW
To: COREL CORPORATION
Reel/Frame 064222/0142 →
Continuity (5)
Continuation 17157035 · Jan 25, 2021
Continuation 16429275 · Jun 3, 2019
Continuation 15907773 · Feb 28, 2018
Provisional Application 62464641 · Feb 28, 2017
Related Publication 20230351652A1 · Nov 2, 2023
References Cited (19)
US 5133052A · Bier et al. · 1992 [cited by applicant]
US 5588100A · Parker · 1996 [cited by applicant]
US 6462739B1 · Gupta · 2002 [cited by applicant]
US 20020150297A1 · Gorbatov · 2002 [cited by examiner]
US 20040233197A1 · Liu et al. · 2004 [cited by applicant]
US 20060045343A1 · Tremblay · 2006 [cited by examiner]
US 20060062465A1 · Li et al. · 2006 [cited by applicant]
US 20120086718A1 · Schreiber · 2012 [cited by applicant]
US 20120133664A1 · Zhu et al. · 2012 [cited by applicant]
US 20120216141A1 · Li · 2012 [cited by applicant]
US 20120293558A1 · Dilts · 2012 [cited by applicant]
US 20130127836A1 · Joshi et al. · 2013 [cited by applicant]
US 20160320912A1 · Seto et al. · 2016 [cited by applicant]
US 20160371859A1 · Fujimori · 2016 [cited by applicant]
Ku, Qin & Wright—Interpretation of Overtracing Freehand Sketching for Geometric Shapes, 2006. (Year: 2006). [cited by examiner]
Fonseca—Sketch-Based Retrieval in Large Sets of Drawings, 2004 (Year: 2004). [cited by examiner]
Sun, Liu, Peng, Zhang & Sun—User Adaptation for Online Sketchy Shape Recognition, 2004. (Year: 2004). [cited by examiner]
Mihu et al—Geometric Shape Recognition Using Fuzzy and Neural Techniques, 2003 (Year: 2003). [cited by examiner]
Jorge, Nunes & Fonseca—A Simple Approach to Recognise Geometric Shapes Interactively, 1999. (Year: 1999). [cited by examiner]