IP Library Granted Patent US 12,377,936
Granted Patent B2
US 12,377,936 · App. 18/757,338 · Granted Aug 5, 2025

Matching meshes for virtual avatars

Inventor: Sean Michael Comer (Encino, CA)
Assignee: MAGIC LEAP, INC.
B63B21/26B63B35/44B63H21/32F01N13/004G06T13/40G06T17/20G06T19/20G06V40/10F01N2590/02
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,377,936
App. No.
18/757,338
Granted
Aug 5, 2025
Kind
B2
Abstract

Examples of systems and methods for matching a base mesh to a target mesh for a virtual avatar or object are disclosed. The systems and methods may be configured to automatically match a base mesh of an animation rig to a target mesh, which may represent a particular pose of the virtual avatar or object. Base meshes may be obtained by manipulating an avatar or object into a particular pose, while target meshes may be obtain by scanning, photographing, or otherwise obtaining information about a person or object in the particular pose. The systems and methods may automatically match a base mesh to a target mesh using rigid transformations in regions of higher error and non-rigid deformations in regions of lower error.

Claims (56)

1. A method for matching a base mesh to a target mesh, the method comprising:

obtaining, using computing equipment, the base and target meshes, each of which comprises a plurality of vertices;

matching, using the computing equipment, the base mesh to the target mesh by:

(i) applying at least one iteration of a first type of transformation to at least some of the vertices of the base mesh until distance differences between the base and target meshes are below a first threshold; and

(ii) applying at least one iteration of a second type of transformation to at least some of the vertices of the base mesh until the distance differences between the base and target meshes are below a second threshold, wherein the second threshold is smaller than the first threshold; and

providing, using the computing equipment, an output based at least on the base mesh with transformed vertices,

wherein the first type of transformation comprises a rigid transformation of at least some of the vertices of the base mesh towards corresponding vertices of the target mesh, and

wherein applying at least one iteration of the first type of transformation comprises:

identifying a grouping of vertices of the base mesh that have distance differences above the first threshold, wherein a given vertex in the grouping of vertices has a largest distance difference amongst the grouping;

determining a size of a falloff region based at least in part on a magnitude of a largest distance difference;

applying the rigid transformation for the vertices of the base mesh in the falloff region; and

feathering the rigid transformation for the vertices of the base mesh outside of the falloff region.

2. The method of claim 1 , wherein the rigid transformation comprises a rigid nearest-neighbor transformation.

3. The method of claim 1 , wherein the second type of transformation comprises a non-rigid deformation of at least some of the vertices of the base mesh towards corresponding vertices of the target mesh.

4. The method of claim 3 , wherein the non-rigid deformation comprises a closest point on the surface (CPOS) deformation.

5. The method of claim 1 , wherein applying at least one iteration of the second type of transformation until the distance differences are below the second threshold comprises:

(a) applying the second type of transformation to at least some of the vertices of the base mesh;

(b) determining the distance differences between the vertices of the base mesh relative to corresponding vertices of the target mesh; and

iterating operations (a) and (b) until the distance differences have a mean error below the second threshold.

6. The method of claim 1 , wherein applying at least one iteration of the second type of transformation until the distance differences are below the second threshold comprises:

(1) applying the second type of transformation to at least some of the vertices of the base mesh;

(2) determining the distance differences between the vertices of the base mesh relative to corresponding vertices of the target mesh; and

iterating operations (1) and (2) until a maximum error in the distance differences is below the second threshold.

7. The method of claim 1 , wherein applying at least one iteration of the second type of transformation until the distance differences are below the second threshold comprises:

(A) applying the second type of transformation to at least some of the vertices of the base mesh;

(B) determining the distance differences between the vertices of the base mesh relative to corresponding vertices of the target mesh; and

iterating operations (A) and (B) until a maximum error in the distance differences is less than 0.5 cm.

8. The method of claim 1 , wherein applying at least one iteration of the first type of transformation comprises: determining the falloff region.

9. A system for matching a base mesh to a target mesh, the system comprising:

non-transitory computer storage configured to store the base and target meshes, each of which comprises a plurality of vertices; and

a hardware processor configured to match the base mesh to the target mesh, the hardware processor in communication with the non-transitory computer storage and the hardware processor programmed to:

(i) apply at least one iteration of a first type of transformation to at least some of the vertices of the base mesh until distance differences between the base and target meshes are below a first threshold;

(ii) apply at least one iteration of a second type of transformation to at least some of the vertices of the base mesh until the distance differences between the base and target meshes are below a second threshold, wherein the second threshold is smaller than the first threshold; and

(iii) provide an output based at least on the base mesh with transformed vertices,

wherein the first type of transformation comprises a rigid transformation of at least some of the vertices of the base mesh towards corresponding vertices of the target mesh, and

wherein applying at least one iteration of the first type of transformation comprises:

identifying a grouping of vertices of the base mesh that have distance differences above the first threshold, wherein a given vertex in the grouping of vertices has a largest distance difference amongst the grouping;

determining a size of a falloff region based at least in part on a magnitude of a largest distance difference;

