Alexandre B A Villares


sketch-a-day

coding a visual idea a day


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


sketch_2020_12_31c_recursive_grid

sketch_2020_12_31c_recursive_grid

sketch_2020_12_31c_recursive_grid [Py.Processing]


sketch_2020_12_30c_recursive_grid

sketch_2020_12_30c_recursive_grid

Runnning on the browser with pyp5js pyodide mode Animated GIF


sketch_202012_29c_recursive_grid

sketch_2020_12_29c_recursive_grid_

sketch_202012_29c_recursive_grid [Py.Processing]


sketch_2020_12_28c_recursive_grid

sketch_2020_12_28c_recursive_grid

sketch_2020_12_28c_recursive_grid [Py.Processing]


sketch_2020_12_27c_recursive_grid

sketch_2020_12_27c_recursive_grid

sketch_2020_12_27c_recursive_grid [Py.Processing]


sketch_2020_12_26c_recursive_grid

sketch_2020_12_26c_recursive_grid

sketch_2020_12_26c_recursive_grid [Py.Processing]


sketch_2020_12_25c_recursive_grid

sketch_2020_12_25c_recursive_grid

sketch_2020_12_25c_recursive_grid [Py.Processing]


sketch_2020_12_24c_recursive_grid

sketch_2020_12_24c_recursive_grid

sketch_2020_12_24c_recursive_grid [Py.Processing]


sketch_2020_12_23d_ntsutae

sketch_2020_12_23d_ntsutae

sketch_2020_12_23d_ntsutae [Py.Processing]

Based on a sketch by @ntsutae. Check out my tweet with a recorded gif .


sketch_2020_12_22a

sketch_2020_12_22a

sketch_2020_12_22a [Py.Processing]


sketch_2020_12_21a

sketch_2020_12_21a

sketch_2020_12_21a [Py.Processing]


sketch_2020_12_20c_recursive_grid

sketch_2020_12_20c_recursive_grid

sketch_2020_12_20c_recursive_grid [Py.Processing]


sketch_2020_12_19c_recursive_grid

sketch_2020_12_19c_recursive_grid

sketch_2020_12_19c_recursive_grid [Py.Processing]

sketch_2020_12_20 is kind of “wrong” (my merge cell function is broken) but I like it “wrong”.


sketch_2020_12_18c_recursive_grid

sketch_2020_12_18c_recursive_grid

sketch_2020_12_18c_recursive_grid [Py.Processing]


sketch_2020_12_17a_3D_revolve

sketch_2020_12_17a_3D_revolve

sketch_2020_12_17a_3D_revolve [Py.Processing]

3D studies with Julio Mariutti, inspired by: https://seoi.net/peni3d/


sketch_2020_12_16c_recursive_grid

sketch_2020_12_16c_recursive_grid

sketch_2020_12_16c_recursive_grid [Py.Processing]


sketch_2020_12_15c_recursive_grid

sketch_2020_12_15c_recursive_grid

sketch_2020_12_15c_recursive_grid [Py.Processing]


sketch_2020_12_14c_recursive_grid

sketch_2020_12_14c_recursive_grid

sketch_2020_12_14c_recursive_grid [Py.Processing]


sketch_2020_12_13c_recursive_grid

sketch_2020_12_13c_recursive_grid

sketch_2020_12_13c_recursive_grid [Py.Processing]


sketch_2020_12_12c_recursive_grid

sketch_2020_12_12c_recursive_grid

sketch_2020_12_12c_recursive_grid [Py.Processing]


sketch_2020_12_11a

sketch_2020_12_11a

sketch_2020_12_11a [Py.Processing]


sketch_2020_12_10a_naive_graph

sketch_2020_12_10a_naive_graph

sketch_2020_12_10a_naive_graph [Py.Processing]


sketch_2020_12_09c

sketch_2020_12_09c

sketch_2020_12_09c [Py.Processing]


sketch_2020_12_08c

sketch_2020_12_08c

sketch_2020_12_08c [Py.Processing]


sketch_2020_12_07c_mesh

sketch_2020_12_07c_mesh

sketch_2020_12_07c_mesh [Py.Processing]


sketch_2020_12_06c_mesh

sketch_2020_12_06c_mesh

sketch_2020_12_06c_mesh [Py.Processing]


sketch_2020_12_06b_mesh_delaunay_py

sketch_2020_12_06b_mesh_delaunay_py

sketch_2020_12_06b_mesh_delaunay_py [Py.Processing]


sketch_2020_12_05b_mesh_voronoi

sketch_2020_12_05b_mesh_voronoi

sketch_2020_12_05b_mesh_voronoi sketch_2020_12_05b_mesh_voronoi_py [Py.Processing]


sketch_2020_12_04a

sketch_2020_12_04a

sketch_2020_12_04a_rotated_rect_stuff [Py.Processing]


sketch_2020_12_03a

sketch_2020_12_03a

sketch_2020_12_03a [Py.Processing]


sketch_2020_12_02a

sketch_2020_12_02a

sketch_2020_12_02a [Py.Processing]


sketch_2020_12_01a

sketch_2020_12_01a

sketch_2020_12_01a [Py.Processing]


sketch_2020_11_30a

sketch_2020_11_30a

sketch_2020_11_30a [Py.Processing]


sketch_2020_11_29a

sketch_2020_11_29a

sketch_2020_11_29a [Py.Processing]


sketch_2020_11_28a

sketch_2020_11_28a

sketch_2020_11_28a [Py.Processing]


sketch_2020_11_27b

sketch_2020_11_27b

sketch_2020_11_27b [Py.Processing]


sketch_2020_11_26a

sketch_2020_11_26a

sketch_2020_11_26a [Py.Processing]


sketch_2020_11_25b

sketch_2020_11_25b

sketch_2020_11_25b [Py.Processing]


sketch_2020_11_25a

sketch_2020_11_25a

sketch_2020_11_25a [Py.Processing]


sketch_2020_11_24a

sketch_2020_11_24a

sketch_2020_11_24a [Py.Processing]


sketch_2020_11_23a

sketch_2020_11_23a

sketch_2020_11_23a [Py.Processing]


sketch_2020_11_22a

sketch_2020_11_22a

sketch_2020_11_22a [Py.Processing]


sketch_2020_11_21a

sketch_2020_11_21a

sketch_2020_11_21a [Py.Processing]


sketch_2020_11_20a

sketch_2020_11_20a

sketch_2020_11_20a [Py.Processing]


sketch_2020_11_19a

sketch_2020_11_19a

sketch_2020_11_19a [Py.Processing]


sketch_2020_11_18a

sketch_2020_11_18a

sketch_2020_11_18a [Py.Processing]


sketch_2020_11_17a

sketch_2020_11_17a

sketch_2020_11_17a [Py.Processing]


sketch_2020_11_16a

sketch_2020_11_16a

sketch_2020_11_16a [Py.Processing]


sketch_2020_11_15a

sketch_2020_11_15a

