Techniques for generating designs that reflect style preferences

By using trained machine learning models to calculate the feature information of the design and generate the design according to the target style, the problem of difficult to consider style preferences in the prior art is solved, and high-quality design generation and evaluation are achieved.

CN113168489BActive Publication Date: 2025-06-03AUTODESK INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN201980066524.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-08-07
Filing Date
2019-08-09
Publication Date
2025-06-03
Estimated Expiration
2039-08-09

AI Technical Summary

Technical Problem

The prior art is difficult to effectively consider style preferences when automatically generating designs, resulting in the generated design being aesthetically unacceptable to designers and inefficient in manufacturing.

Method used

A computer-implemented method is adopted to calculate the feature information of the design based on a trained machine learning model and calculate the style score based on the target style, and finally generate a design that can more represent the target style.

Benefits of technology

Automated workflows are implemented, significantly increasing the number of designs that can be generated and evaluated based on target styles, improving the quality of the final choice of designs, and allowing novice designers to implement successfully without the help of experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113168489B_ABST
    Figure CN113168489B_ABST
Patent Text Reader

Abstract

In various embodiments, a stylization application generates a design that reflects a style preference. In operation, the stylization application calculates characterization information based on a first design and a trained machine learning model that maps one or more designs to characterization information associated with one or more styles. The stylization application then calculates a style score based on the characterization information and a target style included in one or more styles. Subsequently, the stylization application generates a second design based on the style score, where the second design is more representative of the target style than the first design. Advantageously, since the stylization application can significantly increase the number of designs that can be generated based on a target style within a given amount of time relative to more manual prior art, the overall quality of the designs ultimately selected for production can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - Reference to Related Applications

[0002] This application claims the priority benefit of U.S. Provisional Patent Application No. 62 / 716,845, filed on Aug. 9, 2018, entitled "GENERATING DESIGNS VIA MACHINE LEARNING TECHNIQUES", and this application also claims the priority benefit of U.S. Patent Application No. 16 / 534,982, filed on Aug. 7, 2019, entitled "TECHNIQUES FOR GENERATING DESIGNS THAT REFLECT STYLISTIC PREFERENCES". The subject matter of these related applications is incorporated herein by reference. Background Technical Field

[0004] Embodiments of the present invention generally relate to computer-aided design and computer-aided design software, and more particularly, to techniques for generating designs that reflect stylistic preferences. Background Art

[0006] For many objects, the style of the object can be as important as, or even more important than, the functional aspects of the object. For example, the appearance of a car is often as important as its performance. In a typical design process for such an object, a designer manually generates an initial design that reflects the desired style of the object, and then manually modifies the initial design to generate a production design that meets the functional aspects of the object. For example, a designer can generate an initial design for a car dashboard that fits the overall appearance of the car. Subsequently, the designer can make design modifications to increase the stiffness of the dashboard so that it is sufficient to withstand the stresses expected during car operation.

[0007] One disadvantage of the manual design process is that generating and modifying the initial design can be tedious and overly time-consuming. If the time allocated to the design activity is limited, then the designer may only be able to consider a limited number of design options during the design process, which can reduce the overall quality of the production design. In addition, many novice designers are unable to manually generate designs with the desired style without the help of an experienced designer who is familiar with that particular style.

[0008] To reduce the time required for design activities, some designers use generative design processes. Generative design is a computer-aided design process that can automatically synthesize designs that meet any number and type of objective goals and constraints. Since it is difficult (if not impossible) to express a particular style in an objective manner, designers typically specify only their functional goals and constraints for their designs when implementing a generative design process. The generative design application then performs various optimization algorithms to generate a generative design space that includes a large number (e.g., thousands) of designs that meet those functional goals and constraints. The designer then explores the generative design space, manually views and evaluates different designs, and selects a single final design for other design and / or manufacturing activities.

[0009] One disadvantage of using a generative design process is that the resulting designs often have "organic" shapes, meaning that the design has a bulky shape that reflects the best way that various forces can affect the shape of the objects that make up the design. In essence, the performance of the organic shape is optimized through the generative design process, but the overall appearance of the organic shape is not considered. Since organic shapes are prevalent in a typical generative design space, all designs typically generated through the generative design process are not aesthetically acceptable to the designer. Additionally, even if a particular design generated through the generative design process is aesthetically acceptable to the designer, manufacturing the organic shape included in the design is often inefficient. For example, to reproduce the blocks that characterize an organic shape, a computer numerical control ("CNC") milling machine would have to execute many very long tool paths that include many time-consuming grinding operations.

[0010] As previously mentioned, what is needed in the art are more efficient techniques for considering style preferences when automatically generating designs. SUMMARY OF THE INVENTION

[0011] One embodiment of the present invention recites a computer-implemented method for generating a design that accounts for style preferences. The method includes: calculating first feature information based on a first design and a trained machine learning model that maps one or more designs to characterization information associated with one or more styles; calculating a style score based on the first characterization information and a target style included in the one or more styles; and generating a second design based on the style score, wherein the second design is more representative of the target style than the first design.

[0012] Compared to the prior art, at least one technical advantage of the disclosed technology is that, unlike the methods of the prior art, the disclosed technology provides an automated workflow for generating and evaluating designs based on a target style that reflects aesthetic and / or manufacturing-related preferences. In some embodiments, a graphical user interface (“GUI”) allows for the specification of style-related inputs (i.e., training data for a machine learning model and subsequent target style), a machine learning style model is trained based on the training data, and the trained machine learning style model is used to quantify a design relative to the target style. In contrast, the prior art neither provides a GUI that supports style-related inputs nor provides a mechanism for effectively considering style-related inputs. Since the disclosed technology can significantly increase the number of designs that can be generated and evaluated based on a target style within a given amount of time, the overall quality of the designs ultimately selected for production can be improved relative to prior art methods. Additionally, novice designers can successfully implement the automated workflow without the assistance of experienced designers. These technical advantages provide one or more technological advancements over prior art methods. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] In order to understand the manner in which the above-recited features of various embodiments can be obtained, the inventive concepts briefly summarized above may be described in more detail with reference to the 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 concepts and are therefore not to be considered limiting in any way, and there are other equally effective embodiments.

[0014] Figure 1 is a conceptual diagram of a system configured to implement one or more aspects of the present invention;

[0015] Figure 2 is according to various embodiments of the present invention Figure 1 a more detailed illustration of a stylization subsystem;

[0016] Figure 3 is according to other various embodiments of the present invention Figure 1 a more detailed illustration of a stylization subsystem;

[0017] Figure 4 is according to various embodiments of the present invention Figure 1 an exemplary illustration of a graphical user interface (GUI);

[0018] Figures 5A - 5B is a flowchart setting forth method steps for generating and evaluating designs based on style preferences according to various embodiments of the present invention; and

[0019] Figure 6A flowchart of method steps for generating a design based on style preferences according to various embodiments of the present invention. Detailed Description

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

[0021] System Overview

[0022] Figure 1 A conceptual diagram of a system 100 configured to implement one or more aspects of the present invention. The system 100 includes, but is not limited to, computer instances 110(1)-110(3), a user device 190, a training database 120, and a model database 140. For illustrative purposes, multiple instances of similar objects are represented by the reference numeral identifying the object and a bracketed number identifying the instance where needed.

[0023] Any number of components of the system 100 may be distributed across multiple geographical locations or implemented in any combination in one or more cloud computing environments (i.e., encapsulated shared resources, software, data, etc.). In alternative embodiments, the system 100 may include any number of computing instances 110, any number of user devices 190, and any combination of any number and type of databases.

[0024] As shown, each computing instance 110 includes, but is not limited to, a processor 112 and a memory 116. The processor 112 may be any instruction execution system, apparatus, or device capable of executing instructions. For example, the processor 112 may include a central processing unit (“CPU”), a graphics processing unit (“GPU”), a controller, a microcontroller, a state machine, or any combination thereof. The memory 116 stores content for use by the processor 112 of the computing instance 110, such as software applications and data. In alternative embodiments, each computing instance 110 may include any combination of any number of processors 112 and any number of memories 116. In particular, any number of computing instances 110 (including one) may provide a multiprocessing environment in any technically feasible manner.

[0025] Memory 116 can be one or more of readily available memories, such as random access memory (“RAM”), read-only memory (“ROM”), floppy disks, hard disks, or any other form of local or remote digital storage device. In some embodiments, a storage device (not shown) may supplement or replace memory 116. The storage device may include any number and type of external memories accessible to processor 112. By way of example, and not limitation, the memories may include secure digital cards, external flash memories, portable compact disc read-only memories (CD-ROMs), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0026] Each computing instance 110 is configured to implement one or more applications or subsystems of an application. For illustrative purposes only, each application is depicted as residing in the memory 116 of a single computing instance 110 and executing on the processor 112 of a single computing instance 110. However, as will be recognized by those skilled in the art, the functionality of each application may be distributed across any number of other applications residing in the memory 116 of any number of computing instances 110 and may be executed on the processor 112 of any number of computing instances 110 in any combination. Additionally, the functionality of any number of applications or subsystems may be integrated into a single application or subsystem.

[0027] In particular, computing instance 110(1) is configured to provide a workflow that trains a machine learning model based on a training design with an associated style and uses any number of trained machine learning models to account for style preferences when automatically generating and evaluating designs. Each design digitally represents any number and type of objects in any technically feasible manner, by way of example, and not limitation. For example, in some embodiments, one or more designs are computer-aided design (“CAD”) geometric models that represent the geometry of an object in any technically feasible manner (e.g., volume, surface boundary, etc.) and format (e.g., mesh, boundary representation, etc.) suitable for design / manufacture / processing. In other embodiments, any number of designs specify the location and orientation of any number of virtual objects (e.g., design primitives), where each virtual object digitally represents an associated object. In some embodiments, any number of designs specify a 3D shape as a point cloud. In various embodiments, any number of designs are 3D images or two-dimensional (“2D”) images of an object. Each 2D or 3D image may be a hand drawing, sketch, photograph, video frame, etc.

[0028] A typical conventional design process for generating a design of an object while considering style preferences is mainly manual. A designer manually generates an initial design that reflects the desired style of the object and then manually modifies the initial design to generate a production design that meets the functional aspects of the object. One drawback of the manual design process is that generating and modifying the initial design can be tedious and time-consuming. If the time allocated to the design activity is limited, then the designer may only be able to consider a limited number of design options during the design process, which can reduce the overall quality of the production design. Additionally, many novice designers are unable to manually generate a design with the desired style without the assistance of an experienced designer who is familiar with that particular style.

