IP Library Granted Patent US 10,902,653
Granted Patent B2
US 10,902,653 · App. 16/429,275 · Granted Jan 26, 2021

Vector graphics based live sketching methods and systems

Inventors: Tony Severenuk (Kemptville, CA); Paul Legomski (Ottawa, CA); Tekin Ozbek (Ottawa, CA); Thomas Jackson (Ottawa, CA); Boban Bogdanic (Ottawa, CA); Andrew Stacey (Ottawa, CA)
Assignee: Corel Corporation
G06T11/203G06F3/016G06K9/00402G06K9/00416
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 10,902,653
App. No.
16/429,275
Granted
Jan 26, 2021
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 (120)

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; and

converting the plurality of discrete user generated strokes to one or more vector poly-curve lines, wherein converting the plurality of discrete user generated strokes comprises analyzing multi-dimensional properties of each of the acquired data points to infer overall intent indicating that a series of loops within a defined footprint are a user preference for drawing a single stroke.

2. The method according to claim 1 , wherein

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

executing a timer-based recognition process of user generated strokes;

converting the plurality of discrete user generated strokes comprises:

generating an output in dependence upon the inferred overall intent; and

processing the inferred overall intent to improve a final result; and

the inferred overall intent is established in dependence upon one of:

a control setting of the graphics software application;

dynamically by the graphics software application from default settings of the graphics software application; and

user learnt behaviour established by 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:

executing a timer-based recognition process of user generated strokes;

converting the plurality of discrete user generated strokes comprises:

generating an output in dependence upon the inferred overall intent; and

processing the inferred overall intent to improve the final result; and

the inferred overall intent further establishes:

that a continuous series of motions in one direction and then reversing forming a loop is intended rather than the user defining multiple strokes; and

that a folded stroke with a narrow separation between strokes should be unfolded whilst an increased separation between strokes is taken as the user's intent.

4. The method according to claim 1 , wherein

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

executing a timer-based recognition process of user generated strokes;

wherein

a timer associated with the timer-based recognition process establishes a delay before the plurality of discrete user generated strokes are adjusted; and

only those user generated strokes within a distance set by a user of the computer based graphics software application are converted to a vector poly-curve line of the one or more vector poly-curve lines.

5. The method according to claim 1 , further comprising

receiving within the computer based graphics software application a user input establishing a width of an editable area around a vector poly-curve line of the one or more vector poly-curve lines;

determining whether a subsequent plurality of user generated strokes are within the editable area around the vector poly-curve line of the one or more vector poly-curve lines;

upon a positive determination processing the subsequent plurality of user generated strokes in combination with the vector poly-curve line of the one or more vector poly-curve lines; and

upon a negative determination processing the subsequent plurality of user generated strokes as a new vector poly-curve line.

6. The method according to claim 1 , further comprising

receiving within the computer based graphics software application a user input from a user establishing a proximity threshold, the proximity threshold relating to objects established within the computer based graphics software application;

determining whether a vector poly-curve line of the one or more vector poly-curve lines is within the proximity threshold of an existing object rendered to the user within a graphical user interface of the computer based graphics software application;

upon a positive determination processing and rendering the vector poly-curve line of the one or more vector poly-curve lines with one or more properties inherited from the existing object; and

upon a negative determination processing rendering the vector poly-curve line of the one or more vector poly-curve lines independently of the properties of the existing object.

7. The method according to claim 1 , wherein

the computer based graphics software application provides at least one of:

a user of the computer based graphics software application with an option to handle or ignore complex strokes with an arbitrary number of loops; and

dynamically tunes control parameters in dependence upon a drawing type established by a user of the computer based graphics software application.

8. The method according to claim 1 , wherein

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

establishing a timer relating to a timer-based recognition process;

executing the timer-based recognition process of user generated strokes;

and

combining the user generated strokes made within a duration of the timer as a single vector poly-curve line; wherein

one or more user generated strokes are to be adjusted by the user before a specified time set by the timer elapses.

9. The method according to claim 1 , further comprising

at least one of:

smoothing a final result in dependence upon determining the presence of cusp nodes; and

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.

10. A non-volatile non-transitory memory storing computer executable instructions for execution by a microprocessor, wherein when executed the computer executable instructions relate to a process, the process comprising the steps:

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 one or more vector poly-curve lines, wherein converting the plurality of discrete user generated strokes comprises analyzing multi-dimensional properties of each of the acquired data points to infer overall intent indicating that a series of loops within a defined footprint are a user preference for drawing a single stroke.

11. The non-volatile non-transitory memory storing computer executable instructions according to claim 10 , wherein

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

executing a timer-based recognition process of user generated strokes;

converting the plurality of discrete user generated strokes comprises:

generating an output in dependence upon the inferred overall intent; and

processing the inferred overall intent to improve a final result; and

the inferred overall intent is established in dependence upon one of:

a control setting of the graphics software application;

dynamically by the graphics software application from default settings of the graphics software application; and

user learnt behaviour established by the graphics software application.

