Alexandre B A Villares


sketch-a-day

one visual idea a day

Hi! I’m Alexandre, welcome! I try to make one small program (sketch) a day, and I usually put the code here: github.com/villares/sketch-a-day.

Feel free to contact me regarding licenses to use my work, teaching opportunities, consulting or other projects.

Get updates from my newsletter: [sketch-mail].

You may also support my artistic work, open educational resources and research using Gumroad.com/villares or PayPal

2018

2019

2020


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 [Py.Processing]

Most wonderful pattern generator copied from @ntsutae


sketch_2020_06_03a

sketch_2020_06_03a [Py.Processing]

Based on tweets by @ntsutae


sketch_2020_06_02a

sketch_2020_06_02a [Py.Processing]

Based on tweets by @ntsutae


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 [Py.Processing]

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


sketch_2020_05_30a

sketch_2020_05_30a [Py.Processing]

John’s sigmoidMap()


sketch_2020_05_29a

sketch_2020_05_29a [Py.Processing]

lerpColor()


sketch_2020_05_28b

sketch_2020_05_28b [Py.Processing]

PVector.lerp()


sketch_2020_05_27a

sketch_2020_05_27a [Py.Processing]

Explaining lerp() in Processing


sketch_2020_05_26a

sketch_2020_05_26a [Py.Processing]

Explaining map() in Processing


sketch_2020_05_25a

sketch_2020_05_25a [Py.Processing]


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 [Py.Processing]

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


sketch_2020_05_22a

sketch_2020_05_22a [Py.Processing]

lerp() and lerpColor() example


sketch_2020_05_21a

sketch_2020_05_21a [Py.Processing]

Another simultaneous keys example


sketch_2020_05_20a

sketch_2020_05_20a [Py.Processing]

Simultaneous keys example

sketch_2020_05_19a

sketch_2020_05_19a [Py.Processing]


sketch_2020_05_18a

sketch_2020_05_18a [Py.Processing]


sketch_2020_05_17a

sketch_2020_05_17a [Py.Processing]


sketch_2020_05_16a

sketch_2020_05_16a [Py.Processing]


sketch_2020_05_15a

sketch_2020_05_15a [Py.Processing]


sketch_2020_05_14a

sketch_2020_05_14a [Py.Processing]


sketch_2020_05_13a

sketch_2020_05_13a [Py.Processing]


sketch_2020_05_12a

sketch_2020_05_12a [Py.Processing]


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 [Py.Processing]

More noise


sketch_2020_05_09a

sketch_2020_05_09a [Py.Processing]

Looping now :)


sketch_2020_05_08a

sketch_2020_05_08a [Py.Processing]


sketch_2020_05_07a

sketch_2020_05_07a [Py.Processing]


sketch_2020_05_06a

sketch_2020_05_06a [Py.Processing]

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


sketch_2020_05_05a

sketch_2020_05_05a [Py.Processing]

Simetric drawing revisited


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 [Py.Processing]

Saving a text file example


sketch_2020_05_02a

sketch_2020_05_02a [Py.Processing]

File selection example


sketch_2020_05_01a

sketch_2020_05_01a [Py.Processing]

Text file reading example


sketch_2020_04_30a

sketch_2020_04_30a [Py.Processing]

Basic circle packing


sketch_2020_04_29a

sketch_2020_04_29a [Py.Processing]

Variation of 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 [Py.Processing]


sketch_2020_04_26b

sketch_2020_04_26b [Py.Processing]


sketch_2020_04_25a

sketch_2020_04_25a [Py.Processing]


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 [Py.Processing]


sketch_2020_04_22a

sketch_2020_04_22a [Py.Processing]


sketch_2020_04_21d

sketch_2020_04_21d [Py.Processing]


sketch_2020_04_20d

sketch_2020_04_20d [Py.Processing]


sketch_2020_04_19a

sketch_2020_04_19a [Py.Processing]


sketch_2020_04_18a

