Techniques for visualizing probabilistic data generated when designing mechanical components

Generating probabilistic models and displaying design knowledge GUI through the design engine, the problem that mechanical component design in the prior art is difficult to provide intuitive knowledge, and the understanding and collaboration capabilities of designers are improved.

CN113748424BActive Publication Date: 2024-12-17AUTODESK INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202080029803.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-06-06
Filing Date
2020-04-21
Publication Date
2024-12-17
Estimated Expiration
2040-04-21

AI Technical Summary

Technical Problem

Existing CAD applications are difficult to provide designers with intuitive design knowledge and understanding when generating mechanical component designs, making it difficult for designers to modify or explore alternative design solutions, and communicate inefficiently when collaboratively designing.

Method used

The design engine uses probabilistic models to identify dependencies between design variables and uses graphical user interfaces (GUIs) to demonstrate design knowledge, including design variable dependencies, design evolution and design exploration GUIs, helping users understand design construction and structure.

Benefits of technology

By demonstrating design knowledge, users can wisely modify designs and explore alternatives, improve design collaboration efficiency, and gain more intuitive design understanding and communication skills.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113748424B_ABST
    Figure CN113748424B_ABST
Patent Text Reader

Abstract

A design engine implements a probabilistic method for generating designs that presents automatically generated design knowledge to a user during operation. The design engine interactively generates a continuous design population based on a problem definition associated with a design problem and / or a previously generated design population. During the above-mentioned design process, the design engine generates a design knowledge graphical user interface (GUI) that graphically presents various types of design knowledge to the user. In particular, the design engine generates a design variable dependency GUI that visualizes various dependencies between design variables. The design engine also generates a design evolution GUI that animates the design evolution across a continuous design population. In addition, the design engine generates a design exploration GUI that helps the user explore various statistical properties of the automatically generated design.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the benefit of priority to U.S. Provisional Patent Application Serial No. 62 / 837,157, filed on April 22, 2019, entitled “Visualizing and Displaying Probabilistic Knowledge Obtained During Generative Design of Mechanical Assemblies,” and U.S. Provisional Patent Application Serial No. 62 / 841,767, filed on May 1, 2019, entitled “Visualizing and Displaying Probabilistic Knowledge Obtained During Generative Design of Mechanical Assemblies,” and also claims the benefit of priority to U.S. Patent Application Serial No. 16 / 434,082, filed on June 6, 2019, entitled “Techniques for Visualizing Probabilistic Data Generated When Designing Mechanical Assemblies.” The subject matter of these related applications is hereby incorporated herein by reference. Background of the Invention Technical Field

[0004] Various embodiments relate generally to computer-aided design techniques, and more particularly to techniques for visualizing probabilistic data generated when designing mechanical components. Background Art

[0005] In a typical mechanical engineering and design workflow, designers use computer-aided design (CAD) applications to generate CAD models representing mechanical parts. Designers can also use CAD applications to combine two or more CAD models to generate CAD assemblies. The CAD models included in the CAD assembly are usually connected together in a way that realizes specific functions to solve specific design problems. For example, a CAD assembly representing a car transmission may include a collection of CAD models representing gears that are connected together to provide torque conversion. The design problem solved in this example will be the need to transfer torque from the car crankshaft to the wheels of the car.

[0006] Generating CAD components using CAD applications is typically a multi-step process that is performed manually. Initially, the designer formulates the design problem that the CAD component is to solve by determining a set of design goals that the CAD component should meet. For example, in formulating the automotive transmission design problem discussed above, the designer may determine that the transmission should achieve a specific conversion ratio in order to convert the input torque received from the automotive crankshaft into an output torque applied to the wheels of the vehicle. In conjunction with determining the set of design goals, the designer typically further defines the design problem by determining a set of design constraints that the CAD component should not violate. For example, in the transmission design problem discussed above, the designer may determine that the mass of the transmission should not exceed a specific value. Once the designer determines the various design goals and design constraints, the designer may use the CAD application to generate the CAD component by manually generating and combining various CAD models. For example, a transmission designer may determine a specific arrangement of CAD models representing a selected set of gears to generate a CAD component that achieves the desired conversion between input torque and output torque.

[0007] As previously described, through the above design process, designers generate CAD components that are intended to solve a specific design problem. Once generated, designers can further test the CAD components via computer simulations to determine whether various design goals are met without violating different constraints. The design process is typically iteratively repeated in a trial-and-error manner to try to explore the overall design space associated with a specific design problem and produce one or more successful designs.

[0008] Conventional design processes, such as the one described above, can be automated to some extent using various algorithmic techniques. For example, generative design techniques can be implemented to automatically generate CAD components that meet a specified set of design goals without violating an enumerated set of design constraints. Alternatively, constraint-based programming techniques can be implemented to identify feasible CAD components that meet the specified design goals to varying degrees. Such algorithmic techniques reduce the number of manual operations that the designer must perform, where the algorithm performs these operations automatically, thereby simplifying the entire design process. When the design process is completed, the designer sees some automatically generated designs that can be examined using a conventional CAD application graphical user interface (GUI).

[0009] One drawback of the above methods is that using a conventional CAD application GUI to examine the automatically generated designs produced by the above methods does not provide designers with an appropriate level of intuitive design knowledge and understanding. As a result, algorithmic design techniques in general, and conventional CAD application GUIs in particular, do not enable designers to make informed decisions about how to modify or generate alternatives to the algorithmically generated designs. Furthermore, without developing an intuitive understanding of how to build and structure a successful design, designers are unable to communicate design knowledge to other designers. As a result, designers may have difficulty collaborating with each other on design projects.

[0010] As noted above, there is a need in the art for more efficient ways to automatically generate designs for mechanical assemblies. Summary of the invention

[0011] Various embodiments include a computer-implemented method for generating designs, the method comprising: generating a first plurality of designs based on a problem definition associated with a design problem and a first set of design variables associated with the design problem; statistically analyzing the first plurality of designs to determine a first statistical property associated with a first design variable included in the first set of design variables; and generating a graphical user interface (GUI) based on the first statistical property and the first plurality of designs to graphically depict the first statistical property.