sketch_2020_11_15a [Py.Processing]


sketch_2020_11_14a

sketch_2020_11_14a

sketch_2020_11_14a [Py.Processing]


sketch_2020_11_13a

sketch_2020_11_13a

sketch_2020_11_13a [Py.Processing]


sketch_2020_11_12notebook

sketch_2020_11_12notebook

sketch_2020_11_12notebook [Py.Processing]


sketch_2020_11_11b

sketch_2020_11_11b

sketch_2020_11_11b [Py.Processing]


sketch_2020_11_10reduce_images

sketch_2020_11_10reduce_images

sketch_2020_11_10reduce_images [Py.Processing]


sketch_2020_11_09arcs_for_pyp5js

sketch_2020_11_09arcs_for_pyp5js

sketch_2020_11_09arcs_for_pyp5js [Py.Processing]


sketch_2020_11_08belas_artes

sketch_2020_11_08belas_artes

sketch_2020_11_08belas_artes [Py.Processing]


sketch_2020_11_07a

sketch_2020_11_07a

sketch_2020_11_07 [Py.Processing]

Based on truchet code by Bernado Fontes during the Python Brasil 2020 tutorial! [running on pyodide!]https://raw.githubusercontent.com/villares/sketch-a-day/main/(https://abav.lugaralgum.com/sketch-a-day/2020/sketch_2020_11_07pyodide/)


sketch_2020_11_06rotate_images

sketch_2020_11_06rotate_images

sketch_2020_11_06rotate_images [Py.Processing]


sketch_2020_11_05_LSystem

sketch_2020_11_05_LSystem

sketch_2020_11_05_LSystem [Py.Processing]


sketch_2020_11_04_LSystem

sketch_2020_11_04_LSystem

sketch_2020_11_04_LSystem [Py.Processing]


sketch_2020_11_03_LSystem

sketch_2020_11_03_LSystem

sketch_2020_11_03_LSystem [Py.Processing]


sketch_2020_11_02polys

sketch_2020_11_02polys

sketch_2020_11_02polys [Py.Processing]


sketch_2020_11_01a

sketch_2020_11_01a

sketch_2020_11_01a [Py.Processing]


sketch_2020_10_31a

sketch_2020_10_31a

sketch_2020_10_31a [Py.Processing]


sketch_2020_10_30a

sketch_2020_10_30a

sketch_2020_10_30a [Py.Processing]


sketch_2020_10_29a

sketch_2020_10_29a

sketch_2020_10_29a [Py.Processing]


sketch_2020_10_28b

sketch_2020_10_28b

sketch_2020_10_28b [Py.Processing]


sketch_2020_10_27b

sketch_2020_10_27b

sketch_2020_10_27b [Py.Processing]


sketch_2020_10_26b

sketch_2020_10_26b

sketch_2020_10_26b [Py.Processing]


sketch_2020_10_25a

sketch_2020_10_25a

sketch_2020_10_25a [Py.Processing]


sketch_2020_10_24a

sketch_2020_10_24a

sketch_2020_10_24a [Py.Processing]


sketch_2020_10_23_LSystem

sketch_2020_10_23_LSystem

sketch_2020_10_23_LSystem [Py.Processing]


sketch_2020_10_22_LSystem

sketch_2020_10_22_LSystem

sketch_2020_10_22_LSystem [Py.Processing]


sketch_2020_10_21_LSystem

sketch_2020_10_21_LSystem

sketch_2020_10_21_LSystem [Py.Processing]


sketch_2020_10_20voronoi

sketch_2020_10_20voronoi

sketch_2020_10_20voronoi [Py.Processing]


sketch_2020_10_19a

sketch_2020_10_19a

sketch_2020_10_19a [Py.Processing]


sketch_2020_10_18b

sketch_2020_10_18b

sketch_2020_10_18b [Py.Processing]


sketch_2020_10_17a

sketch_2020_10_17a

sketch_2020_10_17a [Py.Processing]


sketch_2020_10_16a

sketch_2020_10_16a

sketch_2020_10_16a [Py.Processing]


sketch_2020_10_15a

sketch_2020_10_15a

sketch_2020_10_15a [Py.Processing]


sketch_2020_10_14a

sketch_2020_10_14a

sketch_2020_10_14a [Py.Processing]


sketch_2020_10_13a

sketch_2020_10_13a

sketch_2020_10_13a [Py.Processing]


sketch_2020_10_12a

sketch_2020_10_12a

sketch_2020_10_12a [Py.Processing]


sketch_2020_10_11a

sketch_2020_10_11a

sketch_2020_10_11a [Py.Processing]


sketch_2020_10_10a

sketch_2020_10_10a

sketch_2020_10_10a [Py.Processing]


sketch_2020_10_09a

sketch_2020_10_09a

sketch_2020_10_09a [Py.Processing]


sketch_2020_10_08a

sketch_2020_10_08a

sketch_2020_10_08a [Py.Processing]


sketch_2020_10_07sel_sort

sketch_2020_10_07sel_sort

sketch_2020_10_07sel_sort [Py.Processing]


sketch_2020_10_06sel_sort

sketch_2020_10_06sel_sort

sketch_2020_10_06sel_sort [Py.Processing]


sketch_2020_10_05d

sketch_2020_10_05d

sketch_2020_10_05d [Py.Processing]


sketch_2020_10_04c

sketch_2020_10_04c

sketch_2020_10_04c [Py.Processing]


sketch_2020_10_03c

sketch_2020_10_03c

sketch_2020_10_03c [Py.Processing]

Inspired by @inconvergent and Manfred Mohr(obviously mine is not a 10th as good).


sketch_2020_10_02c

sketch_2020_10_02c

sketch_2020_10_02c [Py.Processing]


sketch_2020_10_01a

sketch_2020_10_01a

sketch_2020_10_01a [Py.Processing]


sketch_2020_09_30a

sketch_2020_09_30a

sketch_2020_09_30a [Py.Processing]


sketch_2020_09_29a

sketch_2020_09_29a

sketch_2020_09_29a [Py.Processing]


sketch_2020_09_28a

sketch_2020_09_28a

sketch_2020_09_28a [Py.Processing]


sketch_2020_09_27a

sketch_2020_09_27a

sketch_2020_09_27a [Py.Processing]


sketch_2020_09_26a

sketch_2020_09_26a

sketch_2020_09_26a [Py.Processing]

More at villares/arc_tangents_and_bezier_studies


sketch_2020_09_25a

sketch_2020_09_25a

sketch_2020_09_25a [Py.Processing]


sketch_2020_09_24a

sketch_2020_09_24a

sketch_2020_09_24a [Py.Processing]


sketch_2020_09_23a

sketch_2020_09_23a

sketch_2020_09_23a [Py.Processing]


sketch_2020_09_22a

sketch_2020_09_22a

sketch_2020_09_22a [Py.Processing]


sketch_2020_09_21a

sketch_2020_09_21a

