Wikipedia määrittelee demoskenen seuraavasti:
Demoskene on tietokoneisiin yhteydessä oleva alakulttuuri, jossa keskitytään ohjelmoimaan tietokoneelle näyttäviä visuaalisia efektejä tuottavia ohjelmia, demoja, joihin kuuluu myös oleellisena osana ohjelmointisuorituksen lisäksi musiikki ja graafinen toteutus. Demot jaetaan ryhmiin, joita on rajoitettu jollain tavalla, esimerkiksi rajoittamalla ajettavan ohjelman koko 4 tai 64 kilotavuun. Tällainen pienempi demo on intro. Yleensä teokset julkaistaan vapaaseen levitykseen.
Määritelmä on mielestäni erinomainen. Käytännössä kuitenkin demoskene on huomattavasti tätä kapeampi ja osittain myös paikalleen pysähtynyt alakulttuuri. Alakulttuurin valtavirran kokemusmaailma ja työvälineet ovat rajoittuneet pöytätietokoneisiin, jotka on varustettu tehokkaallä näytönohjaimella ja Microsoftin Windows -käyttöjärjestelmällä.
Vaikka tästä hegemoniasta poikkeavia suuntauksia on, siitä huolimatta demoskene on ajatusmaailmaltaan juuttunut melko lailla paikoilleen. Demoja tehdään tehokkaille kotitietokoneille ja tietystä kaavasta poikkeaminen johtaa helposti huonoihin pisteisiin tai on suoranaisesti sääntöjen vastaista.
Otetaan esimerkiksi supertietokoneet. Tiedeyhteisön ja laskentaintensiivisen teollisuuden keskuudessa käytetään laitteita, joista kevyimmissäkin on usein satoja kertoja enemmän resursseja kuin tavallisessa kotitietokoneessa. Tämä alue, jossa olisi valtavasti potentiaalia, on rajattu esimerkiksi Assembly-tapahtuman kilpasarjojen ulkopuolelle.
Tiettyjä valopilkkuja on vuosien varrella tullut vastaan. Haluan antaa Alternative Partyn järjestäjille tunnustusta heidän rohkeudestaan kokeilla uusia asioita ja toimia aktiivisena demoskenen kehittäjinä. Vuonna 2009 Alternative Party järjesti supertietokonekompon, jossa demo toteutettiin Cray CX1 -laitteistolle. Valitettavaa oli kuitenkin, että tuotosten laatu ei yltänyt edes kotitietokoneille tehtyjen demojen tasolle.
Miksi näin oli?
Vaikka laitteistona oli äärimmäisen tehokas tietokone, siitä huolimatta se ei tarjonnut riittävää kiinnostusta harrastajien keskuudessa. Lisäksi supertietokone demoalustana on niin erilainen, ettei sille sovellu samantapaiset vaatimukset kuin pöytätietokonedemoille. Sama koskee myös esimerkiksi mobiililaitteita ja muita sulautettuja järjestelmiä.
Supertietokoneita ei ole tarkoitettu reaaliaikaisen grafiikan tuottamiseen. Ne on tarkoitettu laskentaan, jota voidaan tehdä säikeistettynä lukuisilla ytimillä samanaikaisesti. Laitteistoon on toki yleensä mahdollista liittää näytönohjain ja äänentoisto, jolloin perinteinen, reaaliaikainen demo on esitettävissä. Mutta laitteet eivät ole siinä parhaimmillaan.
Demoskene ei tarvitse uudelleenmäärittelyä, mutta käytännössä totutut tavat tarvitsevat perusteellista tuulettamista.
Otan ohjat omiin käsiini ja määrittelen käsitteen taiteellinen laskenta. Tiedättehän, tieteellinen laskenta tarkoittaa tietokoneiden valjastamista tieteen tarkoitusperiä varten, auttamaan vaikkapa fysiikan ja kemian tutkimuksen teossa. Samalla tavalla taiteellinen laskenta ottaa tietokoneiden laskennalliset resurssit haltuunsa ja antaa niiden purkautua taiteena. Taiteena, jonka ei tarvitse olla reaaliaikaista. Eikä sen tarvitse tuottaa kuvaa ja ääntä, jos se ei kuulu taiteilijan visioon. Taide voi olla valoa, tuntoaistimusta tai mitä tahansa. Käytännössä rajoitun tarkastelemaan sellaista asioita, jotka ovat toteutettavissa nykyaikaisilla salitekniikan välineillä.
Taiteellisessa laskennassa ei ole reaaliaikaisuuden vaatimusta. Käytännössä jokin raja täytyy asettaa laskennan kestolle, mutta se voi olla jopa puoli tuntia, kun itse teoksen kesto olisi viisi minuuttia. Haluamme myös teoksen olevan laskennallinen, eikä pelkästään animaatio. Tavoite saavutetaan asettamalla suoritettavan ohjelman tai sen lähdekoodille tiukka kokorajoitus, esimerkiksi 64 kilotavua. Teos voi käyttää laskentavaiheessa vapaasti laitteiston muisti- ja tallennuskapasiteettia. Kun teos suoritetaan, se muodostaa pakkaamattoman videotiedoston, joka esitetään yleisölle.
Koska taiteellisen laskennan ytimessä on, no, laskennan taide, loistavaa teosta tulisi pystyä tarkkailemaan pintaa syvemmältä. Siksi taiteilijoita rohkaistaan julkaisemaan teoksen lähdekoodi ja työstämisessä käytetyt työkalut. Tekijöille suodaan myös muutaman minuutin mittainen mahdollisuus kertoa teoksensä syntyprosessista.
Tätä kaikkea on taiteellinen laskenta; stimulointia ja optimointia. Kiinnostuitko?










