Kategoriat
1–2/2014 WiderScreen 17 (1–2)

Flash-demoskene: Reaaliaikaisten verkkoanimaatioiden esiinnousu ja hiipuminen

Katsaus

Flash-demoskenen historia kytkeytyy kiinteästi internetin ja selainpohjaisen multimedian kehitykseen. Tässä katsauksessa käydään läpi kronologisesti yhteisön eri vaiheita sen synnystä hiipumiseen.

Jaakko Kemppainen
jaakko.s.kemppainen [a] aalto.fi
Aalto-yliopiston taiteiden ja suunnittelun korkeakoulu, Medialaboratorio

algoritminen taide, demoscene, Flash

Jaakko Kemppainen
jaakko.s.kemppainen [a] aalto.fi
Aalto-yliopiston taiteiden ja suunnittelun korkeakoulu, Medialaboratorio

Viittaaminen / How to cite: Kemppainen, Jaakko. 2014. ”Flash-demoskene: Reaaliaikaisten verkkoanimaatioiden esiinnousu ja hiipuminen”. WiderScreen 17 (1-2). http://widerscreen.fi/numerot/2014-1-2/flash-demoskene-reaaliaikaisten-verkkoanimaatioiden-esiinnousu-ja-hiipuminen/

Tulostettava PDF-versio


Demoskenellä on aina ollut taipumusta ottaa haltuunsa uusia (ja vanhoja) teknologioita. Kun pääosa demoryhmistä toteuttaa harrastustaan yleisimpien kotitietokoneiden parissa, lähtevät erikoisuuksien hakijat historiassa taaksepäin vanhoihin pelikonsoleihin tai taskulaskimien ja metron aikataulunäyttöjen kaltaisten esoteeristen teknologioiden pariin. Tässä valossa Flash-teknologian ympärille kasvanut pieni alaskene ei ole yllättävä ilmiö. 1990-luvulla verkkosivujen animaatioita ja yksinkertaista interaktiota varten kehitetty teknologia on lähtökohtaisesti kuin tehty demojen toteuttamista varten. Flash-skene ei kuitenkaan saavuttanut demoihmisten hyväksyntää heti, vaan joutui etsimään paikkaansa demoskenessä melkein vuosikymmenen. Toisaalta Flash-demot saivat demoskenen ulkopuolella paljonkin huomiota. Ne osuivat aikaan ja paikkaan, jossa näyttävyys ja reaaliaikaisuus nousivat web-designin valtavirtaan. Demokoodaajien saavutukset huomioitiin verkkokehittäjien piireissä ja lopulta myös demoskene joutui myöntämään Flash-demojen olevan kelvollisia ”oikeiden” demojen piiriin. Tämä artikkeli käsittelee kronologisesti Flash-demoskenen kehityskaarta verkkoanimaatioista reaaliaikaisen verkkotaiteen edelläkävijäksi – ja hiipumista uusien teknologioiden ottaessa tilaa. Flash-demojen kehitystä sidotaan paitsi demoskenen yleiseen kulttuuriin, myös yhtä aikaa tapahtuvaan verkkomedian monipuolistumiseen ja Flash-teknologian kehittymiseen. Katsauksen tiedot perustuvat monipuolisesti demoskenen, Flash-skenen ja ohjelmoijien tuottamiin teksteihin, ja ne pohjautuvat myös kirjoittajan omiin kokemuksiin ja keskusteluihin Flash-skenen sisäpiiriläisenä

Johdanto: esihistoriaa ennen skriptejä

Demot ovat määritelmällisesti tosiaikaisia koodin, grafiikan ja musiikin yhdistelmiä (mm. Reunanen 2010, 1). Vaikka Flash tuli markkinoille jo 1990-luvun puolivälissä, saatiin siihen jossain määrin ohjelmoinniksi laskettava koodausmahdollisuus vasta neljännessä versiossa. Sitä ennen Flashilla (tai aiemmin Future Splashilla) pystyi tuottamaan lähinnä vektorianimaatioita. Macromedia osti Flashin alkuperäisen tuottajan, FutureWaven 1996 (Gay 2001). Grafiikkaohjelmasta yleisön kysynnän kautta helppokäyttöiseksi animaatiotyökaluksi laajentunut Flash tarjosi pienen ja kevyen vaihtoehdon Macromedian omalle Directorille ja sen web-laajennus Shockwavelle.

Hitaiden tietoliikenneyhteyksien aikana vektorianimaatiot olivat huomattavan suosittu verkkosivujen näyttävyyttä lisäävä formaatti, koska vektoridata vei käytännössä aina paljon vähemmän kaistaa kuin bittikarttoihin tai videopakkaukseen perustuva animaatio. Lisäksi vektorit skaalautuivat käytännössä rajattomasti, mikä mahdollisti tietyssä mielessä parempilaatuisen animaation tarjoamisen kuin esimerkiksi Quicktime- tai MPEG-pakattu video. Tästä syystä mm. Disney oli kiinnostunut Future Splashin käytöstä jo hyvin varhaisessa vaiheessa (Gay 2001).

Vaikka demojen tekemisen keskeistä osaa, ohjelmointia ei voitukaan käyttää, pyrkivät jotkut silti tuottamaan demojen kaltaista audiovisuaalista sisältöä. Tässä oli suuresti apuna erilaisiin grafiikka- ja 3D-mallinnusohjelmiin tuotetut lisäosat, joiden avulla ohjelmista pystyi tuottamaan Flash-animaatioita. Kolmiulotteiset pyörittelyt ja musiikkiin tahdistettu design alkoivat pikkuhiljaa tulla myös selainympäristöihin, mutta varsinkaan Flashin kohdalla kyse ei ollut alkuunkaan reaaliaikaisuudesta, vaan etukäteen lasketuista tai piirretyistä animaatioista (esim. Kuva 1).

Kuva 1. Different Web One (Melon Dezign 1998). Esirenderöityä demoestetiikkaa vektorimuodossa.
Kuva 1. Different Web One (Melon Dezign 1998). Esirenderöityä demoestetiikkaa vektorimuodossa.

1990-luvulla Java-appletit olivat internetin multimedian teknistä eturintamaa. Eräällä tavalla ”oikeana” ohjelmointiympäristönä Java keräsikin demoihmisten huomiota Flashia enemmän ja aikaisemmin. Koska Javalla pystyi piirtämään kuvia pikseli kerrallaan, oli demoihmisten vuosia tai jopa vuosikymmeniä kehittämien 3D-pyörittelyjen ja kuvanpiirtorutiinien toteuttaminen Javalla kohtalaisen helppoa. Java tulikin kunnolla demoskeneen viimeistään 1997, jolloin Assembly-demotapahtumassa pidettiin ensimmäinen Java-demoihin keskittynyt kilpailu.

Ohjelmointimahdollisuudet tulevat

