IP Library Granted Patent US 11,593,584
Granted Patent B2
US 11,593,584 · App. 17/098,209 · Granted Feb 28, 2023

Method for computation relating to clumps of virtual fibers

Inventor: Olivier Gourmel (Wellington, NZ)
Assignee: UNITY TECHNOLOGIES SF
G06K9/6224G06F17/18G06K9/6215G06T19/00
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 11,593,584
App. No.
17/098,209
Granted
Feb 28, 2023
Kind
B2
Abstract

A computer-implemented method for processing a set of virtual fibers into a set of clusters of virtual fibers, usable for manipulation on a cluster basis in a computer graphics generation system, may include determining aspects for virtual fibers in the set of virtual fibers, determining similarity scores between the virtual fibers based on their aspects, and determining an initial cluster comprising the virtual fibers of the set of virtual fibers. The method may further include instantiating a cluster list in at least one memory, adding the initial cluster to the cluster list, partitioning the initial cluster into a first subsequent cluster and a second subsequent cluster based on similarity scores among fibers in the initial cluster, adding the first subsequent cluster and the second subsequent cluster to the cluster list, and testing whether a number of clusters in the cluster list is below a predetermined threshold.

Claims (80)

1. A computer-implemented method for processing a set of virtual fibers into a set of clusters of virtual fibers, usable for manipulation on a cluster basis in a computer graphics generation system, the method comprising:

receiving, via user input to a user interface of the computer graphics generation system, virtual fibers in the set of virtual fibers;

determining aspects for the virtual fibers in the set of virtual fibers;

determining similarity scores between the virtual fibers based on their aspects;

determining an initial cluster comprising the virtual fibers of the set of virtual fibers;

instantiating a cluster list in at least one non-transitory memory;

adding the initial cluster to the cluster list;

partitioning the initial cluster into a first subsequent cluster and a second subsequent cluster based on similarity scores among the virtual fibers in the initial cluster;

adding the first subsequent cluster and the second subsequent cluster to the cluster list;

testing whether a number of clusters in the cluster list is below a predetermined threshold; and

when the number of clusters is at the predetermined threshold, persisting the cluster list and the set of virtual fibers in the non-transitory memory, wherein the cluster list in the non-transitory memory enables per-cluster manipulation of the set of virtual fibers using at least the first subsequent cluster and the second subsequent cluster.

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

removing the initial cluster from the cluster list of the first subsequent cluster and the second subsequent cluster; and

removing the first subsequent cluster from the cluster list of a third subsequent cluster and a fourth subsequent cluster determined from the first subsequent cluster.

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

partitioning the first subsequent cluster into a third subsequent cluster and a fourth subsequent cluster based on similarity scores among fibers in the first subsequent cluster; and

adding the third subsequent cluster and the fourth subsequent cluster to the cluster list.

4. The computer-implemented method of claim 3 , wherein the first subsequent cluster is selected for the partitioning into the third subsequent cluster and the fourth subsequent cluster based on at least one criterion or criteria.

5. The computer-implemented method of claim 4 , wherein the at least one criterion or the criteria comprises one of the first subsequent cluster having the largest number of fibers or the largest area of representation in a vector space.

6. The computer-implemented method of claim 1 , wherein determining the initial cluster comprises assigning the set of virtual fibers to the initial cluster.

7. The computer-implemented method of claim 1 , wherein, for a selected first virtual fiber and a selected second virtual fiber selected from the set of virtual fibers, the selected first virtual fiber comprising a first plurality of points and the selected second virtual fiber comprising a second plurality of points, determining similarity scores between virtual fibers further comprises:

for each point in the first plurality of points, identifying a corresponding closest point on the selected second virtual fiber to each point;

computing a kernel based on the distance from each point in the first plurality of points to the respective corresponding closest point of the second plurality of points;

computing a plurality of dot products, each dot product the dot product of a tangent to each point in first plurality of points and a tangent to the respective corresponding closest point of the second plurality of points; and

computing a similarity score based on the kernel and the plurality of dot products.

8. The computer-implemented method of claim 1 , wherein determining similarity scores between virtual fibers further comprises:

for a number K of similarity scores, for each virtual fiber of the set of virtual fibers, retaining only K similarity scores having highest values of similarity scores corresponding to each virtual fiber.

9. The computer-implemented method of claim 8 , wherein partitioning the initial cluster into the first subsequent cluster and the second subsequent cluster comprises:

for each virtual fiber of the initial cluster, from corresponding similarity scores based on aspects of the virtual fiber, computing a corresponding coordinate comprising a plurality of eigenvectors, of a graph Laplacian, corresponding to the virtual fiber, producing a plurality of coordinates;

for each similarity score between a first virtual fiber and a second virtual fiber, computing a distance from the corresponding coordinate of the first virtual fiber to the corresponding coordinate of the second virtual fiber, producing a plurality of edge values;

assigning each virtual fiber in the initial cluster to a corresponding set having one member;

identifying a min virtual fiber and a max virtual fiber in the initial cluster;

sorting the plurality of edge values into a list; and

while the list is not empty:

(1) removing a shortest edge value from the list; and

(2) if the set of clusters of virtual fibers containing the min virtual fiber and the max virtual fiber remain disjoint, merging the sets containing virtual fibers corresponding to the shortest edge value.

10. The computer-implemented method of claim 9 , wherein the distance is a Euclidian distance.

11. The computer-implemented method of claim 9 , wherein the min virtual fiber and the max virtual fiber are selected to correspond to a minimum and a maximum eigenvector of the graph Laplacian.

