DETAILED ACTION
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 § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception without significantly more. The claims recite a mathematical calculation and/or an abstract idea.
MPEP 2106 III provides a flowchart for the subject matter eligibility test for product and processes. The claim analysis following the flowchart is as follows:
Regarding claim 1, it recites:
[a]t least one processor, comprising:
one or more processing units to:
identify spatial positions of a plurality of geometric primitives to be used to render an image of a scene;
determine, for each of a number of iterations, potential sub-groupings of the plurality of geometric primitives based in part on the spatial positions;
calculate, for each iteration, a spatial cost for each sub-grouping using a surface area heuristic;
calculate, for each iteration, a cut cost for each sub-grouping based in part on a number of connections between geometric primitives crossing between different groups, or within a same group, of a respective sub-grouping; and
provide, after a final iteration of the number of iterations, a set of final sub-groupings of the geometric primitives to be used to render the image, the set of final sub-groupings having a lowest cost calculated using at least the spatial cost and the connectivity cost.
Step 1: Is the claim to a process, machine, manufacture or composition of matter?
Yes. It recites a processor, which is a machine, and an identifying step which is a process.
Step 2A, Prong One: Does the claim recite an abstract idea, law of nature, or nature phenomenon?
Yes.
The step identify spatial positions of a plurality of geometric primitives can be interpreted as a mental process because a person is capable of identifying an area where geometric primitives are present. The additional element of to be used to render an image of a scene is an insignificant extra solution of displaying the geometric primitives.
Therefore, this judicial exception is not integrated into a practical application because the additional elements recited in the claim are insignificant extra solutions.
The step determine, for each of a number of iterations, potential sub-groupings of the plurality of geometric primitives based in part on the spatial positions can be interpreted as a mental process because a person is capable of determining sub-groups of the geometric primitives based on their location.
The step calculate, for each iteration, a spatial cost for each sub-grouping using a surface area heuristic can be interpreted as a mathematical calculation and/or mental process because a quantifiable spatial cost can be determined using a surface area heuristic by a person using simple aids.
The step calculate, for each iteration, a cut cost for each sub-grouping based in part on a number of connections between geometric primitives crossing between different groups, or within a same group, of a respective sub-grouping can be interpreted as a mathematical calculation and/or mental process because a cut cost can be determined for the groups based on their connections by a person using simple aids.
The step provide, after a final iteration of the number of iterations, a set of final sub-groupings of the geometric primitives to be used to render the image, the set of final sub-groupings having a lowest cost calculated using at least the spatial cost and the connectivity cost can be determined as an additional element. However, providing the sub-groupings to be used to render is an insignificant extra solution of using the sub-grouping as an input. Therefore, it does not integrate the abstract idea into practical application.
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
As discussed above, the additional elements recited in the claim are insignificant extra solutions. Therefore, they do not amount to significantly more than the abstract idea recited in the claim.
Therefore, the claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception.
Therefore, claim 1 is not eligible subject matter under 35 USC 101.
Regarding claim 2, it depends from claim 1 and further recites:
identify the connections between the geometric primitives crossing between different groups, or within the same group, each connected pair of geometric primitives having a first connection and a second connection in opposite directions.
The identification of connections between the primitives crossing and having two connections in opposite directions is still a mental process. Therefore, claim 2 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 2 is not eligible subject matter under 35 USC 101.
Regarding claim 3, it depends from claim 2 and further recites:
determine the cut cost using a spatially sorted array of primitive indices calculated using the first connection and the second connection identified for the connected pairs of geometric primitives.
The determining of the cut cost using a sorted array of indices is still a mental process and/or mathematical calculation. Therefore, claim 3 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 3 is not eligible subject matter under 35 USC 101.
Regarding claim 4, it depends from claim 2 and further recites:
determine the cut cost at each of a plurality of potential cut positions for the potential sub-groupings using a prefix sum scan to produce a running total of a primitive array sorted by spatial position.
The determining of the cut cost at each cut position for the sub-groupings using a prefix sum scan to produce a running total is still a mental process and/or mathematical calculation. Therefore, claim 4 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 4 is not eligible subject matter under 35 USC 101.
Regarding claim 5, it depends from claim 4 and further recites:
determine the cut cost in part using a ratio cut to divide relevant costs by a number of items on each side of the potential cut positions.
The determining of the cut cost using a ratio cut for division is still a mental process and/or mathematical calculation. Therefore, claim 5 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 5 is not eligible subject matter under 35 USC 101.
Regarding claim 6, it depends from claim 4 and further recites:
determine the cut cost in part using a normalize cut to consider a cumulative number of connections per geometric primitive.
The determining of the cut cost using a normalize cut to consider a cumulative number is still a mental process and/or mathematical calculation. Therefore, claim 6 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 6 is not eligible subject matter under 35 USC 101.
Regarding claim 7, it depends from claim 4 and further recites:
calculate, for each iteration, at least one additional cost for each sub-grouping based in part on at least one additional selection criterion; and
provide, after the final iteration of the number of iterations, the set of final sub-groupings of the geometric primitives to be used to render the image, the set of final sub-groupings having a lowest cost calculated using at least the spatial cost, the cut cost, and the at least one additional cost.
The calculation of at least one additional cost for each sub-grouping is still a mental process and/or mathematical calculation. The act of providing the final set of sub-groupings including the various costs is an insignificant extra solution of using the sub-grouping as an input. Therefore, claim 7 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 7 is not eligible subject matter under 35 USC 101.
Regarding claim 8, it depends from claim 7 and further recites:
wherein the at least one additional cost includes at least one of a bounding box overlap cost or bounding box surface area cost for the geometric primitives in each group of the potential sub-groupings.
The additional cost including a bounding box overlap cost or bounding box can be interpreted as an additional element. However, the additional cost’s composition is an insignificant extra solution. Therefore, claim 8 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 8 is not eligible subject matter under 35 USC 101.
Regarding claim 9, it depends from claim 7 and further recites:
wherein the spatial cost and the connectivity cost are weighted by weights determined in part based on a subsequent operation to be performed using a mesh representation including the set of final sub-groupings of the geometric primitives.
The spatial cost and connectivity cost being weighted based on an operation using a mesh representation of the final sub-groupings can be interpreted as an additional element. However, the addition of a weighted factor applied to the spatial and connectivity costs is an insignificant extra solution. Therefore, claim 9 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 9 is not eligible subject matter under 35 USC 101.
Regarding claim 10, it depends from claim 1 and further recites:
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 AI operations using a large language model (LLM);
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.
The manner of how the processor is utilized can be interpreted as an additional element. However, the claim lacks an element to sufficiently point out a specific process to prevent a human from performing the processor’s claimed tasks and therefore is an insignificant extra solution. Therefore, claim 10 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 10 is not eligible subject matter under 35 USC 101.
Regarding claim 11, it recites:
[a] computer-implemented method, comprising:
determining, for each of a number of iterations, potential sub-groupings of a plurality of geometric primitives based in part on identified spatial positions;
calculating, for each iteration, a cut cost for each sub-grouping based in part on a number of connections between geometric primitives crossing between different groups, or within a same group, of a respective sub-grouping;
selecting, for each iteration, a sub-grouping with a lowest cost based at least in part on the cut cost; and
providing, after a final iteration of the number of iterations, a set of final sub-groupings of the geometric primitives to be used with one or more subsequent operations.
Step 1: Is the claim to a process, machine, manufacture or composition of matter?
Yes. It recites a computer implemented method which is a process.
Step 2A, Prong One: Does the claim recite an abstract idea, law of nature, or nature phenomenon?
Yes.
The step determining, for each of a number of iterations, potential sub-groupings of a plurality of geometric primitives based in part on identified spatial positions can be interpreted as a mental process because a person is capable of determining sub-groups of the geometric primitives based on their location.
The step calculating, for each iteration, a cut cost for each sub-grouping based in part on a number of connections between geometric primitives crossing between different groups, or within a same group, of a respective sub-grouping can be interpreted as a mathematical calculation and/or mental process because a cut cost can be determined for the groups based on their connections by a person using simple aids.
The step selecting, for each iteration, a sub-grouping with a lowest cost based at least in part on the cut cost can be interpreted as a mathematical and/or mental process because a person is capable of selecting a sub-grouping with a lowest cost.
The step providing, after a final iteration of the number of iterations, a set of final sub-groupings of the geometric primitives to be used with one or more subsequent operations can be determined as an additional element. However, providing the sub-groupings to be used in later operations is an insignificant extra solution of using the sub-grouping as an input. Therefore, it does not integrate the abstract idea into practical application.
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
As discussed above, the additional elements recited in the claim are insignificant extra solutions. Therefore, they do not amount to significantly more than the abstract idea recited in the claim.
Therefore, the claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception.
Therefore, claim 11 is not eligible subject matter under 35 USC 101.
Regarding claim 12, it depends from claim 11 and further recites:
calculating, for each iteration, a spatial cost for each sub-grouping using a surface area heuristic, wherein the sub-grouping selected for each iteration is selected further based upon the spatial cost.
The calculation of a spatial cost for each sub-grouping using a surface area heuristic is still a mental process and/or mathematical calculation. The selection of the sub-grouping being based on the cost is an insignificant extra solution of picking the sub-group. Therefore, claim 12 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 12 is not eligible subject matter under 35 USC 101.
Regarding claim 13, it depends from claim 12 and further recites:
calculating, for each iteration, at least one additional cost for each sub-grouping based in part on at least one additional selection criterion; and
providing, after the final iteration of the number of iterations, the set of final sub-groupings of the geometric primitives, the set of final sub-groupings having a lowest cost calculated using at least the spatial cost, the cut cost, and the at least one additional cost.
The calculation of at least one additional cost for each sub-grouping is still a mental process and/or mathematical calculation. The act of providing the final set of sub-groupings including the various costs is an insignificant extra solution of using the sub-grouping as an input. Therefore, claim 13 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 13 is not eligible subject matter under 35 USC 101.
Regarding claim 14, it depends from claim 11 and further recites:
calculating the cut cost using a spatially sorted array of primitive indices calculated using a first connection and a second connection identified for connected pairs of geometric primitives.
The determining of the cut cost using a sorted array of indices is still a mental process and/or mathematical calculation. Therefore, claim 14 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 14 is not eligible subject matter under 35 USC 101.
Regarding claim 15, it depends from claim 11 and further recites:
calculating the cut cost at each of a plurality of potential cut positions for the potential sub-groupings using a prefix sum scan to produce a running total of a primitive array sorted by spatial position.
The calculation of a cut cost for each sub-grouping using a prefix sum scan is still a mental process and/or mathematical calculation. Therefore, claim 15 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 15 is not eligible subject matter under 35 USC 101.
Regarding claim 16, it depends from claim 11 and further recites:
calculating the cut cost in part using a ratio cut, to divide relevant costs by a number of items on each side of potential cut positions, or a normalize cut to consider a cumulative number of connections per geometric primitive.
The calculation of a cut cost using a ratio cut is still a mental process and/or mathematical calculation. Therefore, claim 16 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 16 is not eligible subject matter under 35 USC 101.
Regarding claim 17, it recites:
[a] system, comprising:
one or more processing units to determine a set of clusters of geometric primitives to be used to perform light transport simulation for an image to be rendered, the clusters determined recursively by splitting the geometric primitives into smaller clusters based in part on spatial positions of the geometric primitives and connectivity of the geometric primitives between the clusters.
Step 1: Is the claim to a process, machine, manufacture or composition of matter?
Yes. It recites a system which is a machine.
Step 2A, Prong One: Does the claim recite an abstract idea, law of nature, or nature phenomenon?
Yes.
The step determine a set of clusters of geometric primitives to be used to perform light transport simulation can be interpreted as a mental process because a person is capable of determining clusters of the geometric primitives. However, the use of the clusters to perform light transportation simulation is an insignificant extra solution. Therefore, it does not integrate the abstract idea into practical application.
The step clusters determined recursively by splitting the geometric primitives into smaller clusters based in part on spatial positions of the geometric primitives and connectivity of the geometric primitives between the clusters can be interpreted as a mental process because a person is capable of determining clusters of the geometric primitives by splitting the primitives into smaller clusters based on their location.
Step 2B: Does the claim recite additional elements that amount to significantly more than the judicial exception?
No.
As discussed above, the additional elements recited in the claim are insignificant extra solutions. Therefore, they do not amount to significantly more than the abstract idea recited in the claim.
Therefore, the claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception.
Therefore, claim 17 is not eligible subject matter under 35 USC 101.
Regarding claim 18, it depends from claim 17 and further recites:
wherein the one or more processing units are further to recursively determine the clusters based in part on at least one additional splitting criterion, the clusters determined in part using a cost function including weighted terms for the spatial positions, the connectivity, and the at least one additional splitting criterion.
The additional splitting criterion used by the processing unit that utilizes a cost function and connectivity can be interpreted as an additional element. However, the determination of the clusters is an insignificant extra solution. Therefore, claim 18 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 18 is not eligible subject matter under 35 USC 101.
Regarding claim 19, it depends from claim 17 and further recites:
wherein the one or more processing units are further to calculate a cut cost for the clusters using a spatially sorted array of primitive indices calculated using connections identified for connected pairs of geometric primitives, or a plurality of potential cut positions for potential sub-groupings determined using a prefix sum scan to produce a running total of a primitive array sorted by spatial position.
The cut cost calculated by the processing unit that utilizes a spatially sorted array can be interpreted as an additional element. However, the determination of the clusters is an insignificant extra solution. Therefore, claim 19 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 19 is not eligible subject matter under 35 USC 101.
Regarding claim 20, it depends from claim 17 and further recites:
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 AI operations using a large language model (LLM);
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 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.
The content of what the system comprises can be interpreted as an additional element. However, the claim lacks an element to sufficiently point out a specific process to prevent a human from performing the system’s claimed tasks and therefore is an insignificant extra solution. Therefore, claim 20 does not recite any additional elements that can integrate the abstract idea into practical application or amount to significantly more to the abstract idea.
Therefore, claim 20 is not eligible subject matter under 35 USC 101.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1, 10-12, 17, & 20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Kirill Garanzha (Pat. Pub. US-20130016109-A1, herein after “Garanzha”).
In regard to claims 1 & 11, Garanzha teaches [a]t least one processor, comprising:
one or more processing units to:
identify spatial positions of a plurality of geometric primitives to be used to render an image of a scene “A scene representation or geometry 100, such as shown in FIG. 1 according to a virtual memory organization of one graphics processing system embodiment, may comprise one or more objects 102 (e.g., 102A, 102B, 102C, etc.) in three-dimensional space, as represented by coordinate symbol 104” (Garanzha, ¶ [0033]) where a scene contains objects and “[e]ach object 102 may comprise a shape or character that is composed of many (e.g., hundreds of millions or billions) primitives” (Garanzha, ¶ [0033]) and the objects within the scene are comprised of primitives;
determine, for each of a number of iterations, potential sub-groupings of the plurality of geometric primitives based in part on the spatial positions “Referring to FIG. 3B, shown is a spatial representation 304 in a 2D projection of the BVH and the primitives grouped into disjoining subsets” (Garanzha, ¶ [0039]) where for each spatial representation, or iteration, subsets of the groups are created. It is noted that these subsets are created based on proximity;
PNG
media_image1.png
471
379
media_image1.png
Greyscale
Garanzha, Fig. 3B, depicting geometric primitives (items 310, 312, & 314) which are located in a spatial representation (item 304) and are grouped in subsets (items 306 & 308) based on their proximity.
calculate, for each iteration, a spatial cost “the split position is selected with the smallest divide cost” (Garanzha, ¶ [0094]), additionally, see ¶ [0092 & 0093] for cost calculation specifics for each sub-grouping using a surface area heuristic “the grouping is based on a surface area heuristic” (Garanzha, ¶ [0107]);
calculate, for each iteration, a cut cost for each sub-grouping based in part on a number of connections between geometric primitives crossing between different groups, or within a same group, of a respective sub-grouping “a modified SAH heuristic is used (e.g., MEH (Memory Efficient Heuristic)). This way, the resulting clusters are well separated from each other; an average cluster has approximately 0.9*M or up to 0.97*M primitives (i.e. close to 100% utilization), which means that the page memory allocation is utilized better than with the SAH method only” (Garanzha, ¶ [0100]) where the use of a memory efficient heuristic involves calculating the least costly grouping and where the grouping is based on connections between the primitives (i.e. the clusters are well separated, or are not crossing between different groups); and
provide, after a final iteration of the number of iterations, a set of final sub-groupings of the geometric primitives to be used to render the image, the set of final sub-groupings having a lowest cost calculated using at least the spatial cost and the connectivity cost “Each split position has a subdivision cost as a combination of SAH and MEH hints and the set of primitives is finally subdivided at the split position with the lowest combined cost” (Garanzha, ¶ [0086]) where the cost of each subdivision is obtained and only the subdivision with the lowest cost will be used for rendering. It is noted that “[t]o subdivide the primitives into disjoint subsets and proceed with recursive subdivision, the split position is selected with the smallest divide cost among c-1 evaluated split positions considering the primitive sorting along each dimension, X, Y and Z” (Garanzha, ¶ [0094]).
In regard to claim 11, claim 1 is substantially similar to claim 11, hence the rejection analysis for claim 1 is also applied to claim 11. Garanzha teaches the additional limitations of [a] computer-implemented method, comprising:
determining, for each of a number of iterations, potential sub-groupings of a plurality of geometric primitives based in part on identified spatial positions (Garanzha, ¶ [0039]);
calculating, for each iteration, a cut cost for each sub-grouping based in part on a number of connections between geometric primitives crossing between different groups, or within a same group, of a respective sub-grouping (Garanzha, ¶ [0100]);
selecting, for each iteration, a sub-grouping with a lowest cost based at least in part on the cut cost “Each split position has a subdivision cost as a combination of SAH and MEH hints and the set of primitives is finally subdivided at the split position with the lowest combined cost” (Garanzha, ¶ [0086]) where the lost cost subdivision is selected; and
providing, after a final iteration of the number of iterations, a set of final sub-groupings of the geometric primitives to be used with one or more subsequent operations (Garanzha, ¶ [0094]).
In regard to claim 10, Garanzha teaches [t]he 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 AI operations using a large language model (LLM);
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 “graphics processing systems are disclosed that provide one or more high-throughput ray tracing solutions for large scenes (e.g., composed of tens or hundreds of gigabytes of geometry data). In one embodiment, a ray tracing solution is provided that simulates light optics effects and provides a tool of photorealistic rendering. Certain embodiments of graphics processing systems use widespread GPUs as a processor to solve various tasks” (Garanzha, ¶ [0026]) where simulating light optics effects are taught utilizing the disclosed processor. Additionally, “Many areas of computer graphics, including film rendering, physical simulation, visualization and interactive rendering, etc., are rapidly impacted by the computational power and programmability of modern throughput architectures commonly available in today's graphics hardware (e.g., Graphics Processing Unit, GPU)” (Garanzha, ¶ [0023]).
In regard to claim 12, Garanzha teaches [t]he computer-implemented method of claim 11, further comprising:
calculating, for each iteration, a spatial cost for each sub-grouping “the split position is selected with the smallest divide cost” (Garanzha, ¶ [0094]), additionally, see ¶ [0092 & 0093] for cost calculation specifics using a surface area heuristic “the grouping is based on a surface area heuristic” (Garanzha, ¶ [0107]), wherein the sub-grouping selected for each iteration is selected further based upon the spatial cost “Each split position has a subdivision cost as a combination of SAH and MEH hints and the set of primitives is finally subdivided at the split position with the lowest combined cost” (Garanzha, ¶ [0086]) where the subdivision cost is read as the spatial cost that determines the selection of sub-groupings.
In regard to claim 17, Garanzha teaches [a] system, comprising:
one or more processing units to determine a set of clusters of geometric primitives “[e]ach object 102 may comprise a shape or character that is composed of many (e.g., hundreds of millions or billions) primitives” (Garanzha, ¶ [0033]) to be used to perform light transport simulation for an image to be rendered “a ray tracing solution is provided that simulates light optics effects and provides a tool of photorealistic rendering” (Garanzha, ¶ [0026]) where the light optics effects are read as light transportation simulation, the clusters determined recursively by splitting the geometric primitives into smaller clusters based in part on spatial positions of the geometric primitives and connectivity of the geometric primitives between the clusters “Considering the SAH hint, the node 1204 has c primitives, and c-1 split positions are evaluated at each primitive centroid 1208 (starting from the second primitive). At each i-th split position, c primitives can be separated into two (2) disjoint subsets” (Garanzha, ¶ [0086]) where the splits of the geometric primitives are based on location and cost.
In regard to claim 20, Garanzha teaches [t]he system of claim 17, 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 AI operations using a large language model (LLM);
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 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 “graphics processing systems are disclosed that provide one or more high-throughput ray tracing solutions for large scenes (e.g., composed of tens or hundreds of gigabytes of geometry data). In one embodiment, a ray tracing solution is provided that simulates light optics effects and provides a tool of photorealistic rendering. Certain embodiments of graphics processing systems use widespread GPUs as a processor to solve various tasks” (Garanzha, ¶ [0026]) where simulating light optics effects are taught utilizing the disclosed processor. Additionally, “Many areas of computer graphics, including film rendering, physical simulation, visualization and interactive rendering, etc., are rapidly impacted by the computational power and programmability of modern throughput architectures commonly available in today's graphics hardware (e.g., Graphics Processing Unit, GPU)” (Garanzha, ¶ [0023]).
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.
Claims 2-3 & 13-14 are rejected under 35 U.S.C. 103 as being unpatentable over Garanzha in view of Carsten Waechter et. al. (Pat. Pub. US-20090167763-A1, herein after “Waechter”).
In regard to claim 2, Garanzha teaches [t]he at least one processor of claim 1.
Garanzha fails to explicitly teach wherein the one or more processing units are further to:
identify the connections between the geometric primitives crossing between different groups, or within the same group, each connected pair of geometric primitives having a first connection and a second connection in opposite directions.
Waechter teaches wherein the one or more processing units are further to:
identify the connections between the geometric primitives crossing between different groups, or within the same group, each connected pair of geometric primitives having a first connection and a second connection in opposite directions “Although most realtime ray tracing implementations currently used prefer to store triangle data on a per triangle basis (e.g., to allow for pre-transformations like the presented Badouel test), it can be worth to use the common vertex/index-array representation of meshes that separates vertex data from triangle connectivity” (Waechter, ¶ [0356]) where triangles are connected, and “By testing the signs of (a.sub.1-B.sub.1)n and (a.sub.1-B.sub.2)n for equality it can be determined if both corners are on different sides of the line and thus if the line intersects the rectangle, resulting in both children being intersected by the primitive” (Waechter, ¶ [0377]) where a triangle may overlap a split plane, which is read as being between different groups, see Fig. 13.
PNG
media_image2.png
359
413
media_image2.png
Greyscale
Waechter, Fig. 25, depicting connected geometric primitives crossing between different groups. The groups are separated and the connected geometric primitive pair on the left are in opposite directions.
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of breaking an object of primitives into groups for simplified processing taught by Garanzha with the method of identifying connections where the primitives are separated or intersected, and can be in opposite directions taught by Waechter to specifically split the primitives. The suggestion/motivation to do so would have been to identify when primitives are connected, and when they are crossing so that they may be separated properly.
In regard to claim 3, Garanzha in view of Waechter teach[t]he at least one processor of claim 2, wherein the one or more processing units are further to:
determine the cut cost using a spatially sorted array of primitive indices calculated using the first connection and the second connection identified for the connected pairs of geometric primitives “Although most realtime ray tracing implementations currently used prefer to store triangle data on a per triangle basis (e.g., to allow for pre-transformations like the presented Badouel test), it can be worth to use the common vertex/index-array representation of meshes that separates vertex data from triangle connectivity” (Waechter, ¶ [0356]) where an index array representation based partly on primitive connectivity is taught. “ In practice (rule of thumb) this can save up to half the amount of memory used for a triangulated scene (of course this depends on the exact scene, leaving a large gap between a scene consisting of almost randomly scattered unconnected triangles, and closed triangle meshes with an extremely high vertex valence (such as a triangulated cone))” (Waechter, ¶ [0356]) where memory is saved, which is read as a cut cost.
In regard to claim 13, Garanzha teaches [t]he computer-implemented method of claim 12, further comprising:
providing, after the final iteration of the number of iterations, the set of final sub-groupings of the geometric primitives, the set of final sub-groupings having a lowest cost calculated using at least the spatial cost “Each split position has a subdivision cost as a combination of SAH and MEH hints and the set of primitives is finally subdivided at the split position with the lowest combined cost” (Garanzha, ¶ [0086]) where the subdivision cost is read as the spatial cost that determines the selection of sub-groupings.
Garanzha fails to teach calculating, for each iteration, at least one additional cost for each sub-grouping based in part on at least one additional selection criterion; and
providing, after the final iteration of the number of iterations, the set of final sub-groupings of the geometric primitives, the set of final sub-groupings having a lowest cost calculated using at least the cut cost and the at least one additional cost.
Waechter teaches calculating, for each iteration, at least one additional cost for each sub-grouping based in part on at least one additional selection criterion “An additional criterion that has been found useful in various ray tracing implementations is to discard or pack empty volume as early as possible in the hierarchy construction” (Waechter, ¶ [0474]) and “using an already present ray tracing hierarchy (kd-tree or BIH) demonstrated that the results can be comparable to using an additional bucket sort (see Section 3.4.3), as soon as the leaves of the hierarchy are small enough to only keep an average of 10 to 20 or less particles at a time. While this is obviously only the case for detailed geometry, it will allow for a complete merge of the usually separated ray tracing and sampling step at almost no additional costs” (Waechter, ¶ [0472]) where an additional criterion can produce an additional cost; and
providing, after the final iteration of the number of iterations, the set of final sub-groupings of the geometric primitives, the set of final sub-groupings having a lowest cost calculated using at least the cut cost “[i]n practice (rule of thumb) this can save up to half the amount of memory used for a triangulated scene (of course this depends on the exact scene, leaving a large gap between a scene consisting of almost randomly scattered unconnected triangles, and closed triangle meshes with an extremely high vertex valence (such as a triangulated cone))” (Waechter, ¶ [0356]) where memory is saved, which is read as a cut cost, and the at least one additional cost “using an already present ray tracing hierarchy (kd-tree or BIH) demonstrated that the results can be comparable to using an additional bucket sort (see Section 3.4.3), as soon as the leaves of the hierarchy are small enough to only keep an average of 10 to 20 or less particles at a time. While this is obviously only the case for detailed geometry, it will allow for a complete merge of the usually separated ray tracing and sampling step at almost no additional costs” (Waechter, ¶ [0472]) where additional costs are avoided by using the ray tracing hierarchy.
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of a lowest cost calculated using a spatial cost taught by Garanzha with the method of an additional cost from an additional criterion taught by Waechter to utilize multiple costs. The suggestion/motivation to do so would have been to produce a comprehensive cost analysis based on multiple criterion for efficiency.
In regard to claim 14, Garanzha teaches [t]he computer-implemented method of claim 11.
Garanzha fails to explicitly teach further comprising:
calculating the cut cost using a spatially sorted array of primitive indices calculated using a first connection and a second connection identified for connected pairs of geometric primitives.
Waechter teaches calculating the cut cost using a spatially sorted array of primitive indices calculated using a first connection and a second connection identified for connected pairs of geometric primitives “Although most realtime ray tracing implementations currently used prefer to store triangle data on a per triangle basis (e.g., to allow for pre-transformations like the presented Badouel test), it can be worth to use the common vertex/index-array representation of meshes that separates vertex data from triangle connectivity” (Waechter, ¶ [0356]) where an index array representation based partly on primitive connectivity is taught. “In practice (rule of thumb) this can save up to half the amount of memory used for a triangulated scene (of course this depends on the exact scene, leaving a large gap between a scene consisting of almost randomly scattered unconnected triangles, and closed triangle meshes with an extremely high vertex valence (such as a triangulated cone))” (Waechter, ¶ [0356]) where memory is saved, which is read as a cut cost.
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of finding a lowest cost taught by Garanzha with the method of calculating a cut cost using the connections taught by Waechter to find the saved cost. The suggestion/motivation to do so would have been to track or observe how much cost was avoided.
Claims 4 & 7-8 are rejected under 35 U.S.C. 103 as being unpatentable over Garanzha in view of Waechter and Lorenzo Tessari et. al. (Pat. Pub. US-20230377267-A1, herein after “Tessari”).
In regard to claim 4, Garanzha in view of Waechter teach [t]he at least one processor of claim 2.
Garanzha in view of Waechter fail to explicitly teach wherein the one or more processing units are further to:
determine the cut cost at each of a plurality of potential cut positions for the potential sub-groupings using a prefix sum scan to produce a running total of a primitive array sorted by spatial position.
Tessari teaches wherein the one or more processing units are further to:
determine the cut cost at each of a plurality of potential cut positions for the potential sub-groupings using a prefix sum scan to produce a running total of a primitive array sorted by spatial position “Spatial ordering of primitives is leveraged in order to perform a localized search for insertion candidates (FIG. 105). The algorithm considers a fixed number of subset primitives and their leaf nodes around a primitive. Since subset primitives are sparsely represented in the original array, the leaf pointers are stored into a separate compacted array. A prefix sum is used to perform this compaction, which is also used to later index into this compacted array” (Tessari, ¶ [1119]) where a spatially sorted array is used in combination with a prefix sum to evaluate the cost.
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of breaking an object of primitives into groups for simplified processing and identifying connections where the primitives are separated or intersected taught by Garanzha in view of Waechter with the method of using a prefix sum on an array sorted by spatial position taught by Tessari to quickly discern the most effective cut. The suggestion/motivation to do so would have been to evaluate the cost for each primitive effectively “Evaluating the cost function for each leaf node for each primitive would be too expensive in practice” (Tessari, ¶ [1119]).
In regard to claim 7, Garanzha in view of Waechter and Tessari teach [t]he at least one processor of claim 4, wherein the one or more processing units are further to:
calculate, for each iteration, at least one additional cost for each sub-grouping based in part on at least one additional selection criterion; and
provide, after the final iteration of the number of iterations, the set of final sub-groupings of the geometric primitives to be used to render the image, the set of final sub-groupings having a lowest cost calculated using at least the spatial cost “Each split position has a subdivision cost as a combination of SAH and MEH hints and the set of primitives is finally subdivided at the split position with the lowest combined cost” (Garanzha, ¶ [0086]) where the subdivision cost is read as the spatial cost that determines the selection of sub-groupings, the cut cost, and the at least one additional cost.
Waechter teaches calculate, for each iteration, at least one additional cost for each sub-grouping based in part on at least one additional selection criterion “An additional criterion that has been found useful in various ray tracing implementations is to discard or pack empty volume as early as possible in the hierarchy construction” (Waechter, ¶ [0474]) and “using an already present ray tracing hierarchy (kd-tree or BIH) demonstrated that the results can be comparable to using an additional bucket sort (see Section 3.4.3), as soon as the leaves of the hierarchy are small enough to only keep an average of 10 to 20 or less particles at a time. While this is obviously only the case for detailed geometry, it will allow for a complete merge of the usually separated ray tracing and sampling step at almost no additional costs” (Waechter, ¶ [0472]) where an additional criterion can produce an additional cost; and
provide, after the final iteration of the number of iterations, the set of final sub-groupings of the geometric primitives to be used to render the image, the set of final sub-groupings having a lowest cost calculated using at least the cut cost “In practice (rule of thumb) this can save up to half the amount of memory used for a triangulated scene (of course this depends on the exact scene, leaving a large gap between a scene consisting of almost randomly scattered unconnected triangles, and closed triangle meshes with an extremely high vertex valence (such as a triangulated cone))” (Waechter, ¶ [0356]) where memory is saved, which is read as a cut cost, and the at least one additional cost “using an already present ray tracing hierarchy (kd-tree or BIH) demonstrated that the results can be comparable to using an additional bucket sort (see Section 3.4.3), as soon as the leaves of the hierarchy are small enough to only keep an average of 10 to 20 or less particles at a time. While this is obviously only the case for detailed geometry, it will allow for a complete merge of the usually separated ray tracing and sampling step at almost no additional costs” (Waechter, ¶ [0472]) where an additional criterion can produce an additional cost.
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of a lowest cost calculated using a spatial cost taught by Garanzha with the method of a cut cost and an additional cost from an additional criterion taught by Waechter to utilize multiple costs. The suggestion/motivation to do so would have been to produce a comprehensive cost analysis based on multiple criterion for efficiency.
In regard to claim 8, Garanzha in view of Waechter and Tessari teach [t]he at least one processor of claim 7, wherein the at least one additional cost includes at least one of a bounding box overlap cost or bounding box surface area cost for the geometric primitives in each group of the potential sub-groupings “Test the bounding rectangle of a.sub.1, a.sub.2 for an overlap with the node-split-plane rectangular (see FIG. 14). If no overlap is found, the triangle is only sorted into one child” (Waechter, ¶ [0376]) where bounding boxes can overlap, which may be an additional cost.
Claims 15 & 19 are rejected under 35 U.S.C. 103 as being unpatentable over Garanzha in view of Tessari.
In regard to claim 15, Garanzha teaches [t]he computer-implemented method of claim 11.
Garanzha fails to teach further comprising:
calculating the cut cost at each of a plurality of potential cut positions for the potential sub-groupings using a prefix sum scan to produce a running total of a primitive array sorted by spatial position.
Tessari teaches calculating the cut cost at each of a plurality of potential cut positions for the potential sub-groupings using a prefix sum scan to produce a running total of a primitive array sorted by spatial position “Spatial ordering of primitives is leveraged in order to perform a localized search for insertion candidates (FIG. 105). The algorithm considers a fixed number of subset primitives and their leaf nodes around a primitive. Since subset primitives are sparsely represented in the original array, the leaf pointers are stored into a separate compacted array. A prefix sum is used to perform this compaction, which is also used to later index into this compacted array” (Tessari, ¶ [1119]) where a spatially sorted array is used in combination with a prefix sum to evaluate the cost.
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of breaking an object of primitives into groups for simplified processing taught by Garanzha with the method of using a prefix sum on an array sorted by spatial position taught by Tessari to quickly discern the most effective cut. The suggestion/motivation to do so would have been to evaluate the cost for each primitive effectively “Evaluating the cost function for each leaf node for each primitive would be too expensive in practice” (Tessari, ¶ [1119]).
In regard to claim 19, Garanzha teaches [t]he system of claim 17.
Garanzha does not explicitly teach wherein the one or more processing units are further to calculate a cut cost for the clusters using a spatially sorted array of primitive indices calculated using connections identified for connected pairs of geometric primitives, or a plurality of potential cut positions for potential sub-groupings determined using a prefix sum scan to produce a running total of a primitive array sorted by spatial position.
Tessari teaches wherein the one or more processing units are further to calculate a cut cost for the clusters using a spatially sorted array of primitive indices calculated using connections identified for connected pairs of geometric primitives, or a plurality of potential cut positions for potential sub-groupings determined using a prefix sum scan to produce a running total of a primitive array sorted by spatial position “Spatial ordering of primitives is leveraged in order to perform a localized search for insertion candidates (FIG. 105). The algorithm considers a fixed number of subset primitives and their leaf nodes around a primitive. Since subset primitives are sparsely represented in the original array, the leaf pointers are stored into a separate compacted array. A prefix sum is used to perform this compaction, which is also used to later index into this compacted array” (Tessari, ¶ [1119]) where a spatially sorted array is used in combination with a prefix sum to evaluate the cost.
It would have been prima facie obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified the method of breaking an object of primitives into groups for simplified processing taught by Garanzha with the method of using a prefix sum on an array sorted by spatial position taught by Tessari to quickly discern the most effective cut. The suggestion/motivation to do so would have been to evaluate the cost for each primitive effectively “Evaluating the cost function for each leaf node for each primitive would be too expensive in practice” (Tessari, ¶ [1119]).
Allowable Subject Matter
Claims 5-6, 9, 16 & 18 objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. James Stanard et. al. Pat. Pub. US-20190156550-A1 discloses clusters of triangles used in ray-triangle intersection configured to decrease the cost of memory.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CAIDEN ALEXANDER USSERY whose telephone number is (571)272-1192. The examiner can normally be reached Monday - Friday* 7:30AM - 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, Tammy Goddard can be reached at (571) 272-7773. 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 and https://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.U./ Examiner, Art Unit 2611
/TAMMY GODDARD/ Supervisory Patent Examiner, Art Unit 2611