Jotta voisimme paremmin ymmärtää, kuinka Flashilla tehtiin tuohon aikaan (ja toisinaan nykyäänkin) animaatioita, on syytä tutustua pikaisesti Flashiin kehitysympäristönä (Kuva 2). Flash-ympäristö on alkujaan kehitetty animaatiotyökaluksi. Siksi se hyödyntää muutamia tyypillisiä animaatio- ja grafiikkaohjelmien ominaisuuksia. Tärkein ja näkyvin näistä ominaisuuksista on ”näyttämö” (stage). Se on käytännössä ohjelman ruudulla näkyvä alue. Tälle alueelle voidaan sijoittaa joko käsin tai ohjelmallisesti graafisia elementtejä.

Kuva 2. Flash-kehitysympäristö. Alareunassa näyttämö (stage), yläreunassa aikajana. Työn alla Summer Is Here (Kellari ja Inapt 2004).
Kuva 2. Flash-kehitysympäristö. Alareunassa näyttämö (stage), yläreunassa aikajana. Työn alla Summer Is Here (Kellari ja Inapt 2004).

Nämä graafiset elementit sijoittuvat samalla myös ohjelman aikajanalle. Aikajana toimii paitsi animaation tai ohjelman ajallisen etenemisen indikaattorina, myös graafisten elementtien piirtojärjestyksen määrittäjän. Aikajanalla ylempänä olevat elementit piirretään alempana olevien päälle ja saattavat peittää ne. Lisäksi graafiset elementit voivat sisältää omat aikajanansa, joilla voi sijaita muita vastaavia graafisia elementtejä. Näitä voidaan animoida tai ”komentaa” objektin sisäisellä aikajanalla.

Oletuksena Flash-toistin siirtää ”toistopäätä” kaikkien objektien aikajanalla eteenpäin, suorittaa objektien graafiset siirrot ja muunnokset ja piirtää objektit ruudulle. Ohjelmallisesti ”toistopää” voidaan pysäyttää tiettyyn kohtaan aikajanalla ja käskeä toistamaan tiettyä koodipätkää, kunnes päätetty aika on kulunut, tai soittoa päätetään jatkaa jostain muusta syystä. Näin Flash-demojen eri osiot voidaan rakentaa aikajanalle peräkkäisiin kohtiin, jolloin voidaan helposti kelata demosuunitelmaa edes takaisin ja samalla säätää näyttämöllä olevien grafiikkaobjektien ominaisuuksia.

Toukokuussa 1999 silloinen Macromedia toi markkinoille Flashin nelosversion. Tämä oli merkittävä askel Flash-demoskenen kehittymiselle, sillä nyt kehittäjien oli mahdollista suorittaa pienimuotoista ohjelmointia. Aiemmin Flashin ohjelmointimahdollisuudet olivat rajoittuneet nappuloiden toiminnallisuuksiin ja hyppäämiseen tiettyihin animaation kohtiin. Nyt mukaan saatiin ehtolauseet ja ohjelmaluupit. Lisäksi skriptillä pystyi liikuttamaan ruudulla nähtäviä grafiikkaobjekteja, jotka Flashissa tunnettiin nimellä MovieClip.

Nelosversion uudet ohjelmointimahdollisuudet kiinnittivät valveutuneimpien demontekijöiden huomion. Vaikka varsinainen demo-ohjelmointi Flashilla oli vielä rajallista ja hankalaa, alkoivat jotkin demoryhmät kokeilemaan myös Flashilla toteutettuja demoja. Hyvin usein nämä tuotannot olivat joko puolipiloillaan tehtyjä huumorianimaatioita, tai perinteistä, varsinkin Amiga- ja C64-aikojen demoestetiikkaa matkivia animaatioita.

”Virallinen” skene syntyy

Elokuu 2000 oli Flash-demoskenen kannalta käänteentekevä kuukausi. Assembly-demotapahtumassa järjestettiin ensimmäinen Flash-demoihin keskittyvä kilpailu. Kilpailuun osallistui kymmenen demoa, joista voiton vei Alpha Designin huumoria ja retroestetiikkaa yhdistelevä Party People (Kuva 3). Kilpailussa oli nähtävissä myös Flash-demojen tyyli, jossa heikkoja teknisiä mahdollisuuksia korvattiin visuaalisella designilla.

Kuva 3: Party People (Alpha Design 2000)
Kuva 3: Party People (Alpha Design 2000)

Omaa kilpailuaan, eli ”kompoa”, merkittävämpi askel oli Flashin viitosversion julkaisu, joka tapahtui myös elokuussa 2000. Nyt teknologiaan oli lisätty miltei täydellinen oma ohjelmointikieli, ActionScript. Flash-ympäristön uudet ja merkittävät ominaisuudet sisälsivät paitsi mahdollisuuden grafiikkaobjektien liikutteluun ruudulla, myös niiden pyörittelemiseen ja skaalaamiseen. Vaikka Flashissa ei ollutkaan mahdollista esimerkiksi piirtää viivoja tai käsitellä yksittäisiä pikseleitä, keksivät luovat koodaajat nopeasti keinoja vektorigrafiikan tekemiseen ja jopa alkeellisen pintakuvioinnin lisäämiseen vektoriobjektien pinnalle. Nämä innovaatiot eivät tosin tulleet demoskenen puolelta, vaan web-designin ja pelikehittäjien suunnalta.

Koska grafiikan manipulointimahdollisuudet olivat Flashissa hyvin paljon muita alustoja rajallisemmat, kehittyi Flash-hakkereiden ja demokoodaajien piireissä omanlaisensa estetiikka. Haastavassa ympäristössä mahdollisiksi havaittuja efektejä kehitettiin eteenpäin ja iteroitiin askel kerrallaan hienommiksi toisten perinteisten efektien jäädessä kokonaan paitsioon. Tämä perustui tekijöiden haluun tuottaa toinen toistaan vaikuttavampia visuaalisia efektejä rajatuilla työkaluilla. Tässä mielessä Flash-demot muistuttivat hyvin paljon mitä tahansa muuta vanhanaikaista tai esoteerista alustaa, joilla demoja tehtiin.

Uutena alustana Flashin rajat olivat vielä lähes kaikkien ulottuvilla. Innostunut ”fläsäyttäjä” saattoi kohtalaisen helposti keksiä keinon tehdä jotain kyseisellä alustalla ennen näkemätöntä. Vähän väliä joku keksi uuden tempun, jonka avulla voitiin toteuttaa jokin vanha tuttu demoefekti. Samaan aikaan varsinainen demoskene uhkasi jumittua 3D-kiihdyttimien helpottamaan mahdollisuuteen kolmiulotteisten maailmojen esittelyssä uusien innovaatioiden sijaan.

