Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claim 1, 10, 11, 16, 17, 20 rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Regarding claim 1,, the phrase "in part" renders the claim indefinite because it is unclear and it is not well described in the claims.
Regarding claim 10, 20, the phrase "at least partially" renders the claim indefinite because it is unclear and it is not well described in the claims.
Therefore claim 1-20 are rejected under 35 U.S.C. 112(b) by dependency.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1-4, 7-13, 15-18, 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Ludwig (NPL, "HalfedgeCNN for Native and Flexible Deep Learning on Triangle Meshes", 2023) in view of Brettle (Patent No. US 20190244423 A1) in further view of Lubold (NPL, “Identifying the latent space geometry of network models through analysis of curvature”, 2023).
Regarding claim 1, Ludwig teaches encode, as a set of feature embeddings in a latent space, a set of vertex points representative of an object; (Ludwig, Pg. 2, “In the case of vertex based signals to be processed, the situation is more intricate because the vertex neighborhood structure commonly (and often inevitably) is variable across a mesh. This precludes the direct definition of a shared convolution operator. A convolution-like operator can still be formed by convolving only fixed-size subsequences of the one-ring neighborhood and pooling over all subsequences cyclically. Like in the above face or edge centered approaches, this pooling (e.g. by averaging) is necessary to deal with the ordering ambiguity. The vertex layer of Liu et al. [LKC*20] roughly follows this approach (additionally inserting subsequence-specific input features). Let us remark that the oriented half-flap operator used in that work might easily be mistaken to be closely related or even equivalent to part of our halfedge centered approach. However, this operator (which specifically consumes vertex based latent features combined with halfedge based input features) serves as a logical sub-unit of vertex-to-edge and vertex-to-vertex convolution-like layers (using averaging over subsequences, as discussed above). In particular that work does not involve any cascadable halfedge-to-halfedge layers (whether of convolution or pooling type) that consume and produce latent features living on halfedges.”)
determine a set of edges between pairs of vertex points of the set (Ludwig, Pg. 1, “Figure 1: HalfedgeCNN revolves around a triangle mesh's halfedges as central entities. Convolution, pooling, and unpooling operators are defined directly on halfedge neighborhoods. In contrast to other mesh entities (vertices, edges, faces), halfedges combine multiple advantages such as well-defined orientation, constant neighborhood structure, and unique relations to other mesh entities. This allows defining versatile neural networks that, in a sense, operate natively on meshes.”)
the set of edges corresponding to pairs of half-edges between the vertex points connected by an edge of the set of edges; (Ludwig, Pg. 1, “Figure 1: HalfedgeCNN revolves around a triangle mesh's halfedges as central entities. Convolution, pooling, and unpooling operators are defined directly on halfedge neighborhoods. In contrast to other mesh entities (vertices, edges, faces), halfedges combine multiple advantages such as well-defined orientation, constant neighborhood structure, and unique relations to other mesh entities. This allows defining versatile neural networks that, in a sense, operate natively on meshes.”)
construct, for pairs of half-edges associated with individual vertices, (Ludwig, Pg. 5, “Figure 6 Illustration of the halfedges (red) belonging to a vertex, an edge, or a face (marked in black), in 1:k, 1:2, and 1:3 relationships, respectively.”)
provide, in a single vector, information for the individual vertices (Ludwig, Pg. 5, “Notice that the belonging-relationships (as defined in Sec. 3) between halfedges and vertices, edges, faces are 1:k, 1:2, and 1:3 relationships, respectively; see Fig. 6. This allows us to define x-to-halfedge interface layers that can be prepended to a network. For example, a vertex-to-halfedge layer takes as input a value (a feature vector) per vertex and assigns it to all uniquely associated halfedges in its output:”)
the single vector representing a geometric mesh for the object. (Ludwig, Pg. 5, “Figure 6 Illustration of the halfedges (red) belonging to a vertex, an edge, or a face (marked in black), in 1:k, 1:2, and 1:3 relationships, respectively.”)
However, Ludwig is silent about At least one processor, comprising: one or more logical units to: based in part upon a proximity of the vertex points in the latent space, a continuous permutation ordering; and connected according to the continuous permutation ordering,
Brettle teaches At least one processor, comprising: one or more logical units to: (Brettle, “[0058] These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms “machine-readable medium” “computer-readable medium” refers to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.”)
a continuous permutation ordering; and (Brettle, “[0017] The triangular mesh data 132 includes point data representing the vertices of the triangular faces of the triangular mesh. In some implementations, the point data includes a list of vertices, where each vertex is a triplet representing a single point in three-dimensional space. In this implementation, the vertices define the shape of each triangle of the triangular mesh as well as the orientation of that triangle in three-dimensional space. In some implementations, the point data are arranged in an ordered list through which the triangular faces may be traversed. For example, the first three vertices of the ordered list may define a first triangular face. The next vertex of the ordered list may define a second triangular face based on the previous two vertices of the ordered list, and so on.”)
connected according to the continuous permutation ordering, (Brettle, “[0017] The triangular mesh data 132 includes point data representing the vertices of the triangular faces of the triangular mesh. In some implementations, the point data includes a list of vertices, where each vertex is a triplet representing a single point in three-dimensional space. In this implementation, the vertices define the shape of each triangle of the triangular mesh as well as the orientation of that triangle in three-dimensional space. In some implementations, the point data are arranged in an ordered list through which the triangular faces may be traversed. For example, the first three vertices of the ordered list may define a first triangular face. The next vertex of the ordered list may define a second triangular face based on the previous two vertices of the ordered list, and so on.”)
Lubold teaches based in part upon a proximity of the vertex points in the latent space (Lubold, Pg. 266, ”We develop methods that the researcher can apply in order to consistently estimate the latent space geometry from network data. Our core observation is that the observed network data encodes information on the distance between nodes in latent space. That is, a finite sample network corresponds to a noisy set of distances. So we transform our network problem to a statistical geometry problem.”)
Therefore, it would have been obvious for an ordinary skilled person in the art before the
effective filing date of claimed invention to have modified Ludwig’s art by including At least one processor, comprising: one or more logical units to: based in part upon a proximity of the vertex points in the latent space, a continuous permutation ordering; and connected according to the continuous permutation ordering, as taught by Brettle and Lubold, and use that with Ludwig’s HalfedgeCNN for Native and Flexible Deep Learning on Triangle Meshes.
The motivation for the combinations is to improve the invention with improve ordering and determination of vertex.
Regarding claim 2, Ludwig teaches The at least one processor of claim 1, wherein the one or more logical units are further to: generate individual vector representations for pairs of half-edges (Ludwig, Pg. 5, “Notice that the belonging-relationships (as defined in Sec. 3) between halfedges and vertices, edges, faces are 1:k, 1:2, and 1:3 relationships, respectively; see Fig. 6. This allows us to define x-to-halfedge interface layers that can be prepended to a network. For example, a vertex-to-halfedge layer takes as input a value (a feature vector) per vertex and assigns it to all uniquely associated halfedges in its output:”)
within a neighborhood of a respective vertex point; (Ludwig, Pg. 3, “A minimal halfedge neighborhood that can therefore be used to define a reasonable convolution operator centered at a halfedge is the halfedge itself (S), its opposite halfedge (O), and its next halfedge (N). We abbreviate this neighborhood (S,O,N), illustrated in Fig. 2 left. It is minimal in the sense that repeated convolutions performed over this neighborhood allow information exchange between arbitrary halfedges in a mesh. Smaller neighborhoods, (S,O) or (S,N), would confine information exchange to within individual edges or triangles—similar to how, e.g., 1 × 3-convolutions in pixel grids would limit exchange to within columns (or rows)”)
and generate the single vector by concatenating the individual vector representations. (Ludwig, Pg. 4, “Figure 3 Illustration of the convolution operation, on the example of the (S,O,N,ON) neighborhood, centered at a halfedge (red).”)
Regarding claim 3, Ludwig teaches is constructed using the individual vector representations. (Ludwig, Pg. 5, “Notice that the belonging-relationships (as defined in Sec. 3) between halfedges and vertices, edges, faces are 1:k, 1:2, and 1:3 relationships, respectively; see Fig. 6. This allows us to define x-to-halfedge interface layers that can be prepended to a network. For example, a vertex-to-halfedge layer takes as input a value (a feature vector) per vertex and assigns it to all uniquely associated halfedges in its output:”)
However, Ludwig is silent about The at least one processor of claim 2, wherein the permutation ordering.
Brettle teaches The at least one processor of claim 2, wherein the permutation ordering (Brettle, “[0017] The triangular mesh data 132 includes point data representing the vertices of the triangular faces of the triangular mesh. In some implementations, the point data includes a list of vertices, where each vertex is a triplet representing a single point in three-dimensional space. In this implementation, the vertices define the shape of each triangle of the triangular mesh as well as the orientation of that triangle in three-dimensional space. In some implementations, the point data are arranged in an ordered list through which the triangular faces may be traversed. For example, the first three vertices of the ordered list may define a first triangular face. The next vertex of the ordered list may define a second triangular face based on the previous two vertices of the ordered list, and so on.”)
Therefore, it would have been obvious for an ordinary skilled person in the art before the
effective filing date of claimed invention to have modified Ludwig’s art by including The at least one processor of claim 2, wherein the permutation ordering as taught by Brettle, and use that with Ludwig’s HalfedgeCNN for Native and Flexible Deep Learning on Triangle Meshes.
Regarding claim 4, Ludwig teaches The at least one processor of claim 1, wherein the pairs of half-edges are oppositely-directed half-edges, and wherein constructing a permutation ordering includes determining one or more next operators for individual half edges. (Ludwig, Pg. 3, “Assume we are given a closed manifold triangle mesh. The two halfedges corresponding to an edge {a,b} between two vertices a and b are the ordered tuples (a,b) and (b,a); they can be viewed as (oppositely) oriented edges. We say a halfedge (a,b) belongs (see Fig. 6) to the vertex a, to the edge {a,b}, and to the triangle (a, b, c), where the latter is a cyclic list (i.e. equivalent to (b, c, a) and (c,a,b)) ordered counterclockwise (by convention).”)
Regarding claim 7, Ludwig is silent about The at least one processor of claim 1, wherein the single vector is generated using a generative artificial intelligence (Al) model using at least one of the set of vertex points or the set of feature embeddings encoded from the set of vertex points.
Brettle teaches The at least one processor of claim 1, wherein the single vector is generated using a generative artificial intelligence (Al) model using at least one of the set of vertex points or the set of feature embeddings encoded from the set of vertex points. (Brettle, “[0018] The machine learning application manager 140 is configured to perform a machine learning application operation on the triangular mesh data 132 based on machine learning data 158. The machine learning data 158 defines a machine learning engine that takes as input the triangular mesh data 132 and produces as output simplified triangular mesh data 142. For example, the machine learning engine may be a neural network that includes a set of hidden nodes and weights. The points represented by the input triangular mesh data 132 form a layer of input nodes of the neural network. Each input node is connected to a set of hidden nodes that form a second layer of the neural network. Each connection between a hidden node and an input node may be weighted. The hidden nodes may represent particular transformation and removal operations on the points represented by the input triangular mesh data 132 to produce the points represented by the simplified triangular mesh data 142. The weights represent relative strengths, or likelihoods, of such transformation and removal operations. Further detail about such a neural network is provided with regard to FIG. 3.”)
Therefore, it would have been obvious for an ordinary skilled person in the art before the
effective filing date of claimed invention to have modified Ludwig’s art by including The at least one processor of claim 1, wherein the single vector is generated using a generative artificial intelligence (Al) model using at least one of the set of vertex points or the set of feature embeddings encoded from the set of vertex points as taught by Brettle, and use that with Ludwig’s HalfedgeCNN for Native and Flexible Deep Learning on Triangle Meshes.
Regarding claim 8, Ludwig teaches The at least one processor of claim 1, wherein the geometric mesh provides a continuous manifold-based representation of a shape of the object. (Ludwig, Pg. 6, “Figure 7 Examples of models (3 of 20) from two of the 30 classes of the classification dataset.”)
Regarding claim 9, Ludwig teaches The at least one processor of claim 1, wherein the geometric mesh includes one or more arbitrary polygonal faces. (Ludwig, Pg. 1, “Figure 1: HalfedgeCNN revolves around a triangle mesh's halfedges as central entities. Convolution, pooling, and unpooling operators are defined directly on halfedge neighborhoods. In contrast to other mesh entities (vertices, edges, faces), halfedges combine multiple advantages such as well-defined orientation, constant neighborhood structure, and unique relations to other mesh entities. This allows defining versatile neural networks that, in a sense, operate natively on meshes.”)
Regarding claim 10, Ludwig teaches The at least one processor of claim 1, 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 implemented at least partially in a data center; a system for performing hardware testing using simulation; a system for synthetic data generation; a system for performing generative Al operations using a large language model (LLM);a system for performing generative Al operations using a vision language model (VLM); a system for performing generative Al operations using a multi-modal language model; a system using or deploying one or more inference microservices; a system that incorporates one or more machine learning models deployed in a service or microservice along with an OS-level virtualization package (e.g., a container);a collaborative content creation platform for 3D assets; or a system implemented at least partially using cloud computing resources. (Ludwig, Pg. 2, “In recent years we could witness the proposal of quite a variety of approaches to make deep learning, in particular using CNNs, applicable to 2-manifold domains [BBL∗17], most relevantly in the form of surface triangle meshes [HL21]. These range from globally or locally reducing surface-based settings to 2D image settings, to defining novel operators and architectures (in particular for convolution and pooling) dedicated to the triangle mesh setting.”)
Regarding claim 11, Ludwig teaches encode, as a set of feature embeddings in a latent space, a set of vertex points representative of an object; (Ludwig, Pg. 2, “In the case of vertex based signals to be processed, the situation is more intricate because the vertex neighborhood structure commonly (and often inevitably) is variable across a mesh. This precludes the direct definition of a shared convolution operator. A convolution-like operator can still be formed by convolving only fixed-size subsequences of the one-ring neighborhood and pooling over all subsequences cyclically. Like in the above face or edge centered approaches, this pooling (e.g. by averaging) is necessary to deal with the ordering ambiguity. The vertex layer of Liu et al. [LKC*20] roughly follows this approach (additionally inserting subsequence-specific input features). Let us remark that the oriented half-flap operator used in that work might easily be mistaken to be closely related or even equivalent to part of our halfedge centered approach. However, this operator (which specifically consumes vertex based latent features combined with halfedge based input features) serves as a logical sub-unit of vertex-to-edge and vertex-to-vertex convolution-like layers (using averaging over subsequences, as discussed above). In particular that work does not involve any cascadable halfedge-to-halfedge layers (whether of convolution or pooling type) that consume and produce latent features living on halfedges.”)
determine a set of edges between pairs of vertex points of the set (Ludwig, Pg. 1, “Figure 1: HalfedgeCNN revolves around a triangle mesh's halfedges as central entities. Convolution, pooling, and unpooling operators are defined directly on halfedge neighborhoods. In contrast to other mesh entities (vertices, edges, faces), halfedges combine multiple advantages such as well-defined orientation, constant neighborhood structure, and unique relations to other mesh entities. This allows defining versatile neural networks that, in a sense, operate natively on meshes.”)
the set of edges corresponding to pairs of half-edges between the vertex points connected by an edge of the set of edges; (Ludwig, Pg. 1, “Figure 1: HalfedgeCNN revolves around a triangle mesh's halfedges as central entities. Convolution, pooling, and unpooling operators are defined directly on halfedge neighborhoods. In contrast to other mesh entities (vertices, edges, faces), halfedges combine multiple advantages such as well-defined orientation, constant neighborhood structure, and unique relations to other mesh entities. This allows defining versatile neural networks that, in a sense, operate natively on meshes.”)
construct, for pairs of half-edges associated with individual vertices, (Ludwig, Pg. 5, “Figure 6 Illustration of the halfedges (red) belonging to a vertex, an edge, or a face (marked in black), in 1:k, 1:2, and 1:3 relationships, respectively.”)
provide, in a single vector, information for the individual vertices (Ludwig, Pg. 5, “Notice that the belonging-relationships (as defined in Sec. 3) between halfedges and vertices, edges, faces are 1:k, 1:2, and 1:3 relationships, respectively; see Fig. 6. This allows us to define x-to-halfedge interface layers that can be prepended to a network. For example, a vertex-to-halfedge layer takes as input a value (a feature vector) per vertex and assigns it to all uniquely associated halfedges in its output:”)
the single vector representing a geometric mesh for the object. (Ludwig, Pg. 5, “Figure 6 Illustration of the halfedges (red) belonging to a vertex, an edge, or a face (marked in black), in 1:k, 1:2, and 1:3 relationships, respectively.”)
However, Ludwig is silent about A computer-implemented method, comprising: one or more logical units to: based in part upon a proximity of the vertex points in the latent space, a continuous permutation ordering; and connected according to the continuous permutation ordering,
Brettle teaches A computer-implemented method, comprising: (Brettle, “[0004] In one general aspect, a method can include receiving, by controlling circuitry of a computer configured to simplify information related to an object for display on a display device, triangular mesh data representing a triangular mesh, the triangular mesh including a first plurality of faces, the first plurality of faces having a number of faces and providing a first approximation of the object. The method can also include performing, by the controlling circuitry, a machine learning application operation on the triangular mesh data, to produce simplified triangular mesh data, the simplified triangular mesh data representing a simplified triangular mesh, the simplified triangular mesh including a second plurality of faces, the second plurality of faces providing a second approximation of the object and having a specified number of faces that is less than the number of faces of the first plurality of faces. The method can further include rendering, by the controlling circuitry, the simplified mesh data to display the second approximation of the object on the display device.”)
a continuous permutation ordering; and (Brettle, “[0017] The triangular mesh data 132 includes point data representing the vertices of the triangular faces of the triangular mesh. In some implementations, the point data includes a list of vertices, where each vertex is a triplet representing a single point in three-dimensional space. In this implementation, the vertices define the shape of each triangle of the triangular mesh as well as the orientation of that triangle in three-dimensional space. In some implementations, the point data are arranged in an ordered list through which the triangular faces may be traversed. For example, the first three vertices of the ordered list may define a first triangular face. The next vertex of the ordered list may define a second triangular face based on the previous two vertices of the ordered list, and so on.”)
connected according to the continuous permutation ordering, (Brettle, “[0017] The triangular mesh data 132 includes point data representing the vertices of the triangular faces of the triangular mesh. In some implementations, the point data includes a list of vertices, where each vertex is a triplet representing a single point in three-dimensional space. In this implementation, the vertices define the shape of each triangle of the triangular mesh as well as the orientation of that triangle in three-dimensional space. In some implementations, the point data are arranged in an ordered list through which the triangular faces may be traversed. For example, the first three vertices of the ordered list may define a first triangular face. The next vertex of the ordered list may define a second triangular face based on the previous two vertices of the ordered list, and so on.”)
Lubold teaches based in part upon a proximity of the vertex points in the latent space (Lubold, Pg. 266, ”We develop methods that the researcher can apply in order to consistently estimate the latent space geometry from network data. Our core observation is that the observed network data encodes information on the distance between nodes in latent space. That is, a finite sample network corresponds to a noisy set of distances. So we transform our network problem to a statistical geometry problem.”)
Therefore, it would have been obvious for an ordinary skilled person in the art before the
effective filing date of claimed invention to have modified Ludwig’s art by including A computer-implemented method, comprising: one or more logical units to: based in part upon a proximity of the vertex points in the latent space, a continuous permutation ordering; and connected according to the continuous permutation ordering, as taught by Brettle and Lubold, and use that with Ludwig’s HalfedgeCNN for Native and Flexible Deep Learning on Triangle Meshes.
Regarding claim 12, Ludwig teaches The computer-implemented method of claim 11, further comprising: generate individual vector representations for pairs of half-edges (Ludwig, Pg. 5, “Notice that the belonging-relationships (as defined in Sec. 3) between halfedges and vertices, edges, faces are 1:k, 1:2, and 1:3 relationships, respectively; see Fig. 6. This allows us to define x-to-halfedge interface layers that can be prepended to a network. For example, a vertex-to-halfedge layer takes as input a value (a feature vector) per vertex and assigns it to all uniquely associated halfedges in its output:”)
within a neighborhood of a respective vertex point; (Ludwig, Pg. 3, “A minimal halfedge neighborhood that can therefore be used to define a reasonable convolution operator centered at a halfedge is the halfedge itself (S), its opposite halfedge (O), and its next halfedge (N). We abbreviate this neighborhood (S,O,N), illustrated in Fig. 2 left. It is minimal in the sense that repeated convolutions performed over this neighborhood allow information exchange between arbitrary halfedges in a mesh. Smaller neighborhoods, (S,O) or (S,N), would confine information exchange to within individual edges or triangles—similar to how, e.g., 1 × 3-convolutions in pixel grids would limit exchange to within columns (or rows)”)
and generate the single vector by concatenating the individual vector representations. (Ludwig, Pg. 4, “Figure 3 Illustration of the convolution operation, on the example of the (S,O,N,ON) neighborhood, centered at a halfedge (red).”)
Regarding claim 13, Ludwig The computer-implemented method of claim 11, wherein the pairs of half-edges are oppositely-directed half-edges, and wherein determining the permutation ordering includes determining next operators for individual half edges. (Ludwig, Pg. 3, “Assume we are given a closed manifold triangle mesh. The two halfedges corresponding to an edge {a,b} between two vertices a and b are the ordered tuples (a,b) and (b,a); they can be viewed as (oppositely) oriented edges. We say a halfedge (a,b) belongs (see Fig. 6) to the vertex a, to the edge {a,b}, and to the triangle (a, b, c), where the latter is a cyclic list (i.e. equivalent to (b, c, a) and (c,a,b)) ordered counterclockwise (by convention).”)
Regarding claim 15, Ludwig teaches The computer-implemented method of claim 11, further comprising: receiving a point cloud representation of the object; and using an encoder network with the point cloud (Ludwig, Pg. 3, “Non-Convolutional Approaches Less related are approaches focusing on non-convolutional networks. This includes techniques that essentially bring mesh vertices into one-dimensional orders to enable the applications of recurrent neural networks (RNNs), using random walks [LT20] or spiral patterns [LDCK18, GCBZ19,BBP∗19]. Also point cloud based techniques [QSMG17] can easily be applied to the set of vertex points, albeit not exploiting the potentially useful mesh connectivity information.”) to encode the set of feature embeddings in the latent space, the feature embeddings corresponding to features in one or more resolutions. (Ludwig, Pg. 2, “In the case of vertex based signals to be processed, the situation is more intricate because the vertex neighborhood structure commonly (and often inevitably) is variable across a mesh. This precludes the direct definition of a shared convolution operator. A convolution-like operator can still be formed by convolving only fixed-size subsequences of the one-ring neighborhood and pooling over all subsequences cyclically. Like in the above face or edge centered approaches, this pooling (e.g. by averaging) is necessary to deal with the ordering ambiguity. The vertex layer of Liu et al. [LKC*20] roughly follows this approach (additionally inserting subsequence-specific input features). Let us remark that the oriented half-flap operator used in that work might easily be mistaken to be closely related or even equivalent to part of our halfedge centered approach. However, this operator (which specifically consumes vertex based latent features combined with halfedge based input features) serves as a logical sub-unit of vertex-to-edge and vertex-to-vertex convolution-like layers (using averaging over subsequences, as discussed above). In particular that work does not involve any cascadable halfedge-to-halfedge layers (whether of convolution or pooling type) that consume and produce latent features living on halfedges.”)
Regarding claim 16, Ludwig teaches a generative model to generate a vector-based representation of a geometric mesh, (Ludwig, Pg. 5, “Notice that the belonging-relationships (as defined in Sec. 3) be-tween halfedges and vertices, edges, faces are 1:k, 1:2, and 1:3relationships, respectively; see Fig. 6. This allows us to define x-to-halfedge interface layers that can be prepended to a network. For example, a vertex-to-halfedge layer takes as input a value (a feature vector) per vertex and assigns it to all uniquely associated halfedges in its output:”)
However, Ludwig is silent about the vector-based representation generated in part by constructing permutation orderings for pairs of half-edges determined to connect vertex points based in part upon a proximity of embeddings encoded from the vertex points in a latent space.
Brettle teaches A system including one or more processors to use (Brettle, “[0058] These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms “machine-readable medium” “computer-readable medium” refers to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.”)
the vector-based representation generated in part by constructing permutation orderings for pairs of half-edges (Brettle, “[0017] The triangular mesh data 132 includes point data representing the vertices of the triangular faces of the triangular mesh. In some implementations, the point data includes a list of vertices, where each vertex is a triplet representing a single point in three-dimensional space. In this implementation, the vertices define the shape of each triangle of the triangular mesh as well as the orientation of that triangle in three-dimensional space. In some implementations, the point data are arranged in an ordered list through which the triangular faces may be traversed. For example, the first three vertices of the ordered list may define a first triangular face. The next vertex of the ordered list may define a second triangular face based on the previous two vertices of the ordered list, and so on.”)
Lubold teaches determined to connect vertex points based in part upon a proximity of embeddings encoded from the vertex points in a latent space. (Lubold, Pg. 266, ”We develop methods that the researcher can apply in order to consistently estimate the latent space geometry from network data. Our core observation is that the observed network data encodes information on the distance between nodes in latent space. That is, a finite sample network corresponds to a noisy set of distances. So we transform our network problem to a statistical geometry problem.”)
Therefore, it would have been obvious for an ordinary skilled person in the art before the
effective filing date of claimed invention to have modified Ludwig’s art by including A system including one or more processors to use the vector-based representation generated in part by constructing permutation orderings for pairs of half-edges determined to connect vertex points based in part upon a proximity of embeddings encoded from the vertex points in a latent space as taught by Brettle and Lubold, and use that with Ludwig’s HalfedgeCNN for Native and Flexible Deep Learning on Triangle Meshes.
Regarding claim 17, Ludwig teaches The system of claim 16, wherein the one or more processors are further to generate individual vector representations for pairs of half-edges (Ludwig, Pg. 5, “Notice that the belonging-relationships (as defined in Sec. 3) between halfedges and vertices, edges, faces are 1:k, 1:2, and 1:3 relationships, respectively; see Fig. 6. This allows us to define x-to-halfedge interface layers that can be prepended to a network. For example, a vertex-to-halfedge layer takes as input a value (a feature vector) per vertex and assigns it to all uniquely associated halfedges in its output:”)
within a neighborhood of a respective vertex point; (Ludwig, Pg. 3, “A minimal halfedge neighborhood that can therefore be used to define a reasonable convolution operator centered at a halfedge is the halfedge itself (S), its opposite halfedge (O), and its next halfedge (N). We abbreviate this neighborhood (S,O,N), illustrated in Fig. 2 left. It is minimal in the sense that repeated convolutions performed over this neighborhood allow information exchange between arbitrary halfedges in a mesh. Smaller neighborhoods, (S,O) or (S,N), would confine information exchange to within individual edges or triangles—similar to how, e.g., 1 × 3-convolutions in pixel grids would limit exchange to within columns (or rows)”)
and generate the single vector by concatenating the individual vector representations. (Ludwig, Pg. 4, “Figure 3 Illustration of the convolution operation, on the example of the (S,O,N,ON) neighborhood, centered at a halfedge (red).”)
Regarding claim 18, Ludwig teaches The system of claim 16, wherein the pairs of half-edges are oppositely-directed half-edges, and wherein determining the permutation ordering includes determining next operators for individual half edges. (Ludwig, Pg. 3, “Assume we are given a closed manifold triangle mesh. The two halfedges corresponding to an edge {a,b} between two vertices a and b are the ordered tuples (a,b) and (b,a); they can be viewed as (oppositely) oriented edges. We say a halfedge (a,b) belongs (see Fig. 6) to the vertex a, to the edge {a,b}, and to the triangle (a, b, c), where the latter is a cyclic list (i.e. equivalent to (b, c, a) and (c,a,b)) ordered counterclockwise (by convention).”)
Regarding claim 20, Ludwig teaches The system of claim 16, wherein the system comprises 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 for performing generative Al operations using a large language model (LLM);' a system for performing generative Al operations using a vision language model (VLM);a system for performing generative Al operations using a multi-modal language model; a system using or deploying one or more inference microservices; a system that incorporates one or more machine learning models deployed in a service or microservice along with an OS-level virtualization package (e.g., a container);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 implemented at least partially in a data center; a system for performing hardware testing using simulation; 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. (Ludwig, Pg. 2, “In recent years we could witness the proposal of quite a variety of approaches to make deep learning, in particular using CNNs, applicable to 2-manifold domains [BBL∗17], most relevantly in the form of surface triangle meshes [HL21]. These range from globally or locally reducing surface-based settings to 2D image settings, to defining novel operators and architectures (in particular for convolution and pooling) dedicated to the triangle mesh setting.”)
Claim(s) 5 is/are rejected under 35 U.S.C. 103 as being unpatentable over Ludwig (NPL, "HalfedgeCNN for Native and Flexible Deep Learning on Triangle Meshes", 2023) in view of Brettle (Patent No. US 20190244423 A1) in further view of Lubold (NPL, “Identifying the latent space geometry of network models through analysis of curvature”, 2023), in further view of Zorzi (Patent No. US 20230146018 A1).
Regarding claim 5, Ludwig is silent about The at least one processor of claim 1, wherein constructing a continuous permutation ordering includes: generating at least one permutation matrix; and processing the at least one permutation matrix using Sinkhorn permutation sorting.
Zorzi teaches The at least one processor of claim 1, wherein constructing a continuous permutation ordering includes: generating at least one permutation matrix; and processing the at least one permutation matrix using Sinkhorn permutation sorting. (Zorzi, “[0048] The offsets are used to refine the vertex positions, while m are propagated through the optimal connection network 150 that creates an N X N score matrix and generates the permutation matrix using the Sinkhorn algorithm. MLP 612 is a neural network that will look at all different combination of descriptors, and, for each combination, will return a number or score 614, which is then added to score matrix 610. MLP 642 and score 644 operate in the same way to produce score matrix 640. Thus, score extraction is implemented with MLPs 612, 642 and the Sinkhorn algorithm.”)
Therefore, it would have been obvious for an ordinary skilled person in the art before the
effective filing date of claimed invention to have modified Ludwig’s art by including The at least one processor of claim 1, wherein constructing a continuous permutation ordering includes: generating at least one permutation matrix; and processing the at least one permutation matrix using Sinkhorn permutation sorting as taught by Zorzi, and use that with Ludwig’s HalfedgeCNN for Native and Flexible Deep Learning on Triangle Meshes.
The motivation for the combination is to improve sorting/ordering of the combination.
Claim(s) 6, 14, 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Ludwig (NPL, "HalfedgeCNN for Native and Flexible Deep Learning on Triangle Meshes", 2023) in view of Brettle (Patent No. US 20190244423 A1) in further view of Lubold (NPL, “Identifying the latent space geometry of network models through analysis of curvature”, 2023), in further view of Charlton (NPL, “On minimum cost local permutation problems and their application to smart meter data”, 2013)
Regarding claim 6, Ludwig is silent about The at least one processor of claim 1, wherein constructing a continuous permutation ordering includes performing lowest-cost matching for half-edges in neighborhoods of individual vertex points.
Charlton teaches The at least one processor of claim 1, wherein constructing a continuous permutation ordering includes performing lowest-cost matching for half-edges in neighborhoods of individual vertex points. (Charlton, Pg. 2, "Definition 2. An instance MCLP(n, w, C) of the minimum cost local permutation problem comprises:– integers n and w such that 0 ≤ w < n– a function C : {1,...,n}×{1,...,n} → R≥0 assigning costs to the permuted points; C(I , j) is the cost of mapping point i onto point j.")
Therefore, it would have been obvious for an ordinary skilled person in the art before the effective filing date of claimed invention to have modified Ludwig’s art by including The at least one processor of claim 1, wherein constructing a continuous permutation ordering includes performing lowest-cost matching for half-edges in neighborhoods of individual vertex points as taught by Charlton, and use that with Ludwig’s HalfedgeCNN for Native and Flexible Deep Learning on Triangle Meshes.
The motivation for the combination is to improve ordering/sorting for the invention.
Regarding claim 14, Ludwig is silent about The computer-implemented method of claim 11, wherein determining the continuous permutation ordering includes performing lowest-cost matching for half-edges in one or more neighborhoods of individual vertex points.
Charlton teaches The computer-implemented method of claim 11, wherein determining the continuous permutation ordering includes performing lowest-cost matching for half-edges in one or more neighborhoods of individual vertex points. (Charlton, Pg. 2, "Definition 2. An instance MCLP(n, w, C) of the minimum cost local permutation problem comprises:– integers n and w such that 0 ≤ w < n– a function C : {1,...,n}×{1,...,n} → R≥0 assigning costs to the permuted points; C(I , j) is the cost of mapping point i onto point j.")
Therefore, it would have been obvious for an ordinary skilled person in the art before the effective filing date of claimed invention to have modified Ludwig’s art by including The computer-implemented method of claim 11, wherein determining the continuous permutation ordering includes performing lowest-cost matching for half-edges in one or more neighborhoods of individual vertex points as taught by Charlton, and use that with Ludwig’s HalfedgeCNN for Native and Flexible Deep Learning on Triangle Meshes.
Regarding claim 19, Ludwig is silent about The system of claim 16, wherein constructing the permutation orderings includes performing lowest-cost matching for half-edges in neighborhoods of individual vertex points.
Charlton teaches The system of claim 16, wherein constructing the permutation orderings includes performing lowest-cost matching for half-edges in neighborhoods of individual vertex points. (Charlton, Pg. 2, "Definition 2. An instance MCLP(n, w, C) of the minimum cost local permutation problem comprises:– integers n and w such that 0 ≤ w < n– a function C : {1,...,n}×{1,...,n} → R≥0 assigning costs to the permuted points; C(I , j) is the cost of mapping point i onto point j.")
Therefore, it would have been obvious for an ordinary skilled person in the art before the effective filing date of claimed invention to have modified Ludwig’s art by including The system of claim 16, wherein constructing the permutation orderings includes performing lowest-cost matching for half-edges in neighborhoods of individual vertex points as taught by Charlton, and use that with Ludwig’s HalfedgeCNN for Native and Flexible Deep Learning on Triangle Meshes.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner
should be directed to CHAK FUNG A LAM whose telephone number is (571)272-9823. The examiner can
normally be reached Monday-Friday 8am-5pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a
USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use
the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor,
Said Broome can be reached at 5712722931. The fax phone number for the organization where this
application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from
Patent Center. Unpublished application information in Patent Center is available to registered users. To
file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit
https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center andhttps://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional
questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like
assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or
571-272-1000.
/C.A.L./Examiner, Art Unit 2612
/Said Broome/Supervisory Patent Examiner, Art Unit 2612