[0012] At least one technical advantage of the disclosed technology over the prior art is that design knowledge is presented to the user via a GUI during the automatic generation of a design. This presentation helps the user form an intuitive understanding of how to build and structure a successful design. As a result, the user is able to make informed decisions on how to modify the design and / or how to explore alternative design options. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] The manner in which the above-described features of the various embodiments can be understood in more detail in the more particular description of the inventive concept briefly described above, by reference to various embodiments, some of which are illustrated in the accompanying drawings. It should be noted, however, that the drawings illustrate only typical embodiments of the inventive concept and are therefore not to be considered limiting of the scope in any way, and that there are other equally effective embodiments.

[0014] Figure 1 A system configured to implement one or more aspects of the present embodiments is shown;

[0015] Figure 2A According to various implementation schemes Figure 1 An illustrative illustration of a design problem;

[0016] Figure 2B According to various implementation schemes Figure 1An exemplary illustration of one of the design options;

[0017] Figure 3 According to various implementation schemes Figure 1 A more detailed diagram of the design engine;

[0018] Figure 4 According to various implementation schemes Figure 3 An exemplary illustration of a design variable dependency graphical user interface;

[0019] Figure 5 is a flow chart of method steps for visualizing design variable dependencies according to various other embodiments;

[0020] FIG. 6A to FIG. 6D Described are various embodiments Figure 3 An exemplary illustration of the design evolution of a graphical user interface;

[0021] Figure 7 is a flow chart of method steps for visualizing the evolution of a design population according to various other embodiments;

[0022] FIG. 8A to FIG. 8B Described are various embodiments Figure 3 Illustrative illustration of the Design Exploration Graphical User Interface;

[0023] Fig. 9 is a flow chart of method steps for visualizing one or more aspects of a design according to various embodiments. DETAILED DESCRIPTION

[0024] In the following description, numerous specific details are set forth to provide a more thorough understanding of various embodiments. However, it will be apparent to one skilled in the art that the inventive concept may be practiced without one or more of these specific details.

[0025] As described above, conventional algorithmic techniques for generating CAD assemblies operate automatically and, as a result, obfuscate the user's design process. As a result, the user's ability to develop design knowledge that reflects an intuitive understanding of how successful designs are structured is reduced. Conventional CAD application GUIs do not expose any such design knowledge to the user, but rather simply present the automatically generated CAD assembly to the user for inspection. Without an effective method for developing such design knowledge, users may not be able to effectively make informed decisions about how to modify a design and / or how to explore alternative designs, and may not be able to communicate effectively with others during collaborative design.

[0026] To address these issues, a design engine implements a probabilistic approach to generating designs that presents automatically generated design knowledge to a user via one or more graphical user interfaces during operation. The design engine initially generates a population of designs based on a problem definition associated with a design problem. The design engine simulates the performance of each design and then selects the highest performing design. By analyzing the highest performing designs, the design engine identifies interdependent design variables. The design engine then generates a probabilistic model indicating conditional probabilities between design values ​​associated with the dependent design variables. The design engine iteratively samples the probabilistic model to generate subsequent design populations. The design engine repeatedly performs this design process to generate successive design populations.

[0027] In conjunction with the above-described design process, the design engine generates a design knowledge GUI that graphically displays various types of design knowledge to the user. In particular, the design engine generates a design variable dependency GUI that visualizes various dependencies between design variables. The design engine also generates a design evolution GUI that animates the evolution of designs across continuous design populations. In addition, the design engine generates a design exploration GUI that helps the user explore various statistical properties of the automatically generated design.

[0028] At least one technical advantage of the disclosed technology over the prior art is that the design engine presents design knowledge to the user via a design knowledge GUI when automatically generating a design, rather than obfuscating such design knowledge from the user as in a conventional CAD application GUI. This presentation helps the user form an intuitive understanding of how to build and structure a successful design. Therefore, the design knowledge GUI enables the user to make informed decisions about how to modify the design and / or how to explore alternative design options in a way that is not possible with a conventional CAD application GUI. Based on the design knowledge provided by the design engine, users can more easily communicate with others about various aspects and properties of the automatically generated design, thereby facilitating enhanced collaboration between users. Therefore, the disclosed technology can be applied to automatically generate multiple designs for mechanical components in a streamlined manner without hindering the user from obtaining useful design knowledge and understanding, which is a typical feature of the prior art algorithmic techniques and GUIs. These technical advantages represent one or more technical advances over the prior art methods.

[0029] System Overview

[0030] Figure 1A system configured to implement one or more aspects of the present invention is shown. As shown, system 100 includes one or more clients 110 and one or more servers 130 connected together via network 150. A given client 110 or a given server 130 can be any technically feasible type of computer system, including a desktop computer, a laptop computer, a mobile device, a virtualized instance of a computing device, a distributed and / or cloud-based computer system, etc. Network 150 can be any technically feasible set of interconnected communication links, including a local area network (LAN), a wide area network (WAN), the World Wide Web or the Internet, etc.

[0031] As further shown, the client 110 includes a processor 112, an input / output (I / O) device 114, and a memory 116 coupled together. The processor 112 includes any technically feasible set of hardware units configured to process data and execute software applications. For example, the processor 112 may include one or more central processing units (CPUs). The I / O device 114 includes any technically feasible set of devices configured to perform input and / or output operations, including, for example, a display device, a keyboard, and a touch screen.

[0032] Memory 116 includes any technically feasible storage medium configured to store data and software applications, such as, for example, a hard disk, a random access memory (RAM) module, and a read-only memory (ROM). Memory 116 includes a database 118 and a design engine 120(0). Design engine 120(0) is a software application that, when executed by processor 112, interoperates with a corresponding software application executing on server 130, as described in more detail below.

[0033] The server 130 includes a processor 132, an I / O device 134, and a memory 136 connected together. The processor 132 includes any technically feasible set of hardware units configured to process data and execute software applications, such as one or more CPUs. The I / O device 134 includes any technically feasible set of devices configured to perform input and / or output operations, such as a display device, a keyboard, or a touch screen.

[0034] Memory 136 includes any technically feasible storage medium configured to store data and software applications, such as, for example, a hard disk, a RAM module, and a ROM. Memory 136 includes database 118 (0) and design engine 120 (1). Design engine 120 (1) is a software application that interoperates with design engine 120 (0) when executed by processor 132.