Samalla kun visuaalisesti ja pelillisesti suuntautuneet designerit ja ohjelmoijat olivat innoissaan Flashin uusista skriptausmahdollisuuksista, ottivat käytettävyyden asiantuntijat Flashin silmätikukseen. Lokakuussa 2000 käytettävyysguruna tunnettu Jakob Nielsen otti kovaäänisesti kantaa Flash-designin käytettävyysongelmiin. Hänen mukaansa Flash rikkoi miltei kaikki mahdolliset web-sivujen käytettävyysperiaatteet ja osan selaimeen rakennetuista perustoiminnallisuuksista, kuten Back-napin logiikan (Nielsen 2000). Kirjoituksella oli suuri vaikutus Flashin yleiseen hyväksyntään, eikä myöhempien versioiden parannettu käytettävyystuki saanut aikaan mielipiteiden muutosta.

Vuosien 2000 ja 2001 aikana Flash-demoja alkoi hiljalleen ilmestyä kilpailuihin ja demoyhteisön tietoisuuteen. Samalla Flash joutui osittain kilpailemaan paikastaan internetin demoalustana esimerkiksi Javan kanssa. Takeover-demotapahtumassa vuonna 2001 järjestettiin ensimmäinen selaindemokilpailu, johon voi osallistua kaikilla selaimessa toimivilla teknologioilla. Tuohon aikaan JavaScriptin mahdollisuudet olivat paljon Flashiakin rajallisemmat, joten varsinainen kilpailu käytiin Flashin ja Javan välillä. Miltei kaikki tuon ajan Flash-demot olivat edelleen enemmän tai vähemmän animaatioita. Noilta vuosilta eniten perinteisten reaaliaikaisten demojen kaltainen flash-demo lienee ollut Pixel:Engine (Esko Ahonen 2011), joka yhdisti erilaisia ohjelmallisia skriptejä animoituihin grafiikkaobjekteihin.

Kuva  4: Pixel:Engine (Esko Ahonen 2001)
Kuva 4: Pixel:Engine (Esko Ahonen 2001)

Pixel:Engine toi Flash-demoihin vanhan tavan todistella efektien reaaliaikaisuutta ja tehokkuutta alkutekstien muodossa. Koska Flash miellettiin edelleen vahvasti animaatiotyökaluksi, koettiin koodilla tuotettujen efektien korostaminen reaaliaikaisiksi tärkeäksi. Sen avulla demojen tekijät pyrkivät erottumaan animoitujen demojen joukosta ja korostamaan perinteisten demojen tapaan omia kykyjään ohjelmoijina. Tämä reaaliaikaisuuden todistelun ja koodin tehokkuudella ylpeilemisen trendi on jatkunut Flash-demoissa miltei näihin päiviin saakka.

Piirto-ominaisuudet tulevat

Flashin viitosversio oli käytössä maaliskuuhun 2002 saakka. Tuolloin julkistettiin uusi, kuutosversio, joka sai nimekseen Flash MX. Kuten aiemmatkin Flash-versiot, myös kuutonen sisälsi merkittäviä parannuksia ja uusia mahdollisuuksia demojen ja pelien tekemiseen. Näistä tärkeimmät olivat mahdollisuus vektoriobjektien piirtoon ohjelmallisesti, ohjelmoitavat maskit ja äänen soittamiseen liittyviä ominaisuuksia.

Ennen vektoreiden piirtämismahdollisuutta Flash-hakkerit olivat joutuneet keksimään erilaisia kiertoreittejä kolmiulotteisten objektien rautalankamallien piirtämiseksi ohjelmallisesti.[1] Uuden Flashin vektoripiirtotyökalut muistuttivat jossain määrin Logo-ohjelmointikielen ohjauskomentoja. Käyttäjä pystyi määrittelemään viivan värin ja paksuuden, sekä täytettävän alueen värin. Piirrettävän viivan alkukoordinaattiin päästiin moveTo-komennolla. Tämän jälkeen ohjelmoija pystyi piirtämään suoria ja kaaria lineTo- ja curveTo-komennoilla. Uuden viivan alkupiste sijaitsi aina edellisen viivan loppupisteessä, ellei käyttäjä siirtänyt ”kynää” moveTo-komennolla uuteen sijaintiin. Tällä tavalla pystyttiin piirtämään jo oikeita kolmiulotteisia objekteja, joiden sivut pystyttiin värittämään esimerkiksi valonlähteiden etäisyyden ja suunnan mukaan.

Vektoriobjektien piirto on hyvin tyypillistä perinteisen demo-ohjelmoinnin toimintaa (esim. Reunanen 2010, 50-51). Tässä suhteessa Flash seurasi aiempia teknologioita jäljitellen niitä varsin suoraan (vektorien rasterointi eli ruudulle piirtäminen itse jäi edelleen ohjelmoijan ulottumattomiin). Vektorien piirtäminen yhdistettynä Flashin uusiin ohjelmoitaviin maskeihin sen sijaan tuotti monia Flashille ominaisia graafisia efektejä, joista tosin niistäkin suuri osa pyrki jäljittelemään vanhoja demoefektejä.

Yksinkertaisesti selitettynä maskit määrittelevät, mitkä osat maskin peittämistä grafiikkaobjekteista piirretään ruudulle. Maski on ikään kuin ikkuna maskattujen objektien maailmaan. Aiemmissa versioissa maskeja ei voinut manipuloida ohjelmallisesti. Flash-ohjelmoijat keksivät kuitenkin käyttää maskeja yhdessä motion tweenauksen eli grafiikkaobjektien liikeanimoinnin kanssa yhdessä. Kun kapeaa maskia liikutettiin aikajanalla alaspäin, pystyttiin näyttämään alle jäävästä kuvasta alaspäin valuva ”siivu”. Kun tällaista siivutettua kuvaa monistettiin ja ohjelmallisesti siirrettiin lukupää eri objekteissa eri kohtiin, pystyttiin luomaan kuvasiivujen kokoelma, jota voitiin ohjelmallisesti liehuttaa lipun tapaan manipuloimalla siivujen sijaintia ruudulla.

Kun maskien kokoa ja muotoja päästiin viimein ohjelmallisesti muuttelemaan, avautui aiemmin esiteltyyn ”imageslice”-tekniikkaan aivan uusia ulottuvuuksia. Vaikka perusperiaate pysyi samana, pystyttiin nyt toteuttamaan monipuolisempia aaltoiluita ja kuvien vääristelyjä. Imageslicestä muodostuikin yksi kekseliäimmistä ja keskeisimmistä alkuaikojen Flash-demoefekteistä.

Kuutosversion esittelemä dynaaminen äänen soittaminen ja äänen kokonaiskeston ja soitetun ajan käsittely mahdollistivat tarkan äänisynkronoinnin. Audiovisuaalisena taidemuotona demot ovat yhtä riippuvaisia musiikista kuin kuvistakin, joten tarkka ja saumaton tahdistus on yksi demotaiteen keskeinen ominaisuus.