sketch_2020_04_18a [Py.Processing]


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 [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 [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 [Py.Processing]


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 [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 [Py.Processing]


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 [Py.Processing]


sketch_2020_04_07a

sketch_2020_04_07a [Py.Processing]


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 [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 [Py.Processing]

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

sketch_2020_04_03a

sketch_2020_04_03a [Py.Processing]


sketch_2020_04_02a

sketch_2020_04_02a [Py.Processing]


sketch_2020_04_01a

sketch_2020_04_01a [Py.Processing]


sketch_2020_03_31a

sketch_2020_03_31a [Py.Processing]


sketch_2020_03_30a

sketch_2020_03_30a [Py.Processing]


sketch_2020_03_29a

sketch_2020_03_29a [Py.Processing]

axiom = 'L'
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 [Py.Processing]

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

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 [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 [Py.Processing]

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


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 [Py.Processing]


sketch_2020_03_22a

sketch_2020_03_22b

sketch_2020_03_22a & sketch_2020_03_22b [Py.Processing]


sketch_2020_03_21a

sketch_2020_03_21a [Py.Processing]


sketch_2020_03_20a

sketch_2020_03_20a [Py.Processing]

Not shuffled, my shuffled, shoebot shuffled


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 [Py.Processing]

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


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 [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 [Py.Processing]

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

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 [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 [Py.Processing]

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


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 [Py.Processing]

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


sketch_2020_03_09b

sketch_2020_03_09b [Py.Processing]


sketch_2020_03_08b

sketch_2020_03_08b [Py.Processing]


sketch_2020_03_07b

sketch_2020_03_07b [Py.Processing]


sketch_2020_03_06a

sketch_2020_03_06a [Py.Processing]


sketch_2020_03_05a

sketch_2020_03_05a [Py.Processing]


sketch_2020_03_04a

sketch_2020_03_04a [Py.Processing]


sketch_2020_03_03a

sketch_2020_03_03a [Py.Processing]


sketch_2020_03_02a

sketch_2020_03_02a [Py.Processing]


sketch_2020_03_01a

sketch_2020_03_01a [Py.Processing]


sketch_2020_02_29a

sketch_2020_02_29a [Py.Processing]


sketch_2020_02_28a

sketch_2020_02_28a [Py.Processing]


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 [Py.Processing]


sketch_2020_02_25a

sketch_2020_02_25a [Py.Processing]


sketch_2020_02_24a

sketch_2020_02_24a [Py.Processing]


sketch_2020_02_23a

sketch_2020_02_23a [Py.Processing]


sketch_2020_02_22a

sketch_2020_02_22a [Py.Processing]


sketch_2020_02_21a

sketch_2020_02_21a [Py.Processing]


sketch_2020_02_20a

sketch_2020_02_20a [Py.Processing]


sketch_2020_02_19a

sketch_2020_02_19a [Py.Processing]


sketch_2020_02_18a

sketch_2020_02_18a [Py.Processing]


sketch_2020_02_17b

sketch_2020_02_17b [Py.Processing]


sketch_2020_02_16b

sketch_2020_02_16b [Py.Processing]


sketch_2020_02_15a

sketch_2020_02_15a [Py.Processing]


sketch_2020_02_14a

sketch_2020_02_14a [Py.Processing]


sketch_2020_02_13a

sketch_2020_02_13a [Py.Processing]


sketch_2020_02_12a

sketch_2020_02_12a [Py.Processing]


sketch_2020_02_11a

sketch_2020_02_11a [Py.Processing]


sketch_2020_02_10a

sketch_2020_02_10a [Py.Processing]


sketch_2020_02_09a

sketch_2020_02_09a [Py.Processing]


sketch_2020_02_08a

sketch_2020_02_08a [Py.Processing]


sketch_2020_02_07a

sketch_2020_02_07a [Py.Processing]


sketch_2020_02_06a

sketch_2020_02_06a [Py.Processing]


sketch_2020_02_05b

sketch_2020_02_05b [Py.Processing]


sketch_2020_02_04c

sketch_2020_02_04c [Py.Processing]


sketch_2020_02_03a

sketch_2020_02_03a [Py.Processing]


sketch_2020_02_02a

sketch_2020_02_02a [Py.Processing]


sketch_2020_02_01a

sketch_2020_02_01a [Py.Processing]


sketch_2020_01_31a

sketch_2020_01_31a [Py.Processing]


sketch_2020_01_30a

sketch_2020_01_30a [Py.Processing]


sketch_2020_01_29a

sketch_2020_01_29a [Py.Processing]


sketch_2020_01_28a

sketch_2020_01_28a [Py.Processing]


sketch_2020_01_27a

sketch_2020_01_27a [Py.Processing]


sketch_2020_01_26a

sketch_2020_01_26a [Py.Processing]


sketch_2020_01_25a

sketch_2020_01_25a [Py.Processing]


sketch_2020_01_24a

sketch_2020_01_24a [Py.Processing]


sketch_2020_01_23a

sketch_2020_01_23a [Py.Processing]


sketch_2020_01_22a

sketch_2020_01_22a [Py.Processing]


sketch_2020_01_21a

sketch_2020_01_21a [Py.Processing]


sketch_2020_01_20a

sketch_2020_01_20a [Py.Processing]


sketch_2020_01_19a

sketch_2020_01_19a [Py.Processing]


sketch_2020_01_18c

sketch_2020_01_18c [Py.Processing]


sketch_2020_01_17b

sketch_2020_01_17b [Py.Processing]


sketch_2020_01_16b

sketch_2020_01_16b [Py.Processing]


sketch_2020_01_15a

sketch_2020_01_15a [Py.Processing]


sketch_2020_01_14a

sketch_2020_01_14a [Py.Processing]


sketch_2020_01_13a

sketch_2020_01_13a [Py.Processing]


sketch_2020_01_12a

sketch_2020_01_12a [Py.Processing]


sketch_2020_01_11a

sketch_2020_01_11a [Py.Processing]


sketch_2020_01_10a

sketch_2020_01_10a [Py.Processing]


sketch_2020_01_09a

sketch_2020_01_09a [Py.Processing]


sketch_2020_01_08f

sketch_2020_01_08f [Py.Processing]


sketch_2020_01_07c

sketch_2020_01_07c [Py.Processing]


sketch_2020_01_06b

sketch_2020_01_06b [Py.Processing]


sketch_200105a

sketch_200105a [Py.Processing]


sketch_200104b

sketch_200104b [Py.Processing]


sketch_200103b

sketch_200103b [Py.Processing]


sketch_200102a

sketch_200102a [Py.Processing]


sketch_200101a

sketch_200101a [Py.Processing]