Official pytorch implementation of the paper: "TOAD-GAN: Coherent Style Level Generation from a Single Example" For more information on TOAD-GAN, please refer to the paper (arxiv).
This Project includes graphics from the game Super Mario Bros. It is not affiliated with or endorsed by Nintendo.
The project was built for research purposes only.
If you're interested in a demonstration of pre-trained generators, check out TOAD-GUI.
The GUI allows you to generate, edit and play Super Mario Bros. levels generated by TOAD-GANs.
This section includes the necessary steps to train TOAD-GAN on your system.
NOTE: If you have a GPU, check if it is usable with Pytorch and change the requirement in the file to use +gpu instead of +cpu.
Training on a GPU is significantly faster.
Install packages with:
$ pip3 install -r requirements.txt -f "https://download.pytorch.org/whl/torch_stable.html"
Make sure you use the
pip3 that belongs to your previously defined virtual environment.
Once all prerequisites are installed, TOAD-GAN can be trained by running
Make sure you are using the python installation you installed the prerequisites into.
There are several command line options available for training. These are defined in
An example call which will train a 3-layer TOAD-GAN on level 1-1 of Super Mario Bros. with 4000 iterations each scale would be:
$ python main.py --input-dir input --input-name lvl_1-1.txt --num_layer 3 --alpha 100 --niter 4000 --nfc 64
If you want to use your trained TOAD-GAN to generate more samples, use
Make sure you define the path to a pretrained TOAD-GAN and the correct input parameters it was trained with.
$ python generate_samples.py --out_ path/to/pretrained/TOAD-GAN --input-dir input --input-name lvl_1-1.txt --num_layer 3 --alpha 100 --niter 4000 --nfc 64
We supply the code for experiments made for our paper.
These files come with their own command line parameters each to control the experiment.
Check the files for more info.
$ python main_tile_pattern.py
Level Latent Space
$ python main_level_classification.py
$ python generate_samples.py --seed_mariokart_road
- Pillow - Python Image Library for displaying images
- Pytorch - Deep Learning Framework
- Maren Awiszus - Institut für Informationsverarbeitung, Leibniz University Hanover
- Frederik Schubert - Institut für Informationsverarbeitung, Leibniz University Hanover