Tätä päästiinkin kokeilemaan elokuussa 2003 Assembly-demojuhlien selaindemokilpailussa. Aiemmasta Flash-kategoriasta luovuttiin ja Flash-demot sijoitettiin samaan kilpailuun muiden selainteknologioiden kanssa. Kilpailuun osallistuikin Flashin lisäksi niin Java- kuin JavaScript-demoja. Suurin osa Flash-demoista oli edelleen humoristisia teoksia tai retroestetiikkaa lähinnä animoimalla toistavia tuotteita. Sivuhuomautuksena mainittakoon, että selainkilpailuun osallistunut Java-demo diskattiin esikarsinnassa, mutta toisaalta Java-demot kilpailivat jo perinteisten alustojen rinnalla 64 kilotavun intro-kilpailussa (scene.org 2003).

Assemblyn selaindemokilpailun voitti jo useina vuosina vahvasti esillä ollut ryhmä Rave Network Overscan (RNO) yhteistyössä Damonesin kanssa tekemällään demolla Super Fantastic Gaydisco All Night Long (RNO ja Damones 2003). Demo perustui vahvasti huumoriin ja toistuviin animaatioihin, jollaisten tekemisessä Flash oli ominaisimmillaan. Demossa oli kuitenkin myös teknisempiä demoefektejä, mikä osaltaan kertoo myös perinteisempien demojen tekijöiden halusta kokeilla uutta alustaa (Kuva 5).

Kuva 5: Super Fantastic Gay Disco All Night Long (RNO ja Damones 2003). Esimerkki imageslice-efektistä.
Kuva 5: Super Fantastic Gay Disco All Night Long (RNO ja Damones 2003). Esimerkki imageslice-efektistä.

Flashin reaaliaikaisia demomahdollisuuksia ei vielä tässä vaiheessa tuntenut kunnolla edes innokas Flash-harrastajien joukko. Esimerkiksi Inaptin Diip (2003) jäi Assemblyn selaindemokilpailussa viimeiseksi (Kuva 6). Osaltaan tähän vaikutti varmasti viimeistelemätön ulkoasu, mutta myös se, että Flash-koodaajat luulivat demon olleen puhdas animaatio, eivätkä siksi äänestäneet sitä. Lähdekoodien julkistaminen kuitenkin loi yhteisöön uskoa Flashin mahdollisuuksiin demoalustana. Lähdekoodi toimi myös monen Flash-ohjelmoijan innoittajana ja esimerkkinä Flashin ominaisuuksien luovasta hyödyntämisestä. Diipin ja kaksi vuotta aiemmin julkaistun Pixel:Enginen kaltaiset vahvat esimerkit innostivat Flash-yhteisöä aloittamaan Flashin mahdollisuuksien tutkimisen ja uusien ja innovatiivisten efektien ja hakkerointien kehittelyn.

Kuva 6: Diip (Inapt 2003). Ylävasemmalla motiontweenillä animoituja grafiikkaobjekteja monistettuna kolmiulotteiseksi siniplasmaksi". Alavasemmalla vektoripiirto-ominaisuudet käytössä. Alaoikealla "imageslice"-tekniikkaa pyöreillä maskeilla pallovääristymän luomiseksi. Yläoikealla imageslice yhdistettynä kahden sisäkkäisen grafiikkaobjektin avulla toteutettuun vääntämiseen.
Kuva 6: Diip (Inapt 2003). Ylävasemmalla motiontweenillä animoituja grafiikkaobjekteja monistettuna kolmiulotteiseksi siniplasmaksi”. Alavasemmalla vektoripiirto-ominaisuudet käytössä. Alaoikealla ”imageslice”-tekniikkaa pyöreillä maskeilla pallovääristymän luomiseksi. Yläoikealla imageslice yhdistettynä kahden sisäkkäisen grafiikkaobjektin avulla toteutettuun vääntämiseen.

Seuraava Flashin versio ei tuonut varsinaisia suuria muutoksia demojen tekemiseen. Syyskuussa 2003 julkaistu seiskaversio eli MX2004 lähinnä päivitti Flashin ohjelmointikielen, Actionscriptin moderniin aikaan. Actionscript 2:ssa mukaan tulivat muusta ohjelmoinnista tutut luokkarakenteet ja mahdollisuus käyttää Flash-kehitysympäristön ulkopuolisia ohjelmointiympäristöjä luokkien tuottamiseen. Uudistuksista huolimatta Flashin perusominaisuutena säilyi edellisen version ohjelmointityylin pysyminen uusinta versiota nopeampana suorittaa. Tehokkuuteen ja näyttävyyteen pyrkivässä demotaiteessa uudistukset eivät siis tuoneet juurikaan etua, joskin vanhemman version mukaan kirjoitetun koodin suoritusaika nopeutui useita kymmeniä prosentteja.

Kuva 7: Kontrast (Pyrotech 2004). Varsinainen tekninen demoefekti on pienessä osassa kuvan oikeassa laidassa graafisten elementtien täyttäessä suurimman osan ruudusta.
Kuva 7: Kontrast (Pyrotech 2004). Varsinainen tekninen demoefekti on pienessä osassa kuvan oikeassa laidassa graafisten elementtien täyttäessä suurimman osan ruudusta.

Vuonna 2004 Flash-demoilijat alkoivat asettaa itselleen entistä suurempia haasteita. Enää ei riittänyt, että toteutettiin aiempien aikojen efektejä uudella alustalla (Kuva 7). Uuden estetiikan kehittäminen ei ole helppoa, joten Flash-skene alkoi kokeilla työkalunsa soveltuvuutta pienikokoisten introjen tekemiseen. Helmikuussa 2004 Sector One osallistui Synthesis-demopartyilla neljän kilotavun introkilpailuun Flash-introlla (Kuva 8). Intro jäi kilpailussa viimeiseksi, mutta osallistuminen oli tärkeä askel Flashin tiellä kohti yleisesti hyväksytyn demoalustan asemaa.

Kuva 8: 4screen (Sector One 2004)
Kuva 8: 4screen (Sector One 2004)

Assembly 2004:n selaindemokilpailussa nähtiin Plinc-demoryhmän 64 kilotavun Flash-intro, Kuutioprojekti. Useista osista koostuvan, graafisesti vaatimattoman intron kiinnostava piirre oli musiikki. Perinteisistä demoalustoista poiketen Flashilla ei päässyt käsiksi äänipuskuriin, joten kaikenlainen äänen syntetisointi oli mahdotonta. Ainoa mahdollisuus äänen sisällyttämiseen Flash-demoihin oli mp3-pakattujen äänitiedostojen käyttö. 64 kilotavun introssa kokorajoitus aiheutti merkittävän haasteen musiikille, koska CD-tasoista musiikkia mahtuu 64 kilotavuun vain kolmasosasekunti. Luovana ratkaisuna musiikki tuotettiin neljästä alle sekunnin mittaisesta luupista, jotka pakattiin mahdollisimman tiiviisti, eli huonolaatuisesti. Introon ohjelmoitiin sekvensseri, joka soitti musiikkisilmukoita ennalta määrätyssä järjestyksessä niin, että musiikkiin muotoutui selkeä rakenne ja dynaamista vaihtelua.