sketch_2020_09_21a [Py.Processing]


sketch_2020_09_20polycubes_p5py

sketch_2020_09_20polycubes_p5py

sketch_2020_09_20polycubes_p5py [p5py]]

A first attempt at p5py with 3D, porting the previous sketch.


sketch_2020_09_19polycubes

sketch_2020_09_19polycubes

sketch_2020_09_19polycubes [Py.Processing]

Tried with the 6922 octacubes.


sketch_2020_09_18polycubes

sketch_2020_09_18polycubes

sketch_2020_09_18polycubes [Py.Processing]

From polyominoes to polycubes.


sketch_2020_09_17deque

sketch_2020_09_17deque

sketch_2020_09_17deque [Py.Processing]


import collections as c;s=255;h=c.deque([(0,0)],s)
def setup():size(s*2,s*2);noStroke();colorMode(3)
def draw():background(51);[(fill(i,s,s,s/2),circle(x,y,i/5))for i, (x, y) in enumerate(h)];h.append(h.popleft())
def mouseDragged():h.append((mouseX,mouseY))#つぶやきProcessing

sketch_2020_09_16a_deque_randomwalk

sketch_2020_09_16a_deque_randomwalk

sketch_2020_09_16a_deque_randomwalk [Py.Processing]

import collections as c;h=256;d=c.deque([PVector()],h);t=translate;R=lambda:int(random(-2,2))*9#つぶやきProcessing
def setup():size(h*2,h*2,P3D);colorMode(3)
def draw():clear();t(h,h);u=d[-1];[(t(*p.sub(u/9)),fill(p.z%h,h,h),box(9),t(*p*-1))for p in d];d.append(u+(R(),R(),R()))


sketch_2020_09_15polyominoes

sketch_2020_09_15polyominoes

sketch_2020_09_15polyominoes [Py.Processing]

Code from a talk by Hamish Campbell on Kiwi Pycon 2013, I just added some silly drawing code. https://pyvideo.org/kiwi-pycon-2013/polyominoes-an-exploration-in-problem-solving-w.html

For a clever obfuscated very short ominoe-counter: https://gist.github.com/hamishcampbell/6472043 (sent by Hamish Campbell, @polemic on twitter)


sketch_2020_09_14vpython

sketch_2020_09_14vpython

sketch_2020_09_14vpython [VPython]

Try it online here: https://www.glowscript.org/#/user/villares/folder/MyPrograms/program/boxes


sketch_2020_09_13a

sketch_2020_09_13a

sketch_2020_09_13b

sketch_2020_09_13b

sketch_2020_09_13a sketch_2020_09_13b [Py.Processing]

V=PVector;t=translate;w=512;m=256;l=[V()];c=1e2
def setup():size(w,w,P3D)
def draw():u=l[-1];M=lambda m:5-5*(int(noise(m+len(l)/c)*c)%3);clear();t(*[m]*3);rotateX(len(l)/c);[(fill(c+b.x%c,c+b.y%c,c+b.x%c),t(*b),box(5),t(*b*-1),b.sub(u/9))for b in l];l[:]+=[u+V(M(1),M(2),M(3))]
V=PVector;t=translate;w=512;m=256;l=[V()];c=1e2
def setup():size(w,w,P3D)
def draw():u=l[-1];M=lambda r:[-5+5*(int(noise(m+b.magSq()/w)*c)%r)for m in range(3)];clear();t(*[m]*3);rotateX(len(l)/c);[(fill(*M(52)),t(*b),box(5),t(*b*-1),b.sub(u/9))for b in l];l[:]+=[u+M(3)]

sketch_2020_09_12flat

sketch_2020_09_12flat

sketch_2020_09_12flat [Python + flat]


sketch_2020_09_11a

sketch_2020_09_11a

sketch_2020_09_11a [Py.Processing]


sketch_2020_09_10a

sketch_2020_09_10a

sketch_2020_09_10a [Py.Processing]


sketch_2020_09_09_walker3D

sketch_2020_09_09_walker3D

sketch_2020_09_09_walker3D [Py.Processing]


sketch_2020_09_08pyp5js

sketch_2020_09_08pyp5js

sketch_2020_09_08pyp5js [pyp5js]

[Check the sketch online!]https://raw.githubusercontent.com/villares/sketch-a-day/main/(https://abav.lugaralgum.com/sketch-a-day/2020/sketch_2020_09_08pyp5js/)


sketch_2020_09_07pyp5js

sketch_2020_09_07pyp5js

sketch_2020_09_07pyp5js [pyp5js]

[Check the sketch online!]https://raw.githubusercontent.com/villares/sketch-a-day/main/(https://abav.lugaralgum.com/sketch-a-day/2020/sketch_2020_09_07pyp5js/)


sketch_2020_09_06flat

sketch_2020_09_06flat

sketch_2020_09_06flat [Python + flat]


sketch_2020_09_05flat

sketch_2020_09_05flat

sketch_2020_09_05flat [Python + flat]

This one, with lots of help from Marco Macarena, adds some HTML input.

Check it out at https://sketch-2020-09-05flat.glitch.me/?colunas=8&seed=10&sf=12


sketch_2020_09_04sliders

sketch_2020_09_04sliders

sketch_2020_09_04sliders [Py.Processing]

Fiddling with ControlP5, a Processing lib for GUI, but on Python mode.


sketch_2020_09_03flat

sketch_2020_09_03flat

sketch_2020_09_03flat [Python + flat]

My first glitch.com based sketch, visit https://sketch-2020-09-03a.glitch.me/ for new grids! The base for this “glitch” is a fork of (@aparrish) Allison Parrish’s amazing example using Flat + Bezmerizing to draw SVG.

I’m using a bizarre set of functions in flat_processing.py to make flat look like Processing Python mode I’m more used to.


sketch_2020_09_02flat

sketch_2020_09_02flat

sketch_2020_09_02flat [Python + flat]


sketch_2020_09_01flat

sketch_2020_09_01flat

sketch_2020_09_01flat [Python + flat]


sketch_2020_08_31flat

sketch_2020_08_31flat

sketch_2020_08_31flat [Python + flat]


sketch_2020_08_30flat

sketch_2020_08_30flat

sketch_2020_08_30flat [Python + flat]


sketch_2020_08_29flat

sketch_2020_08_29flat

sketch_2020_08_29flat[Python + flat]


sketch_2020_08_28d

sketch_2020_08_28d

sketch_2020_08_28d [Py.Processing]


sketch_2020_08_27fib

sketch_2020_08_27fib

sketch_2020_08_27fib [Py.Processing]


sketch_2020_08_26a

sketch_2020_08_26a

sketch_2020_08_26a [Py.Processing]


sketch_2020_08_25c

sketch_2020_08_25c

sketch_2020_08_25c [Py.Processing]

And there is a looping version posted as #つぶやきProcessing:

