Genuary 2021

[ pt_BR ]

Genuary 2021

An e-ink display showing curves coming out of straight lines in a square frame.

Genuary is an incentive to create generative art. They publish a prompt for every day of the month to serve as a starting point to build code that makes "beautiful things".

In January 2021 I (along with a big part of the world) had some extra time at home and decided to follow the prompts for Genuary 2021.

As an extra constraint, I decided to follow the prompts writting code for an ESP32 microcontroller to drive a 7-inch e-ink display. This meant all my entries had to use only two colors, and any animation would be really slow. All the code is available in a git repository, as usual.

Here are each of the Genuary 2021 prompts and a picture of the result on the e-ink display (you can jump to the end to see all of them in one picture):



  1. Triple nested loop

    Circles packed on screen.

    For this one I implemented a circle packing algorithm.

  2. Rule 30

    Celular automata forming triangles.
  3. Make something human

    Stick figure waving.

    I was tired...

  4. Small areas of symmetry

    A fractal-looking figure with squares containing squares.
  5. Do some code golf! How little code can you write to make something interesting?

    A lot of straight lines coming from different directions and meeting in the center of the screen.

    This one was a bit hard because there's a lot of setup code needed for the display. Code is in the git repository.

    The artifacts that look like JPEG compression issues are not: they show up in the display also because of the display resolution and the straight lines so close to each other.

  6. Triangle subdivision

    Sierpiński triangle

    It had to be Sierpiński triangle.

  7. Generate some rules, then follow them by hand on paper

    Rules for a turtle drawing. Hand-drawn lines forming a path.

    Ran out of space on the paper.

  8. Curve only

    A set of lines forming a curve

    But with lines.

  9. Interference patterns

    A bunch of superimposed squares forming some interference patterns.
  10. TREE

    A tree made of line segments.

    A drunken turtle following rules generated by an L-System.

  11. Use something other than a computer as an autonomous process (or use a non-computer random source)

  12. Use an API.

    I made a flow field with wind data from MetaWeather (which seems to be dead now).

  13. Do not repeat

    Bouncy ball.

    Bouncy ball that never goes over the same spot.

  14. Subdivision

    Rectangles subdividing until they're undiscernable.
  15. Let someone else decide the general rules of your piece

    Seemingly random pattern of black and white pixels.

    Bruno Gola had the excelent idea of basing the drawing the in the program that's executing in the ESP32 itself.

    The code for this sketch reads each bit in the flash memory of the microcontroller and draws a black pixel if it's a 1, white if it's a 0.

  16. Circles only

    Perlin noise texture with halftone dithering. Perlin noise texture with halftone dithering.

    Perlin noise textures with halftone dithering.

  17. Draw a line, pick a new color, move a bit

    Halftone lines

    As I can only use two colors, lines are also halftone. The next color is also picked using perlin noise.

  18. One process grows, another process prunes

  19. Increase the randomness along the Y-axis

    Block of black that gets more jagged edges towards the end of the screen.
  20. No loops

    Curves coming out of straight lines in a square frame. Curves coming out of straight lines in a square frame.

    So it's recursion and trigonometry.

  21. function f(x) { DRAW(x); f(1 * x / 4); f(2 * x / 4); f(3 * x / 4); }

    Lines that start small in the center but grow and twist towards the edges.
  22. Draw a line. Wrong answers only.

    A bunch of dots concentrating on the vertical center of the screen.

    Trusting the normal distribution.

  23. #264653 #2a9d8f #e9c46a #f4a261 #e76f51, no gradients. Optionally, you can use a black or white background.

    A series of dotted lines.

    My display is black and white. The colors turned into bitmasks for the lines I drew.

  24. 500 lines

    500 *almost* straight lines starting one next to the other.
  25. Make a grid of permutations of something

    A grid of variations on squiggly lines

    I connected points in a circle and got an alphabet.

  26. 2D Perspective

    A tunnel of squares in 2D perspective.
  27. Monochrome gradients without lines

    Halftone pattern.
  28. Use sound

    Out of phase sine waves.

    I was too lazy to use a microphone, so I used some out of phase sine waves.

  29. Any shape, none can touch

    Tiling pattern of honeycombs.
  30. Replicate a natural concept

  31. Eno's oblique strategies ("twist the spine")


Back to start ⇑