Kirjautuminen

Haku

Tehtävät

Kilpailut: Piirtävä ohjelma

Järjestäjä: Metabolix

Vuosi sitten nähtiin, että harrastelijakin saa tietokoneen säveltämään kohtuullista musiikkia. Päästäänkö kuvataiteessa yhtä hyviin tuloksiin? Nyt tehtävänä on ohjelmoida tekoäly, joka luo mustavalkoisista mallikuvista taideteoksia.

Kilpailuaika

Kilpailu alkaa lauantaina 10.12.2011 ja päättyy sunnuntaina 15.1.2012. Pian tämän jälkeen alkaa äänestys, joka päättyy sunnuntaina 29.1.2012.

(Nyt äänestys on päättynyt ja tulokset on julkaistu.)

Kilpailun säännöt

Kilpailussa on tehtävänä ohjelmoida tekoäly, joka piirtää kuvan sille annetun mustavalkoisen mallin mukaan. Ohjelman pitää pyrkiä tuottamaan teos siten, että yhteys mallikuvaan on kiistatta nähtävissä. Jokainen osallistuja saa lähettää yhden mallikuvan. Sekä mallien että tuotosten täytyy olla asiallisia. Kaikki kuvat ovat kooltaan 192×128 pikseliä.

Alla on ensiksi eräs mahdollinen mallikuva ja sen jälkeen muutama esimerkki, millaisen teoksen ohjelma voisi siitä luoda. Toki mielikuvitusta saa käyttää, eikä mallikuvan tarvitse suinkaan esiintyä teoksessa näin suoraviivaisesti.

Ohjelmien teokset laitetaan kilpailun päätyttyä näytille, ja Ohjelmointiputkan käyttäjät saavat äänestää voittajasta. Äänestyksen säännöt päätetään myöhemmin osallistujien määrän ja tason mukaan.

Ohjelman toiminta

Kilpailuun osallistuva ohjelma on automaattinen komentoriviohjelma, joka lukee mallikuvan tiedostosta malli.bmp ja kirjoittaa oman teoksensa tiedostoon teos.bmp. Mallikuva sisältää vain kahta väriä: mustaa ja valkoista. Teoksen värimaailma on vapaa tiedostomuodon sallimissa rajoissa.

Tiedostot ovat tavallisia 24-bittisiä BMP-tiedostoja, ja kuvat ovat 192 pikseliä leveitä ja 128 pikseliä korkeita. Ohjelman ei tarvitse ymmärtää muunlaisia kuvia. Tiedostojen käsittelystä on monella kielellä valmis esimerkki, jota kannattaa hyödyntää. Esimerkkiohjelman mukana on myös yksi kelvollinen mallikuva.

Ohjelman täytyy tehdä samasta mallista aina sama taideteos, eli toiminta ei saa riippua mistään satunnaistekijöistä kuten kellonajasta. Näennäistä satunnaisuutta voi tarvittaessa tuottaa laskemalla lukuja jollain sopivalla kaavalla tai käyttämällä etukäteen valittuja satunnaislukuja.

Esimerkkiohjelmat

Kilpailua varten on tehty yleisimmillä kielillä esimerkkiohjelmia, jotka osaavat lukea ja kirjoittaa vaaditunlaisia tiedostoja ja tekevät malliksi kuville yksinkertaisen muunnoksen. Esimerkkiohjelmaa saa vapaasti käyttää oman ohjelman pohjana.

Ohjelman rajoitukset

Ohjelman käytössä on reilu gigatavu muistia ja yksi x86-64-prosessorin ydin, jonka kellotaajuus on 1,73 GHz. Ohjelmalla on minuutti aikaa piirtää kuva. Ohjelman täytyy keskittyä piirtämiseen; kaikenlainen epäilyttävä, kiero tai muuten asiaton toiminta johtaa hylkäykseen.

Ohjelman nimi

Jokaisella ohjelmalla on oltava nimi. Sopiva pituus on 3–15 merkkiä. Sallitut merkit ovat isot ja pienet aakkoset ilman skandinaavisia merkkejä, numerot, viiva ja alaviiva, siis A–Z, a–z, 0–9, - ja _. Kaksi viimeksi mainittua eivät saa esiintyä nimen päissä.

Ohjelmointikieli

Kilpailukoneella on kääntäjiä ja tulkkeja monille ohjelmointikielille. Mikäli kuitenkin sopiva kieli puuttuu listalta, lähetä sähköpostia tai osallistu keskusteluun, niin selvitetään, voiko asialle tehdä jotain.

Tuetut ohjelmointikielet versioineen:

Tekoälyjen tulee pitäytyä kielten perusominaisuuksissa; kääntäjästä, kirjastoista, käyttöjärjestelmästä tai prosessorin tyypistä riippuvaisia ominaisuuksia ei pidä käyttää. Ohjelman on toimittava yllä mainituilla välineillä 64-bittisessä GNU/Linux-käyttöjärjestelmässä.

Käännöksissä käytetään kohtuullisia optimointiasetuksia, esimerkiksi GCC:llä ja FPC:llä valitsinta -O2.

Osallistuminen

Ilmoittautumiseen tarvitaan seuraavat tiedot:

Tiedot tulee lähettää sähköpostitse osoitteeseen kilpailu@ohjelmointiputka.net. Viestin on oltava perillä viimeistään sunnuntaina 15.1.2012. Tiedot julkaistaan kilpailun tulossivulla; jos ehdottomasti ei halua nimeään tai nimimerkkiään julki, asiasta voi mainita viestissä.

Osallistumisesta lähetetään vahvistus muutaman päivän kuluessa. Tekoäly myös testataan lyhyesti, ja ilmenneistä virheistä kerrotaan vahvistusviestissä. Kukin kilpailija voi osallistua vain yhdellä tekoälyllä; viimeinen lähetetty ja toimiva versio katsotaan lopulliseksi.

Palkinnot

Yksi voittajan kuvista julkaistaan seuraavassa Putkamiitissä (elokuussa Assembly 2012 -tapahtuman yhteydessä) pidettävän Putkaorkesterin konsertin käsiohjelmassa.

Tarkennuksia

Kysymyksiä ja palautetta kilpailusta voi lähettää sähköpostitse tai keskusteluun. Erityisesti kilpailuohjeisiin ja esimerkkiohjelmiin liittyvistä epäselvyyksistä ja ongelmista saa ja kannattaakin rohkeasti kysyä: tarkoitus on kilpailla grafiikan tuottamisesta eikä teknisistä yksityiskohdista.

Tietoa sivustosta