#つぶやきProcessing #Python
w,h = 500,250
def setup():size(w,w)
def draw():
fill(0,0,200,8)
rect(0,0,w,w)
translate(h,h)
a,k=0,sin(frameCount/12.)
while a<TWO_PI:
i,j=w+sin(a),h+cos(a)
n=noise(i,j,k)
x,y=n*h*sin(a),n*h*cos(a)
point(x,y)
a+=.01 pic.twitter.com/zNIfWNHOvo

— Alexandre B A Villares☂ (@villares) August 25, 2020

sketch_2020_08_24f

sketch_2020_08_24f

sketch_2020_08_24f [Py.Processing]


sketch_2020_08_23d

sketch_2020_08_23d

sketch_2020_08_23d [p5js]

Based on work by Carlos @vamoss in homage to one the first Brazilian Designers: Eduardo Lopes, inspired by his work shown in this paper from 1971, https://www.scielo.br/scielo.php?script=sci_arttext&pid=S0034-75901971000100008&lang=pt


sketch_2020_08_22a

sketch_2020_08_22a

sketch_2020_08_22a [Py.Processing]


sketch_2020_08_21a

sketch_2020_08_21a

sketch_2020_08_21a [Py.Processing]


sketch_2020_08_20a

sketch_2020_08_20a

sketch_2020_08_20a [Py.Processing]


sketch_2020_08_19b

sketch_2020_08_19b

sketch_2020_08_19b [Py.Processing]


sketch_2020_08_18a

sketch_2020_08_18a

sketch_2020_08_18a [Py.Processing]


sketch_2020_08_17a

sketch_2020_08_17a

sketch_2020_08_17a [Py.Processing]


sketch_2020_08_16a

sketch_2020_08_16a

sketch_2020_08_16a [Py.Processing]


sketch_2020_08_15a

sketch_2020_08_15a

sketch_2020_08_15a [Py.Processing]

Added a method to the graph object to detect cycles, now I can have non-cycling graphs! (I removed the offscreen buffer viz code)


sketch_2020_08_14a

sketch_2020_08_14a

sketch_2020_08_14a [Py.Processing]

Drag to swap nodes!


sketch_2020_08_13a

sketch_2020_08_13a

sketch_2020_08_13a [Py.Processing]

Now diameters are proportional to the number of connections (vertex degree)


sketch_2020_08_12a

sketch_2020_08_12a

sketch_2020_08_12a [Py.Processing]

Still somewhat broken, but I’m very happy with adding my “var bars”


sketch_2020_08_11b

sketch_2020_08_11b

sketch_2020_08_11b [Py.Processing]

Very broken! The neighbourhood thing is a mess, and now loses grid-points on shuffle.


sketch_2020_08_10b

sketch_2020_08_10b

sketch_2020_08_10b [Py.Processing]

Nice drawing from the thread on a offscreen buffer!


sketch_2020_08_09b

sketch_2020_08_09b

sketch_2020_08_09a | sketch_2020_08_09b

[Py.Processing]


sketch_2020_08_08a

sketch_2020_08_08a

sketch_2020_08_08a [Py.Processing]


sketch_2020_08_07a

sketch_2020_08_07a

sketch_2020_08_07a [Py.Processing]


sketch_2020_08_05a

sketch_2020_08_05a

sketch_2020_08_05a [Py.Processing]


sketch_2020_08_04a

sketch_2020_08_04a

sketch_2020_08_04a [Py.Processing]


sketch_2020_08_03a

sketch_2020_08_03a

sketch_2020_08_03a [Py.Processing]


sketch_2020_08_02e

sketch_2020_08_02e

sketch_2020_08_02e [Py.Processing]


sketch_2020_08_01a

sketch_2020_08_01a

sketch_2020_08_01a [Py.Processing]


sketch_2020_07_31a

sketch_2020_07_31a

sketch_2020_07_31a [Py.Processing]

Combining a very rudimentary particle system with a force from the average “optical flow” vector from OpenCV.


sketch_2020_07_30d

sketch_2020_07_30d

sketch_2020_07_30d [Py.Processing]

Porting to Python and making a minimal “optical flow” OpenCV example


sketch_2020_07_29b

sketch_2020_07_29b

sketch_2020_07_29b [Py.Processing]

Still playing with a “frame difference” Video Capture example from the standard Video library.


sketch_2020_07_28b

sketch_2020_07_28b

sketch_2020_07_28b [Py.Processing]

Playing with a “frame difference” Video Capture example from the standard Video library (porting to Python mode as usual).


sketch_2020_07_27c

sketch_2020_07_27c

sketch_2020_07_27c [Py.Processing]

Took a step back and placed boxes (to make it easier to see the section view on top)


sketch_2020_07_26c

sketch_2020_07_26c

sketch_2020_07_26c [Py.Processing]

Fiddling with the probability dictionary for map generation.


sketch_2020_07_25c

sketch_2020_07_25c

sketch_2020_07_25c [Py.Processing]


sketch_2020_07_24c

sketch_2020_07_24c

sketch_2020_07_24c [Py.Processing]


sketch_2020_07_23c

sketch_2020_07_23c

sketch_2020_07_23c [Py.Processing]

Added nice triangles going to the average heights of square corners.


sketch_2020_07_22c

sketch_2020_07_22c

sketch_2020_07_22c [Py.Processing]

Refactoring ugly and old code.


sketch_2020_07_21f

sketch_2020_07_21f

sketch_2020_07_21f [Py.Processing]

Porting Video Capture examples to Python Mode (from the standard Processing Video)


sketch_2020_07_20e

sketch_2020_07_20e

sketch_2020_07_20e [Py.Processing]

Porting Video Capture examples to Python Mode (from the standard Processing Video)


sketch_2020_07_19b

sketch_2020_07_19b

sketch_2020_07_19b [Py.Processing]

Added some gravity (particle-particle atraction) but I’m not really pleased.


sketch_2020_07_18b

sketch_2020_07_18b

sketch_2020_07_18b [Py.Processing]

I ported a Khan Academy version of a Nature of Code example to p5js here and then to Python mode.


sketch_2020_07_16a

sketch_2020_07_16a

sketch_2020_07_16a [Py.Processing]


sketch_2020_07_15a

sketch_2020_07_15a

sketch_2020_07_15a [Py.Processing]

Porting a Jeremy Douglass example to Python mode. I want to use this with “graph walking” latter on.


sketch_2020_07_14a

sketch_2020_07_14a

sketch_2020_07_14b

sketch_2020_07_14b

sketch_2020_07_14c

sketch_2020_07_14c

sketch_2020_07_14a sketch_2020_07_14b sketch_2020_07_14c [Py.Processing]

Trying to visualize a graph with a naïve implementation.


sketch_2020_07_13a

sketch_2020_07_13a

sketch_2020_07_13a [Py.Processing]


sketch_2020_07_12a

sketch_2020_07_12a

sketch_2020_07_12a [Py.Processing]


sketch_2020_07_11a

sketch_2020_07_11a