[0029] To reduce the time required for the design activity, some designers use a conventional generative design process. The designer configures a generative design application to generate a generative design space that includes a large number (e.g., thousands) of designs that meet the functional goals and constraints. The designer then explores the generative design space, manually views and evaluates the different designs that are generated, and ultimately selects a single final design for additional design and / or manufacturing activities. One drawback of using a conventional generative design process is that the resulting designs often have organic shapes that are aesthetically unappealing or expensive / difficult to manufacture. Since organic shapes are commonly used in a typical generative design space, generally, all designs generated by a conventional generative design process are not aesthetically acceptable to the designer. Additionally, even if a designer finds a particular design generated by a conventional generative design process aesthetically acceptable, manufacturing the organic shapes included in the design is typically inefficient.

[0030] Establishing a workflow to stylize designs

[0031] To address the above problems, computing instance 110(1) implements workflow subsystem 150, computing instance 110(2) implements training application 130, and computing instance 110(3) implements stylization subsystem 170. Workflow subsystem 150 resides in memory 116(1) and executes on processor 112(1), training application 130 resides in memory 116(2) and executes on processor 112(2), and stylization subsystem 170 resides in memory 116(3) and executes on processor 112(3). Workflow subsystem 150, training application 130, and stylization subsystem 170 together establish a "stylization workflow" that considers style preferences when generating and organizing any number of stylized designs 182. Workflow subsystem 150 is also referred to herein as the "workflow application."

[0032] The stylization workflow includes, but is not limited to, a training phase, an inspiration phase, a design generation phase, and a curation phase. The stylization workflow can be used to generate and evaluate any number of stylized designs 182 for any industry and for any purpose. For example, the stylization workflow can be used in industrial design to design furniture, tools, accessories, etc. The stylization workflow can be used in architectural design to design facades, etc. The stylization workflow can be used in civil design to design bridges, roads, and the like. Importantly, the stylization workflow can be used to increase the manufacturability of existing designs or to generate stylized designs suitable for a particular manufacturing technology 182.

[0033] Each stylized design 182 is a design generated based on at least one target style feature. As mentioned herein, a "style feature" can be any perceivable characteristic and / or manufacturing-related attribute that characterizes a group of designs. Aesthetic features are perceivable attributes that characterize a group of designs and are thus a subset of style features. Manufacturing-related attributes are associated with manufacturing a physical object based on the design. Each style feature can be associated with a label that identifies the style feature. Some examples of labels for style features are "bold", "powerful", "complex", "skinny", "organic", and "sharp". Examples of style features include, but are not limited to:

[0034] · Materials and material properties, such as color, texture, reflection, diffusion, specular reflection, and other surface finish properties that affect the appearance and / or texture of a surface.

[0035] · Sharpness, angles, and curvatures of edges and corners.

[0036] · Surface curvatures (e.g., hyperbolic or single-curved, Gaussian curvature, mean curvature, principal curvatures, etc.) and their distributions and statistics.

[0037] · Corner normals, edge normals, surface normals, and associated distributions and statistics.

[0038] · Minimum, maximum, distribution, ratio, and statistics (e.g., mean, median, etc.) of feature sizes and thicknesses.

[0039] · Topological properties of shapes, such as the type of shape, statistical properties of the topological network (i.e., skeleton) of the shape, and / or statistical properties of the geometry of the topological network.

[0040] · Combinations, repetitions, symmetries, and patterns of any number of perceivable attributes and / or other style features, such as bigrams (i.e., local combinations of attributes) and associated correlations, joint probabilities, and statistics.

[0041] · Other subjective or objective, local or global perceivable characteristics that may not necessarily be defined geometrically or mathematically but can be captured from 2D or 3D representations of shapes and surfaces using machine learning techniques.

[0042] · Other subjective or objective, local or global characteristics related to the manufacturability or perceived manufacturability of an object and a surface (i.e., using specific manufacturing processes and manufacturing methods, machines, and / or tool sets).

[0043] As mentioned herein, "style" or "design language" is an aggregation of style characteristics shared among all designs in a set of designs. Clearly, a style can be applied to designs associated with different classes of objects having different functions. For example, the designs of a chair and a motorcycle having similar local curvatures and surfaces can belong to the same style. The set of designs can be defined in any technically feasible manner. For example, the set of designs can include designs associated with the same era, designer, company, brand, franchise, store, manufacturing machine, manufacturing process, and / or manufacturing tool set.

[0044] A style can be associated with a sense of character, identity, cultural / social context, and / or manufacturing generality (e.g., manufacturing machines, manufacturing tools, manufacturing tool sets, manufacturing methods, etc.). For example, a style can encapsulate the "streamlined" appearance for which a particular company is known. Another style can represent a commonality among a set of parts that can be efficiently manufactured using a particular computer numerical control (CNC) milling machine. Multiple styles may be well-known (e.g., Art Deco, Art Nouveau, etc.).

[0045] As shown in the figure, the workflow subsystem 150 includes, but is not limited to, an interface engine 152, target data 160, a stylized design set 180, a post-styling engine 184, an evaluation application 172(1), and a curation engine 188. The interface engine 152 can operate on any type of data received in any technically feasible manner. In addition, the interface engine 152 can implement any number and type of privacy features. For example, in various embodiments, the interface engine 152 ensures that data associated with each designer is not shared with other designers. In the same or other embodiments, the interface engine 152 allows each designer to share data with any number of other designers (e.g., within a workgroup or company). In some embodiments, the interface engine 152 allows each designer to store and / or share data with other designers via a private cloud, a public cloud, or a semi-private cloud, such as a training database 120 and / or a model database 140.

[0046] The interface engine 152 generates a graphical user interface (GUI) 192, displays the GUI 192 on the user device 190, and receives input via the GUI 192. The user device 190 can be any type of device capable of sending input data and / or displaying visual content. For example, the user device 190 can be a game console, a smart phone, a smart television (TV), a laptop computer, a tablet computer, or a desktop computer. The GUI 192 enables any number of designers to perform any stage in the style design flow in any technically feasible manner, in any order, and any number of times. For example, the GUI 192 can provide different execution buttons for each stage, and at any given time, disable the execution buttons for stages that require additional information.

[0047] During the training phase, the interface engine 152 generates a training database 120 based on the input received via the GUI 192. The training database 120 includes, but is not limited to, any number of training designs 122 and any number of style tags 124. Each of the training designs 122 can be any design associated with any type of object. Each style tag 124 is an identifier (e.g., a string) that references a particular style or style feature. Some examples of style tags 124 are "minimalist", "art deco", "art nouveau", "Apple laptop style around 2010", "Leica camera around 1960", "2.5D 3-axis CNC".

[0048] Each training design 122 is associated with one or more style tags 124 in any technically feasible manner. Additionally, each style tag 124 can characterize different types of designs across different categories of objects. For example, the style tag 124 "art deco" can be associated with each of the training designs 122(1)-122(3). The training design 122(1) can be an image of a building, the training design 122(2) can be a CAD geometric model of a car, and the training design 122(3) can be a sketch of a chair input by a designer via the GUI 192.

[0049] The interface engine 152 can generate the training database 120 in any technically feasible manner. For example, in some embodiments, a designer specifies one or more designs (e.g., a design catalog, a single design, etc.) and style tags 124 via a training configuration pane in the GUI 192. If the specified style tag 124 is not already included in the training database 120, the interface engine 152 adds the selected style tag 124 to the training database 120. For each specified design, the interface engine 152 adds the specified design as a new training design 122 to the training database 120 and associates the new training design 122 with the specified style tag 124.

[0050] In the same or other embodiments, a designer specifies, via a training configuration pane in the GUI 192, one or more designs, any number of negative style tags 124, and any number of positive style tags 124. The positive style tags 124 indicate that each specified design belongs to the associated style. The negative style tags 124 indicate that each specified design does not belong to the associated style. The interface engine 152 adds the specified style tags 124 that are not already included in the training database 120 to the training database 120. For each specified design, the interface engine 152 adds the specified design as a new training design 122 to the training database 120, associates the new training design 122 with each positive style tag 124 in a positive manner, and associates the new training design 122 with each negative style tag 124 in a negative manner.

[0051] After receiving a request for a trained style model 132 from the designer via the GUI 192, the interface engine 152 provides the training database 120 to the training application 130. The training application 130 performs any number and type of supervised machine learning techniques to generate a style model 132 based on the training database 120. In an alternative embodiment, the training application 130 can generate or regenerate a style model 132 based on the training database 120 in response to any type of trigger. For example, in some embodiments, the training database 120 is continuously updated, and the training application 130 is configured to regenerate the style model 132 based on the training database 120 every twenty-four hours.

[0052] The training application 130 trains the style model 132 to map designs to characterization information associated with one or more style tags 124. As referred to herein, characterization information can include, but is not limited to, any number and combination of probabilities, assignments, boolean values, scores, etc. For example, in some embodiments, the characterization information for a design is a probability distribution over the style tags 124 included in the training database 120. For each style represented by a style tag, the probability distribution estimates the likelihood that the design belongs to that style. In other embodiments, the characterization information specifies a single style tag 124 associated with the style to which the design is predicted to belong. In other embodiments, the characterization information includes a boolean value for each style tag 124. The boolean value for a particular style 124 predicts whether the design belongs to the style represented by the associated style tag 124. In an alternative embodiment, the characterization information can also include any number of gradients (e.g., derivatives / sensitivities) with respect to design specifications / parameters / variants.

[0053] The style model 132 can be any type of model, including but not limited to a binary classification model, a multi-class classification model, and a regression model. Any number of training designs 122 included in the training database 120 can be used to train the style model 132 to make predictions associated with any number of training labels 124. For example, a binary classification model associated with a given style label 124 predicts whether a design belongs to the style associated with the style label 124. A multi-class classification model predicts the probability distribution of designs across at least two style labels 124. A regression model associated with a given style label 124 predicts a numerical value indicating the similarity between the style of the design and the style associated with the style label 124.

[0054] After training, the training application 130 adds the style model 132 to the model database 140. The model database 140 can include any number and type of style models 132 generated in any technically feasible manner. Each style model 132 can be any type of executable software that can map a design to characterization information in any technically feasible manner based on any number of stylization algorithms. If the style model 132 is trained via machine learning techniques, the stylization algorithm is determined during the training process. Notably, each style model 132 can map a design associated with any category of object to characterization data. Notably, if the style model 132(x) is trained using the training database 120 via machine learning techniques, the style model 132(x) can reliably map a design associated with a specific category of object to characterization data regardless of whether any of the training designs in the training designs 122 are associated with the category of the object.