[0035] In general, databases 118(0) and 118(1) represent separate portions of a distributed storage entity. Thus, for simplicity, databases 118(0) and 118(1) are hereinafter collectively referred to as database 118. Similarly, design engine 120(0) and design engine 120(1) represent separate portions of a distributed software entity that is configured to perform any and all of the inventive operations described herein. Thus, for simplicity, design engines 120(0) and 120(1) are hereinafter collectively referred to as design engine 120.

[0036] In operation, the design engine 120 is configured to generate a problem definition 122 based on interaction with a user. The problem definition 122 includes various data that at least partially defines an engineering problem to be solved by a mechanical assembly. For example, the problem definition 122 may include a geometry associated with the engineering problem, a set of design variables associated with the engineering problem, a set of design goals associated with the engineering problem, and / or a set of design constraints associated with the engineering problem, etc. Figure 2A Describe an exemplary problem definition. Based on the problem definition 122, the design engine 120 generates one or more design options 124. A given design option 124 defines a CAD component that solves, at least to some extent, the engineering problem defined via the problem definition 122. The design engine 120 also generates design data 126. The design data 126 includes various statistical information generated during the automatic generation of the design options 124 by the design engine 120. Based on the design data 126, the design engine 120 generates a design knowledge GUI 128 that can be displayed to a user via a display device. The design knowledge GUI 128 includes three different GUIs that convey the above-mentioned statistical information to the user. The following are respectively combined Figure 3 Combined with Figures 4 to 5 Figure 6 to Figure 7 As well as Figures 8 to Fig. 9 These three GUIs are described in more detail.

[0037] Example Problem Definitions and Design Options

[0038] Figure 2A According to various implementation schemes Figure 1 1 is an example of a design problem. As shown, the design problem 122 includes an environmental object 1 (EO1), an environmental object 2 (EO2), joints J1 to J8, design variables X1 to X5, and a design goal 200. EO1 and EO2 represent pre-existing 3D geometries associated with the engineering problem. In the example shown, EO1 may be the chassis of a car, and EO2 may be the wheel of the car, which needs to be connected to the chassis of the car through some mechanical assembly.

[0039] Joints J1 to J8 represent specific points where components can be connected to generate a CAD assembly. These components may include beams, springs, dampers, and the like. A specific joint type may be assigned to a given joint, but a specific joint type assignment may be omitted. Joints J1 to J8 are initially positioned by a user through interaction with the design engine 120. The user may also define one or more design goals, such as design goal 200, through interaction with the design engine 120. Design goal 200 defines a target set of dynamics that a given CAD assembly should achieve at a position on EO1 corresponding to design goal 200. For example, design goal 200 may define a target time-varying acceleration that a given CAD assembly should achieve at a position on EO1 corresponding to design goal 200. Design problem 122 may include any number of design goals associated with any set of positions. Design problem 122 may also include one or more design goals that are independent of any particular position. For example, a given design goal may indicate that the total number of components should be minimized.

[0040] Design variables X1 to X5 represent exemplary design variables to which the design engine 120 assigns specific values ​​when generating a design. The value assigned to a given design variable may be referred to herein as a "design value." In practice, the design engine 120 implements different design variables for each different pair of joints, but for clarity only exemplary design variables X1 to X5 are shown. The design engine 120 assigns a given design value to a given design variable to represent a specific part type that can connect two joints together, as shown below in conjunction with Figure 2B Described in more detail.

[0041] Figure 2B According to various implementation schemes Figure 1 124. As shown, design option 124 includes a beam B1 coupled between joints J4 and J8, a beam B2 coupled between joints J2 and J7, a spring S1 coupled between joints J8 and J6, and a spring S2 coupled between joints J7 and J5. The various beams and springs shown, as well as the particular coupling of these components to particular joints, collectively represent CAD assemblies that can, at least to some extent, solve the engineering problem set forth in problem definition 122.

[0042] To generate the design options 124, the design engine 120 assigns specific values ​​to various design variables associated with the problem definition 122 to represent specific types of components. For example, the design engine 120 may assign a value of "1" to the design variable X2 to represent the beam B1. The design engine 120 may assign a value of "0" to the design variable X3 to indicate that there is no component. The design engine 120 may assign a value of "2" to the design variable X5 to represent the spring S2. In some embodiments, the design engine 120 may also assign values ​​to other design variables to represent the positioning and / or joint types associated with the joints J1 to J8.

[0043] Design engine 120 is configured to implement a statistically driven design process to generate design values ​​for design options 124 in conjunction with generated design data 126, as described below in conjunction with Figure 3 Described in more detail.

[0044] Software Overview

[0045] Figure 3 According to various implementation schemes Figure 1 As shown, the design engine 120 includes a design initializer 300, a component modifier 310, a performance evaluator 320, a dependency analyzer 330, a statistical analyzer 340, and a probability generator 350.

[0046] In operation, the design initializer 300 generates an initial design population 302 of randomized designs based on the problem definition 122. A given design included in the initial design population 302 includes randomly selected or randomly omitted components for each pair of joints set forth in the problem definition 122. As described above, a given component can be, for example, a beam, a spring, a damper, and any other technically feasible mechanical component. Each design included in the initial design population 302 also includes a randomly selected joint type for each joint. A given joint type can be, for example, a ball joint, a sliding joint, an elbow joint, etc. Components and joints may be collectively referred to as "design elements" herein.

[0047] In practice, the design initializer 300 generates a given design included in the initial design population 302 by assigning a random value to each design variable associated with the given design, thereby generating a particular set of design elements. For example, the design initializer 300 may assign a value of "1" to each design variable associated with the given design. Figure 2A The design variable X2 of is assigned to indicate that the corresponding component should be a beam component, or a specific value is assigned to another design variable to indicate that the corresponding joint should have a given joint type.

[0048] The component modifier 310 processes each design included in the initial design population 302 in order to identify and repair any infeasible designs. The component modifier 310 then outputs feasible designs 312 including any initial feasible designs as well as any repaired designs. As referred to herein, the term "infeasible" is used to describe designs that violate certain design rules. For example, the design of a component that includes one or more components that are not attached to the two end joints may be considered infeasible because such "dangling" components do not contribute to the overall functionality of the design. In another example, the design of a component that includes too many components connected to the same joint may be considered infeasible because real-world joints can only handle a maximum number of connections. The component modifier 310 identifies infeasible designs and then implements a constraint-oriented programming approach to modify those designs.