sketch_2020_07_11a [Py.Processing]


sketch_2020_07_10a

sketch_2020_07_10a

sketch_2020_07_10a [Py.Processing]

Based on work by André Burnier, ported from Processing to Python by Thiago Bellotti and Alexandre Villares. Playing with the Tomorrow font by Tony de Marco e Monica Rizzolli. Using geomerative, a library by Ricard Marxer.


sketch_2020_07_09a

sketch_2020_07_09a

sketch_2020_07_09a [Py.Processing]


sketch_2020_07_08a

sketch_2020_07_08a

sketch_2020_07_08a [Py.Processing]


sketch_2020_07_07a

sketch_2020_07_07a

sketch_2020_07_07a [Py.Processing]


sketch_2020_07_06a

sketch_2020_07_06a

sketch_2020_07_06a [Py.Processing]


sketch_2020_07_05a

sketch_2020_07_05a

sketch_2020_07_05a [Py.Processing]


sketch_2020_07_04a

sketch_2020_07_04a

sketch_2020_07_04a [Py.Processing]


sketch_2020_07_03a

sketch_2020_07_03a

sketch_2020_07_03a [Py.Processing]


sketch_2020_07_02a

sketch_2020_07_02a

sketch_2020_07_02a [Py.Processing]


sketch_2020_06_30a

sketch_2020_06_30a

sketch_2020_06_30a [Py.Processing]


sketch_2020_06_29a

sketch_2020_06_29a

sketch_2020_06_29a [Py.Processing]


sketch_2020_06_28a

sketch_2020_06_28a

sketch_2020_06_28a [Py.Processing]


sketch_2020_06_27a

sketch_2020_06_27a

sketch_2020_06_27a [Py.Processing]


sketch_2020_06_26a

sketch_2020_06_26a

sketch_2020_06_26a [Py.Processing]


sketch_2020_06_25b

sketch_2020_06_25b

sketch_2020_06_25b [Py.Processing]


sketch_2020_06_24a

sketch_2020_06_24a

sketch_2020_06_24a [Py.Processing]


sketch_2020_06_23a

sketch_2020_06_23a

sketch_2020_06_23a [Py.Processing]


sketch_2020_06_21c

sketch_2020_06_21c

sketch_2020_06_21c [Py.Processing]

Animation for teaching atan2() in material-aulas


sketch_2020_06_20a

sketch_2020_06_20a

sketch_2020_06_20a [Py.Processing]

Invitation for Noite de Processing :)


sketch_2020_06_19a

sketch_2020_06_19a

sketch_2020_06_19a [Py.Processing]

Animation for teaching an alternative to input() in material-aulas

def input(message=''):
    from javax.swing import JOptionPane
    return JOptionPane.showInputDialog(frame, message)

sketch_2020_06_18a

sketch_2020_06_18a

sketch_2020_06_18a [Py.Processing]


sketch_2020_06_17a

sketch_2020_06_17a

sketch_2020_06_17a [Py.Processing]


sketch_2020_06_16a

sketch_2020_06_16a

sketch_2020_06_16a [Py.Processing]


sketch_2020_06_15a

sketch_2020_06_15a

sketch_2020_06_15a [Py.Processing]


sketch_2020_06_14a

sketch_2020_06_14a

sketch_2020_06_14a [Py.Processing]

First aproximation of ‘lerp recursive grid’.


sketch_2020_06_13a

sketch_2020_06_13a

sketch_2020_06_13a [Py.Processing]

Recrusive grid


sketch_2020_06_12a

sketch_2020_06_12a

sketch_2020_06_12a [Py.Processing]


sketch_2020_06_11a

sketch_2020_06_11a

sketch_2020_06_11a [Py.Processing]


sketch_2020_06_11b

sketch_2020_06_11b

sketch_2020_06_11b [Py.Processing]


sketch_2020_06_10a

sketch_2020_06_10a

sketch_2020_06_10a [Py.Processing]


sketch_2020_06_10b

sketch_2020_06_10b

sketch_2020_06_10b [Py.Processing]


sketch_2020_06_09a

sketch_2020_06_09a

sketch_2020_06_09a [Py.Processing]


sketch_2020_06_08b

sketch_2020_06_08b

sketch_2020_06_08b [Py.Processing]

Recreating a classic in class today: Georg Nees’ Schotter https://collections.vam.ac.uk/item/O221321/s


sketch_2020_06_07a

sketch_2020_06_07a

sketch_2020_06_07a [Py.Processing]

Diagonal serpinsky-like

(-t + abs((x + y) | (x - y + t * 2)) ** a) % b < c


sketch_2020_06_06a

sketch_2020_06_06a

sketch_2020_06_06a [Py.Processing]

Removed the scaling. Now walking +.1 on the ‘a’ of: (t + abs((x + y - t) ^ (x - y + t)) ** a) % b < c


sketch_2020_06_05a

sketch_2020_06_05a

sketch_2020_06_05a [Py.Processing]

Adding some HSB color :) (still the @nstutae pattern)


sketch_2020_06_04a

sketch_2020_06_04a

sketch_2020_06_04a [Py.Processing]

Most wonderful pattern generator copied from @ntsutae


sketch_2020_06_03a

sketch_2020_06_03a

sketch_2020_06_03a [Py.Processing]

Based on tweets by @ntsutae


sketch_2020_06_02a

sketch_2020_06_02a

sketch_2020_06_02a [Py.Processing]

Based on tweets by @ntsutae


sketch_2020_06_01a

sketch_2020_06_01a

sketch_2020_06_01a [Py.Processing]

More easing gif examples for ‘material-aulas’ (there is version a and b with different functions)


sketch_2020_05_31a

sketch_2020_05_31a

sketch_2020_05_31a [Py.Processing]

John´s sigmoid as easing + Golan Levin’s sigmoid


sketch_2020_05_30a

sketch_2020_05_30a

sketch_2020_05_30a [Py.Processing]

John’s sigmoidMap()


sketch_2020_05_29a

sketch_2020_05_29a

sketch_2020_05_29a [Py.Processing]

lerpColor()


sketch_2020_05_28b

sketch_2020_05_28b

sketch_2020_05_28b [Py.Processing]

PVector.lerp()


sketch_2020_05_27a

sketch_2020_05_27a

sketch_2020_05_27a [Py.Processing]

Explaining lerp() in Processing


sketch_2020_05_26a

sketch_2020_05_26a

sketch_2020_05_26a [Py.Processing]

Explaining map() in Processing


sketch_2020_05_25a

sketch_2020_05_25a

sketch_2020_05_25a [Py.Processing]


sketch_2020_05_24a

sketch_2020_05_24a

sketch_2020_05_24a [Py.Processing]

Easing

See also https://easings.net/ and https://gist.github.com/zeffii/c1e14dd6620ad855d81ec2e89a859719


sketch_2020_05_23a

sketch_2020_05_23a

sketch_2020_05_23a [Py.Processing]