[0055] In an alternative embodiment, the training application 130 can generate multiple style models 132 based on the training database 120, where each style model 132 classifies designs based on different subsets of the style labels 124 and / or the training designs 122. In the same or other embodiments, the training application 130 generates any number of style models 132 based on any number of training databases 120 obtained in any technically feasible manner (e.g., generated or retrieved from any accessible memory).

[0056] In an alternative embodiment, the interface engine 152 and the training application 130 may perform any number and type of operations in combination with any number of other software applications to generate any number of style models 132 in any technically feasible manner. For example, in element-based training, the interface engine 152 generates a training database 120 that includes design elements and associated style tags 124. The interface engine 152 receives an input that specifies any number of designs and design elements (e.g., edges, surfaces, etc.) in any number of positive and / or any number of negative style tags 124. A positive style tag 124 specifies that the presence of each specified design element in a design indicates that the design belongs to the associated style. A negative style tag 124 specifies that the presence of each specified design element in a design indicates that the design does not belong to the associated style.

[0057] In some embodiments, the training application 130 performs semi-supervised machine learning operations to generate any number of style models 132 based on any number of training designs 122 and any number of designer inputs. For example, in some embodiments, the training application 130 performs any number and type of unsupervised learning techniques (e.g., clustering), or applies any number of previously trained and knowledge, to group the training designs 122 into different styles (labeled or unlabeled groups). Based on these groups, the training application 130 can then cluster new training designs 122 into groups, discover new groups, and suggest style tags 124 for these groups. The interface engine 182 may display the suggested style tags 124 for each group via the GUI 192 and allow the designer to view and correct the suggested style tags 124. The interface engine 182 may enable the designer to view and correct the suggested style tags 124 via the GUI 192 in any technically feasible manner. For example, the GUI 192 may include graphical controls that enable the design to add and / or edit the suggested style tags 124, drag and drop a group to another group to merge the groups and the associated suggested style tags 124.

[0058] In various embodiments, in addition to any number of supervised machine learning operations, the training application 130 also performs any number and type of unsupervised machine learning operations to generate any number of style models 132. In some embodiments, the training application 130 may perform data mining operations to obtain training designs 122 from a network or any other resource (e.g., data lake, etc.) without human intervention. In addition, the training application 130 may determine any number of relationships between the training designs 122 and any number of style tags 124 based on any number and type of data or metadata.

[0059] For example, the training application 130 can determine the relationship between the training design 122 of an image and any number of style tags 124 based on the proximity and relationship between words (which may be potential style tags 124) in the text data and the image on the web page. In another example, the training application 130 can search for images associated with certain words (e.g., "bold", "strong", "complex", etc.) via an Internet search engine or similar technology and then use the mined images as the training design 122 or provide additional data for any number of machine learning operations. In the same or other embodiments, the training application 130 can perform data mining operations to determine any number of relationships between designs, potential training designs 122, and the training design 122.

[0060] In alternative embodiments, any number of style models 132 can be pre-trained. In the same or other embodiments, the training application 130 can perform any number and type of operations to customize any number of pre-trained style models 132 based on any number and type of inputs received via the GUI 192 and the interface engine 152. In various embodiments, the training application 130 can periodically perform any number of data mining operations to update any number of training data (including the training database 120) and regenerate any number of style models 132 based on the newly acquired training data.

[0061] In alternative embodiments, the training database 120 can be replaced or supplemented with any type of method for obtaining training data. For example, in some embodiments, the training application 130 implements federated learning techniques to generate one or more style models 132. As those skilled in the art will recognize, "federated learning" is a collaborative machine learning technique that decentralizes the training process in a way that allows different users to train a single model using user-specific private data (e.g., training design 122) without actually sending the data to a central training process, thus maintaining privacy.

[0062] The model database 140 can include any number and type of style models 132 and can be stored in any technically feasible manner. For example, the model database 140 can be stored in the memory 116 of one of the computer instances 110(1)-110(3), can be stored in the memory 116 of any other computing instance 110 (such as a model server, private cloud, public cloud, semi-private cloud, content delivery network ("CDN"), etc.). Access to each style model 132 included in the model database 140 can be open (i.e., accessible to any designer) or can be restricted to a specific group of designers in any technically feasible manner.

[0063] In various embodiments, the training application 130 may implement any number and type of machine learning algorithms in any technically feasible manner to determine any number and type of style tags 124 and / or generate any number and type of style models 132. Examples of machine learning techniques include, but are not limited to, the following types of algorithms: support vector machines ("SVM"), artificial neural networks (including deep learning), Bayesian networks, genetic algorithms, regression, decision trees, random forests, gradient boosting, k-nearest neighbors, k-means, long short-term memory ("LSTM"), and / or other recurrent neural networks ("RNN"), among others.

[0064] In the target style specification phase, the interface engine 152 interacts with the designer via the GUI 192 to generate target data 160 that guides the behavior of the stylization subsystem 170 (also referred to herein as the "stylization application"). The target data 160 includes, but is not limited to, the target style specification 166. As shown by the dashed box, the target data 160 may also include, but is not limited to, the initial design set 162 or the synthesis configuration 164.

[0065] The target style specification 166 indicates any number of style preferences in any technically feasible manner consistent with the style tags 124 and the stylization subsystem 170. The interface engine 152 may generate the target style specification 166 in any technically feasible manner. For example, in some embodiments, the designer selects any number of style tags 124 as individual positive targets, and any number of other style tags 124 as individual negative targets via the GUI 192. In response, the interface engine 152 generates the target style specification 166, which causes the stylization subsystem 170 to attempt to generate a design that is stylistically at least one positive target and not any negative target.

[0066] In other embodiments, the designer selects any number of style tags 124 as combined positive targets, and in response, the interface engine 152 generates the target style specification 166 that causes the stylization subsystem 170 to attempt to generate designs that are stylistically all positive targets. For example, the designer may select a combined positive target of "Company xyz" and "CNC Machine X". In response, the interface engine 152 will generate the target style specification 166 that causes the stylization subsystem 170 to attempt to generate a design with the characteristics of Company xyz and that can be effectively generated using CNC Machine X.

[0067] In some embodiments, the stylization subsystem 170 modifies an initial design based on the target style specification 166 to generate one or more stylized designs 182. In such embodiments, the target data 160 includes an initial design set 162 specifying any number of initial designs. In other embodiments, the stylization subsystem 170 generates the stylized design 182 based on the target style specification and the synthesis configuration 164. The synthesis configuration 164 specifies any number and type of controls that affect the behavior of the synthesis algorithm and are not directly related to the style. For example, the synthesis configuration 164 may specify, but is not limited to, any combination of any number and type of optimization criteria, design constraints, goals, regularization values, and deviation values.

[0068] The controls may be related to physical and / or mechanical properties (e.g., stiffness, displacement, stress, strain, heat dissipation, weight, mass, center of gravity, stability, buckling, natural frequency, etc.), environmental impacts, energy efficiency, ergonomics, manufacturing time and cost, operating cost, life cycle cost, etc. For example, the synthesis configuration 164 for designing a lamp may include a goal of maximizing the amount of visible light emitted by the lamp, a goal of minimizing the weight of the lamp, and a mechanical stability constraint that limits the projection of the center of gravity of the lamp within the occupied space of the lamp. The stylization subsystem 170 may perform any number and type of optimization or editing operations to generate the stylized design 182 that reflects the synthesis configuration 164 and the target style specification 166.

[0069] Advantageously, the interface engine 152 may configure the GUI 192 to enable a designer to effectively specify the target data 160 in any technically feasible manner. For example, in various embodiments, the interface engine 152 displays any number of style tags 124 and thumbnails of the training designs 122 belonging to the associated style to facilitate the generation of the target style specification 166. In the same or other embodiments, the interface engine 152 enables the designer to select and / or draw any number of initial designs included in the initial design set 162 and / or any number of optimization criteria and / or constraints specified in the synthesis configuration 164 via the GUI 192.

[0070] In alternative embodiments, the target data 160 includes any number of core elements (not shown) as additional goals or constraints guiding the behavior of the stylization subsystem 170. The core elements are constraints or suggestions for generating the stylized design 182. The core elements are global key points, straight lines, curves, corners, edges, contours, and / or surfaces that encapsulate certain general postures, feelings, or characteristics of a class of objects. If certain surfaces, edges, and key features of a design follow the core elements of the associated object class, the design conveys a certain characteristic.

[0071] In contrast to style, the core elements for a particular object category depend on the functional aspects of the object category, and thus, the relevance and applicability of the core elements are limited to the object category. For example, the core elements of a motorcycle can define the overall appearance via two circles representing the wheels, a triangle representing the engine and seat connected to the rear wheel, and lines connecting the front wheel to the triangle extending to the handlebars. If the design of the motorcycle conforms to the core elements, the overall appearance of the design conveys the desired characteristics (e.g., fast, powerful, etc.). However, the design of other objects (e.g., a boat or a truck) following the same core elements does not necessarily convey the characteristics of the design.

[0072] During the inspiration phase, the interface engine 152 can determine the core elements in any technically feasible way. For example, in some embodiments, the interface engine 152 enables a designer to specify (e.g., draw) the core elements in a standalone manner or superimposed on an existing design (e.g., one of the training designs 122) via the GUI 192. In other embodiments, a core element extraction application (not shown) implements any number of machine learning techniques based on a subset of the training designs 122 associated with the selected object category and the selected style label 124 to generate any number of core elements. In some embodiments, the core element extraction application can generate a set of core elements based on a selected set of designs and then assign the style label 124 to the set of core elements. Subsequently, the core element extraction application can automatically generate new core elements based on additional designs associated with the style label 124.

[0073] To initiate the design generation phase, the workflow subsystem 150 selects one or more style models 132 from the model database 140 in any technically feasible way. For example, in some embodiments, the workflow subsystem 150 selects the style models 132 based on designer input received via the GUI 192 and the interface engine 152. In other embodiments, the workflow subsystem 150 compares the style labels 124 that each style model 132 has learned the style labels 124 referenced in the target style specification 166. As referred to herein, the style labels 124 that a given style model 132(x) has "learned" are the style labels 124 included in the training database 120(x) that the training application 130 uses to train the style model 132(x). Then, the workflow subsystem 150 selects the style models 132 that together have learned the style labels 124 referenced in the target style specification 166.

