Spatiotemporal deep learning for predicting microstructure evolution in laser-based additive manufacturing.
- Multiple architectures (CNN-LSTM, PredRNN, MLP baselines)
- End-to-end training/evaluation/prediction scripts
- Reproducible experiments via YAML configs
This project uses uv and Python 3.12.
uv sync --locked --devThe dataset is hosted at https://storage.googleapis.com/lasernet-data. Download it into a relative ./data folder from the project root.
Use wget to download the files over HTTPS:
mkdir -p data && cd data
wget -i https://storage.googleapis.com/lasernet-data/filelist.txtData and models uses large amount of storage space and is therefore stored on a seperate blackhole scratch drive (≈50 GB) on DTU HPC. Thus, it is important to make symlinks to data/ and models/ folders, so that they are relative to the project root directory.
ln -s "$BLACKHOLE/models" /zhome/b0/7/168550/Github/LASERNet/models
ln -s "$BLACKHOLE/data" /zhome/b0/7/168550/Github/LASERNet/dataTrain, evaluate, and predict via CLI scripts:
uv run src/lasernet/train.py --network deep_cnn_lstm_large --field-type microstructure
uv run src/lasernet/evaluate.py --network deep_cnn_lstm_large --field-type microstructure
uv run src/lasernet/predict.py --network deep_cnn_lstm_large --field-type microstructure --timestep 21Experiments from YAML configs:
uv run src/lasernet/experiments/experiments.pyModel prediction comparison (timestep 21). Qualitative comparison across selected models for a fixed timestep.
Timestep evolution (18 → 21). Predicted temporal evolution in the microstructure field.
MSE error maps. Spatial error distribution highlighting challenging regions.
uv run pytest -q├── .github/ # CI workflows
├── configs/ # Experiment configs
├── data/ # Data (raw/processed)
├── models/ # Model checkpoints
├── notebooks/ # Demos and exploration
├── results/ # Evaluation artifacts
├── src/lasernet/ # Package source
│ ├── data/ # Dataset + normalization
│ ├── models/ # Model implementations
│ ├── evaluate.py # Evaluation CLI
│ ├── predict.py # Prediction CLI
│ ├── train.py # Training CLI
│ └── utils.py # Utilities
└── tests/ # Unit tests