map(), lerp() and lerpColor() example


sketch_2020_05_22a

sketch_2020_05_22a

sketch_2020_05_22a [Py.Processing]

lerp() and lerpColor() example


sketch_2020_05_21a

sketch_2020_05_21a

sketch_2020_05_21a [Py.Processing]

Another simultaneous keys example


sketch_2020_05_20a

sketch_2020_05_20a

sketch_2020_05_20a [Py.Processing]

Simultaneous keys example

sketch_2020_05_19a

sketch_2020_05_19a

sketch_2020_05_19a [Py.Processing]


sketch_2020_05_18a

sketch_2020_05_18a

sketch_2020_05_18a [Py.Processing]


sketch_2020_05_17a

sketch_2020_05_17a

sketch_2020_05_17a [Py.Processing]


sketch_2020_05_16a

sketch_2020_05_16a

sketch_2020_05_16a [Py.Processing]


sketch_2020_05_15a

sketch_2020_05_15a

sketch_2020_05_15a [Py.Processing]


sketch_2020_05_14a

sketch_2020_05_14a

sketch_2020_05_14a [Py.Processing]


sketch_2020_05_13a

sketch_2020_05_13a

sketch_2020_05_13a [Py.Processing]


sketch_2020_05_12a

sketch_2020_05_12a

sketch_2020_05_12a [Py.Processing]


sketch_2020_05_11a

sketch_2020_05_11a

sketch_2020_05_11a [Py.Processing]

Made this as an example for http://abav.lugaralgum.com/material-aulas

I started capturing the examples with peek, it’s great!


sketch_2020_05_10a

sketch_2020_05_10a

sketch_2020_05_10a [Py.Processing]

More noise


sketch_2020_05_09a

sketch_2020_05_09a

sketch_2020_05_09a [Py.Processing]

Looping now :)


sketch_2020_05_08a

sketch_2020_05_08a

sketch_2020_05_08a [Py.Processing]


sketch_2020_05_07a

sketch_2020_05_07a

sketch_2020_05_07a [Py.Processing]


sketch_2020_05_06a

sketch_2020_05_06a

sketch_2020_05_06a [Py.Processing]

Noise 1D, 2D (& 3D with time)


sketch_2020_05_05a

sketch_2020_05_05a

sketch_2020_05_05a [Py.Processing]

Simetric drawing revisited


sketch_2020_05_04a

sketch_2020_05_04a

sketch_2020_05_04a [Py.Processing]

Loading images from a folder! Example medieval images collected by Daniel Seda


sketch_2020_05_03a

sketch_2020_05_03a

sketch_2020_05_03a [Py.Processing]

Saving a text file example


sketch_2020_05_02a

sketch_2020_05_02a

sketch_2020_05_02a [Py.Processing]

File selection example


sketch_2020_05_01a

sketch_2020_05_01a

sketch_2020_05_01a [Py.Processing]

Text file reading example


sketch_2020_04_30a

sketch_2020_04_30a

sketch_2020_04_30a [Py.Processing]

Basic circle packing


sketch_2020_04_29a

sketch_2020_04_29a

sketch_2020_04_29a [Py.Processing]

Variation of 28a


sketch_2020_04_28a

sketch_2020_04_28a

sketch_2020_04_28a [Py.Processing]

Inspired by this https://discourse.processing.org/t/porting-a-3d-brownian-motion-to-python-mode/20144


sketch_2020_04_27a

sketch_2020_04_27a

sketch_2020_04_27a [Py.Processing]


sketch_2020_04_26b

sketch_2020_04_26b

sketch_2020_04_26b [Py.Processing]


sketch_2020_04_25a

sketch_2020_04_25a

sketch_2020_04_25a [Py.Processing]


sketch_2020_04_24a

sketch_2020_04_24a sketch_2020_04_24b

sketch_2020_04_24a sketch_2020_04_24b [Py.Processing]


sketch_2020_04_23a

sketch_2020_04_23a

sketch_2020_04_23a [Py.Processing]


sketch_2020_04_22a

sketch_2020_04_22a

sketch_2020_04_22a [Py.Processing]


sketch_2020_04_21d

sketch_2020_04_21d

sketch_2020_04_21d [Py.Processing]


sketch_2020_04_20d

sketch_2020_04_20d

sketch_2020_04_20d [Py.Processing]


sketch_2020_04_19a

sketch_2020_04_19a

sketch_2020_04_19a [Py.Processing]


sketch_2020_04_18a

sketch_2020_04_18a

sketch_2020_04_18a [Py.Processing]


sketch_2020_04_17b

sketch_2020_04_17b

sketch_2020_04_17b [Py.Processing]

Working on “Caneta automatica” a very simple Logo/turtle/pen for Processing Python Mode https://github.com/villares/material-aulas/tree/master/caneta_automatica


sketch_2020_04_16a

sketch_2020_04_16a

sketch_2020_04_16a [Py.Processing]

Rewriting the previous sketch with a dictionary based grid in order to try some neighbour finding tricks later…


sketch_2020_04_15a

sketch_2020_04_15a

sketch_2020_04_15a [Py.Processing]

“Based on traditional Japanese stitching, this is a riff on hitomezashi patterns.” – Annie Perikins @anniek_p https://twitter.com/anniek_p/status/1244220881347502080?s=20


sketch_2020_04_14a

sketch_2020_04_14a

sketch_2020_04_14a [Py.Processing]


sketch_2020_04_13a

sketch_2020_04_13a sketch_2020_04_13b

sketch_2020_04_13a
sketch_2020_04_13b
[Py.Processing]


sketch_2020_04_12a

sketch_2020_04_12a

sketch_2020_04_12a [Py.Processing]


sketch_2020_04_11a [Py.Processing]

https://abav.lugaralgum.com/sketch-a-day/2020/sketch_2020_04_11a/pyp5js/ pyp5j


sketch_2020_04_10a

sketch_2020_04_10a

sketch_2020_04_10a [Py.Processing]


sketch_2020_04_09a

sketch_2020_04_09a sketch_2020_04_09b

sketch_2020_04_09a</br> sketch_2020_04_09b</br> [Py.Processing]


sketch_2020_04_08a

sketch_2020_04_08a

sketch_2020_04_08a [Py.Processing]


sketch_2020_04_07a

sketch_2020_04_07a

sketch_2020_04_07a [Py.Processing]


sketch_2020_04_06a

sketch_2020_04_06a

sketch_2020_04_06a [Py.Processing]

2020_04_04a revisited

axiom = 'L'
rules = {
    'L': '-RF[-L]',
    'R': '+LF[+R]',
}

sketch_2020_04_05a

sketch_2020_04_05a

sketch_2020_04_05a [Py.Processing]

Added the gif export code and brought back the ‘auto-center and zoom’ shortcut

axiom = 'L'
rules = {
    'L': '[-RF[-LF+]]',
    'R': '[+LF[+RF-]]',
}

sketch_2020_04_04a