[0074] If the target data 160 includes the initial design set 162, the workflow subsystem 150 performs the design generation phase for each initial design included in the initial design set 162 and aggregates the resulting stylized designs 182 into a stylized design set 180. To perform the design generation phase for an initial design, the workflow subsystem 150 configures the stylization subsystem 170 to generate a stylized design 182 based on the target style specification 166, the selected style model 132, and the initial design. However, if the target data 160 does not include the initial design set 162, the workflow subsystem 150 configures the stylization subsystem 170 to generate the stylized designs 182 included in the stylized design set 182 based on the target style specification 166 and the synthesis configuration 164.

[0075] During the design generation phase, the stylization subsystem 170 generates any number of stylized designs 182 based on the selected style model 132 and the synthesis configuration 164 or one of the initial designs included in the initial design set 162. As shown, the stylization subsystem 170 includes, but is not limited to, an evaluation application 172(2) and a generation application 174. The evaluation application 172(2) and the generation application 174 together generate the stylized designs 182 in an iterative design process.

[0076] As combined with Figure 2 and Figure 3 As described in more detail, the evaluation application 172(2) receives the current design and calculates the style score of the current design based on the target style specification 166 and the selected style model 132. First, the evaluation application 172 calculates the characterization information of the current design based on the selected style model 132. More precisely, for each selected style model 132, the evaluation application 172 provides the current design as an input to the selected style model 132. The output of the selected style model 132 is model-specific characterization information associated with the style label 124 that the selected style model 132 has learned. Then, the evaluation application 172 aggregates the model-specific characterization information in any technically feasible way to generate the characterization information of the current design.

[0077] Subsequently, the evaluation application 172(2) calculates a style score for the current design based on the characterization information and the target style specification 166. The style score for the current design is a value of a style metric indicating the level of compliance of the current design with the target style specification 166. The evaluation application 172(2) can calculate the style score in any technically feasible manner. For example, in some embodiments, the characterization information is a probability distribution, and the evaluation application 172(2) compares each probability included in the style distribution with the target style specification 166 based on the associated style label 124. If the target style specification 166 designates the style label 124(x) as a positive target, the evaluation application 172(2) increases the style score as the probability associated with the style label 124(x) increases. If the target style specification 166 designates the style label 124(x) as a negative target, the evaluation application 172(2) decreases the style score as the probability associated with the style label 124(x) increases. In alternative embodiments (e.g., in cases where the generation application 174 implements a gradient-based optimization algorithm), the style score may also include the gradient of the style score with respect to the design specifications / variables / parameters, which allows the generation application 174 to make appropriate modifications to the design specifications / variables / parameters towards achieving the target style specification 166.

[0078] The generation application 174 generates one or more current designs based on any combination of style scores, any number of optimization algorithms, and any number of shape generation algorithms. The optimization algorithms can modify an existing design, synthesize a new design, generate a control set that configures the shape generation algorithm to modify an existing design, and / or generate a control set that configures the shape generation algorithm to synthesize a new design. The shape generation algorithm generates a design including any number of shapes based on the control set. The generation application 174 either modifies the existing design content or synthesizes new design content.

[0079] If the generation application 174 receives an initial design from the workflow subsystem 150, the generation application 174 modifies the existing content. The generation application 174 sets the current design equal to the initial design and then performs an iterative design process that progressively modifies the current design to generate one or more stylized designs 182. For each iteration, the evaluation application 172(2) calculates the style score for the current design based on the selected style model 132 and the target style specification 166. The generation application 174 then modifies the current design based on the goal of optimizing the style score. The generation application 174 can implement any number and type of optimization algorithms to modify the current design. For example, the generation application 174 can execute any number and combination of topology optimization algorithms, parameter optimization algorithms, and constrained shape reconstruction algorithms.

[0080] After the final iteration, the generation application 174 transmits the current design as the stylized design 182 to the workflow subsystem 150. In some embodiments, the generation application 174 also transmits a style score associated with the stylized design 182 to the workflow subsystem 150. The workflow subsystem 150 then adds the stylized design 182 to the stylized design set 180. Figure 2 An embodiment of the stylization subsystem 170 that modifies existing design content is described in more detail.

[0081] However, if the generation application 174 does not receive the initial design, the generation application 174 synthesizes new content based on the synthesis configuration 164. More specifically, the generation application 174 performs an iterative design process based on the synthesis configuration 164 and the goal of optimizing the style score to generate the stylized design 182. To initiate the iterative design process, the generation application 174 generates a current design set of one or more current designs based on the synthesis configuration 164. For each iteration, the evaluation application 172 calculates the style score of each current design included in the current design set. The generation application 174 then synthesizes a new current design set based on the style score and the synthesis configuration 164. The generation application 174 can implement any number and type of optimization algorithms to synthesize new design content. For example, the generation application 174 can implement any number and combination of generative design algorithms, evolutionary design algorithms, multi-objective optimization algorithms, etc.

[0082] After the final iteration, the generation application 174 transmits the current design included in the current design set as the stylized design 182 to the workflow subsystem 150. In some embodiments, the generation application 174 may also transmit a style score associated with the stylized design 182 to the workflow subsystem 150. The workflow subsystem 150 then adds the stylized design 182 to the stylized design set 180. Figure 3 An embodiment of the stylization subsystem 170 that synthesizes new design content is described in more detail.

[0083] The stylization subsystem 170 can terminate the iterative design process based on any number and type of completion criteria. For example, in some embodiments, the stylization subsystem 170 can terminate the iterative design process after a maximum number of iterations (e.g., 1000) specified via the GUI 192. In the same or other embodiments, when the average style score of the current designs is greater than a minimum style score (e.g., 95), the stylization subsystem 170 can terminate the iterative design process.

[0084] Typically, the stylization subsystem 170 may implement any number and type of optimization algorithms, synthesis algorithms, shape generation algorithms, and style metrics to generate any number of stylized designs 182 that reflect the target style specification 166. Accordingly, in various embodiments, the shapes, topologies, performances, etc. of the generated stylized designs 182 may vary. Additionally, the generation application 174 may perform operations based on any amount of data generated during any number (including zero) of previous iterations. For example, in some embodiments, the generation application 174 may perform a stochastic optimization algorithm (e.g., simulated annealing) to randomly generate minor modifications to apply to the current design. In the same or other embodiments, for each current design, the generation application 174 may perform a gradient-based optimization algorithm (e.g., via backpropagation) to synthesize a new current design based on the current design. In various embodiments, the generation application 174 may implement an evolutionary algorithm (e.g., a genetic algorithm) to synthesize a new set of current designs based on the current set of designs.

[0085] In alternative embodiments, the one or more stylization algorithms encapsulated in one or more style models 132 may be replaced with any type of stylization algorithm expressed in any technically feasible manner, and the techniques described herein may be modified accordingly. For example, in some alternative embodiments, each style label 124 is associated with a different set of style constructs that encapsulate one or more stylization algorithms, and includes, but is not limited to, any number and any combination of design primitives, design elements, and design operations. The training database 120, the training application 130, the model database 140, the style model 132, and the stylization subsystem 170 are replaced with a "style constructs subsystem". The style constructs subsystem constructs the stylized design 182 based on a target set of constructs that is determined based on the set of style constructs and the target style specification 166.

[0086] In some embodiments, the style constructs subsystem generates one or more sets of style constructs at least in part based on input received via the GUI 192. For example, the style constructs subsystem may suggest, via the GUI 192 and the interface engine 152, sets of style constructs and associated style labels 124 that include design parameter constraints. The designer may then edit and modify the sets of style constructs and the associated style labels 124 via the GUI 192 and the interface engine 152. In the same or other embodiments, the style constructs subsystem may implement any number of machine learning techniques to generate each set of style constructs. For example, in some embodiments, the style constructs subsystem implements an evolutionary algorithm based on a set of specified training designs 122 to generate a set of style constructs for a specified style label 124.

[0087] Design primitives can include, but are not limited to, any part (including the whole) and / or any combination of any number of prisms, spheres, ellipsoids, cubes, cuboids, pyramids, truncated pyramids, cylinders, cones, frustums of cones, etc. Design elements and design operations can include, but are not limited to, profiles and cross-sections, chip paths, fillets and chamfers, rotations, extrusions, Boolean operations (e.g., union, subtraction, intersection), etc. Any number of design primitives, design elements, and design operations can be constrained in terms of any number of associated design parameters (e.g., dimensions, lengths, radii, positions, orientations, etc.). Each design parameter can be constrained to have a specified relationship with any number of other design parameters, such as an attachment relationship or an alignment relationship. Each design primitive can be constrained to have a specified relationship with the global or local axes and origin. For example, each instance of a design primitive can be limited to a position and orientation parallel to the global ground plane.

[0088] The style construction subsystem can combine any number of style construction sets in any technically feasible way to generate a target construction set based on the target style specification 166. Subsequently, the style construction subsystem can implement any number of optimization algorithms in any combination to generate a stylized design 182 based on the target construction set. Examples of optimization algorithms include, but are not limited to, evolutionary optimization algorithms, stochastic optimization algorithms, real number optimization algorithms, and mixed integer optimization. The style construction subsystem can construct the stylized design 182 in any technically feasible way. For example, the style construction subsystem can implement a constructive solid geometry ("CSG") algorithm.

[0089] After the stylization subsystem 170 generates the stylized design set 180, the post-stylization engine 184 can further refine any number of stylized designs 182 based on the post-stylization configuration 186. The post-stylization configuration 186 can include any number and type of goals and constraints. For example, in some embodiments, the interface engine 152 interacts with a designer via the GUI 192 to determine any number of post-stylization goals and constraints (e.g., physical performance) included in the post-stylization configuration 186. The post-stylization engine 184 then performs parameter optimization operations on each stylized design 182 based on the post-stylization configuration 186.

[0090] In the curation phase, the workflow subsystem 150 evaluates, curates, and displays any number of stylized designs 182 based on any number and type of data. In various embodiments, the workflow subsystem 150 receives a style score for the stylized design 182 from the stylization subsystem 170. In the same or other embodiments, the workflow subsystem 150 configures the evaluation application 172(2) to generate a set of curation scores 156 based on the curation style specification 154. In alternative embodiments, the workflow subsystem 150 can generate any number of sets of curation scores 156 based on any number of curation style specifications 154.

