Masonry combined with a choice of effects when loading images. Mary Lou (Codrops) made this and I've thoroughly reworked it into a Drupal 8 module and made it user friendly.
You can set..
- what type of content you use and what image field.
- what effect you want when loading
- if you want to show the title of the node or not
- how you want to sort the data
- how many columns you want (some themes have a margin or padding on the body. This can lead to 1 column less)
- how much space between the items you want
Also use the alt and title for the images for SEO purposes ..
Fully responsive of course ...
The module uses a image style width a width of 400px. It is desirable that your images are at least 400px wide.