applying the rigid transformation for the vertices of the base mesh in the falloff region; and

feathering the rigid transformation for the vertices of the base mesh outside of the falloff region.

10. The system of claim 9 , wherein the rigid transformation comprises a rigid nearest-neighbor transformation.

11. The system of claim 9 , wherein the second type of transformation comprises a non-rigid deformation of at least some of the vertices of the base mesh towards corresponding vertices of the target mesh.

12. The system of claim 11 , wherein the non-rigid deformation comprises a closest point on the surface (CPOS) deformation.

13. The system of claim 9 , wherein the hardware processor is programmed to:

(a) apply the second type of transformation to at least some of the vertices of the base mesh;

(b) determine the distance differences between the vertices of the base mesh relative to corresponding vertices of the target mesh; and

iterate operations (a) and (b) until the distance differences have a mean error below the second threshold.

14. The system of claim 9 , wherein the hardware processor is programmed to:

(1) apply the second type of transformation to at least some of the vertices of the base mesh;

(2) determine the distance differences between the vertices of the base mesh relative to corresponding vertices of the target mesh; and

iterate operations (1) and (2) until a maximum error in the distance differences is below the second threshold.

15. The system of claim 9 , wherein the hardware processor is programmed to:

(A) apply the second type of transformation to at least some of the vertices of the base mesh;

(B) determine the distance differences between the vertices of the base mesh relative to corresponding vertices of the target mesh; and

iterate operations (A) and (B) until a maximum error in the distance differences is less than 0.5 cm.

16. The system of claim 9 , and wherein the hardware processor is programmed to: determine the falloff region.