sketch_2020_04_04a

sketch_2020_04_04a [Py.Processing]

axiom = 'L'
rules = {
    'L': '-RF[-L]',
    'R': '+LF[+R]',
}

sketch_2020_04_03a

sketch_2020_04_03a

sketch_2020_04_03a [Py.Processing]


sketch_2020_04_02a

sketch_2020_04_02a

sketch_2020_04_02a [Py.Processing]


sketch_2020_04_01a

sketch_2020_04_01a

sketch_2020_04_01a [Py.Processing]


sketch_2020_03_31a

sketch_2020_03_31a

sketch_2020_03_31a [Py.Processing]


sketch_2020_03_30a

sketch_2020_03_30a

sketch_2020_03_30a [Py.Processing]


sketch_2020_03_29a

sketch_2020_03_29a

sketch_2020_03_29a [Py.Processing]

axiom = 'L'8
rules = {
    'L': '+FR-LFL+',
    'R': '-FL+RFR-',
}
...
   for c in sentence:
        if c == 'F':
            stroke(255)
            line(0, 0, 0, -stroke_len) # draw white line
            translate(0, -stroke_len) # move
        elif c == 'L':
            stroke(255, 0, 0)
            line(0, 0, 0, -stroke_len) # red does not move!
        elif c == 'R':
            stroke(0, 0, 255)
            line(0, 0, 0, -stroke_len) # blue does not move!
        elif c == '+':
            rotate(angle)
        elif c == '-':
            rotate(-angle)

sketch_2020_03_28a

sketch_2020_03_28a

sketch_2020_03_28a [Py.Processing]

iterations = 9
stroke_len = 2600
angle_deg = 60
axiom = 'L'
sentence = axiom
rules = {
    'L': '+RF-LFL+',
    'R': '-LF+RFR-',
}

sketch_2020_03_27a

sketch_2020_03_27a

sketch_2020_03_27a [Py.Processing]

iterations = 7
stroke_len = 2600
angle_deg = 45
axiom = 'L'
sentence = axiom
rules = {
    'L': '+RF[-RFR]-FR+',
    'R': '-LF[+LFL]+FL-',
}

sketch_2020_03_26a

sketch_2020_03_26a

sketch_2020_03_26a [Py.Processing]

axiom = 'L'
sentence = axiom
rules = {
    'L': '+RF-LFL-FR+',
    'R': '-LF+RFR+FFL-', # broken Hilbert (added L)
}

sketch_2020_03_25a

sketch_2020_03_25a

sketch_2020_03_25a [Py.Processing]

Based on www.openprocessing.org/sketch/862451 by @takawo


sketch_2020_03_24a

sketch_2020_03_24a

sketch_2020_03_24a [Py.Processing]

L-System with rules for a Hilbert Curve. Studies for Rosetta Code.

axiom = "L"
rules = {
    'L': '+RF-LFL-FR+',
    'R': '-LF+RFR+FL-',
}

sketch_2020_03_23a

sketch_2020_03_23a

sketch_2020_03_23a [Py.Processing]


sketch_2020_03_22a

sketch_2020_03_22a

sketch_2020_03_22b

sketch_2020_03_22b

sketch_2020_03_22a & sketch_2020_03_22b [Py.Processing]


sketch_2020_03_21a

sketch_2020_03_21a

sketch_2020_03_21a [Py.Processing]


sketch_2020_03_20a

sketch_2020_03_20a

sketch_2020_03_20a [Py.Processing]

Not shuffled, my shuffled, shoebot shuffled


sketch_2020_03_19a

sketch_2020_03_19a

sketch_2020_03_19a [Py.Processing]

Studies for a shuffled grid (I don’t like/undertand the shoebot shuffled grid)

def shuffled_grid(cols, rows, colSize=1, rowSize=1):
    from random import shuffle
    sg = list(grid(cols, rows, colSize, rowSize))
    shuffle(sg)
    return sg

def grid(cols, rows, colSize=1, rowSize=1):
    """
    Returns an iterator that contains coordinate tuples.
    As seen in Shoebot & Nodebox (minus 'shuffled mode')
    A common way to use is:
    #    for x, y in grid(10, 10, 12, 12):
    #        rect(x, y, 10, 10)
    """
    rowRange = range(int(rows))
    colRange = range(int(cols))
    for y in rowRange:
        for x in colRange:
            yield (x * colSize, y * rowSize)


sketch_2020_03_18a

sketch_2020_03_18a

sketch_2020_03_18a [Py.Processing]

Sin color diagonal made on my live coding streaming session :)


sketch_2020_03_17a

sketch_2020_03_17a

sketch_2020_03_17a [Py.Processing]

PythagorasTree for Rosetta Code project https://rosettacode.org/wiki/Pythagoras_tree#Processing


sketch_2020_03_16a

sketch_2020_03_16a

sketch_2020_03_16a [Py.Processing]

Draw a clock for Rosetta Code project https://rosettacode.org/wiki/Draw_a_clock#Processing


sketch_2020_03_15a

sketch_2020_03_15a

sketch_2020_03_15a [Py.Processing]

ImageNoise for Rosetta Code project https://rosettacode.org/wiki/Image_noise#Processing —

sketch_2020_03_14a

sketch_2020_03_14a

sketch_2020_03_14a [Py.Processing]

Archimedean spiral for Rosetta Code project https://rosettacode.org/wiki/Archimedean_spiral#Processing


sketch_2020_03_13a

sketch_2020_03_13a

sketch_2020_03_13a [Py.Processing]

Zoomable Mandelbrot set for Rosetta Code project https://www.rosettacode.org/wiki/Mandelbrot_set#Processing


sketch_2020_03_12a

sketch_2020_03_12a

sketch_2020_03_12a [Py.Processing]

Koch curve for Rosetta Code project https://www.rosettacode.org/wiki/Koch_curve#Processing


sketch_2020_03_11a

sketch_2020_03_11a

sketch_2020_03_11a [Py.Processing]

Animation for Rosetta Code project https://rosettacode.org/wiki/Animation#Processing


sketch_2020_03_10a

sketch_2020_03_10a

sketch_2020_03_10a [Py.Processing]

Dragon curve for Rosetta Code project https://rosettacode.org/wiki/Dragon_curve#Processing


sketch_2020_03_09b

sketch_2020_03_09b

sketch_2020_03_09b [Py.Processing]


sketch_2020_03_08b

sketch_2020_03_08b

sketch_2020_03_08b [Py.Processing]


sketch_2020_03_07b

sketch_2020_03_07b

sketch_2020_03_07b [Py.Processing]


sketch_2020_03_06a

sketch_2020_03_06a

sketch_2020_03_06a [Py.Processing]


sketch_2020_03_05a

sketch_2020_03_05a

sketch_2020_03_05a [Py.Processing]


sketch_2020_03_04a

sketch_2020_03_04a

sketch_2020_03_04a [Py.Processing]


sketch_2020_03_03a