Taiteellisesti Kuutiopojekti oli kaukana perinteisestä demoestetiikasta (Kuva 9). Se kuitenkin herätti demokansan pohtimaan kilpailukategorioiden sääntöjä. Koska Flash-demot pyörivät Flash-toistimessa tai selaimen liitännäisessä, alettiin miettiä voiko niillä osallistua esimerkiksi varsinaiseen 64 kilotavun introkilpailuun. Toisaalta Windows-demot ja introt olivat jo vuosikausia nojautuneet vahvasti DirectX- ja OpenGL-kirjastoihin, joihin on sisäänrakennettuna suuri määrä valmista grafiikan piirtämiseen tarkoitettua koodia. Tästä huolimatta Flashin ja muiden virtuaalikoneessa pyörivien demojen edellytyksistä osallistua yleisiin introkilpailuihin käydään edelleen keskustelua.

Kuva 9: Kuutioprojekti (Plinc 2004). 46 kilotavua mp3-pakattua musiikkia vei valtaosan 64 kilotavun introsta.
Kuva 9: Kuutioprojekti (Plinc 2004). 46 kilotavua mp3-pakattua musiikkia vei valtaosan 64 kilotavun introsta.

Suomalainen Flash-demoskene järjestäytyi noihin aikoihin #flash.fi IRC-kanavalta myös flashscene.org-verkkosivustolle. Muutamien seuraavien vuosien aikana yhteisön jäsenet raportoivat uusista Flash-demoista ja efekteistä, kirjoittivat ohjeita efektien tekemiseen ja järjestivät muutamia demo- ja introkilpailuita. Näihin kilpailuihin osallistui demokoodaajien lisäksi myös demoskenen ulkopuolisia kehittäjiä ja ryhmiä. Valitettavasti palvelimien hajoamisten ja domain-nimen rekisteröintien takia tämä materiaali on saavutettavissa enää osittain archive.org-sivun verkkosivuja arkistoivan Wayback Machinen avulla (ks. flashscene.org 2006).

Pikselien esiinnousu

Elokuussa 2005 Adobelle myyty Flash oli demokoodaajan unelmien toteutuma. Alustan kahdeksas versio toi mukanaan mahdollisuuden päästä käsiksi piirrettävän ruudun yksittäisiin pikseleihin. Tätä ominaisuutta oltiin odotettu ja pyydetty niin demo- kuin designerpiireissä vuosia. Flashin kehitys onkin ollut ainakin kehittäjän näkökulmasta varsin takaperoista moniin ohjelmointikieliin verrattuna. Kun perinteisemmät ohjelmointikielet lähtevät liikkeelle perusasioista, kuten pikseleistä ja biteistä, rakentaen helpommin käytettäviä kirjastoja ja infrastruktuureita grafiikan tuottamiseen ja manipuloimiseen, lähestyi Flash audiovisuaalista rajapintaa täysin valmiiden objektien helposta käsittelystä edeten vasta lopuksi pikseli- ja bittitason ohjelmointiin.

Pikselitason kuvan käsittelymahdollisuuksien lisäksi Flash 8 sisälsi lukuisia muita merkittäviä graafisia ominaisuuksia. Pseudosatunnaisia lukusekvenssejä tuottava Perlin noise -funktio lienee yksi aliarvostetuimmista ja vähiten käytetyistä uusista ominaisuuksista.[2] Graafisten elementtien uudet suodattimet, kuten pudotusvarjot ja hohdot, ovat puolestaan olleet yleisessä käytössä. Taitavasti käytettynä esimerkiksi Glow-suodattimen avulla voi toteuttaa vaikkapa grafiikkalementin ulkoreunojen rajauksen.

Merkittävänä uutena ominaisuutena demokoodaajat ottivat mielissään vastaan grafiikkaobjektien ”blend modet”. Nyt objektien piirrossa voitiin käyttää esimerkiksi additiivista piirtoa, jolloin uusien objektien väriarvot lisättiin alla oleviin väreihin. Tämän avulla voitiin toteuttaa esimerkiksi tulenliekkien simulointi partikkeliefektinä. Väriarvojen kertolaskuun perustuva multiply-blend puolestaan mahdollisti kuvien kunnollisen sävyttämisen (Kuva 10).

Kuva 10: Lightweight (Inapt 2006). Taustalla kahdella multiply-blendatulla Perlin noisella toteutettu revontuliefekti.
Kuva 10: Lightweight (Inapt 2006). Taustalla kahdella multiply-blendatulla Perlin noisella toteutettu revontuliefekti.

Viimeinen merkittävä demokoodaukseen liittyvä uusi ominaisuus oli graafisten elementtien muutosmatriisit. Aiemmin graafisia elementtejä pystyttiin vain skaalaamaan eri akseleiden suhteen sekä pyörittämään niitä. Nyt saatiin käyttöön muutosmatriisit ja niiden peruslaskutoimitukset.[3]

Uudet ominaisuudet eivät ehtineet vaikuttaa Assemblyn selaindemokilpailuun, jonka merkittävin ominaisuus oli JavaScript-demojen yleistyminen. JavaScript- ja Director-demot veivät kilpailun neljä ensimmäistä sijaa Flashin täyttäessä viimeiset kolme. JavaScript koettiin tuolloin haastavaksi demoympäristöksi, mitä se toki olikin. JavaScript paini samojen rajoitusten kanssa kuin varhaiset Flash-versiot: pikselinkäsittelyn hankaluus, suorittamisen hitaus ja äänenkäsittelyn vaikeus.

Seuraavan vuoden aikana Flash-skene tuotti uusia demoja harvakseltaan. Uusien ominaisuuksien rajoja koeteltiin kunnolla Flashscene.org-verkkosivuston järjestämässä neljän kilotavun introkilpailussa helmikuussa 2006. Skenen pienuuden huomioiden kilpailun taso oli yllättävän korkea. Mukaan mahtui moniosaisia ”megaintroja” ja myös ääntä sisältäviä tuotteita. Tämä oli merkittävä saavutus, koska kaikki äänet täytyi vieläkin upottaa ohjelmaan valmiissa mp3-muodossa (flashscene.org 2006).

Uusi inkarnaatio

