sketch-a-day
coding a visual idea a day
2025 | 2024 | 2023 | 2022 | 2021 | 2020 | 2019 | 2018
sketch_2024_12_31

Hoping 2025 will be a good year!
sketch_2024_12_30

sketch_2024_12_29

sketch_2024_12_28
sketch_2024_12_27

sketch_2024_12_26

sketch_2024_12_25

sketch_2024_12_24

sketch_2024_12_23

sketch_2024_12_22

tris = sequence.reshape(20,3)
face_centers = vs[tris].mean(axis=1)
sketch_2024_12_21

Preparing for an icosahedron!
phi = (py5.sqrt(5) + 1) / 2
a = phi * f
b = 1 * f
vs = np.array([
(a, b, 0),
(a, -b, 0),
(-a, -b, 0),
(-a, b, 0),
(b, 0, a),
(-b, 0, a),
(-b, 0, -a),
(b, 0, -a),
(0, a, b),
(0, a, -b),
(0, -a, -b),
(0, -a, b),
])
sketch_2024_12_20

A tetrahedron with #py5 and a bit of #NumPy … Maybe tomorrow I’ll tackle the icosahedron, but if I’m tired, I might do just use the built-in box() for the hexahedron ;)
sketch_2024_12_19

sketch_2024_12_18

sketch_2024_12_17

#Voronoi #Delaunay #scipy
sketch_2024_12_16

sketch_2024_12_15

sketch_2024_12_14

sketch_2024_12_13

Work in progress… things that used to work (in previous studies) look confusingly broken.
sketch_2024_12_12

Maybe, just maybe, I’m getting to enjoy using #NumPy.
sketch_2024_12_11

sketch_2024_12_10

Slowly working on some #NumPy skill so I can get back to my combinatorics explorations (thinking about removing rotations and reflections…)
sketch_2024_12_09

sketch_2024_12_08

#vtracer raster to svg tool from the visioncortex group.
sketch_2024_12_07

sketch_2024_12_06

sketch_2024_12_05

sketch_2024_12_04

sketch_2024_12_03

sketch_2024_12_02

#scipy #Voronoi #shapely
sketch_2024_12_01

sketch_2024_11_30

Another “hello py5” sketch made during an impromptu “corridor track” tutorial
sketch_2024_11_29

sketch_2024_11_28

sketch_2024_11_27

sketch_2024_11_26

sketch_2024_11_25

sketch_2024_11_24

sketch_2024_11_23

sketch_2024_11_22

sketch_2024_11_21

sketch_2024_11_20

sketch_2024_11_19

sketch_2024_11_18

sketch_2024_11_17

sketch_2024_11_16

sketch_2024_11_15

Ramalho @lr@ciberlandia.pt (e Feurzeig, , Solomon & Papert) tinham razão: andar e virar é mais fácil…
sketch_2024_11_14

sketch_2024_11_13

sketch_2024_11_12

sketch_2024_11_11

I love to play/create an #LSystem, check discussion at https://github.com/py5coding/py5generator/discussions/555
sketch_2024_11_10

sketch_2024_11_09

sketch_2024_11_08

sketch_2024_11_07

sketch_2024_11_06

sketch_2024_11_05

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