The field includes determining faceting arrangements of gemstones and gemstone cutting.
A gemstone cut refers to the faceting arrangement on a gem. The process of designing a new cut is useful both from the perspective of consumer interest in novel and bespoke designs, but also from the perspective of having more models available for planning software to fit within a diamond rough or larger gem. Choosing proportions for a design that leads to good light performance and patterning is a fundamental problem in the field. Creating new gemstone designs has in the past involved using software like GemCad to mimic the cutting process of an actual rough to produce a model with specific proportions, a process that can be quite tricky and time consuming.
A fundamental problem facing a diamond manufacturer is how to cut a rough, or blocked stone, or existing cut into a polished diamond or diamonds. A system by which a manufacturer can scan the diamond material to produce a 3D model, fit models with varied faceting arrangements and proportion sets in order to maximize yield and cut scores is of evident importance to the field. The ability to generate a wide variety of faceting arrangements of 3D models and to vary the proportions as flexibly as possible, is useful for planning and the creation of novel diamond designs.
Systems and methods as described herein can be used for listing all possible gem cuts in increasing order of complexity in which the gems are assumed to have a crown and pavilion. The methodology can use the mathematics of the Maxwell-Cremona correspondence to equip each faceting arrangement with a set of knobs that allows the user to explore the entire space of proportion sets. Further, geometric constraints such as facet angle and azimuth or table size can be specified, and a program can find a corresponding 3D model.
The present embodiments, additionally or alternatively, can be used to find novel gem cuts that satisfy certain technical and aesthetic considerations. Such embodiments can in particular be useful for bespoke diamond creation as well as planning. Further, the user can have a larger variety of stone shapes to choose from when planning out the cutting of gem material. The present embodiments can also include a method to efficiently explore parameter space using machine learning (ML) and artificial intelligence (AI) methods.
In an example embodiment, additionally or alternatively, a method for creating a virtual gemstone model with a faceting arrangement is provided. The method can include obtaining, at a computer, a set of measurements relating to a gemstone. The method can also include 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 filters for a desired gemstone parameter. The method can also include generating, by the computer, a 3D model of the gemstone based on the selected crown and/or pavilion and the one or more filters, wherein the 3D model is configured to be used in planning or cutting a gemstone material.
In some instances, additionally or alternatively, the method can include generating the 3D model which 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.
In some instances, additionally or alternatively, the method can include 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.
In some instances, additionally or alternatively, the method can include transmitting the 3D model to a planning tool configured to generate planning instructions for cutting and/or polishing the gem material.
In some instances, additionally or alternatively, the method can include 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.
In some instances, additionally or alternatively, the method can include 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, and selecting the subset of models as a library of models to be passed to the planning tool.
In some instances, additionally or alternatively, multiple libraries of models are passed to the planning tool to allow multiple options in cutting and polishing the gem material.
In another example embodiment, additionally or alternatively, a system is provided. The system can include a processor and a memory comprising instructions that, when executed by the processor, cause the processor to perform steps. The steps can include obtaining a set of measurements relating to a gemstone. The steps can also include 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. The steps can also include generating a 3D model of the gemstone based on the selected crown and/or pavilion and the one or more filters.
In some instances, additionally or alternatively, 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.
In some instances, additionally or alternatively, 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.
In some instances, additionally or alternatively, 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.
In some instances, additionally or alternatively, 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.
In some instances, additionally or alternatively, 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.
In some instances, additionally or alternatively, multiple libraries of models are passed to the planning tool to allow multiple options in cutting and polishing the gem material.
In another example embodiment, additionally or alternatively, a method for generating an optimized list of 3D models for a specified facet arrangement or facet arrangement type of a gemstone is provided. The method can include receiving, at a computer, a selection defining one or more target parameters which the list of 3D models fit inside. The method can also include receiving, at the computer, a list of facet arrangements. The method can also include 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. The method can also include causing storage, by the computer, of the facet arrangements, virtual facet patterning, outline, and/or weight. The method can also include 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.
In some instances, additionally or alternatively, 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.
In some instances, additionally or alternatively, the target parameters comprise a wireframe of a polished gem from which a more optimized gem is capable of being re-cut.
In some instances, additionally or alternatively, 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.
In some instances, additionally or alternatively, the method can include 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.
In some instances, additionally or alternatively, the method can include transmitting the set of 3D models to a planning tool configured to generate planning instructions for cutting and/or polishing the gem material.
In another example embodiment, additionally or alternatively, a computer-implemented method for creating a diamond design encyclopedia is provided. The method can include automatically generating a list of faceting arrangements up to a certain complexity, using the enumeration algorithm. The method can also include auto-populating with best guess proportion sets and displaying the charts and interactive content. The method can also include creating an interface for the user to adjust proportion sets and display newly calculated charts. The method can also include, in some examples, allowing the user to click to optimize or request a consultation with a diamond design team.
In some instances, additionally or alternatively, the method can accept a 3D scanned model from a contact measuring device, and determine its symmetry type and generating graph for the purposes of gemstone faceting classification.
In some instances, additionally or alternatively, the method can accept a 3D model of a diamond, and use the method of gradient descent on the spring tensions, determining a diagram with girdle thickness as uniform as possible.
In some instances, additionally or alternatively, the method can accept a 2D design to determine its symmetry type and generating graph, to assess whether it can be lifted to a valid 3D model, and then to create an adjustable 3D model with tunable parameters.
In another example embodiment, additionally or alternatively, a method for generating all symmetric gemstone faceting arrangements up to a specified complexity is provided. The method can include receiving, at a computer with a processor and memory, a selection defining a symmetry type and a number of vertices for a crown and a pavilion. The method can also include causing storage, by the computer, of 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, by the computer, removing duplicates, and verifying connectivity of each subgraph. The method can also include, by the computer, after expanding the graph to have a 3-fold symmetry, confirming planarity and triconnectivity of the graph using a Tutte embedding and a facet tracing algorithm. The method can also include, by the computer, returning a list of all such graphs that satisfy one or more constraints and writing the list of all such graphs to a computer file.
In some instances, additionally or alternatively, the method can include obtaining a selection of a faceting arrangement from a tabulated list.
In another example embodiment, additionally or alternatively, a method for enabling a user to generate all possible geometric proportion sets for a faceting arrangement. The method can include importing a faceting arrangement from a file or user input. The method can also include allowing a user to modify the outer contour using Bezier curves or a similar modeling method. The method can also include permitting the user to assign a positive weight (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.
In some instances, additionally or alternatively, the program generates and saves sets of 3D models based on user-defined ranges and step sizes.
In another example embodiment, additionally or alternatively, a method to allow a user to generate 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 allowing the user to adjust 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 method can also include solving the linear equations to produce a geometric model. The method can also include saving the 3D model to a file.
In some instances, additionally or alternatively, the program generates and saves sets of 3D models based on user defined ranges and step sizes.
In some instances, additionally or alternatively, the method can include searching a 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.
In some instances, additionally or alternatively, the method can include using a neural network to do a regression model of the metric to improve computation times.
In some instances, the additionally or alternatively, method can include detecting a selection to find proportions that optimize a chosen metric for a given faceting arrangement.
In another example embodiment, a method for predicting diamond metric values based on a parameter input is provided. The method can include obtaining a set of parameters for a set of measurements for a gem material. A trained neural network model can be implemented as a regression model to predict diamond metric values for a specific cut, or for all cuts with a specific symmetry type and number of vertices. The method can also include applying a genetic algorithm to maximize any metric for a single cut or for all cuts in a given symmetry class. In some instances, a ML model implementing a COBLYA algorithm can be used for optimization. An algorithm can be a computational optimization technique inspired by the process of natural selection and evolution. The algorithm can use a population of candidate solutions, evolving them over multiple generations by applying operations analogous to genetic crossover, mutation, and selection.
In some examples, the genetic material can include the set of parameters describing a diamond proportion set, such as a length/width ratio, and crown angle, or spring tension parameters augmented with girdle profile information.
In some instances, a genetic mutation process can be implemented by a random variation of a subset of parameters. The genetic mutation process can include 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. 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.
In an 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.
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.
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.
In some examples, the program generates and saves sets of 3D models based on user-defined ranges and step sizes.
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.
In some examples, the program generates and saves sets of 3D models based on user defined ranges and step sizes.
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.
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.
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.
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.
In some examples, a neural network can be used to perform a regression model of the metric to improve computation times.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
As shown in example
As shown in the example of
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
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.
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.
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.
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
Turning now to the example in
In
Similarly, if there are other boundary vertices, vertices those connect to can be identified as well. For example, referring to
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.
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.
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.
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.
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.
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.
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.
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.
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.
The next stage in the process can be to remove duplicates caused by different labels of the same graph. The list of permutations Xabcd=Sa×Sb×Sc×Sd\{id}, i.e. the permutations that respect the vertex types can be considered. Each permutation σ can act on a boolean array in g∈boolGraphSet 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·σ.
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.
After applying the duplicate removing algorithm, each generating graph can be checked for connectivity using depth first search.
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
The remaining graphs are written to a computer file. See
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.
In Figures
In
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).
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).
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.
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.
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
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.
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.
Items 1 and 2 (facet angle and azimuth, and a vertex z coordinate) can be converted to linear equations in the spring tensions.
Items 3, 4 and 5 (a diameter, length/width ratio, and a girdle depth) can be affected through simple geometrical manipulation.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
In some examples, the program generates and saves sets of 3D models based on user-defined ranges and step sizes.
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.
In some examples, the program generates and saves sets of 3D models based on user defined ranges and step sizes.
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.
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.
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.
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.
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.
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.
A summary of the processes herein outlined is given in
A more detailed summary of examples of the processes herein outlined is given in
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.
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.
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.
An example of a networked computing arrangement which may be utilized here is shown in
Turning back to
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
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.
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.
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).
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.
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.
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.
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.
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.
This application claims priority to U.S. Provisional Patent Application No. 63/468,242, titled “DIAMOND CUT ANALYSIS,” and filed May 22, 2023, and U.S. Provisional Patent Application No. 63/468,226, titled “GENERATION OF GEM CUTS,” and filed May 22, 2023, the entirety of which are incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
63468242 | May 2023 | US | |
63468226 | May 2023 | US |