[0049] The performance evaluator 320 simulates the dynamic behavior of the feasible designs 312 to generate performance data indicating the extent to which each feasible design 312 satisfies the various design goals set forth in the problem definition 122. The performance evaluator 320 ranks the feasible designs 312 based on the associated performance data and selects the best performing design, which is shown as the high performing design 322. The performance evaluator 320 may select the top N designs with the best performance, where N is an integer, or the top N% designs, where N is a decimal, as well as other methods of selecting the best performing design.

[0050] Dependency analyzer 330 processes each high performance design 322 and determines various statistical dependencies between design variables, thereby generating design variable dependencies 332. Design variable dependencies 332 form part of the statistical information included in design data 126. Dependency analyzer 330 can determine that two design variables are interdependent by comparing the expected probability of two design variables having specific values ​​with the observed probability of those two design variables having specific values. Dependency analyzer 330 can use various statistical methods to quantify the dependencies between design variables.

[0051] In one embodiment, the dependency analyzer 330 can implement a chi-square test to generate a chi-square value for a given pair of design variables, wherein the chi-square value quantifies the statistical dependency between the given pair of design variables. When the associated chi-square value exceeds a threshold, the dependency analyzer 330 can then determine that the pair of design variables are mutually dependent. The dependency analyzer 330 can also take into account missing observations when implementing the method by selecting different thresholds, each chi-square value being compared to the different thresholds based on how many observations are missing.

[0052] Based on the design variable dependencies 332, the dependency analyzer 330 generates a design variable dependency GUI 334 included in the design knowledge GUI 128. The design variable dependency GUI 334 visually quantifies the statistical dependencies between various design variables, thereby providing the user with insight into how various design elements within a successful design are interrelated. Figures 4 to 5 The design variable dependencies GUI 334 is described in more detail.

[0053] The statistical analyzer 340 analyzes the high performance design 322 and the design variable dependencies 332 to generate a probability model 342. The probability model 342 constitutes another portion of the statistical information included in the design data 126. Conceptually, the probability model 342 indicates various probabilities of certain design elements appearing in a design that is considered to be high performance. More specifically, the probability model 342 includes a set of conditional probability values ​​associated with each pair of design variables that are determined to be statistically interdependent via the dependency analyzer 330. The conditional probability set includes different conditional probability values ​​that can be assigned to each different design value combination of a pair of design variables. For example, assume that the dependency analyzer 330 determines that the design variables X10 and X11 are statistically interdependent by the method described previously. The statistical analyzer 340 can generate a set of conditional probability values ​​that indicates the probability that the design variable X10 is assigned a value of "2" (indicating, for example, a beam component) conditional on the probability that the design variable X11 is assigned a value of "1" (indicating, for example, a ball joint).

[0054] In one embodiment, probability model 342 is a two-dimensional (2D) matrix of values ​​having rows corresponding to "parent" elements and columns corresponding to "child" elements. The parent elements and child elements correspond to design variables that are determined to be statistically dependent on each other. A given cell included in the 2D value matrix stores a conditional probability value indicating the probability of a child design variable being assigned a particular value conditional on the probability of the parent design variable being assigned a particular value.

[0055] Based on the probability model 342, the statistical analyzer 340 generates a design evolution GUI 344 included in the design knowledge GUI 128. The design evolution GUI 344 animates how the probability of various design elements included in a successful design changes with successive populations of designs, thereby providing the user with insight into how the design process unfolds. Figure 7 The design evolution GUI 344 is described in more detail.

[0056] The probability generator 350 is configured to generate a design population 352 based on samples extracted from the probability model 342. To generate a given design included in the design population 352, the probability generator 350 assigns specific values ​​to the design variables included in the given design using the probability distribution derived from the probability model 342. In this way, the probability generator 350 can generate a new design population having design variable values ​​derived from high-performance designs included in a previous design population. The probability generator 350 also generates the design data 126 based on the design variable dependencies 332, the probability model 342, and the design population 352.

[0057] If certain convergence criteria are met, probability generator 350 outputs the newly generated design population as design options 124. Otherwise, probability generator 350 provides design population 352 to component modifier 310 and repeats the above process. For example, the convergence criteria may indicate a maximum number of iterations to be performed or a maximum amount of time to be performed, etc.

[0058] In one embodiment, when generating new designs for inclusion in design population 352, probability generator 350 may implement a Gibbs sampling technique to sample probability model 342. In doing so, probability generator 350 randomly assigns values ​​to various design variables associated with the design, and then updates these values ​​based on the probability values ​​sampled from probability model 342. By repeating this process in one or more iterations, the values ​​assigned to the design variables may eventually converge to have the probability distribution set forth in probability model 342.

[0059] Based on the probability model 342 and the design population 352, the probability generator 350 generates a design exploration GUI 354 included in the design knowledge GUI 128. The design exploration GUI 354 allows users to interact with designs to display various statistical relationships between design elements included in those designs, thereby facilitating the user's exploration of design knowledge. Fig. 9 The design exploration GUI 354 is described in more detail.

[0060] Through the above operations, the design engine 120 estimates the probability distribution of the design variable values ​​associated with high-performance designs in the design population with increasingly higher performance, and then uses these probability distributions to generate subsequent design populations. In practice, this method can converge quickly to generate design options 124 faster than using conventional generative design techniques such as generative design and constraint-oriented programming techniques. During this design process, the design engine 120 also generates various GUIs included in the design knowledge GUI 128. These different GUIs present specific design knowledge to the user and therefore help the user form an intuitive understanding of how to structure successful and high-performance designs. Figures 4 to 9These different GUIs are described in more detail.

[0061] Design variable dependencies GUI

[0062] Figure 4 According to various implementation schemes Figure 3 334. As shown, the design variable dependency GUI 334 includes a perimeter divided into segments 400(1) to 400(5). Each of the segments 400(1) to 400(5) corresponds to a different design variable X1 to X5, respectively. Portions of some of the segments 400 are coupled together via chords 402. In particular, a portion of segment 400(1) is coupled to a portion of segment 400(3) via chord 402(1), a portion of segment 400(3) is coupled to a portion of segment 400(4) via chord 402(2), and a portion of segment 400(4) is coupled to a portion of segment 400(1) via chord 402(3).

