# [sketch-a-day](https://abav.lugaralgum.com/sketch-a-day) #### coding a visual idea a day --- [2026](README.md) \| [2025](2025.md) \| [2024](2024.md) \| 2023 \| [2022](2022.md) \| [2021](2021.md) \| [2020](2020.md) \| [2019](2019.md) \| [2018](2018.md) --- ### sketch_2023_12_31  [sketch_2023_12_31](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_31) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_30  [sketch_2023_12_30](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_30) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_29  [sketch_2023_12_29](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_29) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_28  [sketch_2023_12_28](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_28) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_27  [sketch_2023_12_27](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_27) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_26  [sketch_2023_12_26](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_26) [[py5](https://py5coding.org/)] I'm very pleased with this, today. This sketch built upon some earlier "arrow works", but now with some 3D. I'm sure that having gone for some swimming today improved my creative powers :) --- ### sketch_2023_12_25  [sketch_2023_12_25](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_25) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_24  [sketch_2023_12_24](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_24) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_23  [sketch_2023_12_23](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_23) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_22  [sketch_2023_12_22](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_22) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_21  [sketch_2023_12_21](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_21) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_20  [sketch_2023_12_20](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_20) [[py5](https://py5coding.org/)] code at https://github.com/villares/sketch-a-day --- ### sketch_2023_12_19  [sketch_2023_12_19](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_19) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_18  [sketch_2023_12_18](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_18) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_17  [sketch_2023_12_17](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_17) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_16  [sketch_2023_12_16](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_16) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_15  [sketch_2023_12_15](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_15) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_14  [sketch_2023_12_14](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_14) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_13  [sketch_2023_12_13](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_13) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_12  [sketch_2023_12_12](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_12) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_11  [sketch_2023_12_11](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_11) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_10  [sketch_2023_12_10](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_10) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_09  [sketch_2023_12_09](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_09) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_08  [sketch_2023_12_08](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_08) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_07  [sketch_2023_12_07](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_07) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_06  [sketch_2023_12_06](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_06) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_05  [sketch_2023_12_05](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_05) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_04  [sketch_2023_12_04](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_04) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_03  [sketch_2023_12_03](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_03) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_02  [sketch_2023_12_02](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_02) [[py5](https://py5coding.org/)] --- ### sketch_2023_12_01  [sketch_2023_12_01](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_12_01) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_30  [sketch_2023_11_30](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_30) [[py5](https://py5coding.org/)] #numpy ordering glyphs by black pixel count! --- ### sketch_2023_11_29  [sketch_2023_11_29](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_29) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_28  [sketch_2023_11_28](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_28) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_27  [sketch_2023_11_27](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_27) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_26  [sketch_2023_11_26](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_26) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_25  [sketch_2023_11_25](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_25) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_24  [sketch_2023_11_24](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_24) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_23  [sketch_2023_11_23](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_23) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_22  [sketch_2023_11_22](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_22) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_21  [sketch_2023_11_21](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_21) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_20  [sketch_2023_11_20](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_20) [[py5](https://py5coding.org/)] #numpy boids work in progress --- ### sketch_2023_11_19  [sketch_2023_11_19](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_19) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_18  [sketch_2023_11_18](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_18) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_17  [sketch_2023_11_17](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_17) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_16  [sketch_2023_11_16](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_16) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_15  [sketch_2023_11_15](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_15) [[py5](https://py5coding.org/)] regras = { 'X': 'F+@[![X]-X!]-@F[-FX]+X', 'F': 'FF', } axioma = 'X' iteracoes = 6 angulo = 25 tamanho = 5 scale_factor = 0.9 #LSytem #CreativeCoding --- ### sketch_2023_11_14  [sketch_2023_11_14](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_14) [[py5](https://py5coding.org/)] regras = { 'X': 'F+[![X]-X!]-F[-FX]+X', 'F': 'FGF', } axioma = 'X' iteracoes = 6 angulo = 25 #LSystem --- ### sketch_2023_11_13  [sketch_2023_11_13](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_13) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_12  [sketch_2023_11_12](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_12) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_11  [sketch_2023_11_11](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_11) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_10  [sketch_2023_11_10](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_10) [[py5](https://py5coding.org/)] sketch feito na aula de ontem... (acrescentei o py5_tools.animated_gif hoje) --- ### sketch_2023_11_09  [sketch_2023_11_09](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_09) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_08  [sketch_2023_11_08](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_08) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_07  [sketch_2023_11_07](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_07) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_06  [sketch_2023_11_06](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_06) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_05  [sketch_2023_11_05](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_05) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_04  [sketch_2023_11_04](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_04) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_03  [sketch_2023_11_03](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_03) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_02  [sketch_2023_11_02](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_02) [[py5](https://py5coding.org/)] --- ### sketch_2023_11_01  [sketch_2023_11_01](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_11_01) [[py5](https://py5coding.org/)] --- ### sketch_2023_10_31  [sketch_2023_10_31](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_31) [[py5](https://py5coding.org/)] based on https://github.com/roholazandie/boids/tree/master #flocking #boids --- ### sketch_2023_10_30  [sketch_2023_10_30](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_30) [[py5](https://py5coding.org/)] #debugAesthetics #pymunk #trimesh #shapely --- ### sketch_2023_10_29  [sketch_2023_10_29](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_29) [[py5](https://py5coding.org/)] #pymunk #shapely --- ### sketch_2023_10_28  [sketch_2023_10_28](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_28) [[py5](https://py5coding.org/)] Viva o LHC! #pymunk --- ### sketch_2023_10_27  [sketch_2023_10_27](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_27) [[py5](https://py5coding.org/)] #pymunk --- ### sketch_2023_10_26  [sketch_2023_10_26](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_26) [[py5](https://py5coding.org/)] #pymunk --- ### sketch_2023_10_25  [sketch_2023_10_25](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_25) [[py5](https://py5coding.org/)] --- ### sketch_2023_10_24  [sketch_2023_10_24](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_24) [[py5](https://py5coding.org/)] pymunk --- ### sketch_2023_10_23  [sketch_2023_10_23](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_23) [[py5](https://py5coding.org/)] --- ### sketch_2023_10_22  [sketch_2023_10_22](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_22) [[py5](https://py5coding.org/)] #pymunk --- ### sketch_2023_10_21  [sketch_2023_10_21](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_21) [[py5](https://py5coding.org/)] --- ### sketch_2023_10_20  [sketch_2023_10_20](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_20) [[py5](https://py5coding.org/)] --- ### sketch_2023_10_19  [sketch_2023_10_19](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_19) [[py5](https://py5coding.org/)] --- ### sketch_2023_10_18  [sketch_2023_10_18](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_18) [[py5](https://py5coding.org/)] --- ### sketch_2023_10_17  [sketch_2023_10_17](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_17) [[py5](https://py5coding.org/)] --- ### sketch_2023_10_16  [sketch_2023_10_16](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_16) [[py5](https://py5coding.org/)] --- ### sketch_2023_10_15  [sketch_2023_10_15](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_15) [[py5](https://py5coding.org/)] https://ciberlandia.pt/deck/@villares/111240083837972964 --- ### sketch_2023_10_14  [sketch_2023_10_14](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_14) [[py5](https://py5coding.org/)] first attempt at showing a GIF animation with py5... --- ### sketch_2023_10_13  [sketch_2023_10_13](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_13) [[py5](https://py5coding.org/)] Adding a "diff" mode to my folder-image browser! --- ### sketch_2023_10_12  [sketch_2023_10_12](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_12) [[py5](https://py5coding.org/)] #shapely --- ### sketch_2023_10_11  [sketch_2023_10_11](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_11) [[py5](https://py5coding.org/)] --- ### sketch_2023_10_10  [sketch_2023_10_10](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_10) [[py5](https://py5coding.org/)] --- ### sketch_2023_10_09  [sketch_2023_10_09](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_09) [[py5](https://py5coding.org/)] back to some #shapely & #typography ideas (aiming at a stencil as usual) --- ### sketch_2023_10_08  [sketch_2023_10_08](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_08) [[py5](https://py5coding.org/)] --- ### sketch_2023_10_07  [sketch_2023_10_07](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_07) [[py5](https://py5coding.org/)] ``` # LSystem axiom = 'X' rules = { 'X': '[-X][+X][+FX]-FXB', 'F': 'FF', } # F -> foward step # B -> blue circle ``` --- ### sketch_2023_10_06  [sketch_2023_10_06](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_06) [[py5](https://py5coding.org/)] --- ### sketch_2023_10_05  [sketch_2023_10_05](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_05) [[py5](https://py5coding.org/)] #itertools #combinations #combinations_with_replacement #permutations #product --- ### sketch_2023_10_04  [sketch_2023_10_04](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_04) [[py5](https://py5coding.org/)] https://github.com/villares/sketch-a-day/blob/main/2023/sketch_2023_10_04/sketch_2023_10_04.py --- ### sketch_2023_10_03  [sketch_2023_10_03](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_03) [[py5](https://py5coding.org/)] #JupyterNotebook --- ### sketch_2023_10_02  [sketch_2023_10_02](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_02) [[py5](https://py5coding.org/)] #JupyterLab #Jupyter --- ### sketch_2023_10_01  [sketch_2023_10_01](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_10_01) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_30  [sketch_2023_09_30](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_30) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_29  [sketch_2023_09_29](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_29) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_28  [sketch_2023_09_28](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_28) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_27  [sketch_2023_09_27](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_27) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_26  [sketch_2023_09_26](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_26) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_25  [sketch_2023_09_25](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_25) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_24  [sketch_2023_09_24](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_24) [[py5](https://py5coding.org/)] my folder browser is mostly working... --- ### sketch_2023_09_23  [sketch_2023_09_23](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_23) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_22  [sketch_2023_09_22](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_22) [[py5](https://py5coding.org/)] Slowly prograssing on my file/image browser from scratch... --- ### sketch_2023_09_21  [sketch_2023_09_21](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_21) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_20  [sketch_2023_09_20](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_20) [[py5](https://py5coding.org/)] Small progress on my image browser, trying some folder navigation "from scratch" with py5... I can get some thumbnails from the OS, but others fail: --- ### sketch_2023_09_19  [sketch_2023_09_19](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_19) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_18  [sketch_2023_09_18](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_18) [[py5](https://py5coding.org/)] work in progress --- ### sketch_2023_09_17  [sketch_2023_09_17](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_17) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_16  [sketch_2023_09_16](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_16) [[py5](https://py5coding.org/)] #SãoPaulo --- ### sketch_2023_09_15  [sketch_2023_09_15](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_15) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_14  [sketch_2023_09_14](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_14) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_13  [sketch_2023_09_13](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_13) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_12  [sketch_2023_09_12](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_12) [[py5](https://py5coding.org/)] Based on rain code by @claromes! --- ### sketch_2023_09_11  [sketch_2023_09_11](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_11) [[py5](https://py5coding.org/)] Tem dias que eu fico bem feliz com o resultado do meu sketch do dia :) --- ### sketch_2023_09_10  [sketch_2023_09_10](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_10) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_09  [sketch_2023_09_09](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_09) [[py5](https://py5coding.org/)] https://github.com/villares/sketch-a-day/blob/main/2023/sketch_2023_09_09/sketch_2023_09_09.py #NumPy --- ### sketch_2023_09_08  [sketch_2023_09_08](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_08) [[py5](https://py5coding.org/)] #numpy --- ### sketch_2023_09_07  [sketch_2023_09_07](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_07) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_06  [sketch_2023_09_06](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_06) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_05  [sketch_2023_09_05](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_05) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_04  [sketch_2023_09_04](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_04) [[py5](https://py5coding.org/)] github.com/villares/sketch-a-day --- ### sketch_2023_09_03  [sketch_2023_09_03](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_03) [[py5](https://py5coding.org/)] --- ### sketch_2023_09_02  [sketch_2023_09_02](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_02) [[py5](https://py5coding.org/)] #NumPy --- ### sketch_2023_09_01  [sketch_2023_09_01](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_09_01) [[py5](https://py5coding.org/)] #NumPy --- ### sketch_2023_08_31  [sketch_2023_08_31](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_31) [[py5](https://py5coding.org/)] --- ### sketch_2023_08_30  [sketch_2023_08_30](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_30) [[py5](https://py5coding.org/)] --- ### sketch_2023_08_29  [sketch_2023_08_29](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_29) [[py5](https://py5coding.org/)] --- ### sketch_2023_08_28  [sketch_2023_08_28](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_28) [[py5](https://py5coding.org/)] #osmnx #GeoDataFrame #OpenStreetMap contributors data --- ### sketch_2023_08_27  [sketch_2023_08_27](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_27) [[py5](https://py5coding.org/)] #São Paulo #osmnx data from #OpenStreetMap contributors. Av. Paulista in red. --- ### sketch_2023_08_26  [sketch_2023_08_26](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_26) [[py5](https://py5coding.org/)] --- ### sketch_2023_08_25  [sketch_2023_08_25](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_25) [Python] #Python #matplotlib explorando dados © contribuidores do #OpenStreetMaps --- ### sketch_2023_08_24  [sketch_2023_08_24](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_24) [[py5](https://py5coding.org/)] --- ### sketch_2023_08_23  [sketch_2023_08_23](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_23) [[py5](https://py5coding.org/)] --- ### sketch_2023_08_22  [sketch_2023_08_22](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_22) [[py5](https://py5coding.org/)] --- ### sketch_2023_08_21  [sketch_2023_08_21](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_21) [[py5](https://py5coding.org/)] #trimesh --- ### sketch_2023_08_20  [sketch_2023_08_20](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_20) [[py5](https://py5coding.org/)] more #trimesh --- ### sketch_2023_08_19  [sketch_2023_08_19](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_19) [[py5](https://py5coding.org/)] more #trimesh experiments --- ### sketch_2023_08_18  [sketch_2023_08_18](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_18) [[py5](https://py5coding.org/)] PNG export examples --- ### sketch_2023_08_17  [sketch_2023_08_17](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_17) [[py5](https://py5coding.org/)] more trimesh studies! --- ### sketch_2023_08_16  [sketch_2023_08_16](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_16) [[py5](https://py5coding.org/)] trimesh studies --- ### sketch_2023_08_15  [sketch_2023_08_15](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_15) [[py5](https://py5coding.org/)] Segunda aula do curso com Daniel Bueno no Sesc Av. Paulista! --- ### sketch_2023_08_14  [sketch_2023_08_14](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_14) [[py5](https://py5coding.org/)] Refatorei o meu código de tokenize, aprendi um pouco sobre ANSI escape sequences, e agora consigo desenhar um pouco melhor (vai ser útil pros meus zines! --- ### sketch_2023_08_13  [sketch_2023_08_13](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_13) [[py5](https://py5coding.org/)] Work in Progress - again trying to draw some source code to the screen --- ### sketch_2023_08_12  [sketch_2023_08_12](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_12) [[py5](https://py5coding.org/)] --- ### sketch_2023_08_11  [sketch_2023_08_11](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_11) [[py5](https://py5coding.org/)] --- ### sketch_2023_08_10  [sketch_2023_08_10](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_10) [[py5](https://py5coding.org/)] --- ### sketch_2023_08_09  [sketch_2023_08_09](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_09) [[py5](https://py5coding.org/)] --- ### sketch_2023_08_08  [sketch_2023_08_08](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_08) [Primeira aula do curso de quadrinhos experimentais com Daniel Bueno!] --- ### sketch_2023_08_07  [sketch_2023_08_07](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_07) [Interactive quadratic vertex curve #pyp5js] --- ### sketch_2023_08_06  [sketch_2023_08_06](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_06) [[py5](https://py5coding.org/)] quadratic curves on shapely --- ### sketch_2023_08_05  [sketch_2023_08_05](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_05) [[py5](https://py5coding.org/)] --- ### sketch_2023_08_04  [sketch_2023_08_04](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_04) [[py5](https://py5coding.org/)] --- ### sketch_2023_08_03  [sketch_2023_08_03](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_03) [[py5](https://py5coding.org/)] --- ### sketch_2023_08_02  [sketch_2023_08_02](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_02) [[py5](https://py5coding.org/)] WIP --- ### sketch_2023_08_01  [sketch_2023_08_01](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_08_01) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_31  [sketch_2023_07_31](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_31) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_30  [sketch_2023_07_30](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_30) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_29  [sketch_2023_07_29](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_29) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_28  [sketch_2023_07_28](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_28) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_27  [sketch_2023_07_27](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_27) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_26  [sketch_2023_07_26](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_26) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_25  [sketch_2023_07_25](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_25) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_24  [sketch_2023_07_24](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_24) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_23  [sketch_2023_07_23](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_23) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_22  [sketch_2023_07_22](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_22) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_21  [sketch_2023_07_21](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_21) [[py5](https://py5coding.org/)] Fragments of a [São Paulo Map from 1930 kept at Museu Paulista ](https://pt.wikipedia.org/wiki/Ficheiro:Mappa_Topographico_do_Municipio_de_S%C3%A3o_Paulo_-_Folha_37,_Acervo_do_Museu_Paulista_da_USP.jpg) --- ### sketch_2023_07_20  [sketch_2023_07_20](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_20) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_19  [sketch_2023_07_19](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_19) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_18  [sketch_2023_07_18](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_18) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_17  [sketch_2023_07_17](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_17) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_16  [sketch_2023_07_16](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_16) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_15  [sketch_2023_07_15](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_15) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_14  [sketch_2023_07_14](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_14) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_13  [sketch_2023_07_13](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_13) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_12  [sketch_2023_07_12](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_12) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_11  [sketch_2023_07_11](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_11) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_10  [sketch_2023_07_10](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_10) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_09  [sketch_2023_07_09](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_09) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_08  [sketch_2023_07_08](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_08) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_07  [sketch_2023_07_07](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_07) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_06  [sketch_2023_07_06](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_06) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_05  [sketch_2023_07_05](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_05) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_04  [sketch_2023_07_04](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_04) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_03  [sketch_2023_07_03](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_03) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_02  [sketch_2023_07_02](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_02) [[py5](https://py5coding.org/)] --- ### sketch_2023_07_01  [sketch_2023_07_01](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_07_01) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_30  [sketch_2023_06_30](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_30) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_29  [sketch_2023_06_29](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_29) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_28  [sketch_2023_06_28](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_28) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_27  [sketch_2023_06_27](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_27) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_26  [sketch_2023_06_26](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_26) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_25  [sketch_2023_06_25](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_25) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_24  [sketch_2023_06_24](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_24) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_23  [sketch_2023_06_23](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_23) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_22  [sketch_2023_06_22](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_22) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_21  [sketch_2023_06_21](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_21) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_20  [sketch_2023_06_20](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_20) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_19  [sketch_2023_06_19](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_19) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_18  [sketch_2023_06_18](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_18) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_17  [sketch_2023_06_17](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_17) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_16  [sketch_2023_06_16](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_16) [[py5](https://py5coding.org/)] Draw interrupted stencil-ready lines with py5. Left-click to add vertex. Right-click to stop polyline. Backspace to remove last vertex. 'e' to erase everything. 's' to save SVG. Mouse wheel to change line thickness. --- ### sketch_2023_06_15  [sketch_2023_06_15](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_15) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_14  [sketch_2023_06_14](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_14) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_13  [sketch_2023_06_13](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_13) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_11  [sketch_2023_06_11](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_11) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_10  [sketch_2023_06_10](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_10) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_09  [sketch_2023_06_09](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_09) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_08  [sketch_2023_06_08](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_08) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_07  [sketch_2023_06_07](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_07) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_06  [sketch_2023_06_06](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_06) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_05  [sketch_2023_06_05](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_05) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_04  [sketch_2023_06_04](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_04) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_03  [sketch_2023_06_03](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_03) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_02  [sketch_2023_06_02](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_02) [[py5](https://py5coding.org/)] --- ### sketch_2023_06_01  [sketch_2023_06_01](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_06_01) [[py5](https://py5coding.org/)] Back to an earlier idea, but using shapely! --- ### sketch_2023_05_31  [sketch_2023_05_31](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_31) [[py5](https://py5coding.org/)] partial sample of the animation --- ### sketch_2023_05_30  [sketch_2023_05_30](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_30) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_29  [sketch_2023_05_29](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_29) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_28  [sketch_2023_05_28](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_28) [[py5](https://py5coding.org/)] Based on https://botsin.space/@bitartbot/110448213578682186]] ``` def func(x, y): try: return (~(int((x & y) / (x ^ 8)) | ((y * 10) % (~x)))) % 3 > 0 except ZeroDivisionError: return 0 ``` --- ### sketch_2023_05_27  [sketch_2023_05_27](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_27) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_26  [sketch_2023_05_26](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_26) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_25  [sketch_2023_05_25](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_25) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_24  [sketch_2023_05_24](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_24) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_23  [sketch_2023_05_23](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_23) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_22  [sketch_2023_05_22](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_22) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_21  [sketch_2023_05_21](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_21) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_20  [sketch_2023_05_20](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_20) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_19  [sketch_2023_05_19](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_19) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_18  [sketch_2023_05_18](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_18) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_17  [sketch_2023_05_17](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_17) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_16  [sketch_2023_05_16](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_16) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_15  [sketch_2023_05_15](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_15) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_14  [sketch_2023_05_14](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_14) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_13  [sketch_2023_05_13](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_13) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_12  [sketch_2023_05_12](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_12) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_11  [sketch_2023_05_11](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_11) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_10  [sketch_2023_05_10](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_10) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_09  [sketch_2023_05_09](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_09) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_08  [sketch_2023_05_08](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_08) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_07  [sketch_2023_05_07](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_07) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_06  [sketch_2023_05_06](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_06) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_05  [sketch_2023_05_05](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_05) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_04  [sketch_2023_05_04](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_04) [[PySimpleGUI](https://www.pysimplegui.org/)] --- ### sketch_2023_05_03  [sketch_2023_05_03](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_03) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_02  [sketch_2023_05_02](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_02) [[py5](https://py5coding.org/)] --- ### sketch_2023_05_01  [sketch_2023_05_01](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_05_01) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_30  [sketch_2023_04_30](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_30) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_29  [sketch_2023_04_29](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_29) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_28  [sketch_2023_04_28](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_28) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_27  [sketch_2023_04_27](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_27) [[py5](https://py5coding.org/)] More OpenCV --- ### sketch_2023_04_26  [sketch_2023_04_26](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_26) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_25  [sketch_2023_04_25](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_25) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_24  [sketch_2023_04_24](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_24) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_23  [sketch_2023_04_23](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_23) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_22  [sketch_2023_04_22](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_22) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_21  [sketch_2023_04_21](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_21) [[py5](https://py5coding.org/)] Transparent PNG export accumulating frames --- ### sketch_2023_04_20  [sketch_2023_04_20](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_20) [[py5](https://py5coding.org/)] Recreating Ira Greenberg's 2 colour Trouched + MAM Trouchet example --- ### sketch_2023_04_19  [sketch_2023_04_19](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_19) [[py5](https://py5coding.org/)] Trouchet WIP --- ### sketch_2023_04_18  [sketch_2023_04_18](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_18) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_17  [sketch_2023_04_17](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_17) [[py5](https://py5coding.org/)] 5 colors, random choice of next, but do not repeat last 2. --- ### sketch_2023_04_16  [sketch_2023_04_16](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_16) [[py5](https://py5coding.org/)] 4 colors, do not repeat last 3... this creates a cycle. Each horiz. band repeats process, so new configuration. --- ### sketch_2023_04_15  [sketch_2023_04_15](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_15) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_14  [sketch_2023_04_14](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_14) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_13  [sketch_2023_04_13](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_13) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_12  [sketch_2023_04_12](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_12) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_11  [sketch_2023_04_11](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_11) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_10  [sketch_2023_04_10](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_10) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_09  [sketch_2023_04_09](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_09) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_08  [sketch_2023_04_08](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_08) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_07  [sketch_2023_04_07](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_07) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_06  [sketch_2023_04_06](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_06) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_05  [sketch_2023_04_05](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_05) [[py5](https://py5coding.org/)] d'aprés Vera Molnár's Des(ordres) --- ### sketch_2023_04_04  [sketch_2023_04_04](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_04) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_03  [sketch_2023_04_03](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_03) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_02  [sketch_2023_04_02](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_02) [[py5](https://py5coding.org/)] --- ### sketch_2023_04_01  [sketch_2023_04_01](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_04_01) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_31  [sketch_2023_03_31](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_31) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_30  [sketch_2023_03_30](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_30) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_29  [sketch_2023_03_29](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_29) [[py5](https://py5coding.org/)] Trying to recreate this work by Vera Molnár: https://collections.vam.ac.uk/item/O1488630/print/ --- ### sketch_2023_03_28  [sketch_2023_03_28](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_28) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_27  [sketch_2023_03_27](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_27) [[py5](https://py5coding.org/)] OpenCV edge detection on a video --- ### sketch_2023_03_26  [sketch_2023_03_26](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_26) [[py5](https://py5coding.org/)] OpenCV edge detection on a video --- ### sketch_2023_03_25  [sketch_2023_03_25](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_25) [[py5](https://py5coding.org/)] Java swing --- ### sketch_2023_03_24  [sketch_2023_03_24](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_24) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_23  [sketch_2023_03_23](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_23) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_22  [sketch_2023_03_22](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_22) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_21  [sketch_2023_03_21](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_21) [[Processing Java](https://processing.org)] --- ### sketch_2023_03_20  [sketch_2023_03_20](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_20) [[py5](https://py5coding.org/)] Porting a Processing forum example to py5 --- ### sketch_2023_03_19  [sketch_2023_03_19](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_19) [[py5](https://py5coding.org/)] Porting a Processing forum example to py5 --- ### sketch_2023_03_18  [sketch_2023_03_18](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_18) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_17  [sketch_2023_03_17](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_17) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_16  [sketch_2023_03_16](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_16) [[py5](https://py5coding.org/)] Based on Tom Larrow's code. --- ### sketch_2023_03_15  [sketch_2023_03_15](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_15) [[py5](https://py5coding.org/)] Inspired by Vera Molnár's Icône 2020 --- ### sketch_2023_03_14  [sketch_2023_03_14](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_14) [[py5](https://py5coding.org/)] Learning more numpy... --- ### sketch_2023_03_13  [sketch_2023_03_13](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_13) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_12  [sketch_2023_03_12](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_12) [[py5](https://py5coding.org/)] 144 combinations of sizes, nubmer of points and 2 colors. --- ### sketch_2023_03_11  [sketch_2023_03_11](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_11) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_10  [sketch_2023_03_10](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_10) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_09  [sketch_2023_03_09](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_09) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_08  [sketch_2023_03_08](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_08) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_07  [sketch_2023_03_07](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_07) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_06  [sketch_2023_03_06](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_06) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_05  [sketch_2023_03_05](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_05) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_04  [sketch_2023_03_04](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_04) [[py5](https://py5coding.org/)] --- ### sketch_2023_03_03  [sketch_2023_03_03](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_03) [[py5](https://py5coding.org/)] Another numbered squares idea... --- ### sketch_2023_03_02  [sketch_2023_03_02](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_02) [[py5](https://py5coding.org/)] back to shuffling squares? --- ### sketch_2023_03_01  [sketch_2023_03_01](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_03_01) [[py5](https://py5coding.org/)] Tried threads, still too slow. I shoul try Numpy... I asked for Melissa Weber's helpp --- ### sketch_2023_02_28  [sketch_2023_02_28](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_28) [[py5](https://py5coding.org/)] A horribly slow Particle Life simulation (adapted from the Noite de Processing one) WIP --- ### sketch_2023_02_27  [sketch_2023_02_27](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_27) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_26  [sketch_2023_02_26](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_26) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_25  [sketch_2023_02_25](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_25) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_24  [sketch_2023_02_24](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_24) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_23  [sketch_2023_02_23](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_23) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_22  [sketch_2023_02_22](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_22) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_21  [sketch_2023_02_21](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_21) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_20  [sketch_2023_02_20](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_20) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_19  [sketch_2023_02_19](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_19) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_18  [sketch_2023_02_18](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_18) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_17  [sketch_2023_02_17](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_17) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_16  [sketch_2023_02_16](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_16) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_15  [sketch_2023_02_15](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_15) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_14  [sketch_2023_02_14](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_14) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_13  [sketch_2023_02_13](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_13) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_12  [sketch_2023_02_12](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_12) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_11  [sketch_2023_02_11](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_11) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_10  [sketch_2023_02_10](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_10) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_09  [sketch_2023_02_09](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_09) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_08  [sketch_2023_02_08](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_08) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_07  [sketch_2023_02_07](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_07) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_06  [sketch_2023_02_06](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_06) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_05  [sketch_2023_02_05](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_05) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_04  [sketch_2023_02_04](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_04) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_03  [sketch_2023_02_03](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_03) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_02  [sketch_2023_02_02](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_02) [[py5](https://py5coding.org/)] --- ### sketch_2023_02_01  [sketch_2023_02_01](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_02_01) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_31  [sketch_2023_01_31](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_31) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_30  [sketch_2023_01_30](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_30) [[py5](https://py5coding.org/)] ```python # Kate Rose Morley's palette # https://iamkate.com/data/12-bit-rainbow/ #Processing #Python #py5 imported mode #genuary #genuary30 #トゥートProcessing from itertools import product palette = ( '#817', '#a35', '#c66', '#e94', '#ed0', '#9d5', '#4d8', '#2cb', '#0bc', '#09c', '#36b', '#639' ) def setup(): global palavras size(800, 800) no_loop() rect_mode(CENTER) no_stroke() def draw(): w = 400 i = 0 for x, y in product(range(0, width, w), repeat=2): for z in range(3): fill(palette[i]) square(w / 2 + x, w / 2 + y, w / (z / 2 + 1)) i += 1 ``` --- ### sketch_2023_01_29  [sketch_2023_01_29](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_29) [[py5](https://py5coding.org/)] [Kate Rose Morley's palette](https://iamkate.com/data/12-bit-rainbow/) ```python from random import sample from itertools import product palette = ( '#817', '#a35', '#c66', '#e94', '#ed0', '#9d5', '#4d8', '#2cb', '#0bc', '#09c', '#36b', '#639' ) def setup(): global palavras size(800, 800) no_loop() rect_mode(CENTER) no_stroke() def draw(): w = 100 for x, y in product(range(0, width, w), repeat=2): d = width // w cores = sample(palette, d) for z in range(d): fill(cores[z]) square(w / 2 + x, w / 2 + y, w / (z / 2 + 1)) def key_pressed(): redraw() ``` --- ### sketch_2023_01_28  [sketch_2023_01_28](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_28) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_27  [sketch_2023_01_27](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_27) [[py5](https://py5coding.org/)] Based on Tom Larrow's experiment at: https://codeberg.org/TomLarrow/creative-coding-experiments/src/branch/main/x_0049/x_0049.py --- ### sketch_2023_01_26  [sketch_2023_01_26](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_26) [[py5](https://py5coding.org/)] d'aprés Vera Molnar "interruptions" (https://collections.vam.ac.uk/item/O1193775/interruptions-drawing-vera-molnar/)dapr --- ### sketch_2023_01_25  [sketch_2023_01_25](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_25) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_24  [sketch_2023_01_24](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_24) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_23  [sketch_2023_01_23](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_23) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_22  [sketch_2023_01_22](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_22) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_21  [sketch_2023_01_21](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_21) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_20  [sketch_2023_01_20](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_20) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_19  [sketch_2023_01_19](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_19) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_18  [sketch_2023_01_18](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_18) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_17  [sketch_2023_01_17](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_17) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_16  [sketch_2023_01_16](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_16) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_15  [sketch_2023_01_15](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_15) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_14  [sketch_2023_01_14](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_14) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_13  [sketch_2023_01_13](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_13) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_12  [sketch_2023_01_12](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_12) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_11  [sketch_2023_01_11](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_11) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_09  [sketch_2023_01_09](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_09) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_10  [sketch_2023_01_10](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_10) [[pyxel](https://github.com/kitao/pyxel)] - To listen: [recording.mp4](/recording.mp4) --- ### sketch_2023_01_08  [sketch_2023_01_08](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_08) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_07  [sketch_2023_01_07](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_07) [[py5](https://py5coding.org/)] ```python """ A reticule of colored circles forms The Beatles's Abbey Road album cover """ import py5 def setup(): py5.size(1000, 1000) py5.color_mode(py5.HSB) img = py5.load_image('ar.jpg') py5.no_stroke() py5.background(0) s = 10 w = py5.width // s for i in range(w): for j in range(w): x, y = s // 2 + i * s, s // 2 + j * s px = img.get(x, y) h = py5.hue(px) sat = py5.saturation(px) b = 0.36 + py5.brightness(px) / 400 py5.fill(h, sat * 2, 255) py5.circle(x, y, s * b) py5.save('out.png') py5.run_sketch() ``` --- ### sketch_2023_01_06  [sketch_2023_01_06](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_06) [[py5](https://py5coding.org/)] D'aprés @ntsutae つぶやきProcessing https://twitter.com/ntsutae/status/1268432505356513280?s=20 --- ### sketch_2023_01_05  [sketch_2023_01_05](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_05) [[py5](https://py5coding.org/)] --- ### sketch_2023_01_04  [sketch_2023_01_04](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_04) [[py5](https://py5coding.org/)] ```python from itertools import product circles = [] intersections = [] def setup(): size(600, 600) for x, y in product(range(100, 550, 50), repeat=2): r = random(10, 60) circles.append((x, y, r)) for xa, ya, ra in circles: for xb, yb, rb in circles[1:]: if (xa, ya) != (xb, yb): pts = calc_cci(xa, ya, ra, xb, yb, rb) intersections.extend(pts) background(0, 0, 100) stroke(255) no_fill() for x, y, r in circles: circle(x, y, r * 2) no_stroke() fill(255, 0, 0) for x, y in intersections: circle(x, y, 5) def calc_cci(x0, y0, r0, x1 ,y1, r1): d = dist(x0, y0, x1, y1) a = (r0 ** 2-r1 ** 2+d ** 2) / (2 * d) hsqd = r0 ** 2 - a ** 2 if hsqd == 0: return [(x0 + a * (x1 - x0) / d, y0 + a * (y1 - y0) / d)] elif hsqd > 0: h = sqrt(hsqd) x2 = x0 + a * (x1 - x0) / d y2 = y0 + a * (y1 - y0) / d xa, ya = x2 + h * (y1 - y0) / d, y2 - h * (x1 - x0) / d xb, yb = x2 - h * (y1 - y0) / d, y2 + h * (x1 - x0) / d return[(xa, ya), (xb, yb)] else: return [] ``` --- ### sketch_2023_01_03  [sketch_2023_01_03](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_03) [[Processing Java](https://processing.org)] & [[py5](https://py5coding.org/)] Java version: ```java // Para criar imagem com glitch a partir de // arquivo JPG na sub-pasta /data PImage img; int n = 10; // número de passos estragando bytes! String nomeArquivo = "sesc.jpg"; void setup() { size(382, 510); noLoop(); } void draw() { byte[] data=loadBytes(nomeArquivo); // carrega a imagem original for (int i = 0; i < n; i++) { int loc=(int)random(1, data.length); // sorteia uma posição no array data[loc]=(byte)random(255); // sorteia um valor de byte e substitui } saveBytes("gliched_" + nomeArquivo, data); // salva um novo arquivo modificado img = loadImage("gliched_" + nomeArquivo); // carrega a imagem modificada image (img, 0, 0); } void keyPressed() { saveFrame("###.png"); redraw(); } ``` Python version: ```python # using py5 (py5coding.org) imported mode from PIL import Image import io def setup(): size(517, 707) no_loop() def draw(): with open('data/a.jpg', 'rb') as f: list_jpg_bytes = list(f.read()) for _ in range(10): loc = random_int(len(list_jpg_bytes) - 1) list_jpg_bytes[loc] = random_int(1, 255) stream = io.BytesIO(bytes(list_jpg_bytes)) new_img = Image.open(stream) try: image(convert_image(new_img), 0, 0) # PIL.Image to py5Image except: # OSError / UnidentifiedImageError: pass def key_pressed(): save_frame("###.png"); redraw() ``` --- ### sketch_2023_01_02  [sketch_2023_01_02](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_02) [[py5](https://py5coding.org/)] Genuary 2 - 10 minutes ```python def setup(): size(600, 600) color_mode(HSB) no_stroke() rect_mode(CENTER) def draw(): background(0) m = frame_count #1 + mouse_x // 10 for x in range(100): cx = 50 + x * 5 for y in range(100): cy = 50 + y * 5 c = (x ^ y) ** 13 % m fill(c * (255 / m), 255, 255) # print(c, cx, cy) square(cx, cy, 5) if frame_count % 10 == 0 and frame_count <= 100: save_frame('###.png') ``` --- ### sketch_2023_01_01  [sketch_2023_01_01](https://github.com/villares/sketch-a-day/tree/main/2023/sketch_2023_01_01) [[py5](https://py5coding.org/)] Genuary 1 - loop ```python def setup(): size(600, 600) blend_mode(ADD) no_stroke() def draw(): background(0) xc = yc = 300 r = 250 for i in range(6): m = cos(radians(frame_count / 2)) ** 2 a = radians(frame_count / 2 + 60 * i) x = xc + r * cos(a) y = yc + r * sin(a) fill(0, 0, 255) circle(x, y, 50) x = xc + r * cos(a * m) y = yc + r * sin(a * m) fill(0, 255, 0) circle(x, y, 50) x = xc + r * cos(a * -m) y = yc + r * sin(a * -m) fill(255, 0, 0) circle(x, y, 50) ``` --- [2026](README.md) \| [2025](2025.md) \| [2024](2024.md) \| 2023 \| [2022](2022.md) \| [2021](2021.md) \| [2020](2020.md) \| [2019](2019.md) \| [2018](2018.md) ---
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.