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 .
Response to Arguments
Applicant’s arguments with respect to claims 1 and 19-20 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Double Patenting
A rejection based on double patenting of the “same invention” type finds its support in the language of 35 U.S.C. 101 which states that “whoever invents or discovers any new and useful process... may obtain a patent therefor...” (Emphasis added). Thus, the term “same invention,” in this context, means an invention drawn to identical subject matter. See Miller v. Eagle Mfg. Co., 151 U.S. 186 (1894); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Ockert, 245 F.2d 467, 114 USPQ 330 (CCPA 1957).
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/process/file/efs/guidance/eTD-info-I.jsp.
Claims 1-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1-21 of U.S. Patent No. 11481974. Although the claims at issue are not identical, they are not patentably distinct from each other because claims 1-21 of U.S. Patent No. 11481974 has a narrower scope than the instant application.
Instant Application
Patent No. US 11481974
1. A method comprising:
obtaining, by a device, visualization data that depicts at least one three-dimensional object;
sanitizing, by the device, the visualization data;
decimating, by the device, meshes of polygons in the sanitized visualization data to form compressed visualization data,
the decimation operation comprising, for each atomic decimation operation, automatically performing one or more sanity checks on polygons affected by that atomic decimation operation prior to the atomic decimation operation; and
storing, by the device, the compressed visualization data in one or more files.
2. (New) The method as in claim 1, wherein the obtained visualization data is obtained from one or more files that use a different file format than that of the one or more files in which the compressed visualization data is stored.
3. (New) The method as in claim 1, further comprising:
determining, by the device, whether each polygon in the visualization data is a visible polygon, in part by testing whether that polygon is reachable by at least one of a plurality of light rays extending from infinity; and
removing, by the device, any polygon from the visualization data that is not a visible polygon.
4. (New) The method as in claim 3, wherein determining whether each polygon in the visualization data is a visible polygon further comprising:
iteratively testing whether a given polygon is visible by a visible polygon and, if so, deeming that polygon as being a visible polygon.
5. (New) The method as in claim 1, wherein the one or more sanity checks comprise at least one of:
determining whether a set of polygons intersect another polygon, determining whether a decimated set of polygons would intersect another polygon, determining whether a local curvature of a set of polygons would be preserved after undergoing an atomic decimation operation of the one or more decimation operations, or determining whether a maximum curvature of a set of polygons would exceed a predefined threshold after undergoing the atomic decimation operation.
6. (New) The method as in claim 1, wherein the one or more sanity checks comprise at least one of:
determining whether a degeneracy of a set of polygons would increase after the set of polygons undergoes an atomic decimation operation of the one or more decimation operations, ensuring that orientations of a set of polygons would be preserved after undergoing the atomic decimation operation, ensuring that a set of neighboring polygons undergoing the atomic decimation operation are also neighbors in a UV space, or ensuring that shading and geometric normal errors resulting from the atomic decimation operation are within a predefined threshold.
7. (New) The method as in claim 1, wherein the one or more sanity checks comprise at least one of: ensuring that an atomic decimation operation of the one or more decimation operations does not result in an edge of a polygon having a curvature greater than a defined threshold, ensuring that two edges of polygons to be joined are not bifurcated, ensuring that joining two edges of polygons will not result in a concave edge, or ensuring that an edge to be flipped is not along a UV boundary.
8. (New) The method as in claim 1, wherein the one or more sanity checks comprise at least one of: ensuring that two quadrilaterals to be joined by an atomic decimation operation of the one or more decimation operations would not result in an area larger than a defined size, ensuring that a polygon edge that would result from joining two quadrilaterals is not longer than a defined threshold, or ensuring that the atomic decimation operation would not shift a vertex by a predefined amount.
9. (New) The method as in claim 1, further comprising:
assigning a material isndex to a particular mesh, wherein the material index indicates at least one of: a degree of metalness, roughness, or specularity of the particular mesh.
10. (New) The method as in claim 9, wherein the one or more sanity checks comprise ensuring that a material index of a mesh to be joined with the particular mesh by an atomic decimation operation of the one or more decimation operations matches the material index of the particular mesh.
11. (New) The method as in claim 9, further comprising:
compressing textures of the visualization data, wherein a degree of compression applied to a particular texture is based on its associated material index.
12. (New) The method as in claim 1, further comprising:
applying, by the device, instance detection to two meshes, to determine whether the two meshes are instances of one another; and removing, by the device, duplicate instances from the visualization data.
13. (New) The method as in claim 11, further comprising:
applying instance detection to buckets of sub-meshes of the two meshes.
14. (New) The method as in claim 1, wherein decimating the meshes comprises:
identifying parallel geometries in the visualization data by:
flagging intersecting polygons,
applying instance detection, to identify meshes that are similar to one another, and
identifying the parallel geometries, based in part on the flagged intersecting polygons and meshes that are similar to one another.
15. (New) The method as in claim 14, wherein decimating the meshes comprises:
removing obstructed parallel geometries from the visualization data.
16. (New) The method as in claim 1, wherein decimating the meshes comprises:
performing normal baking on the visualization data.
17. (New) The method as in claim 1, further comprising:
quantifying degeneracy of a particular polygon on a numeric scale.
18. (New) The method as in claim 1, further comprising:
using a machine learning model to compare the visualization data and the compressed visualization data.
19. A tangible, non-transitory, computer-readable medium storing program instructions that cause a device to execute a process comprising:
obtaining, by the device, visualization data that depicts at least one three-dimensional object;
sanitizing, by the device, the visualization data;
decimating, by the device, meshes of polygons in the sanitized visualization data to form compressed visualization data, the decimation operation comprising, for each atomic decimation operation, automatically performing one or more sanity checks on polygons affected by that atomic decimation operation prior to the atomic decimation operation; and
storing, by the device, the compressed visualization data in one or more files.
20. An apparatus, comprising:
one or more network interfaces; a processor coupled to the one or more network interfaces and configured to execute one or more processes; and
a memory configured to store a process that is executable by the processor, the process when executed configured to: obtain visualization data that depicts at least one three-dimensional object;
sanitize the visualization data;
decimate meshes of polygons in the sanitized visualization data to form compressed visualization data, the decimation operation comprising, for each atomic decimation operation, automatically performing one or more sanity checks on polygons affected by that atomic decimation operation prior to the atomic decimation operation; and
store the compressed visualization data in one or more files.
1. A method comprising:
obtaining, by a device, visualization data that depicts at least one three-dimensional object;
sanitizing, by the device, the visualization data, in part by:
identifying neighboring polygons of the at least one three-dimensional object and their windings, and
correcting errors in the neighboring polygons and their windings;
decimating, by the device, meshes of polygons in the sanitized visualization data, to form compressed visualization data, by:
performing one or more sanity checks, prior to performing one or more decimation operations during the decimating; and
claims 6-8, atomic operations
storing, by the device, the compressed visualization data in one or more files.
2. The method as in claim 1, wherein the obtained visualization data is obtained from one or more files that use a different file format than that of the one or more files in which the compressed visualization data is stored.
3. The method as in claim 1, further comprising:
determining, by the device, whether each polygon in the visualization data is a visible polygon, in part by testing whether that polygon is reachable by at least one of a plurality of light rays extending from infinity; and
removing, by the device, any polygon from the visualization data that is not a visible polygon.
4. The method as in claim 3, wherein determining whether each polygon in the visualization data is a visible polygon further comprising:
iteratively testing whether a given polygon is visible by a visible polygon and, if so, deeming that polygon as being a visible polygon.
5. The method as in claim 1, wherein the one or more sanity checks comprise at least one of:
determining whether a set of polygons intersect another polygon, determining whether a decimated set of polygons would intersect another polygon, determining whether a local curvature of a set of polygons would be preserved after undergoing the atomic decimation operation, or determining whether a maximum curvature of a set of polygons would exceed a predefined threshold after undergoing the atomic decimation operation.
6. The method as in claim 1, wherein the one or more sanity checks comprise at least one of:
determining whether a degeneracy of a set of polygons would increase after the set of polygons undergoes the atomic decimation operation, ensuring that orientations of a set of polygons would be preserved after undergoing the atomic decimation operation, ensuring that a set of neighboring polygons undergoing the atomic decimation operation are also neighbors in a UV space, or ensuring that shading and geometric normal errors resulting from the atomic decimation operation are within a predefined threshold.
7. The method as in claim 1, wherein the one or more sanity checks comprise at least one of:
ensuring that the atomic decimation operation does not result in an edge of a polygon having a curvature greater than a defined threshold, ensuring that two edges of polygons to be joined are not bifurcated, ensuring that joining two edges of polygons will not result in a concave edge, or ensuring that an edge to be flipped is not along a UV boundary.
8. The method as in claim 1, wherein the one or more sanity checks comprise at least one of: ensuring that two quadrilaterals to be joined by the atomic decimation operation would not result in an area larger than a defined size, ensuring that a polygon edge that would result from joining two quadrilaterals is not longer than a defined threshold, or ensuring that the atomic decimation operation would not shift a vertex by a predefined amount.
9. The method as in claim 1, further comprising:
assigning a material index to a particular mesh, wherein the material index indicates at least one of: a degree of metalness, roughness, or specularity of the particular mesh.
10. The method as in claim 9, wherein the one or more sanity checks comprise ensuring that a material index of a mesh to be joined with the particular mesh by the atomic decimation operation matches the material index of the particular mesh.
11. The method as in claim 9, further comprising:
compressing textures of the visualization data, wherein a degree of compression applied to a particular texture is based on its associated material index.
12. The method as in claim 1, further comprising:
applying, by the device, instance detection to two meshes, to determine whether the two meshes are instances of one another; and
removing, by the device, duplicate instances from the visualization data.
13. The method as in claim 11, further comprising:
applying instance detection to buckets of sub-meshes of the two meshes.
14. The method as in claim 1, wherein decimating the meshes comprises:
identifying parallel geometries in the visualization data by:
flagging intersecting polygons,
applying instance detection, to identify meshes that are similar to one another, and
identifying the parallel geometries, based in part on the flagged intersecting polygons and meshes that are similar to one another.
15. The method as in claim 14, wherein decimating the meshes comprises:
removing obstructed parallel geometries from the visualization data.
16. The method as in claim 1, wherein decimating the meshes comprises:
performing normal baking on the visualization data.
17. The method as in claim 1, further comprising:
uploading the one or more files to an online service for download.
18. The method as in claim 1, further comprising:
quantifying degeneracy of a particular polygon on a numeric scale.
19. The method as in claim 1, further comprising:
using a machine learning model to compare the visualization data and the compressed visualization data.
20. A tangible, non-transitory, computer-readable medium storing program instructions that cause a device to execute a process comprising:
obtaining, by the device, visualization data that depicts at least one three-dimensional object;
sanitizing, by the device, the visualization data, in part by:
identifying neighboring polygons of the at least one three-dimensional object and their windings, and
correcting errors in the neighboring polygons and their windings;
decimating, by the device, meshes of polygons in the sanitized visualization data, to form compressed visualization data, by:
performing one or more sanity checks, prior to performing one or more decimation operations during the decimating; and
storing, by the device, the compressed visualization data in one or more files.
21. An apparatus, comprising:
one or more network interfaces;
a processor coupled to the one or more network interfaces and configured to execute one or more processes; and
a memory configured to store a process that is executable by the processor, the process when executed configured to:
obtain visualization data that depicts at least one three-dimensional object;
sanitize the visualization data, in part by:
identifying neighboring polygons of the at least one three-dimensional object and their windings, and
correcting errors in the neighboring polygons and their windings;
decimate meshes of polygons in the sanitized visualization data, to form compressed visualization data, by:
performing one or more sanity checks, prior to performing one or more decimation operations during the decimating; and
store the compressed visualization data in one or more files.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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 1 and 19-20 are rejected under 35 U.S.C. 103 as being unpatentable over Starhill et al (US 20170169608).
Regarding claim 1, Starhill teaches:
A method comprising:
obtaining, by the device, visualization data that depicts at least one three-dimensional object; (Starhill Mesh generation module 101 can be configured and utilized to generate a mesh that represents a three-dimensional model/object surface… It can be appreciated that an input mesh can be based on other types of data and that mesh generation module 101 can obtain data from various other sources.)
sanitizing, by the device, the visualization data; (Starhill at least in par. [0052], teaches verification/sanitizing can involve determining whether the mesh is manifold (e.g., an orientable 2-manifold with boundary)... For example, manifold verification module 104 can confirm that an input mesh has been properly decomposed into component meshes that are manifold.)
decimating, by the device, meshes of polygons in the sanitized visualization data to form compressed visualization data, the decimation operation comprising, for each atomic decimation operation, automatically performing one or more sanity checks on polygons affected by that atomic decimation operation prior to the atomic decimation operation (Starhill at least in pars. [0050-0052], teaches edge collapsing (decimation operation) as a preemptive measure, manifold verification module 104 can determine whether a component mesh will become non-manifold in advance of performing an edge collapse. For instance, before a particular edge collapse (e.g., boundary edge collapse or interior edge collapse) is performed to simplify a component mesh, manifold verification module 104 can verify that the particular edge collapse will result in a simplified component mesh that remains manifold. Starhill at least in pars. [0054-0058], teaches manifold verification module 104 can determine whether boundary edges are open edges for an existing component mesh and/or for a simplified component mesh that would result from performing a subsequent edge collapse on the existing component mesh… To verify that a subsequent edge collapse will result in a simplified component mesh that is manifold…)
Starhill does not explicitly teach the decimation operation is an atomic operation. However, as the subsequent edge collapsing implies an atomic operation for of each edge collapse operation. It is well known in the art that atomic operations are one operation after another operation in sequence.)
storing, by the device, the compressed visualization data in one or more files (Starhill at least in [0033] Mesh generation module 101 can store mesh data representing an input mesh in memory storage 110 for retrieval by mesh decomposition module 102 and/or provide the mesh data to mesh decomposition module 102. It is to be appreciated that memory storage 110 can store image data, mesh data, and/or other types of data in accordance with aspects of the described subject matter. It is also to be appreciated that memory storage 110 can be implemented by one or multiple data stores...)
Regarding claim 2, Starhill teaches:
The method as in claim 1, wherein the obtained visualization data is obtained from one or more files and the one or more files in which the compressed visualization data is stored (Starhill at least in [0033] Mesh generation module 101 can store mesh data representing an input mesh in memory storage 110 for retrieval by mesh decomposition module 102 and/or provide the mesh data to mesh decomposition module 102. It is to be appreciated that memory storage 110 can store image data, mesh data, and/or other types of data in accordance with aspects of the described subject matter. It is also to be appreciated that memory storage 110 can be implemented by one or multiple data stores... [0141], teaches a storage system 530 to store mesh data using file storage.)
Starhill is silent to teach using a different file format for storing file than the obtained/inputs file. However, before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art to save manipulated data to a different file format as user/application’s preference. The combination result would have been predictable.
Regarding claims 19-20, it recites similar limitations of claim 1 but in different forms. The rationale of claim 1 rejection is applied to reject claims 19-20 with additional limitations (“A tangible non-transitory computer-readable medium storing program instructions…” Starhill [0117-0118, 0120].)
Claims 3-4 are rejected under 35 U.S.C. 103 as being unpatentable over Starhill et al (US 20170169608) in view of Jenkins (US 20130207976).
Regarding claim 3, Starhill teaches:
The method as in claim 1.
Starhill is silent to teach:
determining, by the device, whether each polygon in the visualization data is a visible polygon, in part by testing whether that polygon is reachable by at least one of a plurality of light rays extending from infinity; and
removing, by the device, any polygon from the visualization data that is not a visible polygon.
On the other hand, Jenkins teaches:
determining, by the device, whether each polygon in the visualization data is a visible polygon, in part by testing whether that polygon is reachable by at least one of a plurality of light rays extending from infinity; and (Jenkins at least in pars. [0598, 0694, 1141], teaches the first-order visibility event surface incident on edge A1, is formed by extending the two edges of the corresponding supporting polygon (SP1) that are incident on the vertices A1 — 0 and A1 — 1 of edge A1. This extension occurs semi-infinitely starting at the vertices A1 — 0 and A1 — 1 of A1, in a direction away from the viewcell. The two extended rays are connected to the vertices A1 — 0 and A1 — 1 of edge A1 to form the semi-infinite umbral visibility event surface labeled WEDGE1. Only a portion of WEDGE1 is shown in FIG. 2A, as it actually extends semi-infinitely away from the viewcell.)
removing, by the device, any polygon from the visualization data that is not a visible polygon. (Jenkins at least in pars. [0598, 1474-1475, 1481], teaches in this example, both the direct proportional factors of the ESO (number of polygons completely occluded and surface area of occluded polygons) as well as the inverse proportional factors (e.g. the number of new polygons generated by re-triangulation at the occlusion boundary) will tend to produce a relatively low value for the ESO of OR-G… [1475] As described in the exemplary flowchart of FIGS. 30A-C, in one embodiment, OR-G which has a low ESO, can be removed completely from the visibility map (step 3017). Alternatively, according to the exemplary flowchart of FIGS. 30A-C, or the occlusion boundary of OR-G can be simplified and the ESO for the simplified occlusion boundary redetermined.)
Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art to perform visibility testing for polygons, as disclosed by Jenkins, with Starhill’s mesh sanitization system. As noticed above, the prior art included each element claimed, although not necessarily in a single prior art reference with the only difference being the lack of actual combination of the elements in a single prior art reference. The examiner finds that one of ordinary skill in the art could combined the elements as claimed by known methods, and that in combination, each element merely performs the same function as it does separately. Since it was known in the art that visibility testing helps generating smaller object size hence reducing computer rendering cost when removing occluded polygons. The results of the combination would have been predictable.
Regarding claim 4, Starhill in view of Jenkins teaches:
The method as in claim 3, wherein determining whether each polygon in the visualization data is a visible polygon further comprising: iteratively testing whether a given polygon is visible by a visible polygon and, if so, deeming that polygon as being a visible polygon. (Jenkins at least in pars. [0598, 0694, 1141, 1474-1475, 1481], teaches in this example, both the direct proportional factors of the ESO (number of polygons completely occluded and surface area of occluded polygons) as well as the inverse proportional factors (e.g. the number of new polygons generated by re-triangulation at the occlusion boundary) will tend to produce a relatively low value for the ESO of OR-G… [1475] As described in the exemplary flowchart of FIGS. 30A-C, in one embodiment, OR-G which has a low ESO, can be removed completely from the visibility map (step 3017). This implies testing iteratively each visible polygons for the visibility map.)
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to PHUC N DOAN whose telephone number is (571)270-3397. The examiner can normally be reached on Monday - Friday: 9am - 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, Faulk Devona can be reached on (571) 272-7515. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/PHUC N DOAN/Examiner, Art Unit 2618