[0063] Chord 402 visually represents the statistical dependencies between various design variables. For example, chord 402(1) can visually represent the statistical dependencies between design variable X1 and design variable X3. In some embodiments, chord 402 can also visually represent the statistical dependencies between specific design values ​​that can be assigned to those design variables. For example, chord 402(1) can visually represent the statistical dependencies between design variable X1 assigned a value of "1" (corresponding to beam element 410) and design variable X3 assigned a value of "2" (corresponding to spring element 420). Chord 402 can have different thicknesses to represent different strengths of statistical dependencies between design variables and / or design values. For example, chord 402(1) is thicker than chord 402(2), indicating that design variables X1 and X5 have a greater statistical dependency on each other than design variables X3 and X4.

[0064] By the above method, the design variable dependency GUI 334 conveys design knowledge to the user, indicating how a successful design can be structured. Therefore, the design variable dependency GUI 334 helps the user to form an intuition about the interrelationships between the various design elements included in each design. The dependency analyzer 330 combines the following Figure 5 The described method generates a design variable dependency GUI 334 .

[0065] Figure 5 is a flow chart of method steps for visualizing design variable dependencies according to various other embodiments. Figures 1 to 4Although the method steps are described with reference to a system, those skilled in the art will understand that any system configured to perform the method steps in any order falls within the scope of the present embodiments.

[0066] As shown, method 500 begins at step 502, where a dependency analyzer 330 within design engine 120 determines one or more statistical dependencies between design variables based on a distribution of design values ​​within a population of successful designs. Dependency analyzer 330 can determine that two design variables are interdependent by comparing the expected probability of two design variables having specific values ​​with the observed probability of those two design variables having specific values. In one embodiment, dependency analyzer 330 implements a chi-square test across design variable values ​​to determine the statistical dependencies between design variables.

[0067] At step 504, the dependency analyzer 330 generates a design variable dependency GUI 334 to depict the distribution of design values ​​across the various design variables associated with the problem definition 122. The dependency analyzer 330 arranges the design variables around a circular perimeter and then assigns each design variable to a different section of the perimeter. The dependency analyzer 330 may assign larger sections of the perimeter to design variables that have greater statistical dependencies on other design variables.

[0068] At step 506, the dependency analyzer 330 generates one or more chords that pass through the design variable dependency GUI 332 and connect together segments of the perimeter associated with the design variables that are statistically dependent on each other. A given chord may also indicate a statistical dependency between specific values ​​that may be assigned to the design variables. Each chord generated by the dependency analyzer 330 has a thickness that represents the strength of the statistical dependency between the design variables and / or design values.

[0069] Usually refer to Figure 4 and Figure 5 The technology described in this article can be advantageously applied to provide users with Figure 3 The probabilistic methods for generative design described generate design knowledge. As a result, these techniques help users develop an understanding of how successful designs can be structured, allowing users to make informed design changes and communicate designs more effectively with others.

[0070] Design Evolution GUI

[0071] FIG. 6A to FIG. 6D Described are various embodiments Figure 3 An exemplary illustration of the design evolution GUI. Fig. 6A Depicting a frame 600(A), Figure 6B Depicting frame 600 (B), Figure 6CA frame 600 (C) is depicted, and Fig.6D Frame 600 (D) is depicted. Statistical analyzer 340 generates each frame 600 during a given design iteration to visually depict the distribution of design variable values ​​in the design population corresponding to that iteration.

[0072] The given frame 600 depicts a set of components that connect together different joints set forth in the problem definition 122. For a given component that connects together a given pair of joints, the design evolution GUI 344 displays the given component with specific visual properties that represent the probability that the component connects together the given pair of joints. FIG. 6A to FIG. 6D In the exemplary framework 600 shown, components are shown as lines having a thickness corresponding to the probability of the components appearing between a pair of corresponding joints. In various embodiments, components may also be shown with different translucency values ​​to indicate different probabilities and / or different colors to indicate the most likely specific component type to appear.

[0073] Reference now Fig. 6A Initially, the design evolution GUI 344 displays many different possible component configurations that can be joined together with various connectors. Different components are displayed with similar line thicknesses, indicating that no one component appears more frequently than any other component in the current design population. Figure 6B After a design iteration, the design evolution GUI 344 displays fewer possible component configurations, and some components are more likely to appear in the current design population than others. Figure 6C , after another design iteration, the design evolution GUI 344 displays even fewer possible component configurations, with certain components being significantly more likely to appear in the design population than other components. Fig.6D In the final design iteration, the distribution of the design variable values ​​in the final design population converges to a small number of highly likely components. During the above process, the statistical analyzer 340 analyzes the distribution of the design variable values ​​associated with each design population and updates the design evolution GUI 344 accordingly.

[0074] Because the design evolution GUI 344 graphically depicts how the design process unfolds over time, the design evolution GUI 344 helps the user understand how successive design groups change to reach the final design group. This approach is different from conventional algorithmic methods of generating designs that confuse the user's design process. Figure 7 The techniques implemented by the statistical analyzer 340 in generating the design evolution GUI 344 are described in more detail.

[0075] Figure 7is a flow chart of method steps for visualizing the evolution of a design population according to various other embodiments. Figures 1 to 3 6 describe the method steps, but those skilled in the art will understand that any system configured to perform the method steps in any order falls within the scope of the present embodiments.

[0076] As shown, method 700 begins at step 702, wherein Figure 3 The statistical analyzer 340 within the design engine 120 generates a design evolution GUI 344 based on the problem definition 122. The design evolution GUI 344 graphically depicts various elements of the problem definition 122, including any environment objects defined in the problem definition 122 and various connectors specified in the problem definition 122. Based on the problem definition 122, the design engine 120 generates a design evolution GUI 344 based on the problem definition 122. Figure 3 Describes the way the current design population is generated.

[0077] At step 704, statistical analyzer 340 analyzes the statistical properties of the current design population to determine the distribution of design values ​​assigned to the design variables set forth in problem definition 122. For example, statistical analyzer 340 may determine how often a particular part type joins together a particular set of joints across all designs included in the current design population.