12. The non-volatile non-transitory memory storing computer executable instructions according to claim 10 , wherein

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

executing a timer-based recognition process of user generated strokes;

converting the plurality of discrete user generated strokes comprises:

generating an output in dependence upon the inferred overall intent; and

processing the inferred overall intent to improve the final result; and

the inferred overall intent further establishes:

that a continuous series of motions in one direction and then reversing forming a loop is intended rather than the user defining multiple strokes; and

that a folded stroke with a narrow separation between strokes should be unfolded whilst an increased separation between strokes is taken as the user's intent.

13. The non-volatile non-transitory memory storing computer executable instructions according to claim 10 , wherein

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

executing a timer-based recognition process of user generated strokes;

wherein

a timer associated with the timer-based recognition process establishes a delay before the plurality of discrete user generated strokes are adjusted; and

only those user generated strokes within a distance set by a user of the computer based graphics software application are converted to a vector poly-curve line of the one or more vector poly-curve lines.

14. The non-volatile non-transitory memory storing computer executable instructions according to claim 10 , further comprising

receiving within the computer based graphics software application a user input establishing a width of an editable area around a vector poly-curve line of the one or more vector poly-curve lines;

determining whether a subsequent plurality of user generated strokes are within the editable area around the vector poly-curve line of the one or more vector poly-curve lines;

upon a positive determination processing the subsequent plurality of user generated strokes in combination with the vector poly-curve line of the one or more vector poly-curve lines; and

upon a negative determination processing the subsequent plurality of user generated strokes as a new vector poly-curve line.

15. The non-volatile non-transitory memory storing computer executable instructions according to claim 10 , further comprising

receiving within the computer based graphics software application a user input from a user establishing a proximity threshold, the proximity threshold relating to objects established within the computer based graphics software application;

determining whether a vector poly-curve line of the one or more vector poly-curve lines is within the proximity threshold of an existing object rendered to the user within a graphical user interface of the computer based graphics software application;

upon a positive determination processing and rendering the vector poly-curve line of the one or more vector poly-curve lines with one or more properties inherited from the existing object; and

upon a negative determination processing rendering the vector poly-curve line of the one or more vector poly-curve lines independently of the properties of the existing object.

16. The non-volatile non-transitory memory storing computer executable instructions according to claim 10 , wherein

the computer based graphics software application provides at least one of:

a user of the computer based graphics software application with an option to handle or ignore complex strokes with an arbitrary number of loops; and

dynamically tunes control parameters in dependence upon a drawing type established by a user of the computer based graphics software application.

17. The non-volatile non-transitory memory storing computer executable instructions according to claim 10 , wherein

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

establishing a timer relating to a timer-based recognition process;

executing the timer-based recognition process of user generated strokes;

and

combining the user generated strokes made within a duration of the timer as a single vector poly-curve line; wherein

one or more user generated strokes are to be adjusted by the user before a specified time set by the timer elapses.

18. The non-volatile non-transitory memory storing computer executable instructions according to claim 10 , further comprising

at least one of:

smoothing a final result in dependence upon determining the presence of cusp nodes; and

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.

19. A system comprising:

a memory; and

a processor, coupled to the memory, to perform operations comprising:

acquiring the 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 one or more vector poly-curve lines, wherein converting the plurality of discrete user generated strokes comprises analyzing multi-dimensional properties of each of the acquired data points to infer overall intent indicating that a series of loops within a defined footprint are a user preference for drawing a single stroke.

20. The system according to claim 1 , wherein the operations further comprise:

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

executing a timer-based recognition process of user generated strokes;

converting the plurality of discrete user generated strokes comprises:

generating an output in dependence upon the inferred overall intent; and

processing the inferred overall intent to improve the final result; and

the inferred overall intent further establishes:

that a continuous series of motions in one direction and then reversing forming a loop is intended rather than the user defining multiple strokes; and

that a folded stroke with a narrow separation between strokes should be unfolded whilst an increased separation between strokes is taken as the user's intent.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded May 5, 2026
From: CITIBANK, N.A., AS AGENT
To: COREL CORPORATION; CASCADE BIDCO CORP.; COREL INC.; CLEARSLIDE INC.
Reel/Frame 075559/0953 →
SECURITY INTEREST Recorded May 1, 2026
From: COREL CORPORATION
To: FIRST-CITIZENS BANK & TRUST COMPANY
Reel/Frame 075315/0928 →
SECURITY INTEREST Recorded Jul 20, 2023
From: COREL CORPORATION
To: CITIBANK, N.A.
Reel/Frame 064330/0055 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2019
From: SEVERENUK, TONY; LEGOMSKI, PAUL; OZBEK, TEKIN; JACKSON, THOMAS; BOGDANIC, BOBAN; STACEY, ANDREW
To: COREL CORPORATION
Reel/Frame 051116/0732 →
Continuity (3)
Continuation 15907773 · Feb 28, 2018
Provisional Application 62464641 · Feb 28, 2017
Related Publication 20190287280A1 · Sep 19, 2019