IP Library Granted Patent US 10,521,937
Granted Patent B2
US 10,521,937 · App. 15/907,773 · Granted Dec 31, 2019

Vector graphics based live sketching methods and systems

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,521,937
App. No.
15/907,773
Granted
Dec 31, 2019
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 (108)

1. A method comprising:

receiving 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

receiving the plurality of discrete user generated strokes comprises:

acquiring user entry strokes via an input device relating to a mark making tool within a user defined time window; and

converting the plurality of discrete user generated strokes comprises:

comparing original un-approximated pairs of polylines to each other;

heuristically connecting relevant points based on time, spatial, and relational proximity;

feeding properties into a trainable feed-forward neural network to determine groupings;

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

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

applying a curve fitting routine to generate the one or more vector poly-curve lines.

2. The method according to claim 1 , wherein

receiving the plurality of discrete user generated strokes comprises:

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

acquiring data points relating to the user generated strokes;

converting the plurality of discrete user generated strokes comprises:

analyzing multi-dimensional properties of each acquired data point within the acquired data points to infer overall intent;

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

processing the inferred overall intent to improve the final result.

3. The method according to claim 1 , wherein

receiving the plurality of discrete user generated strokes comprises:

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

acquiring data points relating to the user generated strokes.

4. The method according to claim 1 , wherein

converting the plurality of discrete user generated strokes comprises:

analyzing multi-dimensional properties of each acquired data point within the acquired data points to infer overall intent;

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

processing the inferred overall intent to improve the final result.

5. The method according to claim 1 , wherein

receiving the plurality of discrete user generated strokes comprises acquiring user entry strokes via an input device relating to a mark making tool within a user defined time window.

6. The method according to claim 1 , further comprising

at least one of:

smoothing the final result;

smoothing the 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.

7. The method according to claim 1 , further comprising

at least one of:

applying minimal smoothing in those portions of the one or more vector poly-curve lines where all the points in those portions are from a single input stroke; and

applying aggressive smoothing in areas where multiple strokes join.

8. 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:

receiving 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

the step of receiving the plurality of discrete user generated strokes comprises the steps of:

acquiring user entry strokes via an input device relating to a mark making tool within a user defined time window; and

the step of converting the plurality of discrete user generated strokes comprises the steps of:

comparing original un-approximated pairs of polylines to each other;

heuristically connecting relevant points based on time, spatial, and relational proximity;

feeding properties into a trainable feed-forward neural network to determine groupings;

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

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

applying a curve fitting routine to generate the one or more vector poly-curve lines.

9. The non-volatile non-transitory memory storing computer executable instructions for execution by a microprocessor according to claim 8 , wherein

the step of receiving the plurality of discrete user generated strokes comprises the steps of:

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

acquiring data points relating to the user generated strokes; and

the step of converting the plurality of discrete user generated strokes comprises the steps of:

analyzing multi-dimensional properties of each acquired data point within the acquired data points to infer overall intent;

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

processing the inferred overall intent to improve the final result.

10. The non-volatile non-transitory memory storing computer executable instructions for execution by a microprocessor according to claim 8 , wherein

the step of receiving the plurality of discrete user generated strokes comprises the steps of:

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

acquiring data points relating to the user generated strokes.

11. The non-volatile non-transitory memory storing computer executable instructions for execution by a microprocessor according to claim 8 , wherein

the step of converting the plurality of discrete user generated strokes comprises the steps of:

analyzing multi-dimensional properties of each acquired data point within the acquired data points to infer overall intent;

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

processing the inferred overall intent to improve the final result.

12. The non-volatile non-transitory memory storing computer executable instructions for execution by a microprocessor according to claim 8 , wherein

the step of receiving the plurality of discrete user generated strokes comprises acquiring user entry strokes via an input device relating to a mark making tool within a user defined time window.

13. The non-volatile non-transitory memory storing computer executable instructions for execution by a microprocessor according to claim 8 , further comprising:

at least one of:

smoothing the final result;

smoothing the 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.

14. The non-volatile non-transitory memory storing computer executable instructions for execution by a microprocessor according to claim 8 , further comprising:

at least one of:

applying minimal smoothing in those portions of the one or more vector poly-curve lines where all the points in those portions are from a single input stroke; and

applying aggressive smoothing in areas where multiple strokes join.

15. A method comprising:

receiving 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:

comparing original un-approximated pairs of polylines to each other;

heuristically connecting relevant points based on time, spatial, and relational proximity;

feeding properties into a trainable feed-forward neural network to determine groupings;

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

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

applying a curve fitting routine to generate the one or more vector poly-curve lines.

16. 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:

receiving 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

the step of converting the plurality of discrete user generated strokes comprises the steps of:

comparing original un-approximated pairs of polylines to each other;

heuristically connecting relevant points based on time, spatial, and relational proximity;

feeding properties into a trainable feed-forward neural network to determine groupings;

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

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

applying a curve fitting routine to generate the one or more vector poly-curve lines.

Assignments (5)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2019
From: STACEY, ANDREW
To: COREL CORPORATION
Reel/Frame 051092/0545 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2019
From: SEVERENUK, TONY; LEGOMSKI, PAUL; OZBEK, TEKIN; JACKSON, THOMAS; BOGDANIC, BOBAN
To: COREL CORPORATION
Reel/Frame 050971/0841 →
SECURITY INTEREST Recorded Jul 3, 2019
From: CASCADE BIDCO CORP.; COREL INC.; CLEARSLIDE INC.
To: CITIBANK, N.A.
Reel/Frame 049678/0950 →
SECURITY INTEREST Recorded Jul 3, 2019
From: CASCADE BIDCO CORP.; COREL INC.; CLEARSLIDE INC.
To: CANTOR FITZGERALD SECURITIES
Reel/Frame 049678/0980 →