Assignments (3)
SECURITY INTEREST Recorded Nov 3, 2025
From: MAGIC LEAP, INC.; MENTOR ACQUISITION ONE, LLC; MOLECULAR IMPRINTS, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073480/0540 →
SECURITY INTEREST Recorded Oct 28, 2025
From: MAGIC LEAP, INC.; MENTOR ACQUISITION ONE, LLC; MOLECULAR IMPRINTS, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073387/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2024
From: COMER, SEAN MICHAEL
To: MAGIC LEAP, INC.
Reel/Frame 067874/0850 →
Continuity (4)
Division 17385620 · Jul 26, 2021
Division 16274677 · Feb 13, 2019
Provisional Application 62635939 · Feb 27, 2018
Related Publication 20240351666A1 · Oct 24, 2024
References Cited (79)
US 6850221B1 · Tickle · 2005 [cited by applicant]
US 9081426B2 · Armstrong · 2015 [cited by applicant]
US 9215293B2 · Miller · 2015 [cited by applicant]
US 9348143B2 · Gao et al. · 2016 [cited by applicant]
US 9417452B2 · Schowengerdt et al. · 2016 [cited by applicant]
US 9470906B2 · Kaji et al. · 2016 [cited by applicant]
US 9547174B2 · Gao et al. · 2017 [cited by applicant]
US 9671566B2 · Abovitz et al. · 2017 [cited by applicant]
US 9740006B2 · Gao · 2017 [cited by applicant]
US 9791700B2 · Schowengerdt · 2017 [cited by applicant]
US 9851563B2 · Gao et al. · 2017 [cited by applicant]
US 9857591B2 · Welch et al. · 2018 [cited by applicant]
US 9874749B2 · Bradski et al. · 2018 [cited by applicant]
US 11074748B2 · Comer · 2021 [cited by applicant]
US 20060028436A1 · Armstrong · 2006 [cited by applicant]
US 20070081123A1 · Lewis · 2007 [cited by applicant]
US 20100134490A1 · Corazza et al. · 2010 [cited by applicant]
US 20120127062A1 · Bar-Zeev et al. · 2012 [cited by applicant]
US 20120162549A1 · Gao et al. · 2012 [cited by applicant]
US 20130082922A1 · Miller · 2013 [cited by applicant]
US 20130117377A1 · Miller · 2013 [cited by applicant]
US 20130125027A1 · Abovitz · 2013 [cited by applicant]
US 20130208234A1 · Lewis · 2013 [cited by applicant]
US 20130242262A1 · Lewis · 2013 [cited by applicant]
US 20140071539A1 · Gao · 2014 [cited by applicant]
US 20140177023A1 · Gao et al. · 2014 [cited by applicant]
US 20140218468A1 · Gao et al. · 2014 [cited by applicant]
US 20140267420A1 · Schowengerdt et al. · 2014 [cited by applicant]
US 20140306866A1 · Miller et al. · 2014 [cited by applicant]
US 20140375628A1 · Saito · 2014 [cited by applicant]
US 20150016777A1 · Abovitz et al. · 2015 [cited by applicant]
US 20150103306A1 · Kaji et al. · 2015 [cited by applicant]
US 20150178939A1 · Bradski et al. · 2015 [cited by applicant]
US 20150178988A1 · Montserrat Mora et al. · 2015 [cited by applicant]
US 20150205126A1 · Schowengerdt · 2015 [cited by applicant]
US 20150206341A1 · Loper et al. · 2015 [cited by applicant]
US 20150213646A1 · Ma et al. · 2015 [cited by applicant]
US 20150222883A1 · Welch · 2015 [cited by applicant]
US 20150222884A1 · Cheng · 2015 [cited by applicant]
US 20150268415A1 · Schowengerdt et al. · 2015 [cited by applicant]
US 20150302652A1 · Miller et al. · 2015 [cited by applicant]
US 20150309263A2 · Abovitz et al. · 2015 [cited by applicant]
US 20150326570A1 · Publicover et al. · 2015 [cited by applicant]
US 20150346490A1 · Tekolste et al. · 2015 [cited by applicant]
US 20150346495A1 · Welch et al. · 2015 [cited by applicant]
US 20160011419A1 · Gao · 2016 [cited by applicant]
US 20160026253A1 · Bradski et al. · 2016 [cited by applicant]
US 20160065976A1 · He et al. · 2016 [cited by applicant]
US 20160157751A1 · Mahfouz · 2016 [cited by applicant]
US 20160270656A1 · Samec et al. · 2016 [cited by applicant]
US 20170032055A1 · Eisemann et al. · 2017 [cited by applicant]
US 20170032579A1 · Eisemann et al. · 2017 [cited by applicant]
US 20170046840A1 · Chen et al. · 2017 [cited by applicant]
US 20170301133A1 · Min · 2017 [cited by examiner]
US 20190073826A1 · Bailey · 2019 [cited by examiner]
US 20190147666A1 · Keustermans et al. · 2019 [cited by applicant]
WO WO2019168673A1 · 2019 [cited by applicant]
“Iterative Closest Point,” Wikipedia, URL: https://en.wikipedia.org/wiki/Iterative_closest_point, Retrieved Feb. 10, 2018. (3 pages). [cited by applicant]
“Optimal Step Nonrigid ICP,” MATLAB Central, File Exchange, mathworks.com, https://www.mathworks.com/ matlabcentral/fileexchange/54077-optimal-step-nonrigid-icp?requestedDomain=www.mathworks.com&s_tid=gn_loc_drop, Retri… [cited by applicant]
Achenbach et al., “Fast Generation of Realistic Virtual Humans,” [cited by applicant]
Amberg et al., “Optimal Step Nonrigid ICP Algorithms for Surface Registration,” [cited by applicant]
ARToolKit: htpps://web.archive.org/web/20051013062315/http://www.hitl.washington.edu:80/artoolkit/documentation/hardware.htm, archived Oct. 13, 2005. [cited by applicant]
Azuma, “A Survey of Augmented Reality,” In [cited by applicant]
Azuma, “Predictive Tracking for Augmented Reality,” Dissertation, TR95-007, Doctor of Philosophy, Department of Computer Science, UNC—Chapel Hill, NC, Feb. 1995. (262 pages). [cited by applicant]
Bimber et al., “Spatial Augmented Reality—Merging Real and Virtual Worlds,” 2005. (393 pages). [cited by applicant]
Casas et al., “Rapid Photorealistic Blendshape Modeling from RGB-D Sensors,” [cited by applicant]
Chang et al., “Global Registration of Dynamic Range Scans for Articulated Model Reconstruction,” [cited by applicant]
International Preliminary Report for Patentability, dated Aug. 27, 2020, and Written Opinion, dated Jun. 24, 2019, for International Application No. PCT/US19/17792. (8 pages). [cited by applicant]
International Search Report and Written Opinion, dated Jun. 24, 2019, for International Application No. PCT/US19/17792. (23 pages). [cited by applicant]
Invitation to Pay Additional Fees, dated Apr. 24, 2019, for International Application No. PCT/US19/17792. (4 pages). [cited by applicant]
Jacob, “Eye Tracking in Advanced Interface Design,” Virtual Environments and Advanced Interface Design, ed. by W Barfield and TA Furness, Oxford University Press, New York, Human-Computer Interaction Lab Naval Research … [cited by applicant]
Joshi et al., “Harmonic Coordinates for Character Articulation,” [cited by applicant]
Russian3DScanner, “R3DS Wrap,” http://www.russian3dscanner.com/, Retrieved Feb. 6, 2018. (3 pages). [cited by applicant]
Russian3DScanner, “Wrap3 Tutorials/ R3DS,” http://www.russian3dscanner.com/wrap3-tutorials/, Retrieved Feb. 6, 2018. (4 pages). [cited by applicant]
Savoye et al., “Multi-Layer Level of Detail for Character Animation,” [cited by applicant]
Sumner et al., “Deformation Transfer for Triangle Meshes,” [cited by applicant]
Tanriverdi et al., “Interacting With Eye Movements in Virtual Environments,” Department of Electrical Engineering and Computer Science, Tufts University, Medford, MA, ACM CHI 2000 Human Factors in Computing Systems Conf… [cited by applicant]
Xu et al., “Multilevel Active Registration for Kinect Human Body Scans: From Low Quality to High Quality,” [cited by applicant]
Zientara et al., “Individualized Avatars with Complete Anatomy Constructed from the ANSUR II 3-D Anthropometric Database,” [cited by applicant]