Kirjautuminen

Haku

Tehtävät

Kilpailu

Putka Open 2025
5. kierros:
28.11. klo 18 – 30.11. klo 23

Keskustelu: Yleinen keskustelu: Kaksi yksinkertaista koodia avasivat tien hienoon galleriaan 🎨✨

PetriKeckman [22.11.2025 10:53:15]

#

Kaksi yksinkertaista koodia avasivat tien hienoon galleriaan 🎨✨

Iloisia uutisia taiteen ohjelmointirintamalta. Pidän yksityisnäyttelyn galleria Kookoksessa 24.2.-14.3.2026 Pohjoinen Rautatiekatu 17. Keskeisellä paikkaa Helsinkiä HAM-museota vastapäätä.

Tässä algoritmi 1:
Sen tuottamia kuvia 300 kpl: https://petke.info/uus/points.html

rebol[]
plot: copy[pen off]
maxx: 2000
maxy: 2000
random/seed now/precise
main: layout [
	box (as-pair (maxx) (maxy)) black effect reduce ['draw plot]
]
kuva2: copy/part skip to-image main 20x20 (as-pair maxx maxy)
;random/seed now/precise
print "wait..."
kerroinx: 0.00005
kerroiny: 0.00005

for kuvaind 1 3000 1 [
	x0: random maxx
	y0: random maxy
	x1: random maxx
	y1: random maxy
	x2: random maxx
	y2: random maxy
	x3: random maxx
	y3: random maxy
	x4: random maxx
	y4: random maxy
	x5: random maxx
	y5: random maxy
	x6: random maxx
	y6: random maxy
	x7: random maxx
	y7: random maxy
	x8: random maxx
	y8: random maxy
	x9: random maxx
	y9: random maxy

	for x 0 (maxx - 1) 1 [
		for y 0 (maxy - 1) 1 [
			xp: x0 + (kerroinx * x)
			yp: y0 + (kerroiny * y)


			et1: square-root (((xp - x1) * (xp - x1)) + ((yp - y1) * (yp - y1)))
			et2: square-root (((xp - x2) * (xp - x2)) + ((yp - y2) * (yp - y2)))
			et3: square-root (((xp - x3) * (xp - x3)) + ((yp - y3) * (yp - y3)))
			et4: square-root (((xp - x4) * (xp - x4)) + ((yp - y4) * (yp - y4)))
			et5: square-root (((xp - x5) * (xp - x5)) + ((yp - y5) * (yp - y5)))
			et6: square-root (((xp - x6) * (xp - x6)) + ((yp - y6) * (yp - y6)))
			et7: square-root (((xp - x7) * (xp - x7)) + ((yp - y7) * (yp - y7)))
			et8: square-root (((xp - x8) * (xp - x8)) + ((yp - y8) * (yp - y8)))
			et9: square-root (((xp - x9) * (xp - x9)) + ((yp - y9) * (yp - y9)))

			Ri: (xp + yp * et1)
			Gi: (xp * yp + et2)
			Bi: xp + yp + et3
			R: 255 * cosine (360 * sine Ri)
			G: 255 * sine (360 * cosine Gi) + et4
			B: 255 * cosine (360 * sine Bi)

			väri: to-tuple compose [(to-integer (G + B)) (to-integer (G + R)) (to-integer (B + R))]




			if (R * G * B) <= (3 * 128 * 128 * 128) [
				Ri: (xp + yp * et4)
				Gi: (xp * yp + et5)
				Bi: xp + yp + et6
				R: 255 * sine (360 * cosine Ri) + et3
				G: 255 * sine (360 * sine Gi)
				B: 255 * cosine (360 * cosine Bi)

				väri: to-tuple compose [(to-integer (G + B)) (to-integer (G + R)) (to-integer (B + R))]
			]

			if (R * G * B) >= (3 * 128) [
				Ri: (xp + yp - et7 + et3)
				Gi: (xp * yp + et8)
				Bi: xp + yp * et9 + et6
				R: 255 * sine (360 * cosine Ri)
				G: 255 * sine (360 * sine Gi)
				B: 255 * cosine (360 * cosine Bi)

				väri: to-tuple compose [(to-integer (R)) (to-integer (G)) (to-integer (B))]
			]



			;väri: to-tuple compose [(to-integer (G + B)) (to-integer (G + R)) (to-integer (B + R))]
			poke kuva2 (as-pair x y) (väri)
		]
	]
	save/png to-file rejoin ["_p" kuvaind ".png"] kuva2
	print kuvaind
]
halt

Tässä algoritmi 2:
Sen tuottamia kuvia 500 kpl: https://petke.info/uus/retro.html

rebol[]
random/seed now/precise
maxx: 1920
maxy: 1080
versioiden_maara: 100  ; montako yhdistettyä kuvaa haluat tehdä

print "Aloitetaan yhdistely..."

for i 1 versioiden_maara 1 [

	; --- Arvotaan 5 erilaista kuvaindeksiä väliltä 1171 ---
	kaikki: copy []
	for i 1 171 1 [append kaikki i]
	kaikki: random kaikki
	kuvat: copy/part kaikki 5

    ; --- Ladataan kuvat ---
    kuva1: load to-file rejoin ["k" kuvat/1 ".jpg"]
    kuva2: load to-file rejoin ["k" kuvat/2 ".jpg"]
    kuva3: load to-file rejoin ["k" kuvat/3 ".jpg"]
    kuva4: load to-file rejoin ["k" kuvat/4 ".jpg"]
    kuva5: load to-file rejoin ["k" kuvat/5 ".jpg"]

    ; --- Luodaan tyhjä pohja ---
    plot: copy []
    main: layout [
        box (as-pair maxx maxy) black effect reduce ['draw plot]
    ]
    tausta: copy/part skip to-image main 20x20 (as-pair maxx maxy)

    ; --- Käydään pikselit läpi ja otetaan keskiarvoväri ---
    for x 0 (maxx - 1) 1 [
        for y 0 (maxy - 1) 1 [
            väri1: pick kuva1 (as-pair x y)
            väri2: pick kuva2 (as-pair x y)
            väri3: pick kuva3 (as-pair x y)
            väri4: pick kuva4 (as-pair x y)
            väri5: pick kuva5 (as-pair x y)
            r: väri1/1 + väri2/1 + väri3/1 + väri4/1 + väri5/1
            g: väri1/2 + väri2/2 + väri3/2 + väri4/2 + väri5/2
            b: väri1/3 + väri2/3 + väri3/3 + väri4/3 + väri5/3
            väri: to-tuple compose [
                (to-integer (r / 5))
                (to-integer (g / 5))
                (to-integer (b / 5))
            ]
            poke tausta (as-pair x y) väri
        ]
    ]

    ; --- Tiedostonimi, josta näkyy käytetyt kuvat ---
    tiedostonimi: rejoin [
        "yhdistetty_"
        kuvat/1 "_" kuvat/2 "_" kuvat/3 "_" kuvat/4 "_" kuvat/5
        ".png"
    ]

    save/png to-file rejoin ["/E/Suomen Taitelijat ry/vuosinäyttely2025/mietteet/omatekoäly/videokuvat/UNI/" tiedostonimi] tausta
    print rejoin ["Tallennettu: " tiedostonimi]
]

print "Valmista!"
halt

Näyttelyhakemus: https://petke.info/galleriakookosyksityisnayttely/hakemus_kookos.html
Teosluettelo: https://petke.info/galleriakookosyksityisnayttely/teosluettelo.html

Antti Laaksonen [22.11.2025 13:34:13]

#

Hienoa! Mitä tarkoittaa yksityisnäyttely? Saako näyttelyyn tulla tutustumaan ja maksaako se jotain?

PetriKeckman [22.11.2025 13:49:08]

#

Antti Laaksonen kirjoitti:

Hienoa! Mitä tarkoittaa yksityisnäyttely? Saako näyttelyyn tulla tutustumaan ja maksaako se jotain?

Joo. On hienoa! Yksityisnäyttely tarkoittaa sitä, että koko galleria on minulle varattu.

Olen tehnyt jo ripustussuunnitelmankin, käyttäen apuna omaa REBOL-ohjelmaani:

https://petke.info/galleriakookosyksityisnayttely/suunnitelma.png

Olen kohta viemässä kolmea alumiinitaulua yhteisnäyttelyyn, eli ryhmänäyttelyyn:

https://www.galleriakookos.fi/kuiskauksia-ja-huutoja-whispers-and-screams/

Sen avajaiset on jo ens viikon tiistaina.

Gallerian johtaja otti minuun yhteyttä Instagram tilin kautta ja pyys hakemaan yhteisnäyttelyyn. Se rohkaisi minua hakemaan jopa yksityisnäyttelyä.

Mun yksityisnäyttely on siis ajalla 24.2.-14.3.2026. Gallerian aukioloajat ovat:

Tue – Fri 13:00-18:00, Sat 13:00-17:00, closed for public holiday

Jos kiinnostaa tavata, ni tuu moikkaamaan avajaisiin 24.2.2026 ti klo 18-20. Avajaiset on kivoja tapahtumia. Ois ihan kiva tavata Ohjelmointiputkan gurua. Sinähän kai olet ollut alusta alkaen mukana? Ja joo: ei maksa mitään gallerioissa käynti. Mulle maksaa maltaita sen vuokraaminen, mutta toivottavasti myyntiä tulee.

Antti Laaksonen [22.11.2025 21:00:36]

#

Kiitos tiedoista ja kutsusta! Tulen helmikuussa avajaisiin, jos se sopii aikatauluuni.

Vastaus

Muista lukea kirjoitusohjeet.
Tietoa sivustosta