# sketch-a-day

#### coding a visual idea a day

Welcome! My name is Alexandre Villares and since January, 2018 I have been coding *sketches* everyday, publishing the source code in the same repository that stores this page, github.com/villares/sketch-a-day.

The results here are mostly tentative, exploratory, and I don’t feel like they need to be relevant or meaningful on any particular day. The everyday practice leads to the emergence of ideas that I consider interesting, worthy of further exploration. Some of those have been added to selected work, this collection itself became valuable for me, and it is my pleasure to share it with anyone willing to explore coding as a creative and expressive medium.

You can follow me on Mastodon @villares@ciberlandia.pt or at @villares@pynews.com.br, where I post most of my daily sketches. Please do not hesitate to contact me regarding licenses to use my work, teaching opportunities, consulting or other projects.

If you appreciate what I have been doing, you may also support my artistic work, research and open educational resources I publish on-line using the Brazilan PIX key at `46c37783-5edb-4f1c-b3a8-1309db11488c`

, PayPal or gumroad.com/villares, where you can subscribe to my [sketch-mail] newsletter.

Here are listed some of the tools I have been using more recently:

- [py5] is my main too, combining a Processing Java infrastructure and Python 3;
- [pyp5js] is my browser based choice for creative coding, based on pyodide + p5.js;
- [shoebot] - great 2D vector graphics creative coding with Python;
- [pyscript] - another useful Python in the browser tool;
- [FreeCAD] - the wonderful 3D modeling tool, CAD & more, Python infused;
- [Blender] doesn’t need introductions, I guess, but it has a nice Python interface you might have missed.

2024 | **2023** | **2022** | **2021** | **2020** | **2019** | **2018**

### sketch_2024_11_04

more Slider tweaks

### sketch_2024_11_03

I now can use the mouse wheel to control my naive sliders!

### sketch_2024_11_02

### sketch_2024_11_01

### sketch_2024_10_31

Today I worked on this with a friend to whom I’m teaching Python classes: 336 configurations made from 4 truchet modules (diagonaly divided squares with black and white sides) plus black and white squares. Removing rotations!

### sketch_2024_10_30

### sketch_2024_10_29

