This repository is the official implementation of Inverse design of mechanical metamaterials balancing manufacturability and compactness: A case study on lattice cells.
Mechanical metamaterials are artificially engineered structures designed to exhibit unique and extraordinary mechanical properties. In recent years, machine learning provides a more efficient and systematic approach enabling inverse design of mechanical metamaterials, which allow for a broader exploration of material properties and support the integration of multifunctionality, significantly speeding up the design process. Despite the many advantages of inverse design, metamaterials often involves a trade-off between competing performance metrics-such as manufacturability and structural compactness. Furthermore, these trade-offs should be dynamically adjusted based on different additive manufacturing conditions. To address this, we proposed a regressional and conditional generative adversarial network based multi-objective (RCGAN-MO) architecture, which simultaneously handles the inverse design and adjustable multi-objective optimization of mechanical metamaterials. The RCGAN-MO includes two trained neural networks: a generator and a predictor, along with a weighted multi-objective optimizer. As a case study, the RCGAN-MO architecture is applied to the inverse design of the relative compressive elastic modulus for a metamaterial, and metamaterials with different weight vector values in the multi-objective optimizer are achieved through 3D printed prototypes. This approach achieves high accuracy and could adjust the importance of manufacturability and compactness, offering a flexible, scalable solution for engineering metamaterials tailored to practical application demands.
├── ML/
│ ├── configs/nn.json # NN configuration
│ ├── dataset/ # Training & validation data
│ │ ├── data_for_ml.csv
│ │ └── FEM_val_data.csv
│ └── models/
│ ├── train_config.py # Model configuration
│ ├── nn/ # Forward neural networks
│ │ ├── forward_train.py
│ │ └── forward_eval.py
│ └── gan/ # RCGAN implementation
│ ├── rcgan_train.py # GAN training
│ ├── rcgan_eval.py # GAN evaluation
│ ├── multi-objective_optimizer/ # Multi-objective optimization
│ │ └── gradient_optimization.py
│ └── plot_results/ # Visualization tools
├── Exp_results/output_moduli.csv # Experimental results
├── figs/gen_img.jpg # Generated images
├── PTH_files/ # Trained models
└── requirements.txt # Dependencies
- Training: Run
rcgan_train.pyfor RCGAN model training - Optimization: Use
gradient_optimization.pyfor multi-objective optimization - Evaluation: Execute
rcgan_eval.pyfor model evaluation and visualization