IP Library Granted Patent US 12664671
Granted Patent B2
US 12664671 · App. 18/477,651 · Granted Jun 23, 2026

Identifying duplicate objects using canonical forms in content creation systems and applications

Inventor: Michael Hemmer (Saarbruecken, DE)
Assignee: Nvidia Corporation
G06T7/50G06T17/00G06T19/20G06T2219/2016
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 12664671
App. No.
18/477,651
Granted
Jun 23, 2026
Kind
B2
Abstract

Approaches presented herein provide systems and methods for determining duplicate objects within an interaction environment. Connectivity information for an object may be used to map a set of three linearly independent vectors corresponding to a transform applied to the object. These three linearly independent vectors may be used to form canonical forms of first and second objects to determine whether the first object and the second object are duplicates or near-duplicates. Copies of duplicate or near-duplicate objects may then be deleted from the interaction environment and represented by a common object to which one or more additional transforms are applied.

Claims (89)

1 . A computer-implemented method, comprising:

generating a first invertible transform for a first object based in part on at least a first sequence of points representative of a first shape of the first object;

generating, using the first invertible transform, a first canonical form of the first object;

generating a second invertible transform for a second object based in part on at least a second sequence of points representative of a second shape of the second object;

generating, using the second invertible transform, a second canonical form of the second object;

determining, based in part upon comparing the first canonical form and the second canonical form, that the second object is a duplicate of the first object;

deleting the second object from a storage location associated with a scene representation including the first shape and the second shape; and

rendering the scene representation, the first shape being rendered in a first position based, at least in part, on a first applied transform and the second shape being rendered in a second position based, at least in part, on a second applied transform.

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

determining a first vector between a selected origin point and a first point in the first sequence of points;

determining a second vector, linearly independent from the first vector, between the selected origin point and a second point in the first sequence of points; and

determining a third vector, linearly independent from the first vector and the second vector, between the selected origin point and a third point in the first sequence of points.

3 . The computer-implemented method of claim 2 , wherein the first vector is perpendicular to the second vector.

4 . The computer-implemented method of claim 3 , wherein the first point is selected to provide a longest differential vector from the selected origin point.

5 . The computer-implemented method of claim 2 , wherein at least one of the selected origin point, the first point, the second point, or the third point are pseudo-randomly selected.

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

determining a first hash for the first object based, at least in part, on a first object topology;

determining a second hash for the second object based, at least in part, on a second object topology; and

placing the second object in a common bucket with the first object based on the first hash and the second hash.

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

determining the first object is imported from a source that applied a point-level transform to the first object.

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

using the first object to provide a representation of the second object.

9 . A processor, comprising:

one or more circuits to:

determine a first hash value for a first object based at least on a first object topology associated with first connectivity data for a first set of points of the first object;

determine a linearly independent set of vectors for the first object;

determine a second hash value for a second object based at least on a second object topology, associated with second connectivity data for a second set of points of the second object, is within a threshold value to the first hash value;

compare, using a transform associated with the linearly independent set of vectors, the first object and the second object;

determine the first object and the second object are duplicates;

remove the second object from a file associated with representation of a scene including the first object and the second object; and

render each of the first object and the second object, within the scene, using the first object.

10 . The processor of claim 9 , wherein the one or more circuits are further to:

determine, from a sequence of points corresponding to the first object, a first set of points for the set of vectors.

11 . The processor of claim 9 , wherein the set of vectors extend from a common origin point.

12 . The processor of claim 9 , wherein values for respective angles between the vectors of the set of vectors exceed a threshold.

13 . The processor of claim 12 , wherein the values are equal to 90 degrees.

14 . The processor of claim 13 , wherein respective lengths of the set of vectors are normalized to form a rigid transform.

15 . The processor of claim 9 , wherein the first object and the second object are represented by at least one of a triangular mesh, a polygonal mesh, a non-uniform rational B-spline, Bezier patches, or subdivision surfaces.

16 . The processor of claim 9 , wherein the processor is comprised in at least one of:

a system for performing simulation operations;

a system for performing simulation operations to test or validate autonomous machine applications;

a system for performing digital twin operations;

a system for performing light transport simulation;

a system for rendering graphical output;

a system for performing deep learning operations;

a system implemented using an edge device;

a system for generating or presenting virtual reality (VR) content;

a system for generating or presenting augmented reality (AR) content;

a system for generating or presenting mixed reality (MR) content;

a system incorporating one or more Virtual Machines (VMs);

a system for performing operations for a conversational AI application;

a system for performing operations for a generative AI application;

a system for performing operations using a language model;

a system for performing one or more generative content operations using a large language model (LLM);

a system implemented at least partially in a data center;

a system for performing hardware testing using simulation;

a system for performing one or more generative content operations using a language model;

a system for synthetic data generation;

a collaborative content creation platform for 3D assets; or

a system implemented at least partially using cloud computing resources.

17 . A system, comprising:

one or more processors to determine duplicates between a first object and a second object based at least on mapping a second canonical form of the second object to a first canonical form of the first object, the respective canonical forms determined by an ordered tuple of points forming at least three linearly independent vectors, to delete the second object, from a file corresponding to a scene including the first object and the second object, upon determining the second object is a duplicate of the first object, and to render each of the first object and the second object using the first object.

18 . The system of claim 17 , wherein the at least three linearly independent vectors extend from a common origin point.

19 . The system of claim 17 , wherein the second canonical form and the first canonical form are associated with a transform for the first object and the second object, respectively.

20 . The system of claim 17 , wherein the ordered tuple includes at least four points that are pseudo randomly selected.

21 . The system of claim 17 , wherein the first object and the second object are represented by at least one of a triangular mesh, a polygonal mesh, a non-uniform rational B-spline, Bezier patches, or subdivision surfaces.

22 . The system of claim 17 , wherein the system is one of:

a system for performing simulation operations;

a system for performing simulation operations to test or validate autonomous machine applications;

a system for performing digital twin operations;

a system for performing light transport simulation;

a system for rendering graphical output;

a system for performing deep learning operations;

a system implemented using an edge device;

a system for generating or presenting virtual reality (VR) content;

a system for generating or presenting augmented reality (AR) content;

a system for generating or presenting mixed reality (MR) content;

a system incorporating one or more Virtual Machines (VMs);

a system for performing operations for a conversational AI application;

a system for performing operations for a generative AI application;

a system for performing operations using a language model;

a system for performing one or more generative content operations using a large language model (LLM);

a system implemented at least partially in a data center;

a system for performing hardware testing using simulation;

a system for performing one or more generative content operations using a language model;

a system for synthetic data generation;

a collaborative content creation platform for 3D assets; or

a system implemented at least partially using cloud computing resources.