Kirjautuminen

Haku

Tehtävät

Kilpailut: Piirtävä ohjelma: tulokset

Järjestäjä: Metabolix

Vuodenvaihteessa 2011–2012 Ohjelmointiputkassa pidettiin kilpailu, jossa tehtävänä oli ohjelmoida ohjelma, joka piirtää mustavalkoisesta mallista kuvan. Kilpailun päätteeksi järjestettiin äänestys, jossa Ohjelmointiputkan käyttäjät arvostelivat ohjelmien taiteellisen tason asteikolla yhdestä kymmeneen.

Kilpailuun osallistui 13 ohjelmaa, jotka tekivät mallikuville hyvin erilaisia temppuja. Ylivoimaiseen voittoon kiri Trail kolmiulotteisilla vuoristomaisemillaan. Seuraavista sijoista käytiin kova kamppailu, ja tulos ratkesi vasta aivan viimeisillä äänillä: toiseksi nousi fpc_hehku ja kolmannen sijan nappasi metapirux. Tilanne oli tiukka myös viiden keskimmäisen välillä sekä jälkijoukossa. Uurnilla ehti käydä kaikkiaan 75 äänestäjää.

Ohjelmien taideteokset ja kuvaukset löytyvät edelleen äänestyssivulta. Lähdekoodit voi ladata yhtenä pakettina.

Osallistujat ja tulokset

Alla ovat kaikki kilpailun osallistujat järjestyksessä kokonaispistemäärän mukaan. Varsinaisten kilpailijoiden lisäksi listan hännillä keikkuu kilpailun esimerkkiäly esim.

sijatekoälykielitekijänimimerkkipisteitä
1.TrailC++Antti VainioAnaatti614
2.fpc_hehkuPascalTeemu ValoUser137507
3.metapiruxPascalLauri KenttäMetabolix501
4.volttiOctaveOtto Seiskarios480
5.thunderC++Lari KoponenL2-K2450
6.J0U51Cpr0l3438
7.PointteriCJuho Peltonenaaämdee428
8.wanha_calaC++Teemu HeikkiläSienikasvusto426
9.karkkiPHPJouko JoensuuJogge404
10.ReinobrandtCEino-Pekka Kantoreino318
11.blue_periodCPekka KarjalainenPekka Karjalainen312
12.PsycedelicPHPTeemu Kukkola304
13.esim(useita)223

Monista sijoista kamppailtiin loppuun saakka. Seuraavassa kuvaajassa näkyy tekoälyjen saamien pisteiden keskiarvo kunkin äänestäjän jälkeen:

Pohdinta

Kilpailun aatelia alkuperäisen kilpailuaiheen eli taiteellisen tekoälyn kannalta olivat blue_period, joka ainoana uskalsi siirrellä ja monistaa mallikuvan elementtejä, ja metapirux, joka tuotti melko tyylikkäitä joskin kaavamaisia värikynäpiirroksia malleista.

Useampi ohjelmoija etsi taidetta sen sijaan luonnontieteiden puolelta: voltti laski sähkökentän potentiaalia, thunder loi valokaaria ja J0U51 venytteli jousia; näillä menetelmillä syntyi muutama hyvinkin hieno teos. Matemaattista perspektiiviä tarvitsivat myös Trail kolmiulotteisissa kuvissaan ja wanha_cala kalansilmäefektissään. Pointteri taas piirteli Mandelbrotin fraktaalia kompleksilukujen avulla, ja erilaisia pehmennyskaavoja hyödynsi monikin ohjelma, erityisen näyttävästi fpc_hehku.

Pienempi osa ohjelmista – karkki, Reinobrandt ja Psycedelic sekä esim – tuotti hyvin selväpiirteistä, tietokonemaista grafiikkaa, joka ei tällä kertaa ollut useimpien äänestäjien mieleen. Kuitenkin myös nämä ohjelmat saivat muutamalta äänestäjältä täydet 10 pistettä; kauneus on katsojan silmissä.

Aivan alkuperäisiin tavoitteisiin ei päästy, sillä harva ohjelma edes analysoi mallikuvaa eivätkä näidenkään taideteokset olleet kovin suunnitelmallisia. Sen sijaan päädyttiin kilpailemaan hienoimmista efekteistä hieman demokilpailun tapaan – ja monta upeaa kuvaa saatiinkin!

Ohjelmat

Ohjelmien lähdekoodit voi ladata yhtenä pakettina. Alla ovat tekijöiden omat kuvaukset ohjelmistaan.

Trail

Tekijä: Antti Vainio, Anaatti

Tekoäly on ray tracer, joka käyttää mallikuvaa korkeuskarttana, jonka pohjalta se luo vuoristomaiseman. Ohjelma pystyy piirtämään mitä tahansa polygoneja, minkä lisäksi siihen on tehty monia ominaisuuksia, joita käytetään nykyaikaisessa tietokonegrafiikassa. Valaistuksessa käytetään suoran valaistuksen lisäksi phong-varjostusta. Tekstuurit käyttävät parallaksi- ja normaalikartoitusta. Kuvan jälkikäsittelyssä käytetään high dynamic range -valaistusta sekä bloom- ja depth of field -efektejä.

fpc_hehku

Tekijä: Teemu Valo, User137

Alkuperäinen kuva piirretään pienempänä ja alapuolelle peilattuna ja venytettynä. Paljon on käytetty sumennusefektiä ja blendausta. Tähtitausta muodostuu sadoista liikkuvista himmeistä partikkeleista.

metapirux

Tekijä: Lauri Kenttä, Metabolix