[0078] At step 706, the statistical analyzer 340 updates the design evolution GUI 344 to depict the possible component placements in a statistical manner. In doing so, the design evolution GUI 344 displays the given component with a visual property that indicates the probability of the component appearing in the depicted location. The design evolution GUI 344 may also display the given component with a visual property that indicates the most likely component type assigned to the given component.

[0079] At step 708, statistical analyzer 340 continues analyzing subsequent design populations. Method 700 then returns to step 704 and continues iteratively, generating animations depicting how the probability distribution of the design variables evolves in successive design iterations.

[0080] Usually refer to Figure 6 and Figure 7 The disclosed techniques provide users with detailed insights into how the design process evolves in many design communities. Thus, the disclosed techniques can be applied to help users develop an intuition about how successful designs are generated.

[0081] Design Exploration GUI

[0082] FIG. 8A to FIG. 8B Described are various embodiments Figure 3 An exemplary illustration of the design exploration GUI. As shown in the figure, Fig. 8A View 800(A) and Figure 8B The view 800(B) depicts the joints J1 to J8 coupled together via various components. The design exploration GUI 354 displays a given component within views 800(A) and 800(B) with specific visual attributes indicating the statistical dependency of the given component on the component selected by the user via cursor 802.

[0083] For example, now refer to Fig. 8A , the design exploration GUI 354 displays components 810 with increasing thickness indicating statistical dependencies on a user-selected component 812. Similarly, referring now to Figure 8B , the design exploration GUI 354 displays components 820 with increasing thickness, which indicates the statistical dependencies on the user-selected component 822. In practice, the design exploration GUI 354 may FIG. 8A to FIG. 8B The various generic components shown in the diagram are displayed as specific component types, such as beams, springs, dampers, etc. In addition, the design exploration GUI 354 can display components with a variety of different visual properties to indicate statistical dependencies on the user-selected components, including different colors, translucency, etc. In one embodiment, the various views 800 associated with the design exploration GUI 354 can be superimposed on a graphical rendering of one or more mechanical assembly designs.

[0084] Figure 3 The probability generator 350 generates a design exploration GUI 354 based on the design variable dependencies 332 and the design population 352. Through the above-mentioned techniques, the design exploration GUI 354 helps the user explore the designs included in the design population 352 and understand how different components of these designs depend on each other. Based on the insights and design knowledge gained through interaction with the design exploration GUI 354, the user is able to make informed design decisions. In one embodiment, the probability generator 350 can generate the design exploration GUI 354 based on multiple consecutive design populations. Fig. 9 The techniques implemented by probability generator 350 in generating design exploration GUI 354 are described in more detail.

[0085] Fig. 9 is a flow chart of method steps for visualizing one or more aspects of a design according to various embodiments. Figures 1 to 3 8 describe the method steps, but those skilled in the art will understand that any system configured to perform the method steps in any order falls within the scope of the present embodiments.

[0086] As shown, method 900 begins at step 902, wherein Figure 3The probability generator 350 generates a design explorer GUI 354 based on the problem definition 122. The design explorer GUI 354 graphically depicts the specific geometry set forth in the problem definition 122, including any environmental objects defined in the problem definition 122 and various joints specified in the problem definition 122. An exemplary view of the design explorer GUI 354 is shown in FIG. FIG. 8A to FIG. 8B Shown in.

[0087] At step 904, probability generator 350 obtains design variable dependencies 332 generated by dependency analyzer 330. Design variable dependencies 332 indicate statistical dependencies between physically related design variables. Figure 3 As described, dependency analyzer 330 may determine various statistical dependencies between design variables and corresponding values ​​by performing chi-square analysis on the current design population, as well as other possible techniques.

[0088] At step 906, the probability generator 350 updates the design exploration GUI 354 based on the current design population to visually depict some or all of the components that can connect the joints in the current design population together. For example, the probability generator 350 can project all possible component configurations set forth in the current design population onto the design exploration GUI 354.

[0089] At step 908, probability generator 350 modifies the display of one or more components displayed in design exploration GUI 354 in proportion to the corresponding statistical dependencies on the user-selected component. For example, probability generator 350 may analyze design variable dependencies 332 to determine the statistical dependencies of each design variable on the design variable associated with the user-selected component. Probability generator 350 may then modify the translucency of the components associated with those design variables relative to the determined statistical dependencies.

[0090] In summary, a design engine implements a probabilistic method for generating designs that presents automatically generated design knowledge to a user via one or more graphical user interfaces (GUIs) during operation. The design engine initially generates a design population based on a problem definition associated with a design problem. The design engine simulates the performance of each design and then selects the design with the highest performance. By analyzing the highest performing designs, the design engine identifies interdependent design variables. The design engine then generates a probabilistic model indicating conditional probabilities between design values ​​associated with the dependent design variables. The design engine iteratively samples the probabilistic model to generate subsequent design populations. The design engine repeatedly performs this design process to generate a continuous design population.

[0091] In conjunction with the above-described design process, the design engine generates a design knowledge GUI that graphically displays various types of design knowledge to the user. In particular, the design engine generates a design variable dependency GUI that visualizes various dependencies between design variables. The design engine also generates a design evolution GUI that animates the evolution of designs across continuous design populations. In addition, the design engine generates a design exploration GUI that helps users explore various statistical properties of automatically generated designs.

[0092] At least one technical advantage of the disclosed technology over the prior art is that the design engine presents design knowledge to the user via a design knowledge GUI when automatically generating a design, rather than obfuscating such design knowledge from the user as in a conventional CAD application GUI. This presentation helps the user form an intuitive understanding of how to build and structure a successful design. Therefore, the design knowledge GUI enables the user to make informed decisions about how to modify the design and / or how to explore alternative design options in a way that is not possible with a conventional CAD application GUI. Based on the design knowledge provided by the design engine, users can more easily communicate with others about various aspects and properties of the automatically generated design, thereby facilitating enhanced collaboration between users. Therefore, the disclosed technology can be applied to automatically generate multiple designs for mechanical components in a streamlined manner without hindering the user from obtaining useful design knowledge and understanding, which is a typical feature of the prior art algorithmic techniques and GUIs. These technical advantages represent one or more technical advances over the prior art methods.