12. The computer-implemented method of claim 1 , wherein the initial cluster is one of two first clusters, and wherein the partitioning is based on the initial cluster being the larger one of the two first clusters.

13. A computer graphics generation system for processing a set of virtual fibers into a set of clusters of virtual fibers, usable for manipulation on a cluster basis, the computer graphics generation system comprising:

at least one processor; and

a computer-readable medium storing instructions, which when executed by the at least one processor, causes the computer graphics generation system to perform operations comprising:

receiving, via user input to a user interface of the computer graphics generation system, virtual fibers in the set of virtual fibers;

determining aspects for virtual fibers in the set of virtual fibers;

determining similarity scores between the virtual fibers based on their aspects;

determining an initial cluster comprising the virtual fibers of the set of virtual fibers;

instantiating a cluster list in at least one non-transitory memory;

adding the initial cluster to the cluster list;

partitioning the initial cluster into a first subsequent cluster and a second subsequent cluster based on similarity scores among the virtual fibers in the initial cluster;

adding the first subsequent cluster and the second subsequent cluster to the cluster list;

testing whether a number of clusters in the cluster list is below a predetermined threshold; and

when the number of clusters is at the predetermined threshold, persisting the cluster list and the set of virtual fibers in the non-transitory memory, wherein the cluster list in the non-transitory memory enables per-cluster manipulation of the set of virtual fibers using at least the first subsequent cluster and the second subsequent cluster.

14. The computer graphics generation system of claim 13 , further comprising:

removing the initial cluster from the cluster list of the first subsequent cluster and the second subsequent cluster; and

removing the first subsequent cluster from the cluster list of a third subsequent cluster and a fourth subsequent cluster determined from the first subsequent cluster.

15. The computer graphics generation system of claim 13 , further comprising:

partitioning the first subsequent cluster into a third subsequent cluster and a fourth subsequent cluster based on similarity scores among fibers in the first subsequent cluster; and

adding the third subsequent cluster and the fourth subsequent cluster to the cluster list.

16. The computer graphics generation system of claim 15 , wherein the first subsequent cluster is selected for the partitioning into the third subsequent cluster and the fourth subsequent cluster based on at least one criterion or criteria.

17. The computer graphics generation system of claim 16 , wherein the at least one criterion or the criteria comprises one of the first subsequent cluster having the largest number of fibers or the largest area of representation in a vector space.

18. The computer graphics generation system of claim 13 , wherein determining the initial cluster comprises assigning the set of virtual fibers to the initial cluster.

19. The computer graphics generation system of claim 13 , wherein, for a selected first virtual fiber and a selected second virtual fiber selected from the set of virtual fibers, the selected first virtual fiber comprising a first plurality of points and the selected second virtual fiber comprising a second plurality of points, determining similarity scores between virtual fibers further comprises:

for each point in the first plurality of points, identifying a corresponding closest point on the selected second virtual fiber to each point;

computing a kernel based on the distance from each point in the first plurality of points to the respective corresponding closest point of the second plurality of points;

computing a plurality of dot products, each dot product the dot product of a tangent to each point in first plurality of points and a tangent to the respective corresponding closest point of the second plurality of points; and

computing a similarity score based on the kernel and the plurality of dot products.

20. The computer graphics generation system of claim 13 , wherein determining similarity scores between virtual fibers further comprises:

for a number K of similarity scores, for each virtual fiber of the set of virtual fibers, retaining only K similarity scores having highest values of similarity scores corresponding to each virtual fiber.

21. The computer graphics generation system of claim 20 , wherein partitioning the initial cluster into the first subsequent cluster and the second subsequent cluster comprises:

for each virtual fiber of the initial cluster, from corresponding similarity scores based on aspects of the virtual fiber, computing a corresponding coordinate comprising a plurality of eigenvectors, of a graph Laplacian, corresponding to the virtual fiber, producing a plurality of coordinates;

for each similarity score between a first virtual fiber and a second virtual fiber, computing a distance from the corresponding coordinate of the first virtual fiber to the corresponding coordinate of the second virtual fiber, producing a plurality of edge values;

assigning each virtual fiber in the initial cluster to a corresponding set having one member;

identifying a min virtual fiber and a max virtual fiber in the initial cluster;

sorting the plurality of edge values into a list; and

while the list is not empty:

(1) removing a shortest edge value from the list; and

(2) if the set of clusters of virtual fibers containing the min virtual fiber and the max virtual fiber remain disjoint, merging the sets containing virtual fibers corresponding to the shortest edge value.

22. The computer graphics generation system of claim 21 , wherein the min virtual fiber and the max virtual fiber are selected to correspond to a minimum and a maximum eigenvector of the graph Laplacian.

23. A system comprising: at least one processor, and a storage medium storing instructions, which when executed by the at least one processor, cause the system to implement the computer-implemented method of claim 1 .

24. A non-transitory computer-readable storage medium storing instructions, which when executed by at least one processor of a computer system, causes the computer system to carry out the computer-implemented method of claim 1 .

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2022
From: UNITY SOFTWARE INC.
To: UNITY TECHNOLOGIES SF
Reel/Frame 058980/0369 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2022
From: WETA DIGITAL LIMITED
To: UNITY SOFTWARE INC.
Reel/Frame 058978/0905 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2021
From: GOURMEL, OLIVIER
To: WETA DIGITAL LIMITED
Reel/Frame 054984/0769 →
Continuity (2)
Provisional Application 63047836 · Jul 2, 2020
Related Publication 20220004804A1 · Jan 6, 2022