Pikselitason hallinta ei ehtinyt miellyttää skeneä vuottakaan, kun Adobe päätti uudistaa koko Flash-alustan. Kesäkuussa 2006 julkaistiin Flashin yhdeksäs inkarnaatio: tässä kohtaa nimitys on osuva, sillä Adobe oli laittanut teknologian perusteet uusiksi. Koko ohjelmia pyörittävä virtuaalikone oli uusittu, koska yhdeksännen version mukana tuli uusi Actionscript 3 -ohjelmointikieli. Demojen kannalta tämä tarkoitti koodin suoritusnopeuden paranemista moninkertaisesti. Vanhojen ohjelmien ajamiseen uusi moottori ei vaikuttanut, sillä niitä varten mukana oli edelleen erillinen virtuaalikone.

Uuden ohjelmointikielen ja virtuaalikoneen lisäksi myös Flash-kehitysympäristöä uudistettiin. Perinteisempään ohjelmointiin käytettyyn Eclipseen perustuva Flex-ympäristö toi Flashiin ison annoksen ”koodaajauskottavuutta”. Käytännössä Actionscript 3 -ohjelmointi poikkeaa merkittävästi aiemmista Actionscriptin versioista. Suuret muutokset ja varsinkin Flex-ympäristöön ja ohjelmoijalähtöiseen kehitykseen panostaminen saivat kaksijakoisen vastaanoton. Toisaalta ohjelmointitaustaiset kehittäjät olivat innoissaan uusista mahdollisuuksista. Samalla kuitenkin designerit ja multimediatuottajat, joiden ohjelmointitarve oli lähinnä verkkosivujen nappuloiden toiminnallisuuksien säätämistä ja animaatioiden kontrollointia, joutuivat opettelemaan työrutiinejaan paljolti uusiksi.

Tämä oli selvästi nähtävillä myös joulukuussa Brightonissa järjestetyssä Flash on the Beach -tapahtumassa, jonne Flash-kehittäjät ympäri maailman kokoontuivat kuuntelemaan esitelmiä ja tapaamaan toisiaan. Web-kehittäjien ja designereiden lisäksi mukana oli myös mediataiteilijoita ja Adoben edustajia. Flash-demoskene sai tapahtumassa yllättävää näkyvyyttä, kun Branden Hall näytti esitelmässään Evoflashin Who Killed Travolta -demoa kehuen uuden Flashin mahdollisuuksia jopa ”oldschool-demojen” tekemiseen (Kuva 11). Myöhemmin kyseinen demo pääsi myös ehdolle parhaaksi 3D-tuotteeksi Flashforward-tapahtumassa (PRWeb 2007).

Kuva 11: Who Killed Travolta? (Evoflash 2006)
Kuva 11: Who Killed Travolta? (Evoflash 2006)

Flash on the Beachissa oli nähtävillä paljon demoskene-tyyppistä innostunutta hakkerimielialaa. Ohjelmoijat ja designerit tutkivat Flashin mahdollisuuksia ja innostuivat esimerkiksi ruudulla liikkuvien kappaleiden eli partikkelien lukumääristä. Branden Hallin esitystä lukuunottamatta demot kuitenkin loistivat poissaolollaan niin esitelmissä kuin kävijöiden puheissa. Demokoodaajat saivat hymyillä keskenään voidessaan todeta muiden olevan efektien toteutuksessa kaukana heidän saavutuksistaan. Demoihmisten läsnäolo konferensissa sai tästä huolimatta muutamat designerit ja ohjelmoijat tutustumaan demoskeneen. Muun muassa mr.doobina tunnettu Flash-konferenssien vakioesiintyjä innostui ohjelmoimaan muutaman yhden kilotavun intron ja kokeilemaan perinteisten demoefektien tekemistä Flashilla (Cabello 2006).

Huipun tasaisuus

Evoflashin Who Killed Travolta? saavutti nopeasti merkittävän aseman paitsi demoskenessä myös sen ulkopuolella. Demoskenen ulkopuolisen huomion lisäksi se onnistui viimein vakuuttamaan myös suuren osan kriittisistä vanhan koulukunnan demoihmisistä. Perinteisten demoefektien ja värikkään designin yhdistelmä sai ihmiset myöntämään Flashin olevan uskottava demoalusta. Laajemmassa kontekstissa Flash oli edelleen joidenkin piirien väheksymä. Esimerkiksi suljetun ympäristön maine nousee toistuvasti esiin puhuttaessa Flashin käyttämisestä sovelluskehityksessä tai demokoodauksessa.

Vuoden 2006 jälkeen Flash-demoskeneä johti vahvasti Evoflash-demoryhmä (mm. Cruz 2013). 2007 oli Flash demoskenen kirkkain vuosi. Teknologia oli kehittynyttä ja demoharrastajat olivat löytäneet alustan ominaisuudet. Samalla kuitenkin JavaScipt, HTML 5, WebGL ja Microsoftin Silverlight tulivat vahvasti markkinoille. Vuoden 2008 Assembly-tapahtumassa selaindemo-kategoria lakkautettiin ja Flash ja muut selainteknologiat siirrettiin kilpailujen Wild-kategoriaan sellaisten teknologioiden kuten taskulaskinten ja oskilloskooppien kanssa. Vuoden 2008 kilpailussa Evoflashin 99er oli ainoa Flash-demo muiden ollessa toteutettuja mm. Microsoftin Silverlight-alustalla (Scene.org 2008).

Lokakuussa 2008 julkaistiin Flashin kymmenes versio. Demojen tekemisen kannalta olennaisimmat uudistukset olivat sisäänrakennettu 3D-tuki, itse tehtyjen suodattimien teon mahdollistava Pixel Bender -ohjelmointikieli ja dynaamisen äänen luominen pääsemällä äänipuskuurin. 3D-tuki ei vielä sisältänyt laitteistotason kiihdytystä mikä oli tässä vaiheessa 3D-ohjelmoinnin standardi, vaan se oli tarkoitettu kappaleiden kolmiulotteiseen pyörittelyyn ja ohjelmistopohjaiseen piirtämiseen ruudulle.

Demoskene-hengen mukaisesti ”fläsäyttäjät” pyrkivät jatkuvasti toimimaan nopeammin, komeammin ja pienemmin. Äänipuskuriin käsiksi pääseminen mahdollisti ohjelmistopohjaisen musiikin tuottamisen ja siten myös kunnollisen musiikin käyttämisen pienissä introissa. Skenessä oli aiemmin nähty joitakin 64- ja 4-kilotavun kokoisia introja, mutta niiden musiikit olivat varsin yksitoikkoisia ja puuduttavia.

Kuva 12: Proof of Concept (Evoflash 2009). Flash-skene joutui edelleen muistuttamaan katsojia alustasta.
Kuva 12: Proof of Concept (Evoflash 2009). Flash-skene joutui edelleen muistuttamaan katsojia alustasta.

