Alexandre B A Villares


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.


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


sketch_2025_02_18

sketch_2025_02_18

sketch_2025_02_18 [py5]


sketch_2025_02_17

sketch_2025_02_17

sketch_2025_02_17 [py5]


sketch_2025_02_16

sketch_2025_02_16

sketch_2025_02_16 [py5]

#DelaunayTriangulations and #TravelingSalesmanProblem investigations with #SciPy can be in 3D too :)


sketch_2025_02_15

sketch_2025_02_15

sketch_2025_02_15 [py5]


sketch_2025_02_14

sketch_2025_02_14

sketch_2025_02_14 [py5]


sketch_2025_02_13

sketch_2025_02_13

sketch_2025_02_13 [py5]

#SciPy.spatial #ConvexHull and #MinimalSpanningTree


sketch_2025_02_12

sketch_2025_02_12

sketch_2025_02_12 [py5]


sketch_2025_02_11

sketch_2025_02_11

sketch_2025_02_11 [py5]

#TravellingSalesmanProblem #MinimalSpanningTree #SciPy #graphs


sketch_2025_02_10

sketch_2025_02_10

sketch_2025_02_10 [py5]

Naive “nearest neighbor” #TravelingSalesmanProblem aproximation with just #scipy, fast but crude. Maybe tomorrow I’ll try to implement something from a scientific paper on the problem, or maybe a naive genetic algorithm just for fun.


sketch_2025_02_09

sketch_2025_02_09

sketch_2025_02_09 [py5]

#networkx #TSP approximation


sketch_2025_02_08

sketch_2025_02_08

sketch_2025_02_08 [py5]

#MinimalSpanningTree #networkx


sketch_2025_02_07

sketch_2025_02_07

sketch_2025_02_07 [py5]

#networkx #MinimumSpanningTree


sketch_2025_02_06

sketch_2025_02_06

sketch_2025_02_06 [py5]


sketch_2025_02_05

sketch_2025_02_05

sketch_2025_02_05 [py5]


sketch_2025_02_04

sketch_2025_02_04

sketch_2025_02_04 [py5]


sketch_2025_02_03

sketch_2025_02_03

sketch_2025_02_03 [py5]


sketch_2025_02_02

sketch_2025_02_02

sketch_2025_02_02 [py5]


sketch_2025_02_01

sketch_2025_02_01

sketch_2025_02_01 [py5]

Another #PixelSorting experiment I didn’t heve the energy to try yesterday, also from an earlier #OSNoise sketch idea + #NumPy.


sketch_2025_01_31

sketch_2025_01_31

sketch_2025_01_31 [py5]

Using #numpy.sort on a variation of the previous sketch, animating a few frames, but the color compression is brutal :(


sketch_2025_01_30

sketch_2025_01_30

sketch_2025_01_30 [py5]


sketch_2025_01_29

sketch_2025_01_29

sketch_2025_01_29 [py5]

animated screen capture


sketch_2025_01_28

sketch_2025_01_28

sketch_2025_01_28 [py5]

animated screen capture

Interactive OpenSimplexNoise based “infinite scroll” #genuary28 #genuary2025

sketch_2025_01_27

sketch_2025_01_27

sketch_2025_01_27 [py5]


sketch_2025_01_26

sketch_2025_01_26

sketch_2025_01_26 [py5]


sketch_2025_01_25

sketch_2025_01_25

sketch_2025_01_25 [py5]


sketch_2025_01_24

sketch_2025_01_24

sketch_2025_01_24 [p5js]

I’m too sad to make my own #genuary sketch because of news of Vamoss passing away. I decided to just tweak one of his openprocessing sketches, he loved that people could work on top of his code. We will miss him so much. His inspiring energy will live on.


sketch_2025_01_23

sketch_2025_01_23

sketch_2025_01_23 [py5]


sketch_2025_01_22

sketch_2025_01_22

animation

sketch_2025_01_22 [py5]


sketch_2025_01_21

sketch_2025_01_21

sketch_2025_01_21 [py5]

#genuary21

sketch_2025_01_20

sketch_2025_01_20

sketch_2025_01_20 [py5]

#genuary20

sketch_2025_01_19

sketch_2025_01_19

sketch_2025_01_19 [py5]

#genuary2025 #genuary19 Homage to Jesús Soto.


sketch_2025_01_18

sketch_2025_01_18

sketch_2025_01_18 [py5]

A lazy rehash of a PyMunk sketch


sketch_2025_01_17

sketch_2025_01_17

sketch_2025_01_17 [py5]

#genuary2025 #genuary17


sketch_2025_01_16

sketch_2025_01_16

sketch_2025_01_16 [py5]


sketch_2025_01_15

sketch_2025_01_15

sketch_2025_01_15 [py5]

#genuary2025 #genuary15


sketch_2025_01_14

sketch_2025_01_14

sketch_2025_01_14 [py5]

#genuary2025 #genurary14


sketch_2025_01_13

sketch_2025_01_13

sketch_2025_01_13 [py5]


sketch_2025_01_12

sketch_2025_01_12

sketch_2025_01_12 [py5]

#genuary2025 #genuary12


sketch_2025_01_11

sketch_2025_01_11

sketch_2025_01_11 [py5]

#Wolfram #genuary2025 #genuary11 I wanted to optimize with NumPy but couldn’t do much, the drawing part needs more work…


sketch_2025_01_10

sketch_2025_01_10

sketch_2025_01_10 [py5]

#genuary2025 #genuary10 Tau is the only number contant… (based on genuary 8)


sketch_2025_01_09

sketch_2025_01_09

sketch_2025_01_09 [py5]

I’d love to see Wolfram’s “rule 30” on my bus seats! #genuary9 #genuary2025


sketch_2025_01_08

sketch_2025_01_08

sketch_2025_01_08 [py5]

4000 white points randomly selected from the volume of a sphere, rotated over the Y axis and redrawn 250 times. #genuary2025 #genuary8


sketch_2025_01_07

sketch_2025_01_07

sketch_2025_01_07 [python]

#pyautogui #LibreOffice


sketch_2025_01_06

sketch_2025_01_06

sketch_2025_01_06 [py5]


sketch_2025_01_05

sketch_2025_01_05

animation

sketch_2025_01_05 [py5]


sketch_2025_01_04

sketch_2025_01_04

sketch_2025_01_04 [py5]


sketch_2025_01_03

sketch_2025_01_03

The next day I think I improved it:

sketch_2025_01_03b

sketch_2025_01_03 [py5]

#genuary3 #genuary2025 “42 lines of code”


sketch_2025_01_02

sketch_2025_01_02

sketch_2025_01_02 [py5]

#genuary2 #genuary2025 layers and layers.


sketch_2025_01_01

sketch_2025_01_01

sketch_2025_01_01 [py5]


2025 | 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.