[0093] 1. Some embodiments include a computer-implemented method for generating designs, the method comprising: generating a first plurality of designs based on a problem definition associated with a design problem and a first set of design variables associated with the design problem; statistically analyzing the first plurality of designs to determine a first statistical property associated with a first design variable included in the first set of design variables; and generating a graphical user interface (GUI) based on the first statistical property and the first plurality of designs to graphically depict the first statistical property.

[0094] 2. The computer-implemented method of clause 1, wherein the first statistical property comprises a first statistical dependency between the first design variable and a second design variable included in the first set of design variables.

[0095] 3. A computer-implemented method according to any one of clauses 1 to 2, further comprising generating a first GUI element within the GUI, the first GUI element connecting a first portion of the GUI associated with the first design variable to a second portion of the GUI associated with the second design variable, wherein the GUI graphically depicts the first statistical attribute via the first GUI element.

[0096] 4. A computer-implemented method according to any one of clauses 1 to 3, further comprising generating a first GUI element within the GUI, the first GUI element comprising one or more visual attributes corresponding to the magnitude of the first statistical dependency.

[0097] 5. A computer-implemented method according to any one of clauses 1 to 4, wherein the GUI includes a first arc associated with the first design variable and a second arc associated with a second design variable included in the first set of design variables, and the method further includes generating a first GUI element within the GUI, the first GUI element connecting the first arc to the second arc based on the first statistical dependency.

[0098] 6. A computer-implemented method according to any one of clauses 1 to 5, wherein the GUI includes a first GUI element connected to a first portion of the problem definition associated with the first design variable, and includes a second GUI element connected to a second portion of the problem definition associated with the second design variable, wherein the GUI graphically depicts the first statistical attribute via the first GUI element.

[0099] 7. The computer-implemented method of any of clauses 1 to 6, wherein the first statistical property comprises a first probability that the first design variable in the first plurality of designs is assigned a first design value.

[0100] 8. A computer-implemented method according to any one of clauses 1 to 7, further comprising generating a first GUI element within the GUI using at least one visual attribute derived from the first probability, wherein the GUI graphically depicts the first statistical attribute via the first GUI element.

[0101] 9. A computer-implemented method according to any one of clauses 1 to 8, further comprising: generating a second plurality of designs based on the first probability and the first set of design variables; statistically analyzing the second plurality of designs to determine a second statistical property associated with the first design variable; and modifying the GUI based on the second statistical property and the second plurality of designs to graphically depict the second statistical property.

[0102] 10. A computer-implemented method according to any one of clauses 1 to 9, further comprising: generating a first probability distribution associated with a first design value set assigned to the first design variable set; extracting one or more samples from the first probability distribution; generating a second plurality of designs based on the one or more samples, wherein the second plurality of designs includes a second design value set assigned to the first design variable set; and modifying the GUI based on the second design value set so as to graphically depict at least one statistical property of the second design value set.

[0103] 11. Some embodiments include a non-transitory computer-readable medium storing program instructions that, when executed by a processor, cause the processor to generate designs by performing the following steps: generating a first plurality of designs based on a problem definition associated with a design problem and a first set of design variables associated with the design problem; statistically analyzing the first plurality of designs to determine a first statistical property associated with a first design variable included in the first set of design variables; and generating a graphical user interface (GUI) based on the first statistical property and the first plurality of designs to graphically depict the first statistical property.

[0104] 12. The non-transitory computer-readable medium of clause 11, wherein the first statistical property comprises a first statistical dependency between the first design variable and a second design variable included in the first set of design variables.

[0105] 13. A non-transitory computer-readable medium according to any one of clauses 11 to 12, further comprising the step of generating a first GUI element within the GUI, wherein the first GUI element connects a first portion of the GUI associated with the first design variable to a second portion of the GUI associated with the second design variable, wherein the GUI graphically depicts the first statistical attribute via the first GUI element.

[0106] 14. The non-transitory computer-readable medium of any one of clauses 11 to 13, further comprising the step of generating a first GUI element within the GUI, the first GUI element comprising one or more visual attributes corresponding to the magnitude of the first statistical dependency.

[0107] 15. A non-transitory computer-readable medium according to any one of clauses 11 to 14, wherein the GUI includes a first arc associated with the first design variable and a second arc associated with a second design variable included in the first set of design variables, and the non-transitory computer-readable medium also includes a step of generating a first GUI element within the GUI, wherein the first GUI element connects the first arc to the second arc based on the first statistical dependency.

[0108] 16. A non-transitory computer-readable medium according to any one of clauses 11 to 15, wherein the GUI includes a first GUI element connected to a first portion of the problem definition associated with the first design variable, and includes a second GUI element connected to a second portion of the problem definition associated with the second design variable, wherein the GUI graphically depicts the first statistical attribute via the first GUI element.

[0109] 17. A non-transitory computer-readable medium according to any one of clauses 11 to 16, wherein the first statistical attribute comprises a first probability that the first design variable in the first plurality of designs is assigned a first design value, and the non-transitory computer-readable medium further comprises a step of generating a first GUI element within the GUI using at least one visual attribute derived from the first probability, wherein the GUI graphically depicts the first statistical attribute via the first GUI element.

[0110] 18. A non-transitory computer-readable medium according to any one of clauses 11 to 17, further comprising the steps of: generating a second plurality of designs based on the first probability and the first set of design variables; statistically analyzing the second plurality of designs to determine a second statistical property associated with the first design variable; and modifying the GUI based on the second statistical property and the second plurality of designs to graphically depict the second statistical property.

[0111] 19. A non-transitory computer-readable medium according to any one of clauses 11 to 18, further comprising the steps of: generating a first probability distribution associated with a first design value set assigned to the first design variable set; extracting one or more samples from the first probability distribution; generating a second plurality of designs based on the one or more samples, wherein the second plurality of designs includes a second design value set assigned to the first design variable set; and modifying the GUI based on the second design value set so as to graphically depict at least one statistical property of the second design value set.

[0112] 20. Some embodiments include a system comprising a memory storing a software application; and a processor configured to perform the following steps when executing the software application: generating a first plurality of designs based on a problem definition associated with a design problem and a first set of design variables associated with the design problem; statistically analyzing the first plurality of designs to determine a first statistical property associated with a first design variable included in the first set of design variables; and generating a graphical user interface (GUI) based on the first statistical property and the first plurality of designs to graphically depict the first statistical property.