Vuonna 2009 Assemblyssä Evoflash osallistui yleiseen 64-kilotavun introkilpailuun Proof of Concept-introllaan (Kuva 12). Sijoittuminen toiseksi johtui varmasti osittain eksoottisen alustan tuomasta äänestysedusta. Samana vuonna Evoflashin Severity of Grey oli ainoa karsinnasta läpipäässyt Flash-demo vapaiden alustojen Real Wild -kategoriassa. Muut tuon kilpailun tuotteet olivat mm. JavaScript-, Nintendo DS- ja PocketPC-demoja (Scene.org 2009). Monet aiemmin Flashilla demoja tehneet ryhmät, kuten Wide Load ja Pyrotech olivat siirtyneet muille alustoille, joten varsinaista Flash-skeneä oli jo hankala hahmottaa.

Demotietokanta  Pouet.netistä löytyy vuodelta 2007 26 Flash-demoa tai introa, kun taas vuodelta 2009 niitä on enää 13 (pouet.net 2014). Microsoftin Silverlight näytti jossain vaiheessa Flashin pahimmalta kilpailijalta, mutta loppujen lopuksi JavaScript ja HTML 5 ovat vieneet mukanaan monia kehittäjiä niin demoskenessä kuin yleisestikin. Pelien tekeminen on siirtynyt valtaosaltaan Unity-alustalle, mikä on osaltaan syönyt kykenevien koodaajien kiinnostusta Flashia kohtaan. Seuraavana vuonna Evoflash meni vieläkin pidemmälle osallistuessaan Assemblyn yleiseen 4 kilotavun kilpailuun. Eksoottisesta alustasta ei enää ollut hyötyä ja intro jäi kilpailun kymmenenneksi.

Vaikka demoskenen puolella kiinnostus Flashia kohtaan väheni, Adoben ja muiden sidosryhmien kiinnostus Flash-demoja kohtaan sen sijaan kasvoi. Evoflash oli alkanut tehdä 3D-grafiikan toteuttamiseen tarkoitettua ohjelmistokirjastoa, 3d engineä, Flashille kehittävän Away 3D:n kanssa jo vuonna 2007. Vuonna 2010 Away 3D ja Evoflash toteuttivat yhteistyössä Disconnected-demon, jonka avulla Adobe esitteli uuden Flash versionsa mahdollisuuksia Adobe MAX-tapahtumassa (Away Studios 2010). Sama yhteenliittymä toteutti myös vuoden 2011 Adobe MAXiin Sparkle a Moment -demon (Away Studios 2011). Tuolloin esittelyvuorossa oli Flashin versio 11, jonka keskeisin demoskeneen vaikuttava uudistus oli 3D-piirron laitteistokiihdytys.

Vaikka laitteistokiihdytetty 3D oli ollut jo pitkään Flash-kehittäjien toivelistan kärkipäässä, ei sen toteuttaminen loppujen lopuksi saanut demontekijöitä innostumaan Flashista uudestaan. Flash-ohjelmointi ja kehitys oli tullut niin lähelle perinteistä ohjelmointia, että kehityksessä ei ollut juurikaan eroa. Samalla muut teknologiat olivat tulleet Flashin alueelle eli rikkaan multimedian tuomiseen selainympäristöön. Teknologia oli menettänyt eksoottisuudesta ja tekemisen helppoudesta saadun etunsa.

Viimeisin koettelemus Flash-demojen tekijöille oli Adoben 2012 julkistama ”nopeusvero”. Kehittäjien olisi pitänyt maksaa erillistä lisenssimaksua tehokkaimmista ja parhaimmista ominaisuuksista (Cannasse 2012). Tämä ei kelvannut kehittäjäyhteisölle ja vaikka Adobe myöhemmin perui suunnitelmansa, oli vahinko ehtinyt tapahtua. Tunnettu Evoflash-ryhmä hajosi pian nopeusverokohun jälkeen eivätkä ryhmän jäsenten uudet ryhmät ole suuntaamassa Flash-kehitykseen. Pouetista löytyy vain muutamia vuoden 2011 jälkeen julkaistuja Flash-demoja tai introja. Vaikkei tilanne olisikaan lopullinen, on se kuitenkin selvä osoitus Flash demoskenen hiipumisesta (Kuva 13).

Kuva 13: Brain Muffin (Pasmas 2013). Paluu Amigademojen estetiikkaan.
Kuva 13: Brain Muffin (Pasmas 2013). Paluu Amigademojen estetiikkaan.

Yhteenveto

Flash-demoskene on jossain mielessä kuin tiivistelmä demoskenen historiasta ja olemuksesta. Se syntyi uuden audiovisuaalisen tuotannon mahdollistavan teknologian luovasta kokeilusta. Demoskenelle tyypilliseen tapaan kehittäjät alkoivat tutkia Flashin mahdollisuuksia reaaliaikaisen audiovisuaalisen sisällön tuottamiseen. Alkuaikojen puhtaista animaatioista edettiin Flashin kehittyessä kohti ohjelmointiin perustuvia reaaliaikaisia efektejä ja lähemmäs perinteistä demoestetiikkaa.

Jatkuvasti muuttuvana ja kehittyvänä alustana Flash osoittautui paitsi kiinnostavaksi demoalustaksi, myös aikansa ilmapiiriä yleisesti peilaavaksi teknologiaksi. Demopiireissä se saavutti kunnollisen aseman vasta lähes kymmenen vuotta ensimmäisten demojulkaisujen jälkeen. Skenen ulkopuolella Flash-demot saivat kohtalaisen paljon näkyvyyttä teknologian nousun osuessa aikaan, jolloin audiovisuaalinen hakkerointi ja reaaliaikaiset tuotannot saavuttivat myös ei-demoihmisten mielenkiinnon. Selaimessa pelattavien pelien vahva yleistyminen 2000-luvun alkupuolella nosti myös web-designereiden kiinnostusta demoskeneä kohtaan.

Ajan myötä Flash jäi kuitenkin muiden teknologioiden jalkoihin. Microsoft yritti vahvasti korvata Flashin omalla Silverlight-teknologiallaan siinä kuitenkaan onnistumatta. HTML5-standardin kehittyminen ja yleistyminen sekä avoimien JavaScript- ja WebGL-ympäristöjen vakiintuminen vei kehittäjät pois yhden yhtiön ohjaaman Flash-teknologian parista. Ilmeisesti Flash ei ole enää tarpeeksi nykyaikainen tai tarpeeksi vanhentunut ollakseen kiinnostava demoalusta.

Kirjoittajasta

Kirjoittaja on demoryhmien Inapt, Plinc ja Evoflash perustajajäsen. Hän toimi pääohjelmoijana Inaptin ja Plincin Flash-demoissa. Lisäksi hän on ollut aktiivisesti mukana #flash.fi- IRC-kanavalla ja mukana perustamassa ja ylläpitämässä Flashscene.org-verkkopalvelua.