Koska blogiin ei valitettavasti pysty kirjoittamaan kommentteja kuin Linkin tunnuksilla, laitan tästä tulemaan minulle tulleita kommentteja sellaisenaan. Lisää kommentteja voi lähettää suoraan minulle sähköpostilla joel.lehtonen ät iki.fi tai IRCNetissä nimimerkille Zouppen.
Välitän myös toiveen Linkin kotisivutyöryhmälle, että voisivat avata kommentoinnin kaikille.
Kiitos kaikista kommenteista, joita olen saanut!
Viznut kommentoi kirjoitustani! :-) Tässä hänen kommenttinsa:
Supertietokonedemokilpailun kiinnostavuutta rajoitti mielestäni se, että se järjestettiin kymmenen vuotta liian myöhään.
90-luvun lopun PC-demot olivat usein vielä hyvin laskennallisia ja erilaiset varjostus- ja raytracing-algoritmit olivat koodaajien keskusteluissa pinnalla. 2000-luvun puolelle tultaessa painopiste muuttui kuitenkin aika reippaasti, kun kaupasta rupesi saamaan 3D-kiihdytysrautaa, jonka tuottaman jäljen kanssa ei enää pystynyt kilpailemaan softarenderöinnillä.
Monet nykyiset näytönohjaimet muistuttavat itsessään jo supertietokoneita. Ne saa laskemaan pikseliä kohti niin paljon erilaisia juttuja, että harvempi pysyy edes niiden mahdollisuuksien perässä. Laitteiston rajoja ei milloinkaan onnistuta edes hipaisemaan, kun PC-kauppoihin tulee aina vain tehokkaampia kortteja. Yleisöä on hankala enää yllättää millään laskennallisesti vaativalla, sillä kellään ei ole kovin selvää käsitystä, milloin rajoja on rikottu ja milloin ei.
Supertietokone ei siis tarjonnut vuonna 2009 enää juuri mitään uutta ja mielenkiintoista demontekijöille. Se tuskin olisi softarenderöinnillä pärjännyt tavallisen PC-pelikortin GPU-laskennalle, ja vaikka olisikin,
olisi ollut vaikea keksiä sille mitään visuaalista tehtävää, joka olisi saanut yleisön haukkomaan henkeä. 90-luvulla sen sijaan olisi tällaisia tehtäviä varmasti tullut yhden jos toisenkin demokoodaajan mieleen varsin helposti.
Teknisen taituruuden osoitus PC-demoissa onkin siirtynyt reaaliaikaosastolta pitkälti "ahtamispuolelle", sillä 256, 4096 ja 65536 tavua ovat jotain, mikä pysyy samana vuodesta toiseen, ja jossa edellisvuosien ennätysten rikkominen on vielä mahdollista. Sillä ei ole niin väliä, paljonko laskentaresursseja
esittävällä koneella on käytössään, ja olen ollut itse jo pitempään sitä mieltä, että reaaliaikaisuus on PC-teosten tapauksessa muutenkin suhteellisen redundantti ominaisuus. PC-demo voisi aivan hyvin olla pieni ohjelma, joka dumppaa videotiedoston, ja ohjelman suorittamiseen voi yhtä hyvin mennä sekunti tai kuukausi koneaikaa. Pienillä kokoluokilla päähaaste on ahtaminen, tavun ilmaisuvoiman maksimointi, ja reaaliaikaisuus on lähinnä yksi pieni lisähaaste siihen päälle.
Itse olen kiinnostunut pienten koodi- ja datamäärien ilmaisuvoimasta huomattavasti enemmän kuin GPU:iden ja supertietokoneiden mahdollisuuksista. Laskentaresurssien kasvattaminen tarkoittaa lähinnä määrällistä näennäiskehitystä, resoluution, yksityiskohtien ja fotorealismin maksimointia. Tämä on sitä, mitä suuren rahan peli- ja elokuvateollisuus tekee, vaikka kuka tahansa pystyy nauttimaan suuremmasta fotorealismista ja fideliteetistä yksinkertaisesti menemällä ovesta ulos.
Matalakompleksisella lähestymistavalla on sen sijaan mahdollista luoda täysin ennennäkemättömiä esteettisiä kokemuksia, ja intuitioni sanoo, että niiden mahdollisuusavaruuden tutkimisessa on vasta raapaistu pintaa. Tämä on myös alue, jonka potentiaalia olen pohtinut viime vuosina aika paljon.