#Processing
Desenho de 2023-06-07: "(Hex|Oct)agonos 3"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding

@Jean_no fait du #processing, ces petits programmes artististiques qui font des choses inattendues avec des paramètres et du hasard (c’est un genre de pape de la chose, il a écrit un tas de bouquins sur cette pratique).
Cette fois, il a trituré une photo de #LouiseBrooks. C’est sur son Insta que je l’ai trouvé – ouais Jean-No, c’est un gros lâcheur des amis sur Masto, on ne l’y voit plus guère.

Desenho de 2023-06-05: "(Hex|Oct)agonos 2"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding

gostei mais da mistura de hoje...
#Processing #Python #py5 #numpy #CreativeCoding (atualização: animação comprimiu mal, vou por uma imagem estática que dá pra ter uma ideia)
import py5
import numpy as np
def setup():
global npa, R, G, B
py5.size(600, 600)
npa = np.empty((py5.width, py5.height)).T
npa.fill(100)
R = dist_to_pos(py5.width, py5.height, 300, 300)
G = dist_to_pos(py5.width, py5.height, 200, 300)
B = dist_to_pos(py5.width, py5.height, 300, 200)
def draw():
rnd_r = np.random.randint(0, 300, size=(py5.width, py5.height)).T
rnd_g = np.random.randint(0, 300, size=(py5.width, py5.height)).T
rnd_b = np.random.randint(0, 300, size=(py5.width, py5.height)).T
img = np.dstack([R < rnd_r, G < rnd_g, B < rnd_b])
py5.set_np_pixels(img * 150, 'RGB')
def dist_to_pos(width, height, cx, cy):
""" reeturns a 2D array filled with distances """
x = np.arange(width)
y = np.arange(height)
xx, yy = np.meshgrid(x, y)
return np.linalg.norm(np.array([xx - cx, yy - cy]), axis=0)
py5.run_sketch()

sketch de ontem #Processing #Python #py5 #numpy https://abav.lugaralgum.com/sketch-a-day
!["""
animação com pixels aleatórios verdes, azuis e vermelhos em um fundo preto, mais concentrados no centro, gerados pelo código abaixo
"""
import py5
import numpy as np
def setup():
global npa, R, G, B
py5.size(600, 600)
npa = np.empty((py5.width, py5.height)).T
npa.fill(100)
R = dist_to_pos(py5.width, py5.height, 300, 300)
G = dist_to_pos(py5.width, py5.height, 200, 300)
B = dist_to_pos(py5.width, py5.height, 300, 200)
def draw():
rnd = np.random.randint(0, 300, size=(py5.width, py5.height)).T
img = np.dstack([R < rnd, G < rnd, B < rnd])
py5.set_np_pixels(img * 150, 'RGB')
def dist_to_pos(width, height, cx, cy):
""" reeturns a 2D array filled with distances """
x = np.arange(width)
y = np.arange(height)
xx, yy = np.meshgrid(x, y)
return np.linalg.norm(np.array([xx - cx, yy - cy]), axis=0)
py5.run_sketch()](https://assets.toot.cafe/cache/media_attachments/files/110/492/689/911/808/941/small/5395d773d53e0222.png)
高評価を3つもいただきました。ありがとうございます。
facing the underpass(feat. GUMI, VOCALOID6 AI Megpoid)
#GUMI #Megpoid #VOCALOIND #korg #m01d #music #Processing #CreativeCoding
CreativeCommons BY-NC-SA 4.0
https://www.youtube.com/watch?v=XmDRaaWupHA
This Processing-turned- @Raspberry_Pi sketch has a physical knob (not visible in this video), which was part of the idea behind rendering generative art on portable hardware.
Most generative sketches can be modified with a few variables. One such variable is attached to the rotary encoder that gave me this 'new' 1-bit motion graphic.
Music in Reason 12.
#design #graphicdesign #generativeart #algorithmicart #generative #processing #processing4 #p5js #1bit #digitalart #multimediaart #visualart

Il primo esperimento con #p5js non poteva che essere per il #logo del mio blog.
Avevo usato #processing alcuni anni fa per alcune visualizzazioni da inserire in alcune applicazioni... e devo dire che l'evoluzione verso #javaScript non ha fatto che bene a questo ecosistema!
È online anche su ogni pagina del mio sito... se ci cliccate sopra le palline si risparpagliano! Ci starei ore...

Desenho de 2023-06-04: "(Hex|Oct)agonos"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding

新曲を公開しました。お聴きいただければ幸いです。
facing the underpass(feat. GUMI, VOCALOID6 AI Megpoid)
#GUMI #Megpoid #VOCALOIND #vocanew #vocaloPost #korg #m01d #music #Processing #CreativeCoding
CreativeCommons BY-NC-SA 4.0
https://www.youtube.com/watch?v=XmDRaaWupHA

New movie: facing the underpass(feat. GUMI, VOCALOID6 AI Megpoid)
#GUMI #Megpoid #VOCALOIND #vocanew #vocaloPost #korg #m01d #music #Processing #CreativeCoding
CreativeCommons BY-NC-SA 4.0
https://www.youtube.com/watch?v=XmDRaaWupHA
Today I updated https://abav.lugaralgum.com/sketch-a-day that was stuck a few days behind... today's sketch...
![# Animation made with the code below, random white dots on a gray background concentrated near the center.
import py5
import numpy as np
def setup():
global npa, dst
py5.size(600, 600)
npa = np.empty((py5.width, py5.height)).T
npa.fill(100)
dst = dist_to_pos(py5.width, py5.height, 300, 300)
def draw():
rnd = np.random.randint(0, 300, size=(py5.width, py5.height)).T
img = dst < rnd
py5.set_np_pixels(npa + img * 150, 'L')
def dist_to_pos(width, height, cx, cy):
""" reeturns a 2D array filled with distances """
x = np.arange(width)
y = np.arange(height)
xx, yy = np.meshgrid(x, y)
return np.linalg.norm(np.array([xx - cx, yy - cy]), axis=0)
py5.run_sketch()](https://assets.toot.cafe/cache/media_attachments/files/110/483/579/255/127/528/small/8d78a3ea35f58b1c.png)
Desenho de 2023-06-03: "Hexagonos 3"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding

"The digital copy of the Processing Community Catalog is OUT, check out this nearly 1000 page art+tech book that celebrates the Processing and art+tech community!💻📚💜 https://archive.org/details/processing-community-catalog-2021/page/n61/mode/2up #ProcessingCommunityCatalog #Processing"
Desenho de 2023-06-02: "Hexagonos 2"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding

Finally! The Procesing Community Catalog arrived today -- almost two years after I taught the course about programming and vector math in my school.
It took me some minutes to find our contribution, but there it is: con 453 on page 768 shows some of the flying objects programmed by my students ... unexpectedly only as a greyscale image, so I have added the colour image to our Github page.
Another 1-bit, @RaspberryPi Pico motion sketch made out of what used to be Processing code.
Music in Reason 10.
#design #graphicdesign #motiondesign #motiongraphics #generativeart #algorithmicart #generative #algorithmic #processing #processing4 #p5js #p5 #arduino #raspberrypi #raspberrypipico #raspberry #nokia5110 #1bitdisplay #1bit #1bitlcd #1bitart #lcd #retroart #retro #maker #digitalart #multimediaart #computerart

高評価を1ついただきました。ありがとうございます。
beat under blanket
#korg #DSN12 #techno #music #Processing #CreativeCoding
CreativeCommons BY-SA 4.0
https://www.youtube.com/watch?v=aJ9nQN8Pqto
Desenho de 2023-06-01: "Hexagono"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding

Desenho de 2023-05-31: "Abstrato 2"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding

Retro Platformer in P5.play – Stage 3
Meine noch sehr tastenden Versuche mit P5.play, der Spiele- und Physik-Engine für P5.js haben mir erste Erfolgserlebnisse beschert. Mit wenigen Zeilen Code ist es mir gelungen, einen kleinen Ninja-Frosch mittels Tastendruck über den Bildschirm hüpfen zu lassen. Denn P5.play bietet dafür eine Reihe sehr leistungsstarker Befehle an, die die Programmierung stark vereinfachen. https://kantel.github.io/posts/2023053103_retro_platformer_3/ #P5js #P5play #Processing #GameDev

sketch_2022_05_30 #Processing #Python #py5 #numpy, same bitwise pattern strategy as yesterday's, learned from Naoki Tsutae.
![#black and white patter that is reminiscent of a PCB, based on the code below
# https://twitter.com/ntsutae/status/1521190629769826304?s=20
import numpy as np
import py5
order = 500
power = 59
img = None
def setup():
global x, y
py5.size(1000, 1000)
py5.no_smooth()
x, y = np.meshgrid(np.arange(0, order), np.arange(0, order))
def draw():
global img
py5.background(0)
pattern = func(x, y, py5.frame_count / 2)
#img = py5.create_image_from_numpy(color_map[pattern], 'RGB')
img = py5.create_image_from_numpy(pattern * 255, 'L', dst=img)
py5.image(img, 0, 0, py5.width, py5.height)
py5.window_title(f'{py5.get_frame_rate():.2f}')
@np.vectorize
def func(x, y, t):
return int((t + ((x ^ y) ** (power / 10))) % 256) > 32
def key_pressed():
global power
if py5.key_code == py5.UP:
power += 1
elif py5.key_code == py5.DOWN:
power = max(power - 1, 1)
elif py5.key == 's':
py5.save_frame(f'out{order}-{power}.png')
print(power)
py5.run_sketch(block=False)](https://assets.toot.cafe/cache/media_attachments/files/110/460/706/091/183/772/small/13c5919362afa85b.png)
Desenho de 2023-05-30: "Abstrato"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding

Starting to mess around with strange attractors.
How deep does this rabbit hole go...?

Desenho de 2023-05-29: "Centralidade 2"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding

#CreativeCoding #Processing #Python # This pattern strategy I learned from Naoki Tsutae
# https://openprocessing.org/user/154720?view=sketches&o=48#sk
import numpy as np #numpy
import py5 #py5
order = 500
power = 59
def setup():
global color_map, x, y
py5.size(1000, 1000)
py5.no_smooth()
color_map = np.array([
[py5.red(hsb(i)), py5.green(hsb(i)), py5.blue(hsb(i))]
for i in range(256)])
x, y = np.meshgrid(np.arange(0, order), np.arange(0, order))
def draw():
py5.background(0)
pattern = func(x, y)
img = py5.create_image_from_numpy(color_map[pattern], 'RGB')
py5.image(img, 0, 0, py5.width, py5.height)
def hsb(h, sat=255, bri=255):
py5.color_mode(py5.HSB)
return py5.color(h, sat, bri)
@np.vectorize
def func(x, y):
return int((x ^ y) ** (power / 10)) % 256
def key_pressed():
global power
if py5.key_code == py5.UP:
power += 1
elif py5.key_code == py5.DOWN:
power = max(power - 1, 1)
elif py5.key == 's':
py5.save_frame(f'out{order}-{power}.png')
print(power)
py5.run_sketch(block=False)

I really like @bitartbot an I always wanted to try some of the patterns with #py5 (#Processing + #Python), also #numpy vectorization seemed cool to try...

Desenho de 2023-05-28: "Centralidade"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding

Has anyone any experience of using Jack's Lab for #processing especially E6 4x5 film? I have a LOT of Velvia 50 in the freezer, and want to get back to it - thanks for any advice. #BelieveInFilm https://jackslab.co.uk/
My weird pseudo-3D sphere is now audio-reactive. I added a smoothed interpolation step to the FFT bands and an inertia-based rotation mechanism. (Everything is still completely 2D)
Where's the vibing cat gif when you need it?

Desenho de 2023-05-27: "Espetos 2"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding

sketch_2022_05_26 #Processing #Python #py5 a "mask clipping" study
Desenho de 2023-05-26: "Esfera"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding
Desenho de 2023-05-25: "Espetos"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding
#Processing #Python #numpy #shapely #py5 #sketchAday for 24th and 25th May
Double, double toil and trouble
#generative #GenerativeArt #CreativeCoding #Processing #glsl #shaders #FlowField
Desenho de 2023-05-24: "Cubo"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding
Desenho de 2023-05-23: "Crescimento"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding

Only 10 pages into this monster and already absolutely loving the Processing Community Catalog. It has described so eloquently many views I have about FLOSS and will be a great resource for explaining how and why it is so important.
#processing
Thank you, @shiffman @benfry
and Casey Reas!

Colorflow ball
#generative #GenerativeArt #CreativeCoding #Processing #glsl #shaders #FlowField

sketch_2022_05_22 #Processing #Python #py5 #numpy https://abav.lugaralgum.com/sketch-a-day
Water is maybe a tiny bit faster, but still very slow. I added text for the current material and I can pickle the numpy array and load it back.
Desenho de 2023-05-22: "Estudo sobre Geometria 7"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding
Current pastime: going through all my old #Processing sketches and re-imagining them via #stablediffusion😅 #aiart



#Processing #doodle. I really should try and get the video capture on my Ubuntu laptop working - it looks better in motion😕 #generativeart
sketch_2023_05_21 #Processing #Python #py5 #numpy #creativeCoding
My naive sandbox now has, beside sand, concrete, water and rock. Water is very slow... but OK. All under 100 lines of code!
https://github.com/villares/sketch-a-day/blob/main/2023/sketch_2023_05_21/sketch_2023_05_21.py
Desenho de 2023-05-21: "Estudo sobre Geometria 6"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding
(Atrasado) Desenho de 2023-05-20: "Estudo sobre Geometria 5"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding
sketch_2022_05_20 update!
I couldn't resist fiddling a bit more, and it came out more realistic!
Code at https://abav.lugaralgum.com/sketch-a-day
Really impressed with this DT thesis from #entropy called p5.genzine, developed by Munus Shih and Iley Cao, “makes it easy to code and generate printable files for an 8-page #zine directly from your p5 sketch. It offers a user-friendly graphical interface tailored for interactive #zines, integrated export buttons to create print-ready layouts, and custom functions for typography and graphic design” #p5 #processing
https://parsons.edu/dt-2023/p5-genzine/

sketch_2022_05_20 (see next toot for the most recent version)
Naive sand simulator… #Processing #Python #numpy #py5
import numpy as np
import py5
def setup():
global grid
py5.size(500, 500)
grid = np.zeros((py5.width, py5.height), dtype=bool)
def draw():
py5.set_np_pixels(grid * 128, 'L')
update_grid()
def update_grid():
for i in reversed(range(grid.shape[0]-1)):
row, next_row = grid[i], grid[i+1]
sand = row == 1
next_row_empty = next_row == 0
falling = sand & next_row_empty
row[falling] = 0
next_row[falling] = 1
sand_right = row[1:] == 1
next_left_empty = next_row[:-1] == 0
falling_left = sand_right & next_left_empty
row[1:][falling_left] = 0
next_row[:-1][falling_left] = 1
sand_left = row[:-1] == 1
next_right_empty = next_row[1:] == 0
falling_right = sand_left & next_right_empty
row[:-1][falling_right] = 0
next_row[1:][falling_right] = 1
def key_pressed():
if py5.key == ' ':
grid[:] = np.zeros((py5.width, py5.height), dtype=bool)
def mouse_dragged():
x = py5.mouse_x % py5.width
y = py5.mouse_y % py5.height
if py5.is_key_pressed:
grid[y-4:y+5,x-4:x+5] = 1
else:
grid[y,x] = 1
py5.run_sketch()
#numpy feels a bit like another, harder, language to learn beyond #python :(
A first attempt at a "sand simulator" but it seems too hard...
#py5 #Processing #creativeCoding
import numpy as np
import py5
def setup():
global grid
py5.size(500, 500)
grid = np.zeros((py5.width, py5.height), dtype=bool)
def draw():
py5.set_np_pixels(grid * 255, 'L')
update_grid()
def update_grid():
for i in reversed(range(grid.shape[0]-1)):
row, next_row = grid[i], grid[i+1]
sand = row == 1
next_row_empty = next_row == 0
falling = sand & next_row_empty
row[falling] = 0
next_row[falling] = 1
def mouse_dragged():
x = py5.mouse_x % py5.width
y = py5.mouse_y % py5.height
if py5.is_key_pressed:
grid[y-2:y+3,
x-2:x+3] = 1
else:
#grid[y, x] = 1
grid[y][x] = 1
py5.run_sketch()
Projecting lines onto a 2D semisphere and offsetting them based on mouse position and animated noise.
#numpy feels a bit like another, harder, language to learn beyond #python :(
A first attempt at a "sand simulator" but it seems too hard...
#py5 #Processing #creativeCoding
import numpy as np
import py5
def setup():
global grid
py5.size(500, 500)
grid = np.zeros((py5.width, py5.height), dtype=bool)
def draw():
py5.set_np_pixels(grid * 255, 'L')
update_grid()
def update_grid():
for i in reversed(range(grid.shape[0]-1)):
row, next_row = grid[i], grid[i+1]
sand = row == 1
next_row_empty = next_row == 0
falling = sand & next_row_empty
row[falling] = 0
next_row[falling] = 1
def mouse_dragged():
x = py5.mouse_x % py5.width
y = py5.mouse_y % py5.height
if py5.is_key_pressed:
grid[y-2:y+3,
x-2:x+3] = 1
else:
#grid[y, x] = 1
grid[y][x] = 1
py5.run_sketch()
Desenho de 2023-05-19: "Estudo sobre Geometria 4"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding
Sketches are encoded in the URL, so you can easily share them:
The p5.cljs editor is live! It's a really barebones editor, but you can now try writing P5 in ClojureScript! Link: https://p5cljs-editor.onrender.com/
Not affilliated with P5 or the Processing foundation.
#p5 #processing #clojurescript #cljs #p5js #js #creativecoding

A first attempt at Conway's Game of Life with #py5 + #numpy + #scipy and... blazing fast.
https://gist.github.com/villares/2334c2c014070b9d0ac1e06c1170338c
#celularAutomata #Processing #Python
cc @melissawm @py5coding
Building a web editor for P5 but using ClojureScript!
This is a really ugly proof of concept, but I'm really happy to have learned how to create this.
A random walker x3 (rotational simetry)
#Processing #Python #py5 #RandomWalker
Desenho de 2023-05-17: "Estudo sobre Geometria 2"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding
sketch_2022_05_16 #Processing #Python #numpy #py5 inspired by a py5 "planet" made by @ericof
Desenho de 2023-05-15: "Strange New Worlds 🖖🏽"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding
Inspirado em https://github.com/villares/sketch-a-day/blob/main/2023/sketch_2023_02_13/sketch_2023_02_13.png
Desenho de 2023-05-14: "Estudo sobre Geometria"
#py5 #desenhandocomcodigo #arte #processing #creativeCoding