sketch_2020_03_03a

sketch_2020_03_03a [Py.Processing]


sketch_2020_03_02a

sketch_2020_03_02a

sketch_2020_03_02a [Py.Processing]


sketch_2020_03_01a

sketch_2020_03_01a

sketch_2020_03_01a [Py.Processing]


sketch_2020_02_29a

sketch_2020_02_29a

sketch_2020_02_29a [Py.Processing]


sketch_2020_02_28a

sketch_2020_02_28a

sketch_2020_02_28a [Py.Processing]


sketch_2020_02_27a

sketch_2020_02_27a

sketch_2020_02_27a [Py.Processing]

Maybe this will be a game! Arrow hunter?


sketch_2020_02_26a

sketch_2020_02_26a

sketch_2020_02_26a [Py.Processing]


sketch_2020_02_25a

sketch_2020_02_25a

sketch_2020_02_25a [Py.Processing]


sketch_2020_02_24a

sketch_2020_02_24a

sketch_2020_02_24a [Py.Processing]


sketch_2020_02_23a

sketch_2020_02_23a

sketch_2020_02_23a [Py.Processing]


sketch_2020_02_22a

sketch_2020_02_22a

sketch_2020_02_22a [Py.Processing]


sketch_2020_02_21a

sketch_2020_02_21a

sketch_2020_02_21a [Py.Processing]


sketch_2020_02_20a

sketch_2020_02_20a

sketch_2020_02_20a [Py.Processing]


sketch_2020_02_19a

sketch_2020_02_19a

sketch_2020_02_19a [Py.Processing]


sketch_2020_02_18a

sketch_2020_02_18a

sketch_2020_02_18a [Py.Processing]


sketch_2020_02_17b

sketch_2020_02_17b

sketch_2020_02_17b [Py.Processing]


sketch_2020_02_16b

sketch_2020_02_16b

sketch_2020_02_16b [Py.Processing]


sketch_2020_02_15a

sketch_2020_02_15a

sketch_2020_02_15a [Py.Processing]


sketch_2020_02_14a

sketch_2020_02_14a

sketch_2020_02_14a [Py.Processing]


sketch_2020_02_13a

sketch_2020_02_13a

sketch_2020_02_13a [Py.Processing]


sketch_2020_02_12a

sketch_2020_02_12a

sketch_2020_02_12a [Py.Processing]


sketch_2020_02_11a

sketch_2020_02_11a

sketch_2020_02_11a [Py.Processing]


sketch_2020_02_10a

sketch_2020_02_10a

sketch_2020_02_10a [Py.Processing]


sketch_2020_02_09a

sketch_2020_02_09a

sketch_2020_02_09a [Py.Processing]


sketch_2020_02_08a

sketch_2020_02_08a

sketch_2020_02_08a [Py.Processing]


sketch_2020_02_07a

sketch_2020_02_07a

sketch_2020_02_07a [Py.Processing]


sketch_2020_02_06a

sketch_2020_02_06a

sketch_2020_02_06a [Py.Processing]


sketch_2020_02_05b

sketch_2020_02_05b

sketch_2020_02_05b [Py.Processing]


sketch_2020_02_04c

sketch_2020_02_04c

sketch_2020_02_04c [Py.Processing]


sketch_2020_02_03a

sketch_2020_02_03a

sketch_2020_02_03a [Py.Processing]


sketch_2020_02_02a

sketch_2020_02_02a

sketch_2020_02_02a [Py.Processing]


sketch_2020_02_01a

sketch_2020_02_01a

sketch_2020_02_01a [Py.Processing]


sketch_2020_01_31a

sketch_2020_01_31a

sketch_2020_01_31a [Py.Processing]


sketch_2020_01_30a

sketch_2020_01_30a

sketch_2020_01_30a [Py.Processing]


sketch_2020_01_29a

sketch_2020_01_29a

sketch_2020_01_29a [Py.Processing]


sketch_2020_01_28a

sketch_2020_01_28a

sketch_2020_01_28a [Py.Processing]


sketch_2020_01_27a

sketch_2020_01_27a

sketch_2020_01_27a [Py.Processing]


sketch_2020_01_26a

sketch_2020_01_26a

sketch_2020_01_26a [Py.Processing]


sketch_2020_01_25a

sketch_2020_01_25a

sketch_2020_01_25a [Py.Processing]


sketch_2020_01_24a

sketch_2020_01_24a

sketch_2020_01_24a [Py.Processing]


sketch_2020_01_23a

sketch_2020_01_23a

sketch_2020_01_23a [Py.Processing]


sketch_2020_01_22a

sketch_2020_01_22a

sketch_2020_01_22a [Py.Processing]


sketch_2020_01_21a

sketch_2020_01_21a

sketch_2020_01_21a [Py.Processing]


sketch_2020_01_20a

sketch_2020_01_20a

sketch_2020_01_20a [Py.Processing]


sketch_2020_01_19a

sketch_2020_01_19a

sketch_2020_01_19a [Py.Processing]


sketch_2020_01_18c

sketch_2020_01_18c

sketch_2020_01_18c [Py.Processing]


sketch_2020_01_17b

sketch_2020_01_17b

sketch_2020_01_17b [Py.Processing]


sketch_2020_01_16b

sketch_2020_01_16b

sketch_2020_01_16b [Py.Processing]


sketch_2020_01_15a

sketch_2020_01_15a

sketch_2020_01_15a [Py.Processing]


sketch_2020_01_14a

sketch_2020_01_14a

sketch_2020_01_14a [Py.Processing]


sketch_2020_01_13a

sketch_2020_01_13a

sketch_2020_01_13a [Py.Processing]


sketch_2020_01_12a

sketch_2020_01_12a

sketch_2020_01_12a [Py.Processing]


sketch_2020_01_11a

sketch_2020_01_11a

sketch_2020_01_11a [Py.Processing]


sketch_2020_01_10a

sketch_2020_01_10a

sketch_2020_01_10a [Py.Processing]


sketch_2020_01_09a

sketch_2020_01_09a

sketch_2020_01_09a [Py.Processing]


sketch_2020_01_08f

sketch_2020_01_08f

sketch_2020_01_08f [Py.Processing]


sketch_2020_01_07c

sketch_2020_01_07c

sketch_2020_01_07c [Py.Processing]


sketch_2020_01_06b

sketch_2020_01_06b

sketch_2020_01_06b [Py.Processing]


sketch_2020_01_05a

sketch_2020_01_05a

sketch_2020_01_05a [Py.Processing]


sketch_2020_01_04b

sketch_2020_01_04b

sketch_2020_01_04b [Py.Processing]


sketch_2020_01_03b

sketch_2020_01_03b

sketch_2020_01_03b [Py.Processing]


sketch_2020_01_02a

sketch_2020_01_02a

sketch_2020_01_02a [Py.Processing]


sketch_2020_01_01a

sketch_2020_01_01a

sketch_2020_01_01a [Py.Processing]


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.