Lähteet

Demot

4screen, Sector One. 2004. Tarkistettu 8.4.2014. http://www.pouet.net/prod.php?which=15358

99er, Evoflash. 2008. Tarkistettu 8.4.2014. http://www.pouet.net/prod.php?which=51118

Brain Muffin, Pasmas. 2013. Tarkistettu 8.4.2014. http://www.pouet.net/prod.php?which=61489

Different Web One, Melon Dezign. 1998. Tarkistetu 8.4.2014. http://www.melondezign.com/

Diip, Inapt. 2003. Tarkistettu 8.4.2014. http://www.pouet.net/prod.php?which=10605

Disconnected, Evoflash. 2010. Tarkistettu 8.4.2014. http://www.youtube.com/watch?v=9LAN5GHm5eM&hd=1

Kontrast, Pyrotech. 2004. Tarkistettu 8.4.2014. http://www.pouet.net/prod.php?which=13530

Kuutioprojekti, Plinc. 2004. Tarkistettu 8.4.2014. http://www.pouet.net/prod.php?which=14050

Lightweight, Inapt. 2006. Tarkistettu 8.4.2014. http://www.inapt.org/~blind/lightweight/

Party People, Alpha Design. 2000. Tarkistettu 8.4.2014. http://www.pouet.net/prod.php?which=27734

Pixel:Engine, Esko Ahonen. 2001. Tarkistettu 8.4.2014. https://www.scene.org/file.php?file=/parties/2001/assembly01/flash/pixel_engine_by_esko_ahonen.zip&fileinfo

Proof of Concept, Evoflash. 2009. Tarkistettu 8.4.2014. http://www.pouet.net/prod.php?which=53656

Severity of Grey, Evoflash. 2009. Tarkistettu 8.4.2014. http://www.pouet.net/prod.php?which=53633

Sparkle a Moment, Evoflash. 2011. Tarkistettu 8.4.2014. http://www.pouet.net/prod.php?which=57868

Super Fantastic Gay Disco All Night Long, Damones & RNO. 2003. Tarkistettu 8.4.2014. http://www.pouet.net/prod.php?which=10582

Who Killed Travolta?, Evoflash. 2006. Tarkistettu 8.4.2014. http://www.pouet.net/prod.php?which=25802

Verkkosivut ja kirjallisuus

Away Studios. 2010. ”Disconnected.” Tarkistettu 8.4.2014. http://awaystudios.com/projects/disconnected/

Away Studios. 2011. ”Sparkle a Moment.” Tarkistettu 8.4.2014. http://awaystudios.com/projects/sparkle-a-moment/

Cabello, Ricardo. 2006. ”AS: Tunnel!” Tarkistettu 8.4.2014.http://ricardocabello.com/blog/post/222

Cannasse, Nicholas. 2012. ”Adobe Announce Speed Tax!” Tarkistettu 8.4.2014.  http://ncannasse.fr/blog/adobe_announce_speed_tax. Lähde tarkastettu 10.12.2013

Cruz, Philipe. 2013. ”History of Web Browser Demos.” Esitelmä Assembly 2013-tapahtuman Art Tech-seminaarissa.

Flashscene.org. 2006. Verkkosivujen arkistoitu versio. Tarkistettu 8.4.2014. http://web.archive.org/web/20060404093546/http://www.flashscene.org/ 

Gay, Jonathan. 2001. ”History of Flash.” Tarkistettu 8.4.2014.  http://www.adobe.com/macromedia/events/john_gay/index.html

Nielsen, Jakob. 2000. ”Flash: 99% Bad.” Tarkistettu 8.4.2014. http://www.nngroup.com/articles/flash-99-percent-bad/

Pouet.net. 2014. ”prodlist.” Tarkistettu 8.4.2014. http://www.pouet.net/prodlist.php?platform%5B%5D=Flash&page=1

PRWeb. 2007. ”Flashforward Announces Film Festival Finalists and Opening of ’People’s Choice’ Voting.” Tarkistettu 8.4.2014. http://www.prweb.com/releases/2007/08/prweb544972.htm

Reunanen, Markku. 2010. Computer Demos – What Makes Them Tick? Lisensiaatintutkimus. Espoo: Aalto-yliopiston teknillinen korkeakoulu, Mediatekniikan laitos.

Scene.org. 2003. ”Assembly 2003 Results.” Tarkistettu 8.4.2014. https://www.scene.org/file.php?file=%2Fparties%2F2003%2Fassembly03%2Fresults.txt&fileinfo

Scene.org. 2008. ”Assembly 2008 Results.” Tarkistettu 8.4.2014. https://www.scene.org/file.php?file=%2Fparties%2F2008%2Fassembly08%2Fresults.txt&fileinfo

Scene.org. 2009. ”Assembly 2009 Results.” Tarkistettu 8.4.2014. https://www.scene.org/file.php?file=%2Fparties%2F2009%2Fassembly09%2Fresults09.txt&fileinfo

Loppuviitteet
  1. Tyypillinen kekseliäs vektorien piirtokeino oli tehdä grafiikkaobjekti, jonka sisältönä oli yksi diagonaalisesti alaoikealle suuntautuva vektoriviiva. Objektin leveys ja korkeus säädettiin sataan pikseliin. Tällaisia viivaobjekteja monistettiin jokaista kolmiulotteisen mallin reunaa varten, joten kuutiota varten tarvittiin kaksitoista viivaobjektia. Kun kolmiulotteista mallia pyöritettiin ohjelmallisesti, saatiin selville reunan päätepisteiden x- ja y-koordinaatit. Tämän jälkeen kyseistä reunaa vastaava grafiikkaobjekti sijoitettiin ensimmäisen pisteen koordinaatteihin. Sitten grafiikkaa skaalattiin kolmiulotteisen mallin reunan päätepisteiden koordinaattien erotuksen verran (prosentteina, jolloin jokainen prosentti vastasi yhtä pikseliä), jolloin grafiikkaobjektin viiva vastasi kolmiulotteisen mallin reunaa.
  2. Fraktaalimaisten pilvikuvioiden lisäksi Perlin noisea voi käyttää esimerkiksi kuvan vääristelemiseen (Displacement Map -suodattimen kanssa) tai partikkeliefektien fraktaalisen turbulenssin tuottamiseen.
  3. Erillisten pyöritys- ja skaalausfunktioiden (rotate-, xscale- ja yscale) sijaan nyt voitiin elementille antaa 3×3 muutosmatriisi, joka mahdollisti myös kuvan väännöt (samoin kuin leikkaukset, eng. shear). Aiemmin elementin väännöt jouduttiin toteuttamaan kahdella sisäkkäisellä grafiikkaelementillä, joista sisempää kierrettiin ja ulompaa skaalattiin. Näin toteutettiin aiemmin myös isometristen 3D-objektien teksturointi.