[0113] Any and all combinations of any of the claim elements of any of the claims and / or any elements described in this application in any manner fall within the contemplated scope of the invention and protection.

[0114] The description of the various embodiments has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments.

[0115] Aspects of embodiments of the present invention may be embodied as systems, methods, or computer program products. Thus, aspects of the present disclosure may take the form of a complete hardware implementation, a complete software implementation (including firmware, resident software, microcode, etc.), or an implementation combining software aspects and hardware aspects, which may all be generally referred to herein as "modules," "systems," or "computers." In addition, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer-readable media having computer-readable program code embodied thereon.

[0116] Any combination of one or more computer-readable media may be utilized. A computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or apparatus, or any suitable combination of the foregoing. More specific examples of computer-readable storage media (a non-exhaustive list) would include the following media: an electrical connection with one or more conductors, a portable computer floppy disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or apparatus.

[0117] Various aspects of the present disclosure are described with reference to the flowchart illustrations and / or block diagrams of the methods, devices (systems) and computer program products according to the embodiments of the present disclosure. It will be understood that each frame in the flowchart illustration and / or block diagram and the combination of frames in the flowchart illustration and / or block diagram can be implemented by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer or other programmable data processing device to produce a machine. The instructions enable the function / action specified in one or more frames of the flowchart and / or block diagram to be implemented when executed by the processor of a computer or other programmable data processing device. Such processors can be, but are not limited to, general-purpose processors, special-purpose processors, special-purpose processors or field programmable gate arrays.

[0118] The flow charts and block diagrams in the accompanying drawings illustrate the architecture, functions and operations of possible implementations of the systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each box in the flow chart or block diagram may represent a module, a section or a code portion including a code of one or more executable instructions for implementing one or more specified logical functions. It should also be noted that in some alternative implementations, the functions mentioned in the box may not appear in the order mentioned in the accompanying drawings. For example, the two boxes shown in succession may actually be executed substantially simultaneously, or these boxes may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart diagram and the combination of boxes in the block diagram and / or flow chart diagram may be implemented by a combination of a dedicated hardware-based system or dedicated hardware and computer instructions that performs a specified function or action.

[0119] While the foregoing is directed to embodiments of the present disclosure, other and further embodiments of the present disclosure may be devised without departing from the basic scope of the present disclosure, and the scope of the present disclosure is determined by the claims that follow.

Claims

1. A computer-implemented method for generating a computer-aided design of a mechanical assembly, the method comprising: generating a first plurality of designs of mechanical components based on a problem definition associated with the design problem and a first set of design variables associated with the design problem, wherein each design of the first plurality of designs represents a type of mechanical component by assigning specific values ​​to the first set of design variables; statistically analyzing a first plurality of designs of the mechanical assembly to determine a first statistical property associated with a first design variable included in the first set of design variables; as well as A graphical user interface (GUI) is generated based on the first statistical property and a first plurality of designs of the mechanical assembly to graphically depict the first statistical property. 2 . The computer-implemented method of claim 1 , wherein the first statistical property comprises a first statistical dependency between the first design variable and a second design variable included in the first set of design variables.

3. The computer-implemented method of claim 2 , further comprising generating a first GUI element within the GUI, the first GUI element coupling a first portion of the GUI associated with the first design variable to a second portion of the GUI associated with the second design variable, wherein the GUI graphically depicts the first statistical attribute via the first GUI element. 4 . The computer-implemented method of claim 2 , further comprising generating a first GUI element within the GUI, the first GUI element comprising one or more visual attributes corresponding to a magnitude of the first statistical dependency.

5. The computer-implemented method of claim 2 , wherein the GUI comprises a first arc associated with the first design variable and a second arc associated with a second design variable included in the first set of design variables, and the method further comprises generating a first GUI element within the GUI, the first GUI element connecting the first arc to the second arc based on the first statistical dependency.

6. The computer-implemented method of claim 2, wherein the GUI comprises a first GUI element coupled to a first portion of the problem definition associated with the first design variable, and comprises a second GUI element coupled to a second portion of the problem definition associated with the second design variable, wherein the GUI graphically depicts the first statistical attribute via the first GUI element. 7 . The computer-implemented method of claim 1 , wherein the first statistical property comprises a first probability that the first design variable is assigned a first design value in a first plurality of designs for the mechanical assembly.

8. The computer-implemented method of claim 7, further comprising generating a first GUI element within the GUI with at least one visual attribute derived from the first probability, wherein the GUI graphically depicts the first statistical attribute via the first GUI element.

9. The computer-implemented method of claim 7, further comprising: generating a second plurality of designs for the mechanical component based on the first probabilities and the first set of design variables; statistically analyzing a second plurality of designs of the mechanical assembly to determine a second statistical property associated with the first design variable; as well as The GUI is modified to graphically depict the second statistical property based on the second statistical property and a second plurality of designs for the mechanical assembly.

10. The computer-implemented method of claim 1, further comprising: generating a first probability distribution associated with a first set of design values ​​assigned to the first set of design variables; extracting one or more samples from the first probability distribution; generating a second plurality of designs for the mechanical assembly based on the one or more samples, wherein the second plurality of designs for the mechanical assembly includes a second set of design values ​​assigned to the first set of design variables; as well as The GUI is modified based on the second set of design values ​​to graphically depict at least one statistical property of the second set of design values.

11. A non-transitory computer-readable medium storing program instructions, which, when executed by a processor, cause the processor to perform the method of any one of claims 1 to 10.

12. A system comprising: a memory storing a software application; as well as A processor, wherein the processor is configured to perform the method of any one of claims 1-10 when executing the software application.

Citation Information

Patent Citations

  • Techniques for visualizing probabilistic data generated when designing mechanical assemblies

    US20200333928A1

  • Deep-learning based functional correlation of volumetric designs

    CN108027809A

  • Identification of most influential design variables in engineering design optimization

    US20110251711A1

  • Systems and methods for overlaying and integrating computer aided design (CAD) drawings with fluid models

    US20180260501A1

  • Optimization of prototype and machine design within a 3D fluid modeling environment

    US20180260503A1