GENERATION OF GEM CUTS
20240391055 ยท 2024-11-28
Inventors
- James CONANT (Escondido, CA, US)
- Jason QUICK (Las Vegas, NV, US)
- Ilene Miller REINITZ (Chicago, IL, US)
- Brock Aaron WILKE (Henderson, NV, US)
- Alexander Abraham BALTER (Livingston, NJ, US)
- Troy BLODGETT (Dartmouth, MA, US)
- Abhijith PRABHU (Las Vegas, NV, US)
- Al GILBERTSON (Carlsbad, CA, US)
- Jacob RESSLER-CRAIG (Las Vegas, NV, US)
Cpc classification
B24B9/16
PERFORMING OPERATIONS; TRANSPORTING
B28D5/00
PERFORMING OPERATIONS; TRANSPORTING
International classification
B24B51/00
PERFORMING OPERATIONS; TRANSPORTING
B24B9/16
PERFORMING OPERATIONS; TRANSPORTING
Abstract
The present embodiments relate to systems and methods for generating all possible gemstone faceting arrangements. An apparatus can include a computer, a computerized file storage system for saving results, and a mechanism that generates faceting arrangements satisfying user-defined constraints. The apparatus can feature a program that enables loading gemstone faceting designs and can offer adjustable settings to control the specific geometric parameters. The program can also provide users with 3D models satisfying geometric constraints. Additionally, the apparatus may incorporate a ray-tracing engine to assess the light performance qualities of the virtual gemstone model. The present embodiments can also include methods for optimizing diamond cut using a genetic algorithm.
Claims
1. A method for creating a virtual gemstone model with a faceting arrangement, the method comprising: obtaining, at a computer, a set of measurements relating to a gemstone; detecting, at the computer, a selection of a crown and/or a pavilion of the set of measurements relating to the gemstone and one or more tunable gemstone parameters; and generating, by the computer, a 3D model of the gemstone based on the selected crown and/or pavilion and the one or more tunable gemstone parameters, wherein the 3D model is configured to be used in planning or cutting a gemstone material; obtaining, at the computer, an updated set of tunable gemstone parameters; and modifying the 3D model based on the updated set of tunable gemstone parameters.
2. The method of claim 1, wherein generating the 3D model comprises combining the crown and pavilion and converting the crown and pavilion into the 3D model via a Maxwell-Cremona correspondence between the crown and pavilion.
3. The method of claim 1, further comprising: obtaining a selection of one or more parameters of a set of tunable parameters to modify the 3D model and generate any possible gemstone geometry with a given facet arrangement of the gem material.
4. The method of claim 1, further comprising: transmitting the 3D model to a planning tool configured to generate planning instructions for cutting and/or polishing the gem material.
5. The method of claim 1, further comprising: obtaining, by the computer, a selection to optimize the 3D model with at least one metric selected; and generating, by the computer, a maximized virtual 3D model that maximizes the selected metric.
6. The method of claim 5, further comprising: creating, by the computer, an n dimensional grid of diamond geometries formed by varying chosen parameters; filtering a set of models into a subset of virtual models based on the grid of diamond geometries formed by varying the chosen parameters; selecting the subset of models as a library of models to be passed to the planning tool.
7. The method of claim 6, wherein multiple libraries of models are passed to the planning tool to allow multiple options in cutting and polishing the gem material.
8. The method of claim 1, further comprising: implementing a trained neural network as a regression model to predict diamond metric values based on the one or more tunable gemstone parameters for either of a specific cut or all cuts with a specified symmetry type and number of vertices.
9. A system comprising: a processor; and a memory comprising instructions that, when executed by the processor, cause the processor to perform steps comprising: obtaining a set of measurements relating to a gemstone; detecting a selection of a crown and a pavilion of the set of measurements relating to the gemstone and one or more filters for a desired gemstone parameter; and generating a 3D model of the gemstone based on the selected crown and/or pavilion and the one or more filters.
10. The system of claim 9, wherein generating the 3D model comprises combining the crown and pavilion and converting the crown and pavilion into the 3D model via a Maxwell-Cremona correspondence between the crown and pavilion.
11. The system of claim 9, wherein the steps further comprise: obtaining a selection of one or more parameters of a set of tunable parameters to modify the 3D model and generate any possible gemstone geometry with a given facet arrangement of the gem material.
12. The system of claim 9, wherein the steps further comprise: transmitting the 3D model to a planning tool configured to generate planning instructions for cutting and/or polishing the gem material.
13. The system of claim 9, wherein the steps further comprise: obtaining a selection to optimize the 3D model with at least one metric selected; and generating a maximized virtual 3D model that maximizes the selected metric.
14. The system of claim 13, wherein the steps further comprise: creating an n dimensional grid of diamond geometries formed by varying chosen parameters; filtering a set of models into a subset of virtual models based on the grid of diamond geometries formed by varying the chosen parameters; and selecting the subset of models as a library of models to be passed to the planning tool.
15. The system of claim 14, wherein multiple libraries of models are passed to the planning tool to allow multiple options in cutting and polishing the gem material.
16. The system of claim 9, wherein the steps further comprise: implementing a trained neural network as a regression model to predict diamond metric values based on the one or more tunable gemstone parameters for either of a specific cut or all cuts with a specified symmetry type and number of vertices.
17. A method for generating an optimized list of 3D models for a specified facet arrangement or facet arrangement type of a gemstone, the method comprising: receiving, at a computer, a selection defining one or more target parameters which the list of 3D models fit inside; receiving, at the computer, a list of facet arrangements; receiving, at the computer, a list of performance and geometry criteria related to light performance, virtual facet patterning, outline, and/or weight, in the list of facet arrangements; causing storage, by the computer, of the facet arrangements, virtual facet patterning, outline, and/or weight; and generating a set of 3D models with different parameter sets, wherein the set of 3D models fit inside the target parameters and meets or exceeds the list of performance and geometry criteria.
18. The method of claim 17, wherein the target parameters are part of a wireframe of a rough gemstone or portion of rough gemstone from which a gem is configured to be polished.
19. The method of claim 17, wherein the generation of the set of 3D models are generated via a genetic algorithm using defining parameters including spring tensions as genetic material in order to maximize a volume yield of the gemstone.
20. The method of claim 17, wherein generating the set of 3D models includes combining a selected crown and pavilion and converting the crown and pavilion into the set of 3D models via a Maxwell-Cremona correspondence between the crown and pavilion.
Description
BRIEF DESCRIPTIONS OF THE DRAWINGS
[0054] For a better understanding of the embodiments described in this application, reference should be made to the Detailed Description below, in conjunction with the following drawings in which like reference numerals refer to corresponding parts throughout the figures.
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
DETAILED DESCRIPTION
[0066] Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a sufficient understanding of the subject matter presented herein. But it will be apparent to one of ordinary skill in the art that the subject matter may be practiced without these specific details. Moreover, the particular embodiments described herein are provided by way of example and should not be used to limit the scope of the particular embodiments. In other examples, well-known data structures, timing protocols, software operations, procedures, and components have not been described in detail so as not to unnecessarily obscure aspects of the embodiments herein.
Overview
[0067] Gemstone cut planning, including rough, block, and recut planning, and equipment to perform the cuts are something the industry has struggled optimizing. A gemstone planner or cutter might take gem material and decide to cut it in order to create a gemstone that demonstrates specific light performance from the cut facets or is shaped a particular way from an optical design choice. But those gemstone cutters may also want to maximize the physical stone characteristics and size in order to get the largest and best polished stone as a result.
[0068] One of the many technical challenges for providing such planning, especially those that use cloud-based software solutions, is producing 3D wireframe models fitting the physical constraints of the gem material from which they will be polished. For example, databases exist for unique facet arrangements of submitted diamonds with many thousands of unique designs in terms of facet arrangement, but planners struggled with how to apply such theoretical designs to an actual scan of three dimensional gem material.
[0069] Additionally, for each possible facet arrangement, there exists any number of unique and independent parameters which may be used to define the geometry of the finished polished and cut gemstone or diamond. These parameters may include parameters like table size, crown angle, girdle thickness, various dimension ratios, and parameters that define the contour of the diamond. Trying to visualize all of those options and variables in a physical stone by eye is impossible.
[0070] It should be noted that use of the term gemstone or diamond is interchangeable and neither are intended to be limiting, and specifically includes the possibility of lab grown diamonds. The systems and methods here apply to any kind of stone or other material to be cut and faceted, the terms gemstone and diamond are merely non-limiting examples.
[0071] In other systems, the only decision a manufacturer had when cutting and polishing a diamond is the choice of which design to choose from the vast space of possible facet arrangements, and then the choices for parameters for the selected facet arrangement. In such examples, the manufacturer may well choose a design in attempt to yield the greatest size of the finished polished gemstone. However, it may be beneficial to also consider other factors such as but not limited to color, clarity and cut grades as these also impact a value of the finished polished gemstone.
[0072] Further, other available systems may be extremely expensive and labor intensive software engineering efforts and have limited visibility to the full space of design possibilities for a particular cut category (e.g. oval) as well as have limited parameter level resolution, and be such that 3D modeling efforts for each fancy facet arrangement are determined, one at a time. Furthermore, great care would need to be taken by these approaches to identify all the independent parameters, ensuring the parameter-space of a given model is fully solved for a given model. And there exist other subtle complexities, involving the validity of certain parameter choices, as most produce impossible solutions for polishing gemstones that cannot actually exist within the given physical parameters of the stone itself.
[0073] Systems and methods here may be used to solve these planning and modelling problems using one or more algorithms, from which every diamond or gemstone facet design may be produced, customized to the physical parameter-space for each design from either a physical rough stone or larger stone to be recut (including laboratory grown diamonds). In such a way, an input such as a wireframe, convex hull, or other volumetric model may be input into the system or into a third-party system, along with an input of what general or specific shape category is to be utilized. The systems and methods here may then output a solution that is then fine-tuned with various examples of candidate models with various yield and performance scores. Systems and methods may then be used to fine tune or narrow such a list of candidates into a top list of one, two, three or other desired number of best fits and performance scores.
[0074] This technical solution may allow planners to choose a design in a much more efficient and powerful way. It also this gives planners more options of shapes to choose from. It can also be useful for automated generation of pages of a diamond encyclopedia. Moreover, the algorithm(s) can be tailored to identify the physical parameters that most impact yield (Weight) and beauty (Cut, including contour appeal and virtual facet characteristics), creating systems that reduce the number of computations needed for design solutions.
[0075] The present embodiments as described herein explore the technology around planning and mapping many possible gem cuts and facet plans using the dimensions of the gem material and computer algorithms and software to model and map such plans. In some examples, a three dimensional model may be constructed for a hypothetical gemstone as well. In either case, the systems and methods may be used for design, whether the model represents an actual, physical stone which is scanned and a model is built to represent the scan, or whether the model is from a hypothetical stone. Thus, the systems and methods described herein may be used to present any number of potential plans to a user for selection, with the underlying information of the light performance, scintillation, sparkle, design, etc. of the gemstone if cut using the various options.
[0076] The method described herein for creating models for diamond planning and cutting can utilize the mathematics of spring tensions and the Maxwell-Cremona correspondence, which is a method to turn a set of spring tensions on the edges of a graph (plus a normal vector for a single facet) into a 3D model. This can solve the domain problem, when creating models with conventional parameters like angle, azimuth, star ratios, table sizes, and so forth, there can be many geometries that are impossible. However, any assignment of positive spring tensions corresponds to a legal geometry, which can allow for efficient searching through the space of possible geometries. The present embodiments can help those who specialize in planning gemstone cuts.
[0077] Many methodologies for studying different faceting arrangements involve use of programs to simulate cutting gemstones or virtually cutting stones. However, such methodologies generally did not include an ability to produce a list of many or even all possible gem cuts in order of increasing complexity. There also was not any system that gives the user complete control over all parameters of a gem shape. The present embodiments can use the method of spring tensions, combined with Bezier curve analysis of boundary contours, which can provide complete control over the gemstone's geometry and shape.
[0078] The systems and methods here utilize one or any number of algorithms and software implementation of such, for enumerating gem crowns and pavilions with various types of symmetries, including those with higher symmetry levels such as rounds and princess cuts, and those with lower symmetry levels such as oval, pear, and marquise shaped diamonds. They may be used for exploring the possible proportion sets for any given faceting arrangement. The particular method of enumeration here also can allow for searching this proportion space, also referred to as parameter space.
Symmetry and Graphing Gemstone Examples
[0079]
[0080] Gemstone crowns and pavilions may be determined by their fundamental domains and symmetry order. So, to enumerate diamonds, it suffices to enumerate fundamental domains. Looking at diamonds in terms of their fundamental domains also allows grouping of similar faceting arrangements with different orders, thus, a standard round brilliant may have 3, 4, 5-fold symmetry and beyond.
[0081] The graphs output by the systems and methods described here can be turned into three-dimensional 3D wireframe or schematic models using the Maxwell-Cremona correspondence. This is a mathematical principle whereby an assignment of spring tensions to a planar network (graph) plus an assignment of a normal vector to a single facet is determinative of a particular 3D model geometry. In such a way, the systems and methods here can utilize these algorithms for generating computer created models with all of the requested parameters.
[0082] As shown in example
[0083] As shown in the example of
[0084] In use, a user may, for example, request a list of all stones of type (0,1,2,0) with 5-fold symmetry, where each of the quadruple (nL,nM,nR,nB) of nonnegative integers corresponds to the number of vertices that exist in certain places of the fundamental domain. For example, referring to feature 210 in
[0085] In some examples, two separate tools may be used. The enumeration tool, may list all (0,1,2,0) graphs or more generally (nL,nM,nR,nB) graphs in a fundamental domain. The reader tool may prompt the user to input what order of symmetry he or she wants to use when creating the 3D model.
[0086] In some examples, a given diamond shape is input in the system, for example by wireframe mapping model and the system may determine lines of symmetry in the input model. Such a system may check all plausible lines of symmetry, for example, by connecting vertices and edge midpoints of the table in all possible ways. For each plausible line of symmetry, the system checks of all the vertices and edges are the same within tolerance if it the graph is reflected over that line. This can provide a method of classification for gemstone faceting arrangements.
[0087] One fundamental domain for each of the examples is shaded for example purposes 114, 124, 134, 144. Systems and methods here may take the fundamental domain examples and generate graphs labeling the vertices of the facets on the gemstones, 116, 126, 136, 146. In each of the fundamental domain examples, 116, 126, 136, 146 the vertices are labeled. In some examples, these labels and/or coordinates of the fundamental vertices may be stored in a computer database or computer storage.
[0088] A generating graph 116, 126, 136, 146 can have up to three corner boundary vertices. In the third row example 130, the three corner boundary vertices spots are labeled c, b1, b2 in
[0089] Turning now to the example in
[0090] In
[0091] Similarly, if there are other boundary vertices, vertices those connect to can be identified as well. For example, referring to
TABLE-US-00001 TABLE 1 Princess Crown (n.sub.L, n.sub.M, n.sub.R) (1, 1, 1) (b.sub.1, b.sub.2, c) (F, T, F) edges {{1, 3}, {1, 2}, {2, 3}, {2, 2, 1}} b.sub.2 connections {2}
TABLE-US-00002 TABLE 2 Princess Pavilion (n.sub.L, n.sub.M, n.sub.R) (4, 0, 1) (b.sub.1, b.sub.2, c) (F, T, T) edges {{1, 2}, {2, 3}, {3, 4}} b.sub.1 connections {1, 2, 3, 4} c connections {1}
TABLE-US-00003 TABLE 3 Round Brilliant Crown (n.sub.L, n.sub.M, n.sub.R) (1, 0, 1) (b.sub.1, b.sub.2, c) (T, T, F) edges {{1, 2}, {2, 2}} b.sub.1 connections {1} b.sub.2 connections {1}
TABLE-US-00004 TABLE 4 Round Brilliant Pavilion (n.sub.L, n.sub.M, n.sub.R) (1, 0, 0) (b.sub.1, b.sub.2, c) (T, T, T) edges { } b.sub.1 connections {1} b.sub.2 connections {1} c connections {1}
[0092] Given such combinatorial data, the embedded generating graph can be reconstructed as follows. First, choose some n and generate an abstract graph from the generating graph with symmetry group D2n (which corresponds to n lines of fold symmetry). A specified outer cycle can be used and one can apply the Tutte embedding. The Tutte Embedding is a way to take the description of the graph as a list of connections between vertices and turn it into a 2D picture in the plane. More specifically, the data above can be turned into an embedded 2D picture. Embedded means that the edges don't cross over each other. Finally, this can be restricted to a fundamental domain to get an embedded generating graph. I.e. to provide a method for taking an abstract list of nodes and connections with no geometric information and producing an actual two dimensional diagram of a diamond crown or pavilion and its generating graph.
Pseudo Code Examples
[0093] In such an example, the algorithm may act like a sieve. First, all plausible graphs (abstract connections between vertices) are generated as described previously. The first step is to remove all duplicates so there is no accidental listing of the same graph twice.
[0094] The next step is to check if each graph is connected and discard the ones that are not. After that, each generating graph is reflected into a full graph using 3-fold symmetry (the smallest available) and that graph is checked for tri-connectivity. Any generating graphs that fail this step are discarded. Checking that the 3-fold reflected graph is tri-connected is sufficient to show that it will be tri-connected for any symmetry above 3. Tri-connectivity of a graph means that deleting any two vertices of the graph cannot disconnect the graph and is a sufficient condition for a graph to represent a three-dimensional polytope such as a diamond crown or pavilion. The graphs that have survived these checks can then be written to a file. They represent the list of graphs the algorithm was supposed to produce. In the case of enumerating graphs with symmetry n lower than 3, we check the n-fold reflected graph for tri-connectivity instead.
[0095] For example, more detailed pseudo code, fix the numbers nL,nM,nR, nB as well as the boundary vertex Boolean variables b1,b2, c that represent whether vertices are present in these three positions. In order to find all generating graphs with these data, list all possible feasible ways of abstractly connecting all of the relevant vertices, then checking them all for planarity, tri-connectivity and duplicates.
[0096] The number of possibilities can be pared down by considering some constraints. An example constraint can include the nL, nM and nB vertices each having to lie inside a subset of linear chains, which can be denoted Le and Li and Lb. Another example constraint can include the corner b2 vertex connecting to at most one c vertex, while a b1 vertex connects to at most one nL vertex. A center vertex can connect to at most one each of the nL and nR vertices.
[0097] These steps can be used to create a graph TGraph(a,b, c,d) on the nL,nM, nR, nB vertices with edges in the different classes. Example classes can include a linear chain on the a vertices, all edges connecting a vertices to b and c vertices, all edges connecting b vertices to b and c vertices, linear chain on the c vertices, a linear chain on the d vertices, all self edges on the a and c vertices, and two types of self edges (k, k,1) and (k, k 1) on the b vertices.
[0098] Next, graphs formed by all subsets of these edges can be considered, forming a list called abcdBoolSets. Each member of abcdBoolSets can be stored as an array of Boolean variables indicating whether a given edge is in or out.
[0099] The following can also be defined, for purposes of the algorithm. For instance, b1BoolSets encodes all possible sets of edges connecting b1 to the graph's interior vertices. Its members are arrays of a+b+c booleans, limited to at most one True in the first a slots. As another example, b2BoolSets encodes all possible sets of edges connecting b2 to the graph's interior vertices. Its members can be arrays of a+b+c booleans, limited to at most one True in the last c slots. As another example, centerBoolSets encodes all possible sets of edges connecting c to the graph's interior vertices. Its members can be arrays of a+b+c+d booleans, limited to at most one True in the first a slots and one True in the middle c. As another example, booleans cb1 and cb2 indicate whether there are edges connecting c to bi.
[0100] Next, the size of elements of abcBoolSets, b1BoolSets, b2BoolSets and centerBoolSets can be fixed to be j, k, 1, m respectively (iterating over all possibilities). For each element of these, a concatenated string of Booleans can be formed, which can give a list boolGraphSet.
[0101] The next stage in the process can be to remove duplicates caused by different labels of the same graph. The list of permutations Xabcd=SaSbScSd\{id}, i.e. the permutations that respect the vertex types can be considered. Each permutation can act on a boolean array in gboolGraphSet by computing the action on T(a,b, c,d) and the edges coming from b1,b2 and c. In some cases, an edge in g when acted on by may not lie in T(a,b, c,d), which means this is not a valid relabeling. If the relabeled graph is valid, this can call the result g.Math..
[0102] See Appendix Algorithm 2 for the pseudocode. Note that if a graph has a nontrivial automorphism, this algorithm will remove it. In this example, this is acceptable as any such graph will fail to be connected or tri-connected. In such a way, the feature of the algorithm that may look like a bug is actually not a problem. The useful graphs are supposed to be connected and tri-connected in order for them to correspond to 3D polytopes, and when removing duplicates, if a graph has a symmetry, this step will remove the original graph in addition to its duplicate.
[0103] After applying the duplicate removing algorithm, each generating graph can be checked for connectivity using depth first search.
[0104] Next, each generating graph can be generated into a graph with 3-fold symmetry. This is an internal step to sift out the generating graphs that do not correspond to polytopes. The resulting generating graphs can and will be used later in the process to generate graphs of any symmetry order of 3 or above. For example, referring to
[0105] The remaining graphs are written to a computer file. See
Graph Results Examples
[0106] The process described in the previous sections leads to a complete list of diamond crown and pavilion diagrams that satisfy a user's specified criteria.
[0107] In Figures
[0108] In
[0109]
[0110]
[0111]
[0112]
[0113] Further, at 708, an enumeration algorithm can be obtained. At 710, the enumeration algorithm can be applied based on a retail manufacturers customer choice. At 712, faceting arrangements and 3D models can be generated. At 714, planning software can obtain the 3D model (in 706) and/or the faceting arrangements and 3D models (in 712). At 714, cutting instructions can be obtained from the planning software, and at 718, cutting technology can be used to generate cut and polished gems (e.g., at 720).
[0114]
[0115] At 808, parameters of the 3D model can be adjusted. At 810, responsive to creating the model, a selection of an optimize function can be detected. At 816, a single 3D model can be displayed based on the adjusted parameters (in 808) and optimizing (in 810).
[0116] At 812, the data grid can be used to filter models based on desired criteria. At 814, the filtered models can be displayed as a library of 3D models. At 818, the models can be passed to planning software. At 820, the gem material can be cut and polished according to instructions provided by the planning software.
[0117] The graphs output by this process can be turned into 3D models using the Maxwell-Cremona correspondence. A set of positive spring tensions for the internal edges as well as a specified normal vector for a chosen facet can be used. This can provide the 3D model a set of tunable knobs which allows it to realize any possible convex stone geometry with the specified faceting arrangement.
[0118] In some examples, the boundary may be modified using Bezier curves, giving an additional set of tunable knobs to control the diamond's outline. For example, in
[0119] In the foregoing, a method for allowing a user to modify a 3D model to their desired parameters was given using the tunable knobs coming from spring tensions.
[0120] In some examples, a user can specify specific geometric parameters, rather than abstract spring tensions as input to an example program. For example, a user may want to adjust the following parameters of a diamond planned by the systems and methods here. Example parameters can include a facet's angle and azimuth, a vertex's z-coordinate, the diamond's diameter, the diamond's length/width ratio, the diamond's girdle depth, the diamond's table size, the diamond's culet position, the radial distance of vertices from the diamond's center, the diamond's outline as viewed from above.
[0121] Items 1 and 2 (facet angle and azimuth, and a vertex z coordinate) can be converted to linear equations in the spring tensions.
[0122] Items 3, 4 and 5 (a diameter, length/width ratio, and a girdle depth) can be affected through simple geometrical manipulation.
[0123] Items 6,7, 8 and 9 (a table size, a culet position, a radial distance of vertices, an outline) are handled by first performing a two dimensional transformation of the graph to change the given parameter, and then searching for 3D lifts satisfying any other given constraints.
[0124] In the case of item 9, one may also adjust the (x, y) coordinates of the interior vertices in addition to the vertices on the boundary. A gradient descent algorithm can be used to produce a girdle with as little height variation as possible.
[0125] Once the user specifies the constraints, the program searches for a positive spring tension solution which changes the diamond as little as possible, for example by using quadratic programming. The searching may utilize a quadratic programming algorithm. In some examples, constraints may be packaged into linear equations, then the linear system may be solved looking for solutions where all the spring tensions are positive, and which estimates a 3D model. A user interface may be used to receive the constraint parameters from a user input.
Searching Parameter Space with AI and ML Examples
[0126] The systems and methods here can also include a method for searching the parameter space of a single cut or multiple cuts at once using artificial intelligence AI and Machine Learning (ML) methods. This searching can be useful to look for cuts that maximize certain features such as light return and scintillation. This can be applicable to the planning features, to be able to give cutting instructions to manufacturers on what proportion sets will maximize whatever metrics are chosen.
[0127] Stage 1 of an example method is to train a neural network as a regression model to predict diamond metric values based on parameter input. This can be done either for a specific cut, or for all cuts with a specific symmetry type and number of vertices. This stage may not be necessary but can be useful for reducing the amount of time it takes to calculate metrics.
[0128] Stage 2 can include applying a genetic algorithm to maximize any metric. This can be done for a single cut or for all cuts in a given symmetry class. It can also include other ML or AI techniques for optimization such as the COBYLA algorithm.
[0129] An algorithm can be a computational optimization technique inspired by the process of natural selection and evolution. It can use a population of candidate solutions, evolving them over multiple generations by applying operations analogous to genetic crossover, mutation, and selection. The objective can be to efficiently discover the best possible solution to a given problem by emulating the adaptive, iterative nature of biological evolution, in this example, applied to gemstone facet planning.
[0130] In some examples, the genetic material is the set of parameters describing a diamond proportion set. These could be traditional parameters like length/width ratio, and crown angle, or they could be the spring tension parameters, possibly augmented with girdle profile information. In the case that the cut itself may be variable, spring tensions can be used, with the convention that 0 spring tension means an edge is not present.
[0131] Genetic mutation can be accomplished by random variation of a subset of parameters. Crossover (mating) can be accomplished by choosing a subset of the parameter to come from specimen A while the remaining come from specimen B. Selection may be determined by the chosen metric.
[0132] A random population of diamond proportion sets can be chosen as the initial population. A selection of those with the highest metric values are chosen to cross-over and mutate. The next generation is populated with copies of these offspring, and the process is iterated.
[0133] Because the parameter space of fancy diamonds can be quite high dimensional, brute force approaches to looking for optimal proportions may not be feasible. However, a genetic algorithm can have the ability to seek out local maxima with far less computational effort.
[0134] In a first example embodiment, a method for generating all symmetric gemstone faceting arrangements up to a specified complexity can be provided. The method can include receiving a selection defining a symmetry type and a number of vertices for a crown and a pavilion. The method can also include storing a fundamental domain for each gem cut, positioning vertices as required and connecting each of the vertices with edges to create an abstract graph T. The method can also include enumerating all subgraphs of this graph, removing duplicates, and verifying connectivity of each subgraph. The method can also include, after expanding the graph to have a 3-fold symmetry, confirming a planarity and a tri-connectivity using a Tutte embedding and a facet tracing algorithm. The method can also include returning a list of all such graphs that satisfy one or more constraints and writing the list to a file.
[0135] In another example implementation, a tunable 3D model can be created by selecting a crown and pavilion using the methods described earlier. A complete search of parameter space or a search limited to ranges of certain parameters can be specified, as well as a metric to optimize. The computer can be instructed to implement a machine learning algorithm to find a best solution to be passed to a planning program for gem material cutting.
[0136] In some examples, a method for generating all possible geometric proportion sets for a faceting arrangement is provided. The method can include importing a faceting arrangement from a file or user input. The method can also allow for modifying the outer contour using Bezier curves or a similar modeling method. The method can also include assigning a spring tension to each edge. The method can also include creating a 3D model from this information, using the Maxwell-Cremona correspondence. The method can also include saving the 3D model to a file.
[0137] In some examples, the program generates and saves sets of 3D models based on user-defined ranges and step sizes.
[0138] In some examples, a method to allows for generation of all possible geometric proportion sets for a faceting arrangement is provided. The method can include importing the faceting arrangement from a file or user input. The method can also include adjusting the geometric model by using a program that converts desired geometric properties such as facet angle and azimuth, table size, and facet ratios into linear equations in the spring tensions. The program then solves the linear equations to produce a geometric model. The method can also include saving the 3D model to a file.
[0139] In some examples, the program generates and saves sets of 3D models based on user defined ranges and step sizes.
[0140] In an example implementation, a diamond design can be entered where the girdle thickness varies considerably. This model is converted to a tunable spring tension model, and the deviation of the girdle boundary from planarity is analyzed at each vertex. A gradient descent algorithm can be used to alter the spring tensions iteratively to create a model where the girdle thickness deviation has been reduced.
[0141] In one example implementation, the sets of 3D models that are generated are evaluated by a raytracing program to determine optical and other characteristics. The highest performing model can be selected and passed to a planning program for gem material cutting.
[0142] In another example implementation, the sets of the sets of 3D models that are generated are evaluated by a raytracing program to determine optical and other characteristics. A set of high performing models is collected into a library of models which are then passed to a planning program to allow more flexible fitting into a piece of gem material to be cut.
[0143] In some examples, a method to search the proportion sets of a particular diamond cut, or multiple cuts at once, via a genetic algorithm using defining parameters such as spring tensions as genetic material, in order to maximize a chosen metric.
[0144] In some examples, a method as in any of the previous examples can be used, which can use a neural network to do a regression model of the metric to improve computation times.
[0145] In another example implementation, the process as in the above implementation, wherein a consumer and/or retailer uses the above process to create a new diamond design and modify its proportions to their desired specifications.
[0146] A summary of the processes herein outlined is given in
[0147] A more detailed summary of examples of the processes herein outlined is given in
[0148] In another example implementation, using the collected list of diamond designs generated by the process described herein to create an interactive web-based diamond encyclopedia. A user would be able to select crown, pavilion, and rotation offset, and a page would populate with information about the diamond design, including an example 3D model, information about light performance and patterning, historical information about known cuts, and other potential fields.
[0149] The encyclopedia may also have the option of allowing the user to explore different proportion sets, have optimization tools available for a fee, or allow users to consult with a team of experts to create a beautiful design.
[0150] The architecture of the encyclopedia is made possible by the existence of a complete list of possible designs that can be generated using the techniques herein described.
[0151]
Network Examples
[0152] An example of a networked computing arrangement which may be utilized here is shown in
[0153] Turning back to
Example Computer Devices
[0154] As described, any number of computing devices may be arranged into or connected with the various component parts of the systems described herein. For example, the camera systems may include their own computing systems, the lighting systems may include their own computing systems, the data from the camera images may be collected, stored and analyzed using computing systems. Such systems may be local and in direct connection with the systems described herein, and in
[0155]
CONCLUSION
[0156] As disclosed herein, features consistent with the present embodiments may be implemented via computer-hardware, software and/or firmware. For example, the systems and methods disclosed herein may be embodied in various forms including, for example, a data processor, such as a computer that also includes a database, digital electronic circuitry, firmware, software, computer networks, servers, or in combinations of them. Further, while some of the disclosed implementations describe specific hardware components, systems and methods consistent with the innovations herein may be implemented with any combination of hardware, software and/or firmware. Moreover, the above-noted features and other aspects and principles of the innovations herein may be implemented in various environments. Such environments and related applications may be specially constructed for performing the various routines, processes and/or operations according to the embodiments or they may include a general-purpose computer or computing platform selectively activated or reconfigured by code to provide the necessary functionality. The processes disclosed herein are not inherently related to any particular computer, network, architecture, environment, or other apparatus, and may be implemented by a suitable combination of hardware, software, and/or firmware. For example, various general-purpose machines may be used with programs written in accordance with teachings of the embodiments, or it may be more convenient to construct a specialized apparatus or system to perform the required methods and techniques.
[0157] Aspects of the method and system described herein, such as the logic, may be implemented as functionality programmed into any of a variety of circuitry, including programmable logic devices (PLDs), such as field programmable gate arrays (FPGAs), programmable array logic (PAL) devices, electrically programmable logic and memory devices and standard cell-based devices, as well as application specific integrated circuits. Some other possibilities for implementing aspects include: memory devices, microcontrollers with memory (such as EEPROM), embedded microprocessors, firmware, software, etc. Furthermore, aspects may be embodied in microprocessors having software-based circuit emulation, discrete logic (sequential and combinatorial), custom devices, fuzzy (neural) logic, quantum devices, and hybrids of any of the above device types. The underlying device technologies may be provided in a variety of component types, e.g., metal-oxide semiconductor field-effect transistor (MOSFET) technologies like complementary metal-oxide semiconductor (CMOS), bipolar technologies like emitter-coupled logic (ECL), polymer technologies (e.g., silicon-conjugated polymer and metal-conjugated polymer-metal structures), mixed analog and digital, and so on.
[0158] It should also be noted that the various logic and/or functions disclosed herein may be enabled using any number of combinations of hardware, firmware, and/or as data and/or instructions embodied in various machine-readable or computer-readable media, in terms of their behavioral, register transfer, logic component, and/or other characteristics. Computer-readable media in which such formatted data and/or instructions may be embodied include, but are not limited to, non-volatile storage media in various forms (e.g., optical, magnetic or semiconductor storage media) and carrier waves that may be used to transfer such formatted data and/or instructions through wireless, optical, or wired signaling media or any combination thereof. Examples of transfers of such formatted data and/or instructions by carrier waves include, but are not limited to, transfers (uploads, downloads, e-mail, etc.) over the Internet and/or other computer networks via one or more data transfer protocols (e.g., HTTP, FTP, SMTP, and so on).
[0159] Unless the context clearly requires otherwise, throughout the description and the claims, the words comprise, comprising, and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in a sense of including, but not limited to. Words using the singular or plural number also include the plural or singular number respectively. Additionally, the words herein, hereunder, above, below, and words of similar import refer to this application as a whole and not to any particular portions of this application. When the word or is used in reference to a list of two or more items, that word covers all of the following interpretations of the word: any of the items in the list, all of the items in the list and any combination of the items in the list.
[0160] Although certain presently preferred implementations of the descriptions have been specifically described herein, it will be apparent to those skilled in the art to which the descriptions pertain that variations and modifications of the various implementations shown and described herein may be made without departing from the spirit and scope of the embodiments. Accordingly, it is intended that the embodiments be limited only to the extent required by the applicable rules of law.
[0161] The present embodiments can be embodied in the form of methods and apparatus for practicing those methods. The present embodiments can also be embodied in the form of program code embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the embodiments. The present embodiments can also be in the form of program code, for example, whether stored in a storage medium, loaded into and/or executed by a machine, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the embodiments. When implemented on a general-purpose processor, the program code segments combine with the processor to provide a unique device that operates analogously to specific logic circuits.
[0162] The software is stored in a machine readable medium that may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like. Volatile storage media include dynamic memory, such as main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that comprise a bus within a computer system. Carrier-wave transmission media can take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: disks (e.g., hard, floppy, flexible) or any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, any other physical storage medium, a RAM, a PROM and EPROM, a FLASH-EPROM, any other memory chip, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer can read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.
[0163] The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the embodiments to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the embodiments and its practical applications, to thereby enable others skilled in the art to best utilize the various embodiments with various modifications as are suited to the particular use contemplated.