With the processing javascript library p5.js you can create interesting looking images in relatively short time. It’s a lot of fun to experiment with your variables, changing the outcome on each iteration. I like to set up quick grids with various shapes. Sometimes static, sometimes moving. Here you can see a few of my recent experiments.

The base is most often a nested for loop:

for (let y = 0; y < rows; y++) {
  for (let x = 0; x < cols; x++) {
    //draw shape
  }
}