Ohjelma muuttaa kuvan ensin vaaka- ja pystysuoriksi ja kulmittaisiksi viivoiksi ja piirtää sitten osan näistä viivoista hieman levennettynä, käyristettynä ja väritettynä. Piirtämiseen käytetään pienenpieniä metapalloja. Lopuksi kuvaa sumennetaan aavistus.

voltti

Tekijä: Otto Seiskari, os

Kuvan yläreunan ja alareunan välille on kytketty 1 voltin jännite. Mallikuvan mustissa kohdissa on eristettä (resistanssi 100 kertaa valkoisen aineen vastaava). Tuotetun kuvan värin voimakkuus kuvaa sähkökentän potentiaalia.

Ohjelma ratkaisee 24384 muuttujan yhtälöryhmän (diskretoitu johtavuusyhtälö), joka muodostetaan valmiiksi lasketun rakennedatan (datatiedosto s192x128.mat) perusteella laskennan nopeuttamiseksi.

thunder

Tekijä: Lari Koponen, L2-K2

Tehtävänä oli toteuttaa taiteellinen tekoäly. Kuitenkin, koska ohjelmoijan aika oli rajallista ja ohjelman suoritusaika vähemmän rajallista, lopputulos ei ole kovin "taiteellinen" eikä perinteisessä mielessä "älykäs". Ohjelma generoi syötteeseensä läpilyöntejä – eli valokaaria, joita myös salamoiksi kutsutaan. Eli siis: visuaalisuus ennen taiteellisuutta.

Salamoiden muoto lasketaan fysikaalisesti todenmukaisella läpilyöntimallilla, ja mallin tarvitsema Laplace-yhtälön ratkaisu saadaan arvioitua konvoluutioon perustuvalla iteratiivisella relaksaatiomenetelmällä. Salamoiden visuaalinen ilme lasketaan salaman muodon ja salama-alkion konvoluutiona. Salamoiden väri määräytyy kuvasta laskettavan tarkistusmerkin perusteella.

Koska ohjelmassa ei ole varsinaista älykkyyttä (muutoin kuin erillisten kappaleiden tunnistamiseksi), tietyt erikoistapaukset tuottavat vähemmän näyttäviä lopputuloksia.

J0U51

Tekijä: pr0l3

Ohjelma yhdistää pikselit jousilla. Mustiin pisteisiin on kiinnitetty paino. Sitten simuloidaan vähän jousien venytystä ja väritetään pisteet. Sävy tulee siitä, mihin suuntaan piste on liikkunut tasossa, ja tummemmat kohdat ovat painuneet syvemmälle. Lopussa on vielä blur poistamaan teräviä reunoja.

Pointteri

Tekijä: Juho Peltonen, aaämdee

Pointteri ei ole mikään Picasso. Taustakuviot luodaan yksinkertaisella plasmaefektillä ja Mandelbrotin fraktaalilla. Mallikuvaa sumennetaan, värejä käännetään, viivoja levennetään, ja lopulta yhdistetään taustatauhkalla.

Lopputuloksen tekeminen oli luultavasti mukavampaa kuin sen luomien kuvien katsominen, mutta tekijä on silti tyytyväinen siihen, mitä sai illassa aikaan.

wanha_cala

Tekijä: Teemu Heikkilä, Sienikasvusto

Wanha cala näyttää kuvan wanhan calan silmistä. Lisäilee sopivissa määrin vinjettiä kulmiin ja kuvailee kalan silmän läpi.

karkki

Tekijä: Jouko Joensuu, Jogge

Ohjelma piirtää taustan ja sen päälle mallikuvan väritettynä.

Reinobrandt

Tekijä: Eino-Pekka Kanto, reino

Reinobrandt lukee mallikuvan ja piirtää siitä hienon ja törkeän räikeän kuvan. Ensin ohjelma lataa datatiedostot, jotka ovat fontti ja kehys. Sitten se piirtää kuvalle värikkään taustan ja piirtää vielä mallikuvan mustat ääriviivat. Sen jälkeen se tutkii jokaisen 8x8-alueen ja katsoo mallikuvasta, kuinka monta pikseliä tuolla 8x8-alueella on. Sen jälkeen se valitsee ASCII-merkin kahdeksan merkin fontista. Lopuksi vielä ohjelma lisää kehyksen ja signeerauksen. Mallikuva on Minecraft-pelistä otettu sian kuva, jota on muokattu. Ohjelma käyttää mieluiten malleja, joissa on paksuja viivoja.

Tekoälyn nimi on annettu taiteilija Rembrandtin mukaan.

blue_period

Tekijä: Pekka Karjalainen

Ohjelma etsii yhtenäiset yksiväriset alueet annetusta kuvasta. Se valitsee näitä satunnaisesti piirrettäväksi teoksen satunnaiseen kohtaan satunnaisilla sinisen sävyillä. Piirron loppuvaiheessa ohjelma rajaa leveitä ja korkeita kuvia pois. Kuvia piirtäessä ohjelma sekoittaa piirtovärin kuvassa jo olevaan väriin. Tähän käytetty sekoituskerroin laskee piirtokerran kasvaessa.

Psycedelic

Tekijä: Teemu Kukkola

Käyttää neljää eri datatiedostoa, ensimmäisessä 192x1-kokoinen BMP-kuva mustasta valkoseen väriliukuna, muissa satunnaisesti valmiiksi generoituja lukuja. Tietyllä kaavalla mustan kohdalla lasketaan väri kuin myös valkoisen.

esim

Esimerkkiohjelman teoksissa esiintyy pienennetty mallikuva neljänä kappaleena eri suuntiin peilattuna ja eri tavoin väritettynä.

Lopuksi

Kiitos kaikille osallistujille hienoista töistä!

Tietoa sivustosta