1200 polykings of order 1, 2, 3, 4, 5 and 6 (https://en.wikipedia.org/wiki/Pseudo-polyomino)

### sketch_2024_10_28

### sketch_2024_10_27

704 one-sided octominoes, using code inspired by a great talk by Hamish Campbell https://pyvideo.org/kiwi-pycon-2013/polyominoes-an-exploration-in-problem-solving-w.html

### sketch_2024_10_26

### sketch_2024_10_25

Inspired by this post from Armchair Epistemologist: https://hostux.social/@rcriii/112406728834440508

### sketch_2024_10_24

### sketch_2024_10_23

### sketch_2024_10_22

### sketch_2024_10_21

### sketch_2024_10_20

### sketch_2024_10_19

### sketch_2024_10_18

### sketch_2024_10_17

### sketch_2024_10_16

### sketch_2024_10_15

2811 ways of coloring a grid of 3 x 3 squares removing rotations…

### sketch_2024_10_14

31 ways of coloring a grid of 2 x 2 squares removing rotations? Is this correct?

### sketch_2024_10_13

WIP, this is still including and excluding some rotated configs with same geometry and different painting :( I’d be happy if it included all or excluded all the painting variations. Working on it.

### sketch_2024_10_12

1434 configurations of ways of dividing a square (using a grid of 9 subsquares) The colors now show the minimum number of colors you need to color the regions,

# widhout adjacent areas having the same color.

### sketch_2024_10_11

2810 ways of partitioning a square using 5 x 2 subsquares, shown on a 38 x 74 grid of 2812 positions.

### sketch_2024_10_10

1200 ways to divide a square using only the squares and smaller diagonals from a grid of 3x3 points (edges, mid-side and center of the square).

### sketch_2024_10_09

456 ways to subdivide a 4 x 2 rectangle (merging 1 x 1 sub-regions)

### sketch_2024_10_08

1434 ways of subdividing a square merging areas from a grid of 9 subsquares.

### sketch_2024_10_07

512 configurations, ways of “enclosing” elements from a 3 x 3 grid

### sketch_2024_10_06

There are 1295 ways of making enclosed areas using the segments and shorter diagonals of a 3 x 3 grid of points. 1296 if you consider the “empty” case of not enlosing any area.

### sketch_2024_10_05

### sketch_2024_10_04

### sketch_2024_10_03

animation shows some examples of black and white triangles in a 4 x 4 point grid being merged (with same color triangles)

### sketch_2024_10_02

broken but fun! #debugaesthetics

### sketch_2024_10_01

WIP

### sketch_2024_09_30

WIP

### sketch_2024_09_29

### sketch_2024_09_28

### sketch_2024_09_27

### sketch_2024_09_26

### sketch_2024_09_25

### sketch_2024_09_24

### sketch_2024_09_23

### sketch_2024_09_22

### sketch_2024_09_21

### sketch_2024_09_20

### sketch_2024_09_19

### sketch_2024_09_18

### sketch_2024_09_17

### sketch_2024_09_16

### sketch_2024_09_15

### sketch_2024_09_14

### sketch_2024_09_13

### sketch_2024_09_12

based on Jim Bumgardner’s sketch https://openprocessing.org/sketch/41142 from 2011.

### sketch_2024_09_11

### sketch_2024_09_10

Trying to replicate the “Tecniquim tiling” idea from John

### sketch_2024_09_09

Inspired by Rougier’s first example in From Python to Numpy

### sketch_2024_09_08

sketch_2024_09_08 [faded-parsons-visual]

The daily sketch was a “Parsons Problems” puzzle, the code on the link produces both the “chequered image” and the YAML for the the puzzle page

### sketch_2024_09_07

### sketch_2024_09_06

### sketch_2024_09_05

### sketch_2024_09_04

### sketch_2024_09_03

### sketch_2024_09_02

### sketch_2024_09_01

#shapely

### sketch_2024_08_31

### sketch_2024_08_30

#shapely

### sketch_2024_08_29

#shapely experiment… not brilliant but fun.

### sketch_2024_08_28

### sketch_2024_08_27

### sketch_2024_08_26

### sketch_2024_08_25

Playing with Ziaplot

### sketch_2024_08_24

### sketch_2024_08_23

### sketch_2024_08_22

### sketch_2024_08_21

### sketch_2024_08_20

### sketch_2024_08_19

### sketch_2024_08_18

### sketch_2024_08_17

### sketch_2024_08_16

### sketch_2024_08_15

### sketch_2024_08_14

#networkx #3d #graph

```
G = nx.balanced_tree(4, 5)
pos = nx.spring_layout(G, dim=3, seed=1)', margin, margin)
```

### sketch_2024_08_13

#networkx #graphviz #pygraphviz

### sketch_2024_08_12

I think this is my first attempt at combining py5 and networkx :) #networkx #graphviz

### sketch_2024_08_11

### sketch_2024_08_10

### sketch_2024_08_09

### sketch_2024_08_08

### sketch_2024_08_07

### sketch_2024_08_06

### sketch_2024_08_05

### sketch_2024_08_04

### sketch_2024_08_03

#IslamicPatterns

### sketch_2024_08_02

More #IslamicPatterns studies.

### sketch_2024_08_01

#QuadraticBezier #CubicBezier #CatmullRom

### sketch_2024_07_31

Working on the curves demo sketch. Now you can switch modes and it can print the code generated. You can still drag the handles but I didn’t record it. #CubicBezier #QuadraticBezier

### sketch_2024_07_30

#QuadraticBezier curves have a single control point. I find them easier to work with, sometimes…

### sketch_2024_07_29

Updating my #BezierCurve interactive example.

### sketch_2024_07_28

#shapely buffers, subtractions and instersections

### sketch_2024_07_27

More #IslamicPattterns studies.

### sketch_2024_07_26

### sketch_2024_07_25

Studying #IslamicPatterns with hexagons.

### sketch_2024_07_24

Inspired by @JeanBaptisteEt4’s work: https://mathstodon.xyz/@JeanBaptisteEt4/112837724665792089 #tiling #tesselation

### sketch_2024_07_23

Reproducing a pixel manipulation example from Guzdial & Ericson’s Media Computation with Python!

### sketch_2024_07_22

### sketch_2024_07_21

### sketch_2024_07_20

Not at all what I wanted :( playing with layers (geodataframes) from#prettymaps, but getting confused because I’m terrible with #matplotlib data (c) OpenStreetMap contributors ttps://www.openstreetmap.org/copyright

### sketch_2024_07_19

work in progress … #osmnx data (c) OpenStreetMap contributors https://www.openstreetmap.org/copyright

### sketch_2024_07_18

### sketch_2024_07_17

### sketch_2024_07_16

### sketch_2024_07_15

### sketch_2024_07_14

Work in progress… tesselation studies

### sketch_2024_07_13

sketch_2024_07_13 [cpy5]

### sketch_2024_07_12

### sketch_2024_07_11

130 rectangles on a 5 x 5 grid of points.

### sketch_2024_07_10

100 rectangles on a 5 x 5 grid of points

### sketch_2024_07_09

### sketch_2024_07_08

A first baby step towards Tetris with py5. Python’s dicts are so cool!

### sketch_2024_07_07

### sketch_2024_07_06

### sketch_2024_07_05

### sketch_2024_07_04

Em colaboração com Nariz Coletivo d’aprés Warhol…

### sketch_2024_07_03

### sketch_2024_07_02

### sketch_2024_07_01

### sketch_2024_06_30

### sketch_2024_06_29

### sketch_2024_06_28

### sketch_2024_06_27

### sketch_2024_06_26

### sketch_2024_06_25

### sketch_2024_06_24

### sketch_2024_06_23

### sketch_2024_06_22

Kind of works… based on Stand-up Maths video abou rotation without rotation (3 skews) https://www.youtube.com/watch?v=1LCEiVDHJmc

### sketch_2024_06_21

### sketch_2024_06_20

### sketch_2024_06_19

### sketch_2024_06_18

### sketch_2024_06_17

Back to drawing text with colors for highlights. I have an earlier sketch that uses Python’s tokenize to draw source with some basic syntax coloring https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_14, this one is simpler (preparing for another idea).

### sketch_2024_06_16

another nasty SVG + pymunk failure

### sketch_2024_06_15

Not very good WIP :(

### sketch_2024_06_14

sketch_2024_06_14 [blender geometry nodes]

### sketch_2024_06_13

### sketch_2024_06_12

### sketch_2024_06_11

### sketch_2024_06_10

### sketch_2024_06_09

### sketch_2024_06_08

### sketch_2024_06_07

### sketch_2024_06_06

### sketch_2024_06_05

### sketch_2024_06_04

### sketch_2024_06_03

### sketch_2024_06_02

### sketch_2024_06_01

### sketch_2024_05_31

### sketch_2024_05_30

### sketch_2024_05_29

### sketch_2024_05_28

### sketch_2024_05_27

### sketch_2024_05_26

I’m happy with this, I converted yesterday’s sketch to an OO strategy and I could solve my “parent angle alignment” wishes.

### sketch_2024_05_25

### sketch_2024_05_24

### sketch_2024_05_23

### sketch_2024_05_22

### sketch_2024_05_21

### sketch_2024_05_20

### sketch_2024_05_19

### sketch_2024_05_18

### sketch_2024_05_17

the true May 17th’s sketch

### sketch_2024_05_16

#PyConUS I made this during my tutorial :)

### sketch_2024_05_15b

### sketch_2024_05_15

### sketch_2024_05_14

### sketch_2024_05_13

### sketch_2024_05_12

### sketch_2024_05_11

### sketch_2024_05_10

### sketch_2024_05_09

### sketch_2024_05_08

### sketch_2024_05_07

### sketch_2024_05_06

40 different ways to divide a square using points from a 3x3 grid.

### sketch_2024_05_05

WIP on “partitioning”

### sketch_2024_05_04

WIP

### sketch_2024_05_03

### sketch_2024_05_02

Revisitando uma ideia de sketch de 2018 inspirado em um sketch de manoloide (Manuel Gamboa Naom)

### sketch_2024_05_01

### sketch_2024_04_30

Formas básicas, preenchimento, traço e interação usando draw(). Esse sketch do dia é bem bobo, mas o codigo anotado vira um quebra-cabeças de Parsons em https://abav.lugaralgum.com/faded-parsons-visual

### sketch_2024_04_29

#pymunk

### sketch_2024_04_28

#pymunk

### sketch_2024_04_27

### sketch_2024_04_26

#pymunk experiments… trying to extend pymunk.Body with a DrawableBody class (instead of monkeypatching pymunk.shape.Poly & etc.)

### sketch_2024_04_25

#Numpy

### sketch_2024_04_24

#pymunk

### sketch_2024_04_23

### sketch_2024_04_22

### sketch_2024_04_21

### sketch_2024_04_20

#DebugAesthetics

### sketch_2024_04_19

### sketch_2024_04_18

40 hexágonos brancos a partir de uma grande de 3x3 pontos. Em branco em quadrados pretos, dispostos em uma grade de 8 colunas e 5 linhas em um fundo azul.

### sketch_2024_04_17

All the 125 possible not self-intersecting polygons form a 3 x 3 grid of points (without rotations and translations).

### sketch_2024_04_16

Success! All the possible simple quadrilaterals from a 3 x 3 grid of points. Yesterday I had broken my hashing function that made it possible to eliminate rotations (it is possible to eliminate reflections too, but I like to have them)

### sketch_2024_04_15

still WIP, my translation/rotation elimination strategy didn’t work (so turned it off on this output)

### sketch_2024_04_14

WIP … hard to debug

### sketch_2024_04_13

### sketch_2024_04_12

### sketch_2024_04_11

### sketch_2024_04_10

### sketch_2024_04_09

### sketch_2024_04_08

Fiddling with https://github.com/Botffy/polyskel/tree/master

### sketch_2024_04_07

### sketch_2024_04_06

#scikitgeometry #skgeom

### sketch_2024_04_05

### sketch_2024_04_04

#OpenSimplexNoise #Numpy

### sketch_2024_04_03

### sketch_2024_04_02

### sketch_2024_04_01

### sketch_2024_03_31

### sketch_2024_03_30

### sketch_2024_03_29

### sketch_2024_03_28

### sketch_2024_03_27

### sketch_2024_03_26

### sketch_2024_03_25

### sketch_2024_03_24

### sketch_2024_03_23

### sketch_2024_03_22

### sketch_2024_03_21

### sketch_2024_03_20

### sketch_2024_03_19

### sketch_2024_03_18

### sketch_2024_03_17

### sketch_2024_03_16

### sketch_2024_03_15

### sketch_2024_03_14

### sketch_2024_03_13

### sketch_2024_03_12

### sketch_2024_03_11

### sketch_2024_03_10

### sketch_2024_03_09

the red text encodes the neighbours state

### sketch_2024_03_08

WIP

### sketch_2024_03_07

### sketch_2024_03_06

### sketch_2024_03_05

### sketch_2024_03_04

### sketch_2024_03_03

### sketch_2024_03_02

### sketch_2024_03_01

### sketch_2024_02_29

```
for facet in bs:
with py5.begin_shape(py5.LINES):
py5.vertices(vs[v] for v in itertools.chain(*facet))
```

### sketch_2024_02_28

### sketch_2024_02_27

### sketch_2024_02_26

### sketch_2024_02_25

Now using #shapely as suggested by @py5coding@fosstodon.org :)

### sketch_2024_02_24

circle and line segment collision, based on: http://www.jeffreythompson.org/collision-detection/line-circle.php point_circle

### sketch_2024_02_23

rect collisions

### sketch_2024_02_22

### sketch_2024_02_21

### sketch_2024_02_20

### sketch_2024_02_19

### sketch_2024_02_18

### sketch_2024_02_17

### sketch_2024_02_16

### sketch_2024_02_15

### sketch_2024_02_14

### sketch_2024_02_13

### sketch_2024_02_12

### sketch_2024_02_11

### sketch_2024_02_10

### sketch_2024_02_09

### sketch_2024_02_08

Still capture of anolher animated gesture experiment

### sketch_2024_02_07

Another animated mouse gesture experiment

### sketch_2024_02_06

Another animated mouse gesture experiment

### sketch_2024_02_05

Another animated mouse gesture experiment

### sketch_2024_02_04

Another animated mouse gesture experiment

### sketch_2024_02_03

### sketch_2024_02_02

### sketch_2024_02_01

### sketch_2024_01_31

Sorru, no music.

### sketch_2024_01_30

#genuary30 just porting ad using a Processing shader example

### sketch_2024_01_29

#genuary29 using a 3D sdf based mesh library

### sketch_2024_01_28

### sketch_2024_01_27

#genuary27 the gif degraded the color gradients :(

### sketch_2024_01_26

#genuary26 Inspired by deconbatch’s “Poor man’s Diffusion Limited Aggregation” Istead of calculantig costly distance, I’m reading a pixel from the canvas and seeing if it falls in the “black halo”. I started not showing the halo, but changed my mind.

### sketch_2024_01_25

#genuary25

### sketch_2024_01_24

not engough energy for #genuary24 :(

### sketch_2024_01_23

#genuary23

### sketch_2024_01_22

#genuary22

### sketch_2024_01_21

#genuary21 #LibreTranslatePy #LibreTranslate

### sketch_2024_01_20

#genuary20 with shapely

### sketch_2024_01_19

#genuary19 Variation of an early flocking experiment

### sketch_2024_01_18

#genuary18 Bauhaus (inspired by Albers)

### sketch_2024_01_17

Badly done #genuray17

### sketch_2024_01_16

#genuary16

### sketch_2024_01_15

#genuary15 Physics (using pymunk)

### sketch_2024_01_14

#genuary14

### sketch_2024_01_13

#genuary13

### sketch_2024_01_12

#genuary12 “lava lamp” OpenSimplexNoise

### sketch_2024_01_11

#genuary11 inspired by Anni Albers

### sketch_2024_01_10

#genuary10 ASCII

### sketch_2024_01_09

#genuary9

### sketch_2024_01_08

#genuary8 Double-pendulum simulation based on pygame code by Bryan Brickman

### sketch_2024_01_07

#genuary7 progress bar

### sketch_2024_01_06

#genuary6 screensaver (based on earlier Processing sketches for “tweetprocessing”)

### sketch_2024_01_05

#genuary5 d’aprés Vera Molnar “interruptions” (https://collections.vam.ac.uk/item/O1193775/interruptions-drawing-vera-molnar/)

### sketch_2024_01_04

#genuary4 pixels

### sketch_2024_01_03

#genuary3 droste

### sketch_2024_01_02

#genuary2 no palette

### sketch_2024_01_01

#genuary1 #genuary2024 lots of particles

2024 | **2023** | **2022** | **2021** | **2020** | **2019** | **2018**

The sketch-a-day project, images and code repository, by Alexandre B A Villares are licensed under Attribution-NonCommercial-NoDerivatives 4.0 International , except if marked/attributed otherwise in a file or code section. Please contact for licensing questions.