[0091] To generate the curation score set 156, the interface engine 152 interacts with the designer via the GUI 192 to generate the curation style specification 154. The curation style specification 154 indicates any number of style-based criteria for visualization and other curation activities (e.g., filtering) based on the style tags 124 and the style model 132. In some embodiments, the interface engine 152 may initially set the curation style specification 154 to be equal to the target style specification 166, and then allow the designer to modify the curation style specification 152 via the GUI 192.

[0092] Subsequently, the workflow subsystem 150 selects any number of style models 132 included in the model database 140 based on the curation style specification 152 and employs them to evaluate the stylized design 182. The workflow subsystem 150 may select the style models 132 in any technically feasible manner. For example, in some embodiments, the workflow subsystem 150 may implement any of the techniques previously described herein for selecting the style models 132 to be employed to evaluate the current design based on the target style specification 166. For each of the stylized designs 182 included in the stylized design set 180, the evaluation application 172 calculates a curation score based on the selected style model 132 and the curation style specification 154 and adds the curation score to the curation score set 156. Note that the curation score for the stylized design 182(x) may be different from the style score for the stylized design 182(x) previously calculated during the design generation phase.

[0093] The curation engine 188 interacts with the designer via the GUI 192 to perform any number of filtering, sorting, plotting, etc. operations that assist in evaluating the stylized design 182 based on any number and type of data, including curation scores and style scores. For example, in various embodiments, the interface engine may generate a display (presented via the GUI 192) that shows a subset of the stylized designs 182 sorted according to style scores and / or curation scores. In the same or other embodiments, the curation engine 188 may classify, filter, cluster, and / or visually distinguish the stylized designs 182 in any technically feasible manner based on the styles indicated by the style scores. Examples of visualization techniques that the curation engine 188 may implement for differentiating between different styles include, but are not limited to, color maps, grouping, axis rotation, radar charts, etc.

[0094] For example, a designer can configure the curation engine 188 to generate a graph in which each stylized design 182 is represented as a distinct point, where the color of the point indicates the style to which the stylized design 182 has the highest probability of belonging. In another example, a designer can configure the curation engine 186 to generate a graph in which the horizontal axis can indicate a performance metric, one extreme of the vertical axis can indicate one style, and the other extreme of the vertical axis can indicate another style (e.g., art deco style versus art nouveau style on the vertical axis). In yet another example, a designer can configure the curation engine 186 to cluster the stylized designs 182 based on any number of style tags 124 and then visually distinguish (e.g., using color) these clusters for many other curation activities (e.g., plotting, sorting, etc.).

[0095] In an alternative embodiment, the curation engine 188 can enable a designer to perform filtering and / or modification operations on any number of stylized designs 182 based on one or more elements (e.g., edges, surfaces, etc.). For example, a designer can select one or more elements of one of the stylized designs 182 and then request that the workflow subsystem 150 filter, include, or exclude the stylized designs 182 based on the presence of the selected elements.

[0096] In another example, a designer can select one or more elements for removal, and the designer can select or the curation engine 188 can suggest one or more elements as replacements. To suggest replacements for elements, the curation engine 188 can re-execute the design generation phase with any number and type of potential replacement elements to determine the replacement elements that best match the target style specification 166. In response to a subsequent replacement request, the curation engine 188 can modify the stylized design 182. Alternatively, the curation engine 188 can generate constraints (filtering, replacement, etc.) corresponding to the selected elements and the requested operations, add the constraints to the synthesis configuration 164, and then re-execute the design generation phase.

[0097] In an alternative embodiment, when a design is displayed via the GUI 192, the interface engine 152 receives biometric feedback of the designer's mood. The interface engine 152 can receive biometric feedback from an electroencephalogram ("EEG") or any other brain-computer interface. The curation engine 188 can evaluate the biometric feedback to determine when the designer is focusing on a particular design and / or a particular element of a particular design in any technically feasible manner. In various alternative embodiments, the workflow engine 150 estimates the designer's mood and / or attention based on a machine learning model (e.g., an RNN such as an LSTM). In various alternative embodiments, the interface engine 152 receives eye-tracking information (e.g., eye saccades, pupil responses, etc.), and the workflow engine 150 estimates the designer's mood and / or focus based on the eye-tracking information.

[0098] As part of the curation stage, a designer may select one or more designs as the production design 194. For example, the designer may select one of the stylized designs 182 as the production design 194. Alternatively, the designer may modify one of the stylized designs 182 and / or combine elements from multiple stylized designs 182 to generate a modified design, and then select the modified design as the production design 194. The workflow subsystem 150 may perform any number and type of activities to facilitate subsequent design and / or manufacturing activities based on the production design 194. For example, in some embodiments, the workflow subsystem 150 may generate any number of design files that represent the production design 194 in a format and level of detail suitable for manufacturing by the selected manufacturing tools and / or processes. The workflow subsystem 150 may then transfer the design files to the selected manufacturing tools and / or processes.

[0099] At any point in time, the workflow subsystem 150 and / or the training application 130 may add new training designs 122 (e.g., any number of stylized designs 182, designs obtained as part of a data mining activity, newly input designs, manually modified stylized designs 182, etc.) and / or style tags 124 to any number of training databases 120. Additionally, the training application 130 may re-execute the training stage based on any number of training databases 120 in response to any type of trigger to generate and / or regenerate any number of style models 132. For example, in some embodiments, the training application 130 is configured to regenerate each style model 132 included in the model database 140 daily. In other embodiments, when a training database 120 is updated, the training application 130 automatically regenerates any associated style models 132.

[0100] The workflow subsystem 150 enables any number of designers to execute any number of phases of the stylization workflow in any order and any number of times (including zero). For example, using the GUI 192(1) displayed on the user device 190(1), a first designer can execute a training phase to generate a style model 132(1) stored in the model database 140. Subsequently, when using the GUI displayed on the user device 190(2), a second designer can execute an inspiration phase to generate target data 160, execute a design generation phase to generate a stylized design set 180, and then execute a curation phase to evaluate the stylized design set 180. During the curation phase, the second designer can determine that the style score associated with the style label 124(1) is inaccurate. Then, the second designer can execute a training phase to add additional designs (e.g., any number of stylized designs 182) to the training database 120 as positive and negative examples of the style label 124(1) and regenerate the style model 132(1). The second designer can skip the inspiration phase and re-execute the design generation phase based on the previous target data 160 to generate a new stylized design set 180. Finally, the second designer can re-execute the curation phase and select one of the stylized designs 182 included in the new stylized design set 180 as the production design 194.

[0101] Advantageously, the workflow subsystem 150 reduces the time required to generate and evaluate stylized designs 182 based on style preferences. In particular, using the style model 132, designers can automatically generate and evaluate stylized designs 182 based on style metrics rather than manually modifying and visually inspecting the designs. By reducing the time required to generate and evaluate stylized designs 182 relative to conventional design techniques, the workflow subsystem 150 allows designers to generate and evaluate a large number of designs with preferred style characteristics within a given amount of time. Thus, the overall quality of the production design 194 can be improved. Additionally, novice designers can successfully implement the automated stylization workflow without the assistance of more experienced designers.

[0102] It should be understood that the systems shown herein are illustrative and can be varied and modified. The connection topology can be modified as needed, including the number, location, and arrangement of the training database 120, the model database 140, the user devices 190, and the computing instances 110. In some embodiments, one or more of the components shown may not be present. Figure 1 shown.

[0103] Note that the techniques described herein are illustrative and not restrictive, and changes may be made thereto without departing from the broader spirit and scope of the invention. In particular, the flow subsystem 150, training application 130, stylization subsystem 170, evaluation application 172, generation application 174, post-stylization engine 184, and curation engine 188 may be implemented as any number of software applications in any combination. Additionally, in various embodiments, any number of the techniques disclosed herein may be implemented while other techniques may be omitted in any technically feasible manner.

[0104] Generate a stylized design

[0105] Figure 2 is according to various embodiments of the present invention Figure 1 a more detailed description of the stylization subsystem 170. In particular, Figure 2 the stylization subsystem 170 depicted in iteratively modifies the initial design 262(x) included in the initial design set 162 based on the style model 132 to generate a single stylized design 182. In alternative embodiments, the stylization subsystem 170 may generate any number of stylized designs 182 based on the initial design 262(x) and any number of style models 132. Additionally, for each initial design 262 included in the initial design set 162, the stylization subsystem 170 may generate a different number of stylized designs 182. For illustrative purposes only, the parentheses associated with each of the current design 212, control set 242, style distribution 222, and style score 232 specify the associated design iteration. For example, the current design 212(67) was generated during the 67th iteration.

[0106] As shown, the stylization subsystem 170 includes, but is not limited to, the evaluation application 172 and the generation application 174. In operation, the stylization subsystem 170 sets the current design 212(1) equal to the initial design 262(x). Then, the evaluation application 172 and the generation application 172 perform an iterative design process that progressively modifies the current design 212(1) to generate the stylized design 182.

[0107] For the k-th iteration, the evaluation application 172 generates a style score 232(k) based on the current design 212(k), the target style specification 166, and the style model 132. The evaluation application 172 includes, but is not limited to, a classification engine 220 and a comparison engine 230. The classification engine 220 generates a style distribution 222(k) based on the current design 212(k) and the style model 132. More specifically, the classification engine 220 provides the current design 212(k) as an input to the style model 132. The output of the style model 132 is the style distribution 222(k). The style distribution 222(k) specifies the estimated probabilities that the current design 212(k) belongs to different styles associated with the style labels 124 learned by the style model 132 during the training phase. In an alternative embodiment, the output of the style model 132 can be any type of characterization information, and the techniques described herein are modified accordingly.

[0108] As shown, the comparison engine 230 generates a style score 232(k) based on the style distribution 222(k) and the target style specification 166. The style score 232(k) is a value of a style metric that indicates the level of compliance of the current design 212(k) with the target style specification 166. The comparison engine 230 can formulate any style metric and determine the style score 232(k) in any technically feasible manner.

[0109] For example, in some embodiments, the comparison engine 230 compares each probability included in the style distribution 222(k) with the target style specification 166 based on the style labels 124 included in the target style specification 166. If the target style specification 166 designates the style label 124(x) as a positive target, the comparison engine 230 increases the style score 232(k) as the probability associated with the style label 124(x) increases. If the target style specification 166 designates the style label 124(x) as a negative target, the comparison engine 230 decreases the style score 232(k) as the probability associated with the style label 124(x) increases.

[0110] Then, the stylization subsystem 170 determines whether to continue the iteration based on any number and type of completion criteria (not shown). Some examples of completion criteria include, but are not limited to, a maximum number of iterations (e.g., 1000), a minimum style score 232 (e.g., 95), a maximum amount of time, etc. The completion criteria can be specified in any technically feasible manner. For example, in some embodiments, the completion criteria are specified via the GUI 192. In an alternative embodiment, the stylization subsystem 170 can determine whether to continue the iteration at any point during the design process. For example, the stylization subsystem 170 can determine to stop the iteration after the generation application 174 generates the current design 212(800).

[0111] If the stylization subsystem 170 determines to continue the iteration, the generation application 174 modifies the current design 212(k) to generate the current design 212(k + 1). The generation application 174 includes, but is not limited to, an optimization engine 240 and a shape generation engine 210. The optimization engine 240 performs any number and type of optimization operations based on the style score 232(k) to generate a control set 242(k + 1). For example, the optimization engine 240 may perform any number and combination of topology optimization, parameter optimization, and constrained shape reconstruction operations.

[0112] In an alternative embodiment, the optimization engine 240 may perform optimization operations based on the style score 232 and any number of additional data in any technically feasible manner. For example, in some embodiments, the optimization engine 240 may perform gradient-based optimization operations based on the style score 232(k), any number of previously generated current designs 212, and any number of previously generated style scores 232.

[0113] The control set 242(k + 1) includes any number and type of data for configuring the shape generation engine 210 to generate the current design 212(k + 1) in any technically feasible manner. For example, in some embodiments, the control set 242 may specify any number of parameters and / or any number of geometric generation commands that enable the shape generation engine 210 to generate the current design 212(k + 1) independently of the current design 212(k). In other embodiments, the control set 242 may specify any number of parameters and / or any number of geometric modification commands that enable the shape generation engine 210 to modify the current design 212(k) to generate the current design 212(k + 1). In an alternative embodiment, the optimization engine 240 generates the current design 212(k + 1) without generating the control set 242(k + 1), and the shape generation engine 210 is omitted from the generation application 174.

[0114] The shape generation engine 210 generates the current design 212(k + 1) in any technically feasible manner based on the control set 242(k + 1) and any number (excluding none) of additional information. For example, in some embodiments, the shape generation engine 210 may implement any number and combination of layout generation, shape generation, and parameterization operations to generate the current design 212(k + 1) without referring to the current design 212(k). In other embodiments, the shape generation engine 210 may implement any number and combination of layout, shape, and parameter modification operations to modify the current design 212(k) to generate the current design 212(k + 1).

[0115] If, after calculating the style score 232(k), the stylization subsystem 170 determines to stop iterating based on a completion criterion, the stylization subsystem 170 sends the current design 212(k) as the stylized design 182 to the workflow subsystem 150. Subsequently, the workflow subsystem 150 adds the stylized design 182 to the stylized design set 180. In an alternative embodiment, the stylization subsystem 170 may also send the style score 232(k) of the current design 212(k) to the workflow subsystem 150.

[0116] Figure 3 are according to various other embodiments of the present invention Figure 1 a more detailed illustration of the stylization subsystem 170. In particular, Figure 3 the stylization subsystem 170 depicted in synthesizes any number of stylized designs 182 based on the target specification 166, the synthesis configuration 164, and the style model 132. In an alternative embodiment, the stylization subsystem 170 may generate the stylized design 182 based on the synthesis configuration 164 and any number of style models 132. For illustrative purposes only, the number of brackets associated with each of the current design set 320, a set of control sets 342, the style distribution set 322, and the style score set 332 specifies the associated iteration. For example, the current design set 320(67) is generated during the 67th iteration.

[0117] The current design set 320(k) includes, but is not limited to, any number of current designs 212. The number of current designs 212 included in the current design set 320(a) may be different from the number of current designs 212 included in the current design set 320(b). The style distribution set 322(k) includes, but is not limited to, different style distributions 222 for each current design 212 included in the current design set 320(k). The style score set 332(k) includes, but is not limited to, different style scores 232 for each current design 212 included in the current design set 320(k). The set of control sets 342(k) specifies, but is not limited to, any number of control sets 242.

[0118] As shown, the stylization subsystem 170 includes, but is not limited to, an evaluation application 172 and a generation application 174. In operation, the stylization subsystem 170 initializes the style score set 332(0) to an empty set. Then, the evaluation application 172 and the generation application 172 perform an iterative design process that generates any number of stylized designs 182.

[0119] For the k-th iteration, the generation application 174 generates the current design set 320(k) based on the synthesis configuration 164 and the style score set 332(k-1). As shown, the generation application 174 includes, but is not limited to, the synthesis engine 310 and the shape generation engine 210. The synthesis engine 310 performs any number and type of optimization operations based on the synthesis configuration 164 and the style score set 332(k-1) to generate a set of control sets 342(k). For example, the synthesis engine 310 can perform any number and combination of generative design operations, evolutionary design operations, multi-objective optimization operations, etc.

[0120] In an alternative embodiment, the synthesis engine 310 can perform optimization operations based on the synthesis configuration 164, the style score set 332(k-1), and any number of additional data in any technically feasible manner. For example, in some embodiments, the synthesis engine 310 can perform gradient-based optimization operations based on the style score set 332(k-1), any number of previously generated current design sets 320, and any number of previously generated style score sets 332. In the same or other alternative embodiments, the synthesis engine 310 generates the current design set 320(k) without generating a set of control sets 342(k), and the shape generation engine 210 is omitted from the generation application 174.

[0121] Each control set 242 included in the set of control sets 342(k) includes any number of data that configures the shape generation engine 210 to generate different current designs 212 included in the current design set 320(k). For each control set 242(x), the shape generation engine 210 generates a different current design 212(x) and adds the current design 212(x) to the current design set 320(k). As previously combined Figure 2 As described, the shape generation engine 210 can generate the current design 212 in any technically feasible manner based on the associated control set 242 and any number (including none) of additional information.

[0122] As shown in the figure, the evaluation application 172 generates a style score set 332(k) based on the current design set 320(k). The evaluation application 172 includes, but is not limited to, a classification engine 220 and a comparison engine 230. For each current design 212(x) included in the current design set 320(k), the classification engine 220 generates a style distribution 222(x) included in the style distribution set 322(k) based on the style model 132. More precisely, to generate the style distribution 222(x), the classification engine 220 provides the current design 212(x) included in the current design set 320(k) as an input to the style model 132. The output of the style model 132 is the style distribution 222(x). In an alternative embodiment, the output of the style model 132 can be any type of characterization information, and the techniques described herein are modified accordingly.

[0123] Subsequently, for each current design 212(x) included in the current design set 320(k), the comparison engine 230 generates a style score 232(x) included in the style score set 332(k) based on the style distribution 222(x) included in the style distribution set 322(k). The style score 232(x) is a value of a style metric that indicates the level of compliance of the current design 212(x) included in the current design set 320(k) with the target style specification 166. The comparison engine 230 can establish any style metric and determine the style score 232 in any technically feasible manner.

[0124] Then, the stylization subsystem 170 determines whether to continue the iteration based on any number and type of completion criteria (not shown). In an alternative embodiment, the stylization subsystem 170 can determine whether to stop the iteration at any point in the design process. For example, in an alternative embodiment, the stylization subsystem 170 can determine whether to continue the iteration immediately after the generation application 174 generates the current design set 320(k).

[0125] If the stylization subsystem 170 determines to continue the iteration, the generation application 174 modifies the current design set 320(k) to generate the current design set 320(k + 1). Otherwise, the stylization subsystem 170 sends each current design 212(x) included in the current design set 320(k) as a stylized design 182(x) to the workflow subsystem 150. Subsequently, the workflow subsystem 150 adds each stylized design 182 to the stylized design set 180. In an alternative embodiment, the stylization subsystem 170 can also send the style score set 332(k) to the workflow subsystem 150.

[0126] Curating Stylized Designs

[0127] Figure 4 is according to various embodiments of the present invention Figure 1Exemplary illustration of the graphical user interface (GUI) 192. As shown, the GUI 192 depicts an initial design 262(1), a design exploration graph 480, a production design 194, and new training data 490.

[0128] For illustrative purposes only, during the training phase, the style model 132 learns style label 124(1) "Toolset A" and style label 124(2) "Toolset B". Style label 124(1) represents a design style that can be effectively manufactured on a CNC machine using a first set of tools (Toolset A). Style label 124(2) represents a design style that can be effectively manufactured on a CNC machine using a second set of tools (Toolset B). During the inspiration phase, the designer specifies an initial design 262(1) and a target design specification 166, which has a positive target of style label 124(1) or style label 124(2). As shown, the initial design 262(1) is a wheel-shaped mechanical part with an organic shape. During the design generation phase, the stylization subsystem 170 generates stylized designs 182(1)-182(16) included in the stylized design set 180 based on the initial design 262(1).

[0129] During the curation phase, the designer configures the curation engine 188 to generate and display the design exploration graph 480. The design exploration graph 480 depicts each stylized design 182 included in the stylized design set 180 with respect to a weight axis 410 and an estimated manufacturing time axis 420. As shown, if the stylized design 182(x) belongs to a style associated with style label 124(1) "Toolset A", the curation engine 188 depicts the stylized design 182(x) via a square in the design exploration graph 480. If the stylized design 182(x) belongs to a style associated with style label 124(2) "Toolset B", the curation engine 188 depicts the stylized design 182(x) via a circle in the design exploration graph 480.

[0130] Based on the design exploration graph 480, the designer selects the stylized design 182(8) with the second lowest estimated manufacturing time among the stylized designs 182 classified as belonging to a style associated with Toolset A as the production design 194. The designer also interacts with the GUI 192 to add new training data 490 to the training database 120 and regenerate the style model 132 based on the updated training database 120. As shown, the new training data 490 specifies that the stylized design 182(16) classified as belonging to a style associated with Toolset B actually belongs to a style associated with Toolset A. Advantageously, retraining the style model 132 based on the new training data 490 can improve the performance of the style model 132 (e.g., increase accuracy).

[0131] Figures 5A - 5B A flowchart showing method steps for generating and evaluating a design based on style preferences according to various embodiments of the present invention. Although the method steps are described with reference to Figures 1 - 4 the system of, those skilled in the art will understand that any system configured to implement the method steps in any order is within the scope of the present invention.

[0132] As shown, method 500 begins at step 502, where interface engine 152 displays GUI 192 on user device 190 to enable interaction with the designer. At step 504, for any number of styles, workflow subsystem 150 obtains a stylization algorithm based on training database 120. Workflow subsystem 150 can obtain any type of stylization algorithm in any technically feasible manner. For example, in some embodiments, workflow subsystem 150 configures training application 130 to perform machine learning operations based on training database 120 to generate style model 132. In other embodiments, for each style, workflow subsystem 150 obtains different style construction sets of design primitives, design elements, design operations, and combinations thereof.

[0133] At step 506, interface engine 152 determines target data 160 based on the input received via the GUI. At step 508, workflow engine 150 determines whether target data 160 includes an initial design set 162. At step 508, if workflow engine 150 determines that target data 160 includes initial design set 162, then method 500 proceeds to step 510. At step 510, for each initial design 262 included in initial design set 162, stylization subsystem 170 modifies initial design 262 based on target style specification 166 and the stylization algorithm to generate any number of stylized designs 182. Then, method 500 proceeds directly to step 514.

[0134] However, at step 508, if workflow engine 150 determines that target data 160 does not include initial design set 162, then method 500 proceeds directly to step 512. At step 512, stylization subsystem 170 synthesizes any number of stylized designs 182 based on synthesis configuration 164, target style specification 166, and the stylization algorithm. Then, method 500 proceeds to step 514.

[0135] In step 514, the stylized engine 184 performs any number of post-stylization operations on the stylized design 182. In step 516, the curation engine 188 curates and displays any number of stylized designs 182 based on input received via the GUI 192. In step 518, the interface engine 152 determines whether any new training data 490 has been identified. In step 518, if the interface engine 152 determines that no new training data 490 has been identified, the method 500 proceeds directly to step 522.

[0136] However, in step 518, if the interface engine 152 determines that new training data 490 has been identified, the method 500 proceeds to step 520. In step 520, the interface engine 152 updates the training database 120 based on the new training data 490. The training engine 130 then regenerates the stylization algorithm based on the updated training database 120. The method 500 then proceeds to step 522.

[0137] In step 522, the interface engine 152 determines whether a production design 194 has been identified. In step 522, if the interface engine 152 determines that a production design 194 has not been identified, the method 500 proceeds to step 524. In step 524, the interface engine 152 updates any part (including none) of the target data 180 based on input received via the GUI 192. Then, the method 500 returns to step 508 and the workflow subsystem 150 regenerates and recurates the stylized design 182. The workflow subsystem 150 continues to loop through steps 508 - 524 until in step 522 the interface engine 152 determines that a production design 194 has been identified.

[0138] However, if in step 522 the interface engine 15 determines that a production design 194 has been identified, the method 500 proceeds to step 526. In step 526, the workflow subsystem 150 sends the production design 182 to one or more software applications for subsequent design and / or manufacturing activities. Then, the method 500 terminates.

[0139] Figure 6 is a flowchart of method steps for generating a design based on style preferences according to various embodiments of the present invention. Although the method steps are described with reference to Figures 1 - 4 a system, those skilled in the art will understand that any system configured to implement the method steps in any order falls within the scope of the present invention.

[0140] As shown in the figure, method 600 starts at step 602, where the stylization subsystem 170 obtains one or more style models 132, a target style specification 166, and an initial design 262 or a synthesis configuration 164. In step 604, the stylization subsystem 170 determines whether the stylization subsystem 170 has received the initial design 262. In step 604, if the stylization subsystem 170 determines that the stylization subsystem 170 has received the initial design 262, then method 600 proceeds to step 606. In step 606, the stylization subsystem 170 sets the current design 212 to be equal to the initial design 262. Then, method 600 proceeds directly to step 610.

[0141] However, in step 604, if the stylization subsystem 170 determines that the stylization subsystem 170 has not received the initial design 262, then method 600 proceeds directly to step 608. In step 608, the generation application 174 generates any number of current designs 212 based on the synthesis configuration 164. Then, method 600 proceeds to step 610.

[0142] In step 610, for each current design 212(x), the classification engine 220 generates characterization information (e.g., style distribution 222(x)) based on the style model 132. In step 612, for each current design 212(x), the comparison engine 230 generates a style score 232(x) based on the associated characterization information and the target style specification 166.

[0143] In step 614, the stylization subsystem 170 determines whether to continue iterating. The stylization subsystem 170 can determine whether to continue iterating based on any number and type of completion criteria. In step 614, if the stylization subsystem 170 determines to continue iterating, then method 600 proceeds to step 616.

[0144] In step 616, the stylization subsystem 170 determines whether the stylization subsystem 170 has received the initial design 262. In step 616, if the stylization subsystem 170 determines that the stylization subsystem 170 has received the initial design 262, then method 600 proceeds to step 618. In step 618, the generation application 174 modifies the current design 212 based on the style score 232 to generate a new current design 212. Then method 600 returns to step 610, where the classification engine 220 generates characterization information for each current design 212 based on the style model 132.

[0145] However, at step 616, if the stylization subsystem 170 determines that the stylization subsystem 170 has not received the initial design 262, method 600 proceeds directly to step 620. At step 620, the generation application 174 generates any number of new current designs 212 based on the synthesis configuration 164 and the style scores 232. Then method 600 returns to step 610, where the classification engine 220 generates characterization information for each current design 212 based on the style model 132.

[0146] The stylization subsystem 170 continues to loop through steps 610-620 until the stylization subsystem 170 determines to stop iterating. At step 614, if the stylization subsystem 170 determines to stop iterating, method 600 proceeds directly to step 622. At step 622, the stylization subsystem 170 sends each of the current designs 212 as a different stylized design 182 to a software application (e.g., the workflow subsystem 150) for any number and type of curation, design, and / or manufacturing activities. Then, method 600 terminates.

[0147] In summary, the disclosed techniques can be used to effectively generate and evaluate designs that reflect a target style. In one embodiment, the workflow subsystem provides a design graphical user interface (GUI) that supports a stylization workflow. The stylization workflow includes a training phase, an inspiration phase, a design generation phase, and a curation phase. In the training phase, a training application trains a style model to classify design styles based on existing designs and a training database that identifies style labels for different styles. After training, the style model maps designs to a style distribution that estimates the probability that the design belongs to any number of styles defined by the style labels. In the inspiration phase, the workflow subsystem interacts with a designer via the GUI to determine target style specifications and a synthesis configuration. The target style specifications express any number of style preferences based on the style labels. The synthesis configuration specifies any number of functional goals and constraints that are not directly related to the style.

[0148] During the design generation phase, the stylization subsystem performs an iterative design process based on a style model, a target style specification, and a synthesis configuration. The stylization subsystem includes, but is not limited to, a generation application and an evaluation application. In the first iteration, the generation application executes any number of optimization algorithms to generate a current design set based on the synthesis configuration. For each design included in the current design set, the evaluation engine calculates a style score based on the style model and the target style specification. In each subsequent iteration, the generation application generates a new current design set based on the style scores and the synthesis configuration. Then, the evaluation engine calculates style scores for the new current design set. When a completion criterion (e.g., maximum number of iterations, minimum style score, etc.) is met, the stylization subsystem sends each current design included in the current design set to the workflow subsystem as a stylized design.

[0149] During the curation phase, the workflow subsystem interacts with the designer via the GUI to determine a curation style specification that specifies any number of style preferences based on style tags. For each stylized design, the evaluation application calculates a curation score based on the style model and the curation style specification. Subsequently, the curation engine performs any number of filtering, sorting, plotting, etc. operations based on the curation scores to enable the designer to effectively select one or more stylized designs as production designs. At any time in the design stylization workflow, the workflow subsystem allows the designer to add any number of stylized designs and / or any other designs along with associated style tags to the training database. Then, the workflow subsystem retrains the style model based on the updated training database. In this way, the workflow subsystem can continuously improve the accuracy / performance of the style model.

[0150] Compared with the prior art, at least one technical advantage of the disclosed technology is that, different from the methods of the prior art, the workflow subsystem provides an automated workflow for generating and evaluating designs based on a target style. Each target style can be associated with a sense of character, identity (e.g., corporate identity), cultural / social background, and / or manufacturing generality (e.g., manufacturing machines, manufacturing tools, manufacturing tool sets, manufacturing methods, etc.). For example, a target style can encapsulate the aesthetic features associated with a specific company, as well as the generality among a set of parts that can be efficiently manufactured using a specific CNC milling machine. In some embodiments, the GUI allows specifying the target style, and a machine learning model is used to characterize a design based on the specified target style. In contrast, the prior art neither provides a GUI that supports style-related input nor provides a mechanism that effectively considers style-related input. Since the workflow subsystem can significantly increase the number of designs that can be generated and evaluated based on a target style within a given time, the overall quality of the designs finally selected for production can be improved relative to the prior art methods. Additionally, since novice designers can successfully implement the automated workflow without the help of experienced designers. These technical advantages provide one or more technological advancements over the prior art methods.

[0151] 1. In some embodiments, a computer-implemented method for generating a design considering style preferences includes: calculating first characterization information based on a first design and a trained machine learning model that maps one or more designs to characterization information associated with one or more styles; calculating a style score based on the first characterization information and a target style included in the one or more styles; and generating a second design based on the style score, wherein the second design represents the target style better than the first design.

[0152] 2. The computer-implemented method according to clause 1, wherein the trained machine learning model includes a binary classification model, a multi-class classification model, or a regression model.

[0153] 3. The computer-implemented method according to clause 1 or 2, wherein the trained machine learning model is trained based on a plurality of designs associated with a first type of object, and the first design is associated with a second type of object.

[0154] 4. The computer-implemented method according to any one of clauses 1-3 further includes: performing one or more data mining operations to obtain training data; and performing one or more unsupervised learning algorithms based on the training data to generate the trained machine learning model.

[0155] 5. The computer-implemented method according to any one of clauses 1-4, wherein generating the second design comprises: performing a multi-objective optimization algorithm based on the style score, a first objective associated with the style score, and a second objective independent of the style score.

[0156] 6. The computer-implemented method according to any one of clauses 1-5, wherein the second objective is related to at least one of the following: physical performance, mechanical performance, environmental impact, energy efficiency, ergonomics, manufacturing time, manufacturing cost, and operating cost.

[0157] 7. The computer-implemented method according to any one of clauses 1-6, wherein generating the second design comprises: performing a gradient-based optimization algorithm based on the style score and the first design.

[0158] 8. The computer-implemented method according to any one of clauses 1-7, wherein generating the second design comprises: modifying the first design based on the style score and at least one of a topology optimization algorithm, a parameter optimization algorithm, a stochastic optimization algorithm, an evolutionary optimization algorithm, and a constrained shape reconstruction algorithm.

[0159] 9. The computer-implemented method according to any one of clauses 1-8, wherein calculating the style score comprises: determining a first probability included in the first characterization information based on a target style; and determining that the target style is an affirmative target; and increasing the style score based on the first probability.

[0160] 10. The computer-implemented method according to any one of clauses 1-9, wherein the target style is associated with at least one of the following: sense of character, corporate image, cultural background, manufacturing tools, and manufacturing methods.

[0161] 11. In some embodiments, one or more non-transitory computer-readable media comprise instructions that, when executed by one or more processors, cause the one or more processors to generate a design considering style preferences by performing the following steps: based on a first design and first characterization information of a trained machine learning model that maps one or more designs to characterization information associated with one or more styles; calculating a style score based on the first characterization information and a first style preference associated with at least a first style included in the one or more styles; and generating a second design based on the style score, wherein the second design is more representative of the first style preference than the first design.

[0162] 12. One or more non-transitory computer-readable media according to clause 11, wherein the first characterization information includes one or more styles, boolean values, or a probability distribution on special styles included in the one or more styles.

[0163] 13. One or more non-transitory computer-readable media according to clause 11 or 12, wherein the trained machine learning model is trained based on a plurality of designs associated with a first type of object, and the first design is associated with a second type of object.

[0164] 14. One or more non-transitory computer-readable media according to any one of clauses 11-13, further comprising performing one or more data mining operations to obtain training data; and performing one or more unsupervised learning algorithms based on the training data to generate a trained machine learning model.

[0165] 15. One or more non-transitory computer-readable media according to any one of clauses 11-14, wherein generating the second design includes: performing a multi-objective optimization algorithm based on the style score, a first objective related to the style score, and a second objective unrelated to the style score.

[0166] 16. One or more non-transitory computer-readable media according to any one of clauses 11-15, wherein the second objective is related to at least one of the following: physical performance, mechanical performance, environmental impact, energy efficiency, ergonomics, manufacturing time, manufacturing cost, and operating cost.

[0167] 17. One or more non-transitory computer-readable media according to any one of clauses 11-16, wherein generating the second design includes: performing a gradient-based optimization algorithm based on the style score and the first design.

[0168] 18. One or more non-transitory computer-readable media according to any one of clauses 11-17, wherein calculating the style score includes: determining whether the first style is a negative target based on the first style preference; and determining a first probability included in the first characterization information based on the first style; and reducing the style score based on the first probability.

[0169] 19. One or more non-transitory computer-readable media according to any one of clauses 11-18, wherein the first style is characterized by at least one of aesthetic features and manufacturing-related attributes.

[0170] 20. In some embodiments, a system for generating a design that takes into account style preferences includes: one or more memories that store instructions; and one or more processors that are coupled to the one or more memories and are configured, when executing the instructions, to calculate first characterization information based on a first design and a trained machine learning model that maps one or more designs to characterization information associated with one or more styles; calculate a style score based on the first characterization information and a target style included in the one or more styles; and execute at least one optimization algorithm to generate a second design based on the style score, wherein the second design is more representative of the target style than the first design.

[0171] In any way, any combination of any claim element recited in any claim and / or any element described in this application falls within the scope and protection contemplated by the present invention.

[0172] The description of the various embodiments has been presented for purposes of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. 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.

[0173] Aspects of the present embodiments may be embodied as a system, method, or computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.), or an embodiment combining software and hardware aspects that may generally be referred to herein as a "module," "system," or "computer." Additionally, any hardware and / or software technology, process, function, component, engine, module, or system described in the present disclosure may be implemented as a circuit or group of circuits. Further, 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.

[0174] Any combination of one or more computer-readable media can be utilized. The computer-readable media can be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium can be, by way of example and not limitation, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, 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 disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any other suitable combination of the foregoing. In the context of this document, a computer-readable storage medium can be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.

[0175] The aspects of the present invention have been described above with reference to the flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, enable the implementation of the functions / acts specified in one or more blocks of the flowchart and / or block diagram. Such a processor can be, by way of example and not limitation, a general purpose processor, a special purpose processor, a special application processor, or a field programmable gate array.

[0176] The flowchart and block diagrams in the figures illustrate the architecture, functionality and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, a segment of code, or a portion of code, which comprises 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 noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, can be implemented by a system based on dedicated hardware for performing the specified functions or acts, or by a combination of dedicated hardware and computer instructions.

[0177] 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 thereof, and the scope thereof is determined by the appended claims.

Claims

1. A computer-implemented method for generating a design considering style preferences, the method comprises: Via a processor, based on a first computer-aided design (CAD) model of a first physical object, execute a trained machine learning model to generate first characterization information, wherein the trained machine learning model maps one or more designs to characterization information associated with one or more aesthetic styles; Via the processor, execute a CAD-based evaluation application to calculate a first style score associated with the first CAD model based on the first characterization information and a specified target style included in the one or more aesthetic styles, wherein the first style score includes a first gradient associated with a first design parameter of the first CAD model; and Via the processor, execute a CAD-based generation application to generate a second CAD model of the first physical object by executing an optimization algorithm, the optimization algorithm modifies the first CAD model to generate the second CAD model by iteratively modifying the first design parameter of the first CAD model based on the first gradient of the first style score to optimize a first objective of the first style score, wherein the second CAD model is associated with a second style score different from the first style score.

2. The computer-implemented method according to claim 1, wherein the trained machine learning model comprises a binary classification model, a multi-class classification model or a regression model.

3. The computer-implemented method according to claim 1, wherein the trained machine learning model is trained based on a plurality of designs associated with a first type of object, and the first CAD model is associated with a second type of object.

4. The computer-implemented method according to claim 1, further comprises: Execute one or more data mining operations to obtain training data; and Based on the training data, execute one or more unsupervised learning algorithms to generate the trained machine learning model.

5. The computer-implemented method according to claim 1, wherein generating the second CAD model by executing the optimization algorithm comprises: Execute a multi-objective optimization algorithm based on the first style score, the first objective related to the first style score, and a second objective unrelated to the first style score.

6. The computer-implemented method according to claim 5, wherein the second objective is related to at least one of physical performance, mechanical performance, environmental impact, energy efficiency, ergonomics, manufacturing time, manufacturing cost, and operating cost.

7. The computer-implemented method according to claim 1, wherein calculating the first style score comprises: Determine a first probability included in the first characterization information based on the target style; Determine that the target style is a positive target; and Increase the first style score based on the first probability.

8. The computer-implemented method according to claim 1, wherein the target style is associated with at least one of a sense of character, a corporate identity, a cultural background, manufacturing tools, and manufacturing methods.

9. One or more non-transitory computer-readable media comprising instructions that, when executed by one or more processors, cause the one or more processors to generate a design considering style preferences by performing the following steps: Based on a first computer-aided design (CAD) model of a first physical object, execute a trained machine learning model to generate first characterization information, wherein the trained machine learning model maps one or more designs to characterization information associated with one or more aesthetic styles; Via the one or more processors, execute a CAD-based evaluation application to calculate a first style score associated with the first CAD model of the first physical object based on the first characterization information and a specified style preference, the specified style preference being associated with at least a first aesthetic style included in the one or more aesthetic styles, wherein the first style score includes a first gradient associated with a first design parameter of the first CAD model of the first physical object; and Via the processor, execute a CAD-based generation application to generate a second CAD model of the first physical object by performing an optimization algorithm that modifies the first CAD model to generate the second CAD model by iteratively modifying the first design parameter of the first CAD model of the first physical object based on the first gradient of the first style score to optimize a first objective of the first style score, wherein the second CAD model of the first physical object is associated with a second style score different from the first style score.

10. The one or more non-transitory computer-readable media according to claim 9, wherein the first characterization information includes one or more aesthetic styles, a boolean value, or a probability distribution over special styles included in the one or more aesthetic styles.

11. The one or more non-transitory computer-readable media according to claim 9, wherein the trained machine learning model is trained based on a plurality of designs associated with a first class of objects, and the first CAD model is associated with a second class of objects.

12. The one or more non-transitory computer-readable media according to claim 9, further comprising: performing one or more data mining operations to obtain training data; and performing one or more unsupervised learning algorithms based on the training data to generate the trained machine learning model.

13. The one or more non-transitory computer-readable media according to claim 9, wherein generating the second CAD model by performing the optimization algorithm comprises: performing a multi-objective optimization algorithm based on the first style score, the first objective related to the first style score, and a second objective unrelated to the first style score.

14. One or more non-transitory computer-readable media according to claim 13, wherein the second objective is related to at least one of physical properties, mechanical properties, environmental impact, energy efficiency, ergonomics, manufacturing time, manufacturing cost, and operating cost.

15. One or more non-transitory computer-readable media according to claim 9, wherein calculating the first style score comprises: determining the first aesthetic style as a negative objective based on the specified style preference; determining a first probability included in the first characterization information based on the first aesthetic style; and reducing the first style score based on the first probability.

16. One or more non-transitory computer-readable media according to claim 9, wherein the first aesthetic style is characterized by at least one of aesthetic features or manufacturing-related attributes.

17. A system for generating a design considering style preferences, the system comprises: one or more memories that store instructions; and one or more processors coupled to the one or more memories and configured to, when executing the instructions: execute a trained machine learning model based on a first computer-aided design (CAD) model of a first physical object to generate first characterization information, wherein the trained machine learning model maps one or more designs to characterization information associated with one or more aesthetic styles; execute a CAD-based evaluation application via the one or more processors to calculate a first style score associated with the first CAD model based on the first characterization information and a specified target style included in the one or more aesthetic styles, wherein the first style score includes a first gradient associated with a first design parameter of the first CAD model; and execute a CAD-based generation application via the processor to generate a second CAD model of the first physical object by executing an optimization algorithm that modifies the first CAD model to generate the second CAD model by iteratively modifying the first design parameter of the first CAD model based on the first gradient of the first style score to optimize a first objective of the first style score, wherein the second CAD model is associated with a second style score different from the first style score.

Citation Information

Patent Citations

  • Equipment and method for supporting operation on target objects

    CN102530514A

  • Photo image fast and intelligent stylizing method

    CN106548208A

  • Techniques for predicting perceptual video quality

    CN107852496A