EP3874395A1 - Shaped-based techniques for exploring design spaces - Google Patents
Shaped-based techniques for exploring design spacesInfo
- Publication number
- EP3874395A1 EP3874395A1 EP19805823.2A EP19805823A EP3874395A1 EP 3874395 A1 EP3874395 A1 EP 3874395A1 EP 19805823 A EP19805823 A EP 19805823A EP 3874395 A1 EP3874395 A1 EP 3874395A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- designs
- shape
- design
- view
- views
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
Definitions
- Embodiments of the present invention relate generally to computer-aided design software and, more specifically, to shaped-based techniques for exploring design spaces.
- Generative design is a computer-aided design (CAD) process that
- a user specifies the high- level goals and constraints, and a generative design application then executes a variety of multi-objective optimization algorithms to optimize potential solutions based on the high-level goals and constraints.
- This generative design process is an evolutionary process that typically generates a vast number (e.g., tens of thousands) of complex geometrical designs that satisfy the high-level goals and constraints.
- the generative design application presents those designs to the user in the context of a design space.
- the user explores the“generative” design space, evaluating different designs included in the generative design space to select a single design for production.
- GUIs graphical user interfaces
- CAD tools can be used to automatically compare designs based on objective criteria. For example, to explore a generative design space for a bicycle frame, a CAD tool could be used to search, filter, and rank the designs included in the design space based on any combination of weight, volume, tensile strength, and cost criteria.
- One drawback using these types of CAD tools is that the CAD tools usually do not allow users to automatically compare designs based on shape.
- One embodiment of the present invention sets forth a computer-implemented method for generating computational representations for three-dimensional (3D) geometry shapes.
- the method includes, for each view included in multiple views associated with a first 3D geometry, generating a view activation based on a first convolutional neural network (CNN) block; aggregating the view activations to generate a first tiled activation; generating a first shape embedding having a fixed size based on the first tiled activation and a second CNN block; generating multiple re- constructed views based on the first shape embedding; performing one or more training operations on at least one of the first CNN block and the second CNN block based on the multiple views and the multiple re-constructed views to generate a trained encoder; and generating a second shape embedding having the fixed size based on the trained encoder.
- CNN convolutional neural network
- At least one technical advantage of the disclosed techniques relative to prior art solutions is that the trained encoder generates shape embeddings that robustly and efficiently represent the shapes of 3D geometries associated with various designs. Unlike prior art solutions, each shape embedding accurately represents one or more salient visual features of a potentially complex 3D design using a vector having a fixed size that is amenable to efficient comparisons across the relatively large number of designs typically associated with a generative design flow.
- a CAD tool can compare shape embeddings to allow a user to efficiently and subjectively explore a design space associated with a generative design flow based on aesthetic preferences.
- the disclosed techniques reduce the likelihood that a user unintentionally overlooks designs that better reflect the aesthetic preferences of the user when selecting a design for production.
- Figure 1 is a conceptual illustration of a system configured to implement one or more aspects of the present invention
- Figure 2 is a more detailed illustration of the autoencoder of Figure 1 , according to various embodiments of the present invention
- Figure 3 is a more detailed illustration of the shape embedding generator of Figure 1 , according to various embodiments of the present invention
- Figure 4 is a flow diagram of method steps for generating a computational representation of the shape of a 3D geometry shape, according to various
- FIG. 5 is an exemplary illustration of the design space graphical user interface (GUI) of Figure 1 , according to various embodiments of the present invention
- Figure 6 is a flow diagram of method steps for automatically exploring a design space, according to various embodiments of the present invention.
- Figure 7 is an exemplary illustration of a scatter plot generated by the exploration engine of Figure 1 , according to various embodiments of the present invention.
- Figure 8 is a flow diagram of method steps for automatically exploring a design space, according to various other embodiments of the present invention.
- Figure 1 is a conceptual illustration of a system 100 configured to implement one or more aspects of the present invention.
- the system 100 includes, without limitation, any number of compute instances 110, a design space 150, a training database 120, and a user device 190.
- the system 100 may include any number of design spaces 150, training databases 120, and user devices 190 in any combination.
- any number of the components of the system 100 may be distributed across multiple geographic locations or implemented in one or more cloud computing environments (Le., encapsulated shared resources, software, data, etc.) in any combination.
- cloud computing environments Le., encapsulated shared resources, software, data, etc.
- multiple instances of like objects are denoted with reference numbers identifying the object and parenthetical numbers identifying the instance where needed.
- the user device 190 may be any type of device that is capable of transmitting input data and/or displaying visual content.
- the user device 190 could be a game console, a smartphone, a smart television (TV), a laptop, a tablet, or a desktop computer.
- any number of user devices 190 may also be compute instances 110.
- each of the compute instances 110 includes, without limitation, a processor 112 and a memory 116.
- the processor 112 may be any instruction execution system, apparatus, or device capable of executing instructions.
- the processor 112 could comprise 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, such as software applications and data, for use by the processor 112 of the compute instance 110.
- each of the compute instances 110 may include any number of processors 112 and any number of memories 116 in any combination.
- any number of the compute instances 110 may provide any number of multiprocessing environments in any technically feasible fashion.
- the memory 116 may be one or more of a readily available memory, such as random access memory (RAM), read only memory (ROM), floppy disk, hard disk, or any other form of digital storage, local or remote.
- RAM random access memory
- ROM read only memory
- a storage may supplement or replace the memory 116.
- the storage may include any number and type of external memories that are accessible to the processor 112.
- the storage may include a Secure Digital Card, an external Flash memory, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
- the compute instance 110 is configured to implement one or more applications or subsystems of applications.
- each application is depicted as residing in the memory 116 of a single compute instance 110 and executing on a processor 112 of the single compute instance 110.
- the functionality of each application may be distributed across any number of other applications that reside in the memories 116 of any number of compute instances 110 and execute on the processors 112 of any number of compute instances 110 in any combination. Further, the functionality of any number of applications or subsystems may be consolidated into a single application or subsystem.
- the compute instances 110 are configured to facilitate exploration of the design space 150.
- the design space 150 includes, without limitation, any number of designs 160.
- Each of the designs 160 included in the design space 150 is associated with a different 3D geometry 122 representing a different outcome of a generative design flow for a 3D object.
- the design 160(1 ) could be associated with the 3D geometry 122(2) for a stool, whereas the design 160(2) could be associated with the 3D geometry 122(2) for an armchair.
- the shape of the 3D geometry 122 is also referred to herein as the“3D geometry shape.”
- the 3D geometry 122 may be specified in any technically feasible fashion.
- the 3D geometry 122 may be specified as a 3D mesh, a polygon soup, volumetric voxels, or an image.
- the design space 150 may include any number of designs 160, and each of the designs 160 may not necessarily be associated with a generative design flow. For explanatory purposes only, if a design space, including the design space 150, is associated with a
- design space is also referred to herein as a
- a user specifies the high-level goals and constraints, and a generative design application then executes a variety of multi- objective optimization algorithms to optimize potential solutions based on the high- level goals and constraints.
- This generative design process is an evolutionary process that typically generates a vast number (e.g., tens of thousands) of complex geometrical designs that satisfy the high-level goals and constraints.
- the generative design application presents those designs to the user in the context of the design space 150.
- each of the outcomes included in the design space 150 may be one of the final outcomes of the generative design flow or one of any number of intermediate outcomes that the generative design application discards as part of the generative design flow.
- each of the designs 160 may be associated with any amount and type of metadata at any level of granularity and in any technically feasible fashion.
- the metadata may include properties of any number of the designs 160, properties of the design space 150, and properties of a generative design flow used to generate the design space 160, in any combination.
- Some examples of metadata at the design level of granularity include, without limitation, a width, a height, a mass, a manufacturing cost, a manufacturing status, and a minimum factor of safety.
- An example of metadata at the final outcome level of granularity is a timeline that specifies intermediate outcomes that were discarded during the generative design flow ordered by iteration.
- Metadata at the design space level of granularity may include, without limitation, any number and combination of the high-level goals and constraints specified for an associated generative design flow.
- Any application included in the system 100 may acquire, compute, and/or store any amount and type of metadata in any technically feasible fashion.
- a timeline tool (not shown) could receive timeline metadata from a generative design application.
- GUIs graphical user interfaces
- CAD computer-aided design
- a CAD tool could be used to search, filter, and rank the designs included in a design space based on any combination of weight, volume, tensile strength, and cost criteria.
- One drawback using these types of CAD tools is that the CAD tools usually do not allow users to automatically compare designs based on shape.
- automatically comparing designs based on shape is problematic because the computational representations for shapes typically implemented by CAD tools preclude efficient and/or accurate comparisons.
- users oftentimes resort to manually comparing the designs in a generative design space based on aesthetic preferences.
- the system 100 implements machine learning
- the system 100 includes, without limitation, a training engine 130, an autoencoder 140, a shape embedding generator 170, and an exploration engine 180.
- the training engine 120 and the autoencoder 140 execute on the processor 112(1 ) of the compute instance 110(1 ) and are stored in the memory 116(1 ) of the computer instance 110(1 ).
- the shape embedding generator 170 and the exploration engine 180 execute on the processor 112(2) of the compute instance 110(2) and are stored in the memory 116(2) of the computer instance 110(2).
- the system 100 may include any number of training engines 130, autoencoders 150, shape embedding generators 170, and exploration engines 180, in any combination.
- the training engine 130 implements any number and type of machine learning techniques to train the autoencoder 140 in an unsupervised fashion based on the training database 120.
- the training database 120 includes, without limitation, any number and type of 3D geometries 122 in any number of formats.
- the 3D geometries 122 included in the training database 120 may be generated in any technically feasible fashion, and the generation technique may vary between the 3D geometries 122.
- the 3D geometries 122 included in the training database 120 may be associated with any number and type of design spaces and 3D objects.
- the 3D geometry 122(1 ) could be a manually
- the training database 120 includes a wide variety of diverse 3D geometries 122.
- the training engine 130 includes, without limitation, an instance of a multi-view engine 132(1 ).
- the multi-view engine 132 generates a view set 134 that describes the visual appearance of the 3D geometry 122 in a relatively simple format irrespective of the complexity of the 3D geometry 122.
- Each view set 134 may include any number of views (not shown in Figure 1 ) associated with any number of view types. Examples of view types include, without limitation, depth renderings, phong (RGB) renderings, and phong renderings with depth added. Depth renderings are also referred to herein as“depth views.”
- the multi-view engine 132 may generate the view sets 134 in any technically feasible fashion.
- the multi-view engine 132 uniformly scales the 3D geometry 122 to fit in a fixed volume.
- the multi-view engine 132 places twenty virtual cameras at the vertices of an icosahedron enclosing the scaled 3D geometry 122, where each virtual camera points towards the centroid of the scaled 3D geometry 122.
- the multi-view engine 132 performs rendering operations using a perspective projection to generate a 16-bit grayscale depth rendering.
- Each of the 16-bit grayscale depth renderings is a different depth view included in a set of twenty depth views associated with the 3D geometry 122.
- the training engine 130 configures the multi-view engine 132(1 ) to generate a different view set 134 for each of the 3D geometries 122 included in the training database 120. Subsequently, the training engine 130 iteratively performs machine learning operations on the autoencoder 140 based on the different sets of views.
- performing machine learning operations based on the view set 134 associated with a given 3D geometry 122 instead of directly on the 3D geometry 122 itself decouples the machine learning operations from the internal representation of the 3D geometry 122, such as internal mesh segments.
- the autoencoder 140 is a multi-view variational autoencoder that includes, without limitation, an encoder 142 and a decoder 146.
- the encoder 142 learns the latent distribution of shapes for the 3D geometries 122 included in the training database 120.
- the encoder 140 generates a shape embedding 144.
- the goal of the training process is to train the encoder 140 to map a view set 134 associated with a 3D geometry 122 to a shape embedding 144 that accurately and efficiently represents the visual style and structure of the 3D geometry 122.
- each of the shape embeddings 144 is a vector that has a fixed size irrespective of the complexity and format of the associated 3D geometry 122.
- the fixed size may be determined in any technically feasible fashion. For instance, in some embodiments, the fixed size may be determined empirically based on a combination of accuracy and performance criteria.
- An example of performance criterion is a maximum amount of compute resources required to perform
- the fixed size may be acquired via a graphical user interface (GUI) associated with the training engine 130.
- GUI graphical user interface
- the decoder 146 receives the shape embeddings 144 generated by the encoder 142 and learns to re- construct the associated view sets 134 based on the shape embeddings 144. More precisely, for a given shape embedding 144(x), the decoder 146 generates a re- constructed view set (not shown in Figure 1 ). For each“original” view included in the view set 134(x), the re-constructed view set includes, without limitation, a
- the training engine 130 implements a loss function that penalizes deviations between a re-constructed view and the original view.
- the training engine 130 computes a loss based on the loss function, the view sets 134, and the re-construction view sets. Subsequently, the training engine 130 determines whether the encoder 142 and the decoder 146 are trained based on the loss and a completion criteria.
- the training engine 130 determines that the loss does not satisfy the completion criteria, then the training engine 130 modifies machine learning
- the training engine 130 then performs additional iterations of training operations on the autoencoder 140. If, however, the training engine 130 determines that the loss satisfies the completion criteria, then the training engine 130 saves the encoder 142, including the current machine learning parameters, as the trained encoder 172.
- the decoder 146 is associated only with the training phase and, consequently, the training engine 130 does not save the decoder 146.
- the training engine 130 may implement any number and type of loss functions and completion criteria in any technically feasible fashion.
- the training engine 130 may implement a spatial softmax loss function that penalizes deviations between a re-constructed view and the original view at a pixel level of granularity.
- the completion criteria may be an acceptable loss threshold that the training engine 130 acquires via a GUI associated with the training engine 130.
- the autoencoder 140 and/or the training engine 130 may perform any number and type of machine learning training operations in any technically feasible fashion to train the encoder 142 and/or the decoder 146 based on differences between the re-constructed views and the original views.
- the autoencoder 140 includes, without limitation, a loss layer.
- the shape embedding generator 170 includes, without limitation, an instance of the multi-view engine 132(2). For each design 160 included in the design space 150, the multi-view engine 132(2) generates a different view set 134.
- the shape embedding generator 170 For each design 160(x) included in the design space 150, the shape embedding generator 170 generates the shape embedding 144(x) based on the associated view set 134 and the trained encoder 172. The shape embedding generator 170 then stores the shape embedding 144(x) as part of the metadata associated with the design 160(x). Accordingly, the shape embedding 144(x) is “aesthetic metadata” associated with the design 160(x).
- any application may generate the shape embedding 144(x) in an as-needed fashion instead of pre-generating and storing the shape embeddings144(x).
- the shape may be generated in an as-needed fashion instead of pre-generating and storing the shape embeddings144(x).
- the shape may be generated in an as-needed fashion instead of pre-generating and storing the shape embeddings144(x).
- the embedding generator 170 computes the shape embeddings 144 for the final outcomes, but not the intermediate outcomes of a generative design flow. In such embodiments, the exploration engine 180 may subsequently compute the shape embeddings 144 for any number of the intermediate outcomes.
- the fixed size of the shape embeddings 144 enables efficient comparisons between the shapes of the designs 160 included in the design space 150.
- a distance between each shape embedding 144 on the shape embedding manifold indicates a degree of similarity between the designs 160 in an aesthetic space. More precisely, if a distance between the shape embedding 144(x) and the shape embedding 144(y) is relatively small, then the shape of the design 160(x) is relatively similar to the shape of the design 160(y). By contrast, if a distance between the shape embedding 144(x) and the shape embedding 144(y) is relatively large, then the shape of the design 160(x) is relatively dissimilar to the shape of the design 160(y).
- the exploration engine 180 enables exploration of the design space 150 via a design space graphical user interface (GUI) 182.
- GUI design space graphical user interface
- the exploration engine 180 receives commands from users via the design space GUI 182, performs any number and type of operations to execute the commands, and visually displays the results of the commands via the design space GUI 182.
- the exploration engine 180 automatically performs any number and type of data analysis operations on the shape embeddings 144 to facilitate aesthetic-based exploration of the design space 150.
- Some examples of data analysis operations include, without limitation, comparison operations, ranking operations, clustering operations, filtering operations, and searching operations.
- the exploration engine 180 compares the shapes of two different designs 160(x) and 160(y) based on a distance between the embeddings 144(x) and 144(y).
- the exploration engine 180 may compute the distance in any technically feasible fashion. For instance, in some embodiments, the exploration engine 180 computes the cosine distance between the embeddings 144(x) and 144(y). In general, the exploration engine 180 may
- the exploration engine 180 computes the pairwise distance between the shape embedding 144(x) and each of the other shape embeddings 144 included in the design space 150. The exploration engine 180 then determines a“similar list” of the“similar” design(s) 160 that are associated with the smallest distances. The exploration engine 180 also determines a“dissimilar list” of the“dissimilar” design(s) 160 that are associated with the largest distances.
- the exploration engine 180 configures the design space GUI 182 to display and annotate thumbnails of the similar design(s) 160 included in the similar list as“related design(s)” and thumbnails of the dissimilar design(s) 160 included in the dissimilar list as“alternate design(s).”
- the exploration engine 180 computes the pairwise distance between the shape embedding 144(x) and each of the other shape embeddings 144 included in the design space 150. The exploration engine 180 then generates a ranked list of the designs 160 based on the distances and an ordering criteria of increasing distance. Accordingly, the ranked list specifies the designs 160 in an order of decreasing visual similarity to the selected design 160(x). Subsequently, the exploration engine 180 configures the design space GUI 182 to display an ordered sequence of thumbnails that represents the ranked list of the designs 160. An example of the design space GUI 182 during a shape rank command is described in conjunction with Figure 5.
- A“smart collapse” command causes the exploration engine 180 to implement a smart collapse mode.
- the exploration engine 180 hides repetitive information from the user by combining designs 160 having relatively similar shapes into a single collapsed group. More precisely, the exploration engine 180 computes the pairwise distances between the shape embeddings 144 included in the design space 150. If a distance between any two embeddings 144(x) and 144(y) is smaller than a similarity threshold, then the exploration engine 144 assigns the associated designs 160(x) and 160(y) to a single collapsed group.
- the exploration engine 180 may determine the similarity threshold in any technically feasible fashion. For instance, in some embodiments, the exploration engine 180 computes a histogram based on the pairwise distances and then determines the similarity threshold based on the histogram. In the same or other embodiments, the exploration engine 180 determines the similarity threshold, at least in part, based on user input received via the design space GUI 182.
- the exploration engine 180 configures the design space GUI 182 to display thumbnails representing the collapsed groups instead of thumbnails representing the designs 160.
- the exploration engine 180 also implements a“smart expand” command that expands the thumbnail representing a selected collapsed group into design-specific thumbnails, where each design-specific thumbnail represents a different design 160 included in the collapsed group.
- the collapsed groups reduce visual information overwhelm, thereby allowing the user to more effective compare shapes across the design space 150.
- the exploration engine 180 may save the collapsed groups via metadata associated with the design space 150.
- a“shape cluster” command causes the exploration engine 180 to perform clustering operations based on the shape embeddings 144.
- the exploration engine 180 may perform clustering operations across the entire design space 150 or across selected designs 160 within the design space 150. More precisely, the exploration engine 180 performs unsupervised cluster analysis to partition any number of the designs 160 into different shape clusters (not shown). Notably, the exploration engine 180 ensures that the designs 160 included in any given shape cluster are more visual similar to each other than to the designs 160 included in any other shape cluster.
- the exploration engine 180 may implement any number and type of clustering techniques to generate shape clusters of visually similar designs 160. For instance, the exploration engine 180 may implement any number and type of centroid-based clustering technique, distribution-based clustering technique, and density-based clustering techniques, to name a few. In some embodiments, to facilitate subsequent operations involving the shape clusters, the exploration engine 180 may save the shape clusters via metadata associated with the design space 150.
- the exploration engine 180 configures the design space GUI 182 to display thumbnails representing the new shape clusters instead of thumbnails representing the designs 160 within the new shape clusters.
- the exploration engine 180 also implements a“cluster expand” command that expands the thumbnail representing a selected shape cluster into design-specific thumbnails, where each design-specific thumbnail represents a different design 160 included in the shape cluster.
- the exploration engine 180 expands the scope of any number of commands to include collapsed groups and/or shape clusters. For instance, in some embodiments the exploration engine 180 evaluates collapsed groups, shape clusters, and designs 160 when executing a shape proximity summary command or a shape rank command. Consequently, the results of the command may include any number and combination of collapsed groups, shape clusters, and designs 160. And, in a complementary fashion, the exploration engine180 may display the results of the command as thumbnails representing any number and combination of collapsed groups, clusters, and designs 160.
- the exploration engine 180 expands the scope of the shape cluster command to enable re-clustering of multiple selected shape clusters.
- the exploration engine 180 selects the designs 160 included in the selected shape clusters.
- the exploration engine 180 then performs re- clustering operations on the selected designs 160 to generated new shape clusters.
- the exploration engine 180 replaces the selected shape clusters with the new shape clusters and updates the design space GUI 182 accordingly.
- the exploration engine 180 enables the user to limit the number of shape clusters generated during clustering to facilitate a hierarchical and aesthetic exploration of the design space 150 via repeated shape cluster commands.
- the shape embeddings 144 enable the exploration engine 180 to provide any number and type of mechanisms that filter and/or search the designs 160 included in design space 150 based on aesthetic criteria at any level of granularity.
- the exploration engine 180 enables users to filter and/or search selected designs 160, selected collapsed groups, and/or selected shape clusters based on shape to generate a results list.
- the exploration engine 180 automatically analyzes the design space 160 based on the shape embeddings 144 in conjunction with other aspects (e.q.. properties) of the designs 150, the design space 150, and/or the design flow associated with the design space 150.
- the exploration engine 180 may perform any number and type of data analysis operations based on the shape embeddings 144 and any amount and type of non-anesthetic metadata.
- the exploration engine 160 could generate a scatter plot in which each point“x” had a vertical position that reflected the associated manufacturing cost of the design 160(x) and a horizontal position that reflected the shape embedding 144(x).
- the exploration engine 180 enables users to perform any number of data analysis operations on shape clusters or collapsed groups based on non-aesthetic metadata.
- the exploration engine 160 automatically generates plots based on the shape embeddings 144 in addition to non-aesthetic metadata. For example, the exploration engine 160 could generate a scatter plot in which each point“x” had a vertical position that reflected the associated manufacturing cost of the design 160(x) and a horizontal position that reflected the shape embedding 144(x). In the same or other embodiments, the exploration engine 160 automatically generates plots based on shape clusters or collapsed groups in addition to non-aesthetic metadata.
- the exploration engine 160 could generate a scatter plot in which each point“x” had a position that reflected non-aesthetic metadata associated with the design 160(x) and a color that reflected the shape cluster to which the design 160(x) was assigned.
- An exemplary illustration of a scatter plot generated by the exploration engine 180 is described in conjunction with Figure 6.
- the exploration engine 180 automatically analyzes the design space 150 based on metadata that is specific to a generative design flow.
- the exploration engine 180 automatically analyzes the design space 150 based on timelines (not shown). Each timeline is associated with a different final outcome of the generative design flow used to generate the design space 150 and specifies any number of intermediate outcomes that were discarded during the generative design flow. Within a timeline, the intermediate outcomes are ordered by iteration.
- both intermediate outcomes and final outcomes are designs 160 included in the design space 150.
- the exploration engine 180 does not typically expose the intermediate outcomes to the user.
- the exploration engine 180 provides a timeline tool (not shown) via the design space GUI 182.
- the timeline tool analyzes the intermediate outcomes along the timeline via proximity and clustering techniques and then visually
- the timeline tool performs clustering operations on the intermediate outcomes along the timeline based on the shape embeddings 144 to generate shape clusters. Further, for each pair of consecutive (with respect to the timeline) intermediate outcomes, the timeline tool computes the associated distance based on the embeddings 144. If any of the distances exceed a dissimilarity threshold, then the timeline tool determines that at least one of the pair of intermediate outcomes are“interesting.” Finally, the timeline tool colors the timeline based on the clusters, generates markers along the timeline that indicate the location of intermediate outcomes, and displays the colored and annotated timeline via the design space GUI 182.
- automatically analyzing and annotating a timeline in this fashion enables users to evaluate the associated intermediate outcomes in a targeted and efficient fashion.
- the exploration engine 180 may identify interesting intermediate outcomes in any technically feasible fashion, promote any number of the interesting intermediate outcomes to independent designs 160 (i.e., final outcomes), and modify the design space GUI 182 accordingly.
- promoting an intermediate output to a design 160 comprises saving the intermediate output as an independent design 160 included in the design space 150.
- the generative design flow may not necessarily “hide” intermediate iterations within an expandable timeline.
- a generative design flow may not involve iterations that“converge” and instead involve exploring the design space 150 in a relatively random (genetic) fashion. Consequently, the generative design flow may be ordered by a performance measure other than iteration and are not necessarily associated with a timeline. For instances, in some alternative embodiments, the generative design flow may generate one or more sets of intermediate outcomes.
- the training engine 130 may save the decoder 146, including the current machine learning parameters, as a trained decoder. Subsequently, for each design 160(x) included in the design space 150, the shape embedding generator 170 generates the shape embedding 144(x) based on the trained encoder 172 and the re-construction error (e.q.. loss) based on the trained decoder. If the re-construction error for a given design 160(x) is higher than a threshold, then the exploration engine 180 may disable any amount of shape-based functionality, such as shape clustering. Further, the exploration engine 180 may add the 3D geometry 122(x) associated with the design 160(x) to a re-training set used to re-train the autoencoder 140.
- the re-construction error e.q.. loss
- the functionality of the training engine 130, the multi-view engine 132, the autoencoder 140, the shape embedding generator 170, and the exploration engine 180 may be distributed across any number of other applications and components that may or may not be included in the system 100.
- FIG. 2 is a more detailed illustration of the autoencoder 140 of Figure 1 , according to various embodiments of the present invention. As shown, the
- autoencoder 140 includes, without limitation, the encoder 142 and the decoder 146.
- the autoencoder 140 receives the view set 134 and generates a re- constructed view set 290.
- Figure 2 depicts a single view set 134 that is derived from one of the 3D geometries 122 included in the training database 120.
- the view set 132 includes, without limitation, views 220(1 )-220(M).
- the re-constructed view set 290 includes, without limitation, re-constructed views 292(1 )-292(M).
- the re-constructed view 292(x) is associated with the“original” view 220(x).
- the encoder 142 receives the view set 132 and generates the shape
- the encoder 142 includes, without limitation, a view encoder convolutional neural network (CNN) block 230, a tiling engine 240, and an encoder CNN block 250.
- a“CNN block” includes, without limitation, any number (including one) of CNNs in any number of configurations.
- the view encoder CNN block 230 includes, without limitation, a series of any number and type of CNNs. For each view 220 included in the view set 134, the CNNs included in the view encoder CNN block 230 may implement any number and type machine learning techniques (e.g., convolutions) in any technically feasible fashion to generate an associated view activation (not shown in Figure 2). Accordingly, the view encoder CNN block 230 generates M different view activations.
- each execution of the view encoder CNN block 230 based on a different view 220 is represented as a separate instance of the view encoder CNN block 230.
- the view encoder CNN block 230(x) executes based on the view 220(x) to generate a single view activation.
- the instances of the view encoder CNN block 230 share the same values for the machine learning parameters, such as weights and biases.
- any number of the machine learning parameters for any number of the view encoder CNN blocks 230 may differ from any number of the machine learning parameters for any other of the view encoder CNN blocks 230.
- the view encoder CNN blocks 230(1-5) share one set of weights
- the view encoder CNN blocks 230(6-9) share a different set of weights.
- instances of the view encoder CNN block 230 may execute substantially in parallel with one another, sequentially to each other, or any combination thereof
- FIG. 230 For example, at any given time four different instances of the view encoder CNN block 230 could be executing. First, four instances of the view encoder CNN block 230(1 )-230(4) could process the views 220(1 )-220(4)
- a single instance of the view encoder CNN block 230 processes the views 220 substantially in parallel as a single stack of views 220.
- the tiling engine 240 receives the M different view activations and generates a single tiled activation (not shown in Figure 2). More specifically, the tiling engine 240 aggregates the view activations to generate the tiled activation. The tiling engine 240 may aggregate the view activations in any technically feasible fashion. For instance, in some embodiments, the tiling engine 240 concatenates the view activations along a single dimension. Advantageously, by tiling the different view activations, the tiling engine 240 retains the information included in the different view activations. By contrast, as persons skilled in the art will recognize, conventional multi-view encoders typically implement pooling operations that can discard information useful for detecting precise relationships between features. Consequently, the tiling engine 240 increases the accuracy with which the shape embeddings 144 generated by the trained encoder 172 represent the salient visual features of the 3D geometries 122.
- the encoder CNN block 250 receives the tiled activation and generates the shape embedding 144.
- the encoder CNN block 250 includes, without limitation, any number of connected 2D CNNs, followed by any number of fully connected layers.
- the encoder CNN block 250 may implement any number and type of machine learning techniques in any technically feasible fashion to generate the shape embedding 144 based on the tiled activation.
- the CNN block 250 may include CNNs with 3x3 convolutions to a depth of N weight layers followed by any number of fully connected layers with dropout.
- the CNN block 250 may include any number of connected CNNs followed by a 1x1 convolution layer.
- the decoder 146 receives the shape embedding 144 and generates the reconstructed view set 290.
- the decoder 146 is symmetric with respect to the encoder 142. More precisely, each convolution implemented in the encoder 142 is mirrored with a transposed convolution in the decoder 146. Further the tiling process performed by the encoder 142 is mirrored with a partitioning process performed in the decoder 146.
- the decoder 146 is not necessarily symmetric with respect to the encoder 142. For instance, in some embodiments, the decoder 146 is less complex than the encoder 142.
- the decoder 146 includes, without limitation, a decoder CNN block 260, a splitting engine 270, and a view decoder CNN block 280.
- the decoder CNN block 260 includes, without limitation, any number and type of CNNs that implement transposed convolutions relative to the encoder CNN block 240 to generate a decoded tiled activation (not shown) based on the shape embedding 144.
- the decoder CNN block 260 may implement any number and type of machine learning techniques in any technically feasible fashion to mirror the encoder CNN block 250. For instance, in some embodiments, the decoder CNN block 260 may implement up- sampling convolutions instead of transposed convolutions. In alternative
- the decoder CNN block 260 may implement any number and type of convolutions in any technically feasible fashion and is not necessarily symmetrical with respect to the encoder CNN block 250.
- the splitting engine 270 performs any number and type of partitioning operations to generate M different decoded view activations (not shown) based on the decoded tiled activation.
- Each of the decoded view activations corresponds to a different view 220 included in the view set 134.
- the view decoder CNN block 280 implements transposed convolutions relative to the view encoder CNN block 230 to generate a different re-constructed view 292 included in the re-constructed view set 290.
- the view decoder CNN block 280 may implement any number and type of machine learning techniques in any technically feasible fashion to mirror the view encoder CNN block 230.
- the view decoder CNN block 280 may implement up-sampling convolutions instead of transposed convolutions.
- the view decoder CNN block 280 may implement any number and type of convolutions in any technically feasible fashion and is not necessarily symmetrical with respect to the view encoder CNN block 230.
- each execution of the view decoder CNN block 280 on a different decoded view activation is represented as a separate instance of the view decoder CNN block 280.
- the instances of the view decoder CNN block 280 may execute substantially in parallel with one another, sequentially to each other, or any combination thereof.
- the instances of the view decoder CNN block 280 share the same values for the machine learning parameters, such as weights and biases.
- a single instance of the view decoder CNN block 280 processes the decoded view activations substantially in parallel as a single stack of decoded view activations.
- any number of the machine learning parameters for any number of the view decoder CNN blocks 280 may differ from any number of the machine learning parameters for any other of the view decoder CNN block 280.
- the view decoder CNN block 280(1 -5) share one set of weights
- the view decoder CNN blocks 280(6-9) share a different set of weights.
- FIG 3 is a more detailed illustration of the shape embedding generator 170 of Figure 1 , according to various embodiments of the present invention.
- the shape embedding generator 170 maps the 3D geometry 122 to the shape embedding 144 that represents the shape of the 3D geometry 122 as a fixed-size vector.
- the shape embedding generator 170 includes, without limitation, the multi-view engine 132 and the trained encoder 172. As described in conjunction with Figure 1 , the multi-view engine 132 generates the view set 134 based on the 3D geometry 122.
- the view set 134 includes, without limitation, M different views 220(1 )-220(M).
- Each of the views 220 has a dimension of FlxWxC, where FI is the height, W is the width, and C is the number of channels associated with the view 220.
- the trained encoder 172 is the trained version of the encoder 142 of Figure 2. As shown, the trained encoder 172 includes, without limitation, M instances of the view encoder CNN block 230, the tiling engine 240, and the encoder CNN block 250. In operation, the view encoder CNN block 230(x) generates a view activation 330(x) based on the view 220(x).
- the view encoder CNN block 230 includes, without limitation,“k” strided convolutions 332 and“F” final filters 335. More precisely,“k” specifies the number of strided convolutions 332 included in the view encoder CNN block 230 and F specifies the number of filters included in the final convolution layer included in the view encoder CNN block 230. Accordingly, the view encoder CNN block 230(x) generates the view activation 330(x) having a dimension of (W/2k) x (H/2k) x F.
- the tiling engine 240 concatenates the view activations 330(1 )-330(M) width-wise to generate a tiled activation 340.
- the tiled activation 340 is a tensor having a dimension of (M * W/2k) x (H/2k) x F.
- the encoder CNN block 250 generates the embedding 144.
- the embedding 144 has a dimension of 1 x E, where E is a fixed-size (e.q.. 512).
- the fixed-size E may be predetermined in any technically feasible fashion. For instance, the size of E may be determined
- Figure 3 depicts exemplary relationships between dimensions, parameters, parameter values, etc., within the shape
- the dimensions, parameters, values, etc., themselves as well as the relationships between the dimensions, parameters, values, etc. may vary.
- the dimension of the view activation 330(x) generated by view encoder CNN block 230(x) is not dependent on a number of strided convolutions.
- Figure 4 is a flow diagram of method steps for generating a computational representation of 3D geometry shape. Although the method steps are described with reference to the systems of Figures 1 -3, persons 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.
- a method 400 begins at step 402, where the multi-view engine 132 generates a different view set 134(x) for each 3D geometry 122(x) included in the training database 120.
- the training engine 130 selects the first view set 134.
- the first view set 134 includes the views 220(1 )-220(M).
- the view encoder CNN block 230 performs convolutions to generate a view activation 330(y).
- the tiling engine 240 concatenates the view activations 330 associated with the selected view set 134 to generate the tiled activation 340(x).
- the encoder CNN block 250 performs convolutions to generate the shape embedding 144(x) based on the tiled activation 340(x).
- the decoder CNN block 260 performs transposed convolutions to generate a decoded tiled activation based on the shape embedding 144(x).
- the splitting engine 270 partitions the decoded tiled activation into M decoded view activations.
- the view decoder CNN block 280 performs transposed convolutions to generate a different re- constructed view 292 included in the re-constructed view set 290 associated with the selected view set 134.
- the training engine 130 computes the loss based on the view sets 230 and the re-constructed view sets 290.
- the training engine 130 modifies the encoder 142 and/or the decoder 146 based on the loss.
- the training engine 130 determines whether the training of the autoencoder 140 is complete. The training engine 130 may determine whether the training of the autoencoder 140 is complete in any technically feasible fashion. For instance, in some embodiments, the training engine 130 may compare the loss to a maximum acceptable loss.
- step 420 the training engine 130 determines that the training of the autoencoder 140 is not complete, then the method proceeds to step 422.
- step 422 the training engine 130 determines whether the selected view set 290 is the last view set 290 associated with the training database 120. If, at step 422, the training engine 130 determines that the selected view set 290 is not the last view set 290 associated with the training database 120, then the method 400 proceeds to step 424. At step 424, the training engine 130 selects the next view set 290 associated with the training database 120. The method 400 then returns to step 404, where the
- autoencoder 140 generates the re-constructed view set 290 associated with the selected view set 134.
- step 422 the training engine 130 determines that the selected view set 290 is the last view set 290 associated with the training database 120, then the method 400 proceeds directly to step 426.
- step 426 the training engine 130 selects the first view set 290 associated with the training database 120.
- the method 400 then returns to step 404, where the autoencoder 140 generates the re- constructed view set 290 associated with the first view set 134.
- step 420 if the training engine 130 determines that the training of the autoencoder 140 is complete, then the method proceeds directly to step 428.
- the training engine 130 saves the encoder 142 as the trained encoder 172.
- the shape embedding generator 170 generates shape embeddings 144 for each of the designs 160 in the design space 150 based on the trained encoder 172.
- the exploration engine 180 facilitates aesthetics-based visual exploration of the design space based on the shape embeddings 144.
- the method 400 then terminates.
- Figure 5 is an exemplary illustration of the design space graphical user interface (GUI) 182 of Figure 1 , according to various embodiments of the present invention.
- GUI design space graphical user interface
- Figure 5 depicts the design space GUI 182 at two different points in time while executing a shape rank command 520.
- the design space 150 includes, without limitation, 61 different designs 160(1 )-160(61 ).
- the design space GUI 182 visually represents the 61 different designs as 61 different thumbnails.
- the design space GUI 182(1 ) is a snapshot of the design space GUI 182 at a point in time before the exploration engine 180 executes the shape rank command 520. As a design selection 510 depicts, a single design 160(30) is selected.
- the exploration engine 180 executes the shape rank command 520 based on the selected design 160 and the 61 different shape embeddings 144(1 )- 144(61 ) associated with, respectively, the 61 different designs 160(1 )-160(61 ).
- the design space GUI 182(2) is a snapshot of the design space GUI 182 at a point in time after the exploration engine 180 has finished executing the shape rank command 520 and has re-generated the design space GUI 182.
- the first row includes the 12 highest ranked designs, ordered from left to right.
- the next row includes the 12 next highest ranked designs, and so forth.
- the top left design is the design 160(30), indicating that the shape of the design 160(30) best matches itself.
- the shape of the bottom right design 160 is significantly dissimilar to the shape of the design 160(30).
- Figure 6 is a flow diagram of method steps for automatically exploring a design space, according to various embodiments of the present invention. More specifically, Figure 6 is a flow diagram of method steps for automatically exploring a design space based on the shapes of 3D designs. Although the method steps are described with reference to the systems of Figures 1 -3 and Figure 5, persons 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.
- a method 600 begins at step 602, where the shape embedding generator 170 acquires the trained encoder 172 and the design space 150.
- the shape embedding generator 170 For each design 160(x) included in the design space 150, the shape embedding generator 170 generates the shape embedding 144(x) based on the associated 3D geometry 122(x) and the trained encoder 172.
- the exploration engine 180 generates and displays the design space GUI 182.
- the exploration engine 180 receives a command via the design space GUI 182.
- the exploration engine 180 determines whether the command involves (re)ranking based on shape. If, at step 610, the exploration engine 160 determines that the command involves (re)ranking based on shape, then the method 600 proceeds to step 612. At step 612, the exploration engine 160 (re)ranks the designs 160, the shape clusters, and/or the collapsed groups based on the shape embeddings 144. The method 600 then proceeds directly to step 618.
- step 610 the exploration engine 160 determines that the command does not involve (re)ranking based on shape
- the method 600 proceeds directly to step 614.
- step 614 the exploration engine 160 determines whether the command involves shape (re-)clustering. If, at step 614, the exploration engine 160 determines that the command involves shape (re-)clustering, then the method 600 proceeds to step 616.
- step 612 the exploration engine 160 generates shape clusters based on the shape embeddings 144. The method 600 then proceeds directly to step 618. If, however, at step 614, the exploration engine 160 determines that the command does not involve shape (re)clustering, then the method 600 proceeds directly to step 618.
- the exploration engine 160 executes the command based on the shape embeddings 144, rankings, and/or shape clusters.
- the exploration engine 160 updates the design space GUI 182 based on the results of the command.
- the exploration engine 160 determines whether the user has finished exploring the design space 150. The exploration engine 160 may determine whether the user has finished exploring the design space 150 in any technically feasible fashion.
- the exploration engine 160 determines that the user has attempted to exit the design space GUI 182, then the exploration engine determines that the user has finished exploring the design space 150. If, at step 622, the exploration 160 determines that user has not finished exploring the design space 150, then the method 600 returns to step 608, where the exploration engine 160 receives and processes the next command. If, however, at step 622, the exploration engine determines that the user has finished exploring the design space 150, then the method 600 terminates.
- Figure 7 is an exemplary illustration of a scatter plot 710 generated by the exploration engine 180 of Figure 1 , according to various embodiments of the present invention. As shown, the scatter plot 710 is displayed via the design space GUI 182.
- the scatter plot 710 includes, without limitation, an x axis 720, a y axis 730, and a glossary 780.
- the x axis 720 and the y axis 730 are
- the glossary 780 includes, without limitation, a symbol generation selection 750 and any number of symbols 740.
- the symbol generation selection 750 is set to“shape clusters” to indicate that each different shape cluster is to be represented by a different symbol in the scatter plot 710.
- the glossary 780 visually defines each of the symbols 740(x) via a thumbnail of a representative design 160 included in the associated shape cluster.
- the symbol 740(1 ) of a filled square is associated with a shape cluster that includes basic chairs having neither wheels nor arms.
- the symbol 740(2) of a filled circle is associated with a shape cluster that includes office chairs having both wheels and arms.
- the symbol 740(3) of a cross is associated with a shape cluster that includes stools.
- the exploration engine 180 determines an associated plot position based on non-aesthetic metadata associated with the design 160.
- the exploration engine 180 also determines an associated plot symbol for the design 160 based on the shape cluster to which the design 160 is assigned.
- the exploration engine 180 generates the scatter plot 710, representing each design 160 within the scatter plot based on the associated plot position and the associated plot symbol.
- the exploration engine 180 may assign any type of distinguishing information to different shape clusters in any technically feasible fashion. For instance, in some embodiments, the exploration engine 180 names and colors each of the shape clusters arbitrarily. In the same or other embodiments, the exploration engine 180 does not generate the glossary 780 and, consequently, the scatter plot 710 does not include the glossary 780.
- the scatter plot 710 enables the user to efficiently trade-off various functional and non-functional criteria and identify designs 160 that might best represent the preferences of the user. For example, after viewing the scatter plot 710, a user that was previously considering only stools could observe that the lightest basic chair and the lightest stool have similar masses. Further, the user could observe that the minimum factor of safety for the lightest basic chair is higher than the minimum factor of safety for the lightest stool. Accordingly, the user could select the lightest basic chair for production instead of the lightest stool.
- Figure 8 is a flow diagram of method steps for automatically exploring a design space, according to various other embodiments of the present invention.
- Figure 8 is a flow diagram of method steps for automatically exploring a design space based on a combination of shape embeddings and non-aesthetic metadata.
- a method 800 begins at step 802, where the shape embedding generator 170 acquires the trained encoder 172 and the design space 150.
- the shape embedding generator 170 acquires the shape embedding 144(x) based on the associated 3D geometry 122(x) and the trained encoder 172.
- the exploration engine 180 acquires any amount and type of additional non-aesthetic metadata associated with the designs 160, the design space 150, and/or a design flow associated with the design space 150.
- the exploration engine 180 generates and displays the design space GUI 182.
- the exploration engine 180 receives a command via the design space GUI 182.
- the exploration engine 180 determines whether the command involves a timeline associated with a generative design flow. If, at step 812, the exploration engine 180 determines that the command does not involve a timeline associated with a generative design flow, then the method 800 proceeds to step 814. At step 814, the exploration engine 160 executes the command based on a
- step 820 the method 800 then proceeds directly to step 820.
- step 816 the exploration engine 160 determines shape clusters and/or interesting intermediate outcomes based on intermediate outcomes along the time line. More precisely, the exploration engine 160 determines the shape clusters based on the shape embeddings 144 associated with the intermediate outcomes along the timeline. In general, the exploration engine 160 may determine interesting intermediate outcomes in any technically feasible fashion based on any amount and type of information. For instance, the exploration engine 160 may determine the interesting intermediate outcomes based on metatdata and/or the shape embeddings 144.
- step 818 the exploration engine 160
- the exploration engine 160 updates the design space GUI 182 based on the results of the command.
- the exploration engine 160 determines whether the user has finished exploring the design space 150.
- the exploration engine 160 may determine whether the user has finished exploring the design space 150 in any technically feasible fashion.
- the exploration engine 160 determines that the user has attempted to exit the design space GUI 182, then the exploration engine determines that the user has finished exploring the design space 150. If, at step 822, the exploration 160 determines that user has not finished exploring the design space 150, then the method 800 returns to step 810, where the exploration engine 160 receives and processes the next command. If, however, at step 822, the exploration engine determines that the user has finished exploring the design space 150, then the method 800 terminates.
- the disclosed techniques may be used to generate shape embeddings that efficiently and accurately represent the shapes of 3D designs.
- a training engine For each 3D geometry included in a training database, a training engine renders the 3D geometry based on multiple virtual cameras to generate different depth views included in a view set associated with the 3D geometry.
- the training engine trains a multi-view variational autoencoder to losslessly compress each view set into a shape embedding and subsequently expand the shape embedding to generate a re-constructed view set.
- an encoder included in the autoencoder generates a shape embedding based on a view set and a decoder included in the autoencoder generates a re-constructed view set based on the shape embedding.
- the encoder includes, without limitation, multiple instances of a view encoder convolutional neural network (CNN) block, a tiling engine, and an encoder CNN block. For each view included in a given set of views, a different instance of the view encoder CNN block generates a view activation.
- the tiling engine concatenates the different view activations width-wise to generate a tiled activation. Subsequently, the encoder CNN block generates a shape embedding based on the tiled activation.
- the shape embedding is a fixed size vector that robustly represents the visual structure of the 3D geometry associated with the set of views, irrespective of the format, the complexity, and any tessellation associated with the 3D geometry.
- the decoder is symmetric with respect to the encoder. More precisely, each convolution in the encoder is mirrored with a transposed convolution in the decoder. Further the tiling process performed by the encoder is mirrored with a partitioning process performed by the decoder. Within the autoencoder, the decoder operates sequentially to the encoder and generates a re-constructed view set based on the shape embedding.
- the training engine implements a loss function that penalizes deviations of the re-constructed views from the associated“original” views. After determining that the re-constructed views are sufficiently similar to the original views across the training database, the training engine discards the decoder and saves the encoder as a trained encoder.
- the trained encoder maps a set of views associated with a 3D geometry to a fixed-length shape embedding that accurately and efficiently represents the visual shape of the 3D geometry.
- the shape embeddings enable efficient aesthetic comparisons between the 3D geometries.
- a distance between each shape embedding on the shape embedding manifold indicates a degree of visual similarity.
- a shape embedding engine and an exploration engine facilitate the aesthetic exploration of a design space based on the shape embeddings.
- the shape embedding engine computes and stores an associated shape embedding based on the trained encoder.
- the exploration engine provides a design space graphical user interface (GUI) that receives commands from users, processes the commands, and visually displays the results of the commands.
- GUI design space graphical user interface
- the commands may include any number and type of aesthetic analysis commands that the exploration engine executes based on the shape embeddings.
- the shape embeddings are fixed-length vectors, the shape embeddings are amenable to a wide variety of data analysis operations. Examples of data analysis operations include, without limitation, comparison operations, clustering operations, ranking operations, and filtering operations, to name a few.
- the exploration engine facilitates the exploration of a design space based on shape embeddings in conjunction with non- aesthetic aspects of the designs, aspects of the design space, and/or aspects of a generative design process associated with the design space. For instance, the exploration engine may analyze and visually annotate a timeline associated with a generative design flow based on the shape embeddings associated with intermediate outcomes (e.q.. designs along the timeline).
- the training application enables robust and efficient representations of the visual shape of 3D geometries.
- the trained encoder generates a shape embedding that accurately represents one or more salient visual features of the 3D geometry.
- the shape embedding has a fixed size, the shape embedding is amenable to efficient data analysis operations across the relatively large number of geometrically complex 3D designs typically associated with generative design flows.
- a CAD tool can automatically compare shape embeddings to allow a user to efficiently and subjectively explore a design space associated with a generative design flow based on aesthetic and non-aesthetic preferences.
- a user unintentionally overlooks designs that better reflect the aesthetic preferences of the user when selecting a design for production is substantially reduced compared to prior art approaches.
- a computer-implemented method for generating computational representations for three-dimensional (3D) geometry shapes comprises, for each view included in a first plurality of views associated with a first 3D geometry, generating a view activation based on a first convolutional neural network (CNN) block; aggregating the view activations to generate a first tiled activation;
- CNN convolutional neural network
- performing the one or more training operations comprises determining that the first CNN block is not trained based on a loss function; modifying one or more machine learning parameters associated with the first CNN block based on the loss function to generate a third CNN block;
- generating the first plurality of re- constructed views comprises generating a decoded tiled activation based on the first shape embedding and a third CNN block; partitioning the decoded tiled activation into a plurality of decoded view activations; and for each decoded view activation included in the plurality of decoded view activations, generating a different re-constructed view included in the first plurality of re-constructed views based on a fourth CNN block.
- one or more non-transitory computer readable media include instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of, for each view included in a first plurality of views associated with a first 3D geometry, generating a view activation based on a first convolutional neural network (CNN) block; aggregating the view activations to generate a first tiled activation; generating a first shape embedding having a fixed size based on the first tiled activation and a second CNN block; generating a first plurality of re-constructed views based on the first shape embedding; performing one or more training operations on at least one of the first CNN block and the second CNN block based on the first plurality of views and the first plurality of re-constructed views to generate a trained encoder; and generating a second shape embedding having the fixed size based on the trained encoder.
- CNN convolutional neural network
- performing the one or more training operations comprises determining that the first CNN block is not trained based on a loss function; modifying one or more machine learning parameters associated with the first CNN block based on the loss function to generate a third CNN block; generating a second plurality of re- constructed views based on the third CNN block and the second CNN block; and determining that the third CNN block and the second CNN block comprise the trained encoder based on the loss function; the first plurality of views; and the second plurality of re-constructed views.
- the loss function measures a difference between a plurality of views and a plurality of re-constructed views.
- generating the first plurality of re-constructed views comprises performing a first set of convolution operations on the first shape embedding to generate a decoded tiled activation; partitioning the decoded tiled activation into a plurality of decoded view activations; and for each decoded view activation included in the plurality of decoded view activations, performing a second set of convolution operations on the decoded view activation to generate a different re-constructed view included in the first plurality of re-constructed views.
- each view included in the first plurality of views comprises a different rendering.
- the second shape embedding is associated with a second 3D geometry, and further comprising generating a third shape embedding having the first size based on the trained encoder and a third 3D geometry; and performing one or more comparison operations between the second shape embedding and the third shape embedding when exploring a design space.
- a system comprises one or more memories storing instructions; and one or more processors that are coupled to the one or more memories and, when executing the instructions, are configured to, for each view included in a first plurality of views associated with a first 3D geometry, generate a view activation based on a first convolutional neural network (CNN) block; aggregate the view activations to generate a first tiled activation; generate a first shape embedding having a fixed size based on the first tiled activation and a second CNN block; generate a first plurality of re-constructed views based on the first shape embedding; perform one or more training operations on at least one of the first CNN block and the second CNN block based on the first plurality of views and the first plurality of re-constructed views to generate a trained encoder; and generate a second shape embedding having the fixed size based on the trained encoder.
- CNN convolutional neural network
- 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, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “module” or“system.” In addition, any hardware and/or software technique, process, function, component, engine, module, or system described in the present disclosure may be implemented as a circuit or set of circuits. Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
- the computer readable medium may be a computer readable signal medium or a computer readable storage medium.
- a computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
- a computer readable storage medium may 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.
- processors may be, without limitation, general purpose processors, special-purpose processors, application-specific processors, or field-programmable gate arrays.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in the block 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.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
Description
Claims
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/174,119 US11126330B2 (en) | 2018-10-29 | 2018-10-29 | Shaped-based techniques for exploring design spaces |
| US16/174,110 US11380045B2 (en) | 2018-10-29 | 2018-10-29 | Shaped-based techniques for exploring design spaces |
| US16/174,115 US11741662B2 (en) | 2018-10-29 | 2018-10-29 | Shaped-based techniques for exploring design spaces |
| PCT/US2019/058357 WO2020092246A1 (en) | 2018-10-29 | 2019-10-28 | Shaped-based techniques for exploring design spaces |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP3874395A1 true EP3874395A1 (en) | 2021-09-08 |
Family
ID=68610326
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP19805823.2A Pending EP3874395A1 (en) | 2018-10-29 | 2019-10-28 | Shaped-based techniques for exploring design spaces |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP3874395A1 (en) |
| CN (1) | CN112955892B (en) |
| WO (1) | WO2020092246A1 (en) |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10565305B2 (en) * | 2016-11-18 | 2020-02-18 | Salesforce.Com, Inc. | Adaptive attention model for image captioning |
| US10580131B2 (en) * | 2017-02-23 | 2020-03-03 | Zebra Medical Vision Ltd. | Convolutional neural network for segmentation of medical anatomical images |
| KR102421856B1 (en) * | 2017-12-20 | 2022-07-18 | 삼성전자주식회사 | Method and apparatus for processing image interaction |
-
2019
- 2019-10-28 WO PCT/US2019/058357 patent/WO2020092246A1/en not_active Ceased
- 2019-10-28 EP EP19805823.2A patent/EP3874395A1/en active Pending
- 2019-10-28 CN CN201980071571.5A patent/CN112955892B/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| WO2020092246A1 (en) | 2020-05-07 |
| CN112955892B (en) | 2024-09-27 |
| CN112955892A (en) | 2021-06-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11741662B2 (en) | Shaped-based techniques for exploring design spaces | |
| CN111382470B (en) | Machine Learning for Object Inference in 3D Modeling | |
| CN111382541B (en) | Ensemble of Neural Networks | |
| US12455761B2 (en) | Techniques for workflow analysis and design task optimization | |
| US10176404B2 (en) | Recognition of a 3D modeled object from a 2D image | |
| CN111382778B (en) | Forming a data set for inferring solid CAD features | |
| KR101855736B1 (en) | Designing a modeled object within a session of a computer-aided design system interacting with a database | |
| CN111382496B (en) | Learning Neural Networks for Inferring Editable Feature Trees | |
| Dahnert et al. | Joint embedding of 3d scan and cad objects | |
| WO2011097675A9 (en) | Method and system for display of objects in 3d | |
| US11126330B2 (en) | Shaped-based techniques for exploring design spaces | |
| US11928773B2 (en) | Shaped-based techniques for exploring design spaces | |
| US20260011042A1 (en) | Generating 2d image of 3d scene with conditioning signal | |
| US20250061654A1 (en) | Machine-learning function for outputting camera viewpoints | |
| US20250232398A1 (en) | Generating 2d image of 3d scene | |
| CN112955892B (en) | Shape-based techniques for exploring design space | |
| EP4675564A1 (en) | Generating a plurality of 2d images of 3d scene | |
| WO2026084774A1 (en) | Image composition of multiple objects using generative models | |
| CN116883595A (en) | Three-dimensional scene modeling method, apparatus, device, storage medium, and program product | |
| CN119068118A (en) | Single-view 3D reconstruction method driven by visual saliency |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20210515 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| RAP3 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: AUTODESK, INC. |
|
| P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230510 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
| 17Q | First examination report despatched |
Effective date: 20240305 |