IP Library › Granted Patent US 11,636,395
Granted Patent B2
US 11,636,395 · App. 16/922,911 · Granted Apr 25, 2023

Modelling operations on functional structures

Inventor: Louis Dupont De Dinechin (Velizy-Villacoublay, FR)
Assignee: DASSAULT SYSTEMES
G06N20/00G06F16/22G06F30/10G06F30/27
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,636,395
App. No.
16/922,911
Granted
Apr 25, 2023
Kind
B2
Abstract

The disclosure notably relates to a computer-implemented method for teaching a generative autoencoder. The generative autoencoder is configured to generate functional structures. A functional structure is a data structure representing a mechanical assembly of rigid parts and which includes a tree. Each leaf node represents a shape and positioning of a respective rigid part and a force exerted on the respective rigid part. Each non-leaf node with several children represents a mechanical link between sub-assemblies. Each sub-assembly is represented by a respective one of the several children. Each non-leaf node with a single child represents a duplication of the sub-assembly represented by the single child. The method includes obtaining a dataset including functional structures. The method further comprises teaching the generative autoencoder on the dataset. This constitutes an improved method for teaching a generative autoencoder configured for generating functional structures.

Claims (110)

1. A computer-implemented method for teaching a generative autoencoder configured for generating functional structures, a functional structure being a data structure representing a mechanical assembly of rigid parts, the data structure including a tree which includes leaf nodes each representing a shape and positioning of a respective rigid part and a force exerted on the respective rigid part, non-leaf nodes each with several children and each representing a mechanical link between sub-assemblies, each sub-assembly being represented by a respective one of the several children, and non-leaf nodes with a single child and each representing a duplication of the sub-assembly represented by the single child, the method comprising:

obtaining a dataset including functional structures; and

teaching the generative autoencoder on the dataset,

wherein the shape and positioning of the respective rigid part is represented by data including a specification of a bounding box around the respective rigid part, and the force exerted on the respective rigid part is a resulting force, and

wherein the generative autoencoder includes:

an encoder having a leaf encoding module, a mechanical link encoding module, and a duplication encoding module, and

a decoder including a node classifier, a leaf decoding module, a mechanical link decoding module, and a duplication decoding module,

wherein the encoder is configured, with respect to a given functional structure, to encode the tree into a single latent vector according to a recursive bottom-up process where:

the leaf encoding module outputs, for each leaf node, a respective latent vector, based on the data comprising the specification of the bounding box and the resulting force,

the mechanical link encoding module outputs, for each non-leaf node representing a mechanical link, a respective latent vector, based on several latent vectors which encode the respective several children of the non-leaf node, and

the duplication encoding module outputs, for each non-leaf node representing a duplication, a respective latent vector, based on the latent vector which encodes the respective single child of the non-leaf node, and

wherein the decoder is configured, with respect to a given single latent vector, to decode the given single latent vector into a tree of a functional structure according to a recursive top-down process where:

the node classifier classifies each latent vector produced during the decoding, as corresponding to a leaf node, to a non-leaf node representing a mechanical link, or to a non-leaf node representing a duplication,

the leaf decoding module outputs, for each latent vector classified as corresponding to a leaf node during the decoding, data comprising a specification of a respective bounding box and a respective resulting force, based on the latent vector,

the mechanical link decoding module outputs, for each latent vector classified as corresponding to a non-leaf node representing a mechanical link during the decoding, several child latent vectors, based on the latent vector, and

the duplication decoding module outputs, for each latent vector classified as corresponding to a non-leaf node representing a duplication during the decoding, a single child latent vector, based on the latent vector.

2. The method of claim 1 , wherein the mechanical link is an adjacency relation between the sub-assemblies, the adjacency relation belonging to a predetermined set of adjacency relations.

3. The method of claim 1 , wherein the duplication is a symmetry relation between instances of the sub-assembly, the symmetry relation belonging to a predetermined set of symmetry relations.

4. The method of claim 1 , wherein one or more nodes of the tree of at least a part of the functional structures of the dataset are each tagged with one label among a predetermined list of labels, and

the method further comprises:

teaching a latent space classifier, the latent space classifier being configured to take as input a latent vector and to tag the latent vector with one label of the predetermined list of labels.

5. The method of claim 1 , wherein the bounding box and the resulting force are respectively represented by first coordinates and second coordinates of a same vector.

6. A computer-implemented method comprising:

obtaining a generative autoencoder configured to generate functional structures, a functional structure being a data structure representing a mechanical assembly of rigid parts, the data structure including a tree which includes:

leaf nodes each representing a shape and positioning of a respective rigid part and a force exerted on the respective rigid part,

non-leaf nodes each with several children and each representing a mechanical link between sub-assemblies, each sub-assembly being represented by a respective one of the several children, and

non-leaf nodes with a single child and each representing a duplication of the sub-assembly represented by the single child; and

using the generative autoencoder,

wherein the shape and positioning of the respective rigid part is represented by data including a specification of a bounding box around the respective rigid part, and the force exerted on the respective rigid part is a resulting force, and

wherein the generative autoencoder includes:

an encoder having a leaf encoding module, a mechanical link encoding module, and a duplication encoding module, and

a decoder including a node classifier, a leaf decoding module, a mechanical link decoding module, and a duplication decoding module,

wherein the encoder is configured, with respect to a given functional structure, to encode the tree into a single latent vector according to a recursive bottom-up process where:

the leaf encoding module outputs, for each leaf node, a respective latent vector, based on the data comprising the specification of the bounding box and the resulting force,

the mechanical link encoding module outputs, for each non-leaf node representing a mechanical link, a respective latent vector, based on several latent vectors which encode the respective several children of the non-leaf node, and

the duplication encoding module outputs, for each non-leaf node representing a duplication, a respective latent vector, based on the latent vector which encodes the respective single child of the non-leaf node, and

wherein the decoder is configured, with respect to a given single latent vector, to decode the given single latent vector into a tree of a functional structure according to a recursive top-down process where:

the node classifier classifies each latent vector produced during the decoding, as corresponding to a leaf node, to a non-leaf node representing a mechanical link, or to a non-leaf node representing a duplication,

the leaf decoding module outputs, for each latent vector classified as corresponding to a leaf node during the decoding, data comprising a specification of a respective bounding box and a respective resulting force, based on the latent vector,

the mechanical link decoding module outputs, for each latent vector classified as corresponding to a non-leaf node representing a mechanical link during the decoding, several child latent vectors, based on the latent vector, and

the duplication decoding module outputs, for each latent vector classified as corresponding to a non-leaf node representing a duplication during the decoding, a single child latent vector, based on the latent vector.

7. The method of claim 6 , wherein the method further comprises:

obtaining one or more latent vectors; and

generating a functional structure, the generating including decoding each latent vector with the decoder.

8. The method of claim 7 , further comprising:

performing a topology optimization on the mechanical assembly of rigid parts represented by the generated functional structure.

9. The method of claim 8 , wherein the generating generates forces which are each a force represented by a leaf node of the tree included in the generated functional structure, and

wherein the generated forces form inputs of the topology optimization.

10. A device comprising:

a non-transitory data storage medium having recorded thereon a computer program comprising instructions for teaching a generative autoencoder that generates functional structures, a functional structure being a data structure representing a mechanical assembly of rigid parts, the data structure including a tree which includes leaf nodes each representing a shape and positioning of a respective rigid part and a force exerted on the respective rigid part, non-leaf nodes each with several children and each representing a mechanical link between sub-assemblies, each sub-assembly being represented by a respective one of the several children, and non-leaf nodes with a single child and each representing a duplication of the sub-assembly represented by the single child, the computer program when executed by a processor causes the processor to be configured to:

obtaining a dataset including functional structures, and

teach the generative autoencoder on the dataset,

wherein the shape and positioning of the respective rigid part is represented by data including a specification of a bounding box around the respective rigid part, and the force exerted on the respective rigid part is a resulting force, and

wherein the generative autoencoder includes:

an encoder having a leaf encoding module, a mechanical link encoding module, and a duplication encoding module, and

a decoder including a node classifier, a leaf decoding module, a mechanical link decoding module, and a duplication decoding module,

wherein the encoder is configured, with respect to a given functional structure, to encode the tree into a single latent vector according to a recursive bottom-up process where:

the leaf encoding module outputs, for each leaf node, a respective latent vector, based on the data comprising the specification of the bounding box and the resulting force,

the mechanical link encoding module outputs, for each non-leaf node representing a mechanical link, a respective latent vector, based on several latent vectors which encode the respective several children of the non-leaf node, and

the duplication encoding module outputs, for each non-leaf node representing a duplication, a respective latent vector, based on the latent vector which encodes the respective single child of the non-leaf node, and

wherein the decoder is configured, with respect to a given single latent vector, to decode the given single latent vector into a tree of a functional structure according to a recursive top-down process where:

the node classifier classifies each latent vector produced during the decoding, as corresponding to a leaf node, to a non-leaf node representing a mechanical link, or to a non-leaf node representing a duplication,

the leaf decoding module outputs, for each latent vector classified as corresponding to a leaf node during the decoding, data comprising a specification of a respective bounding box and a respective resulting force, based on the latent vector,

the mechanical link decoding module outputs, for each latent vector classified as corresponding to a non-leaf node representing a mechanical link during the decoding, several child latent vectors, based on the latent vector, and

the duplication decoding module outputs, for each latent vector classified as corresponding to a non-leaf node representing a duplication during the decoding, a single child latent vector, based on the latent vector.

11. The device of claim 10 , wherein the mechanical link is an adjacency relation between the sub-assemblies, the adjacency relation belonging to a predetermined set of adjacency relations.

12. The device of claim 10 , wherein the duplication is a symmetry relation between instances of the sub-assembly, the symmetry relation belonging to a predetermined set of symmetry relations.

13. The device of claim 10 , further comprising the processor coupled to the non-transitory data storage medium.

14. A device comprising

a non-transitory data storage medium having recorded thereon a computer program comprising instructions that when executed by a processor causes the processor to be configured to:

obtain a generative autoencoder configured to generate functional structures, a functional structure being a data structure representing a mechanical assembly of rigid parts, the data structure including a tree which includes:

leaf nodes each representing a shape and positioning of a respective rigid part and a force exerted on the respective rigid part,

non-leaf nodes each with several children and each representing a mechanical link between sub-assemblies, each sub-assembly being represented by a respective one of the several children, and

non-leaf nodes with a single child and each representing a duplication of the sub-assembly represented by the single child; and

using the generative autoencoder,

wherein the shape and positioning of the respective rigid part is represented by data including a specification of a bounding box around the respective rigid part, and the force exerted on the respective rigid part is a resulting force, and

wherein the generative autoencoder includes:

an encoder having a leaf encoding module, a mechanical link encoding module, and a duplication encoding module, and

a decoder including a node classifier, a leaf decoding module, a mechanical link decoding module, and a duplication decoding module,

wherein the encoder is configured, with respect to a given functional structure, to encode the tree into a single latent vector according to a recursive bottom-up process where:

the leaf encoding module outputs, for each leaf node, a respective latent vector, based on the data comprising the specification of the bounding box and the resulting force,

the mechanical link encoding module outputs, for each non-leaf node representing a mechanical link, a respective latent vector, based on several latent vectors which encode the respective several children of the non-leaf node, and

the duplication encoding module outputs, for each non-leaf node representing a duplication, a respective latent vector, based on the latent vector which encodes the respective single child of the non-leaf node, and

wherein the decoder is configured, with respect to a given single latent vector, to decode the given single latent vector into a tree of a functional structure according to a recursive top-down process where:

the node classifier classifies each latent vector produced during the decoding, as corresponding to a leaf node, to a non-leaf node representing a mechanical link, or to a non-leaf node representing a duplication,

the leaf decoding module outputs, for each latent vector classified as corresponding to a leaf node during the decoding, data comprising a specification of a respective bounding box and a respective resulting force, based on the latent vector,

the mechanical link decoding module outputs, for each latent vector classified as corresponding to a non-leaf node representing a mechanical link during the decoding, several child latent vectors, based on the latent vector, and

the duplication decoding module outputs, for each latent vector classified as corresponding to a non-leaf node representing a duplication during the decoding, a single child latent vector, based on the latent vector.

15. The device of claim 14 , wherein the processor is further configured to:

obtain one or more latent vectors; and

generate a functional structure, the generating comprising decoding each latent vector with the decoder.

16. The device of claim 14 , further comprising the processor coupled to the non-transitory data storage medium.

17. A device comprising:

a non-transitory data storage medium having recorded thereon a generative autoencoder configured to generate functional structures, a functional structure being a data structure representing a mechanical assembly of rigid parts, the data structure including a tree which includes:

leaf nodes each representing a shape and positioning of a respective rigid part and a force exerted on the respective rigid part;

non-leaf nodes each with several children and each representing a mechanical link between sub-assemblies, each sub-assembly being represented by a respective one of the several children, and

non-leaf nodes with a single child and each representing a duplication of the sub-assembly represented by the single child,

wherein the shape and positioning of the respective rigid part is represented by data including a specification of a bounding box around the respective rigid part, and the force exerted on the respective rigid part is a resulting force, and

wherein the generative autoencoder includes:

an encoder having a leaf encoding module, a mechanical link encoding module, and a duplication encoding module, and

a decoder including a node classifier, a leaf decoding module, a mechanical link decoding module, and a duplication decoding module,

wherein the encoder is configured, with respect to a given functional structure, to encode the tree into a single latent vector according to a recursive bottom-up process where:

the leaf encoding module outputs, for each leaf node, a respective latent vector, based on the data comprising the specification of the bounding box and the resulting force,

the mechanical link encoding module outputs, for each non-leaf node representing a mechanical link, a respective latent vector, based on several latent vectors which encode the respective several children of the non-leaf node, and

the duplication encoding module outputs, for each non-leaf node representing a duplication, a respective latent vector, based on the latent vector which encodes the respective single child of the non-leaf node, and

wherein the decoder is configured, with respect to a given single latent vector, to decode the given single latent vector into a tree of a functional structure according to a recursive top-down process where:

the node classifier classifies each latent vector produced during the decoding, as corresponding to a leaf node, to a non-leaf node representing a mechanical link, or to a non-leaf node representing a duplication,

the leaf decoding module outputs, for each latent vector classified as corresponding to a leaf node during the decoding, data comprising a specification of a respective bounding box and a respective resulting force, based on the latent vector,

the mechanical link decoding module outputs, for each latent vector classified as corresponding to a non-leaf node representing a mechanical link during the decoding, several child latent vectors, based on the latent vector, and

the duplication decoding module outputs, for each latent vector classified as corresponding to a non-leaf node representing a duplication during the decoding, a single child latent vector, based on the latent vector.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2020
From: DUPONT DE DINECHIN, LOUIS
To: DASSAULT SYSTEMES
Reel/Frame 054465/0678 →
Priority Claims (1)
EP 19305925 · Jul 7, 2019 · regional
Continuity (1)
Related Publication 20210004719A1 · Jan 7, 2021
Cited By (4)
US 12,368,503 US 12,587,274 US 12,603,701 US 12,627,372