Ensimmäinen WebGL-mashup

Perjantai, Maaliskuu 5, 2010

WebGL (Web Graphics Library) on työn alla oleva JavaScript-rajapinta, jonka avulla voi toteuttaa laitteistokiihdytettyjä 3D web -sovelluksia ilman selaimeen asennettavia lisäosia. WebGL-sovellusten tekeminen puhtaasti vain tätä rajapintaa käyttäen on kuitenkin suhteellisen vaikeaa. Onneksi tarkoitusta varten on kehitetty useita kirjastoja, jotka helpottavat hommaa. Osa kirjastoista sisältää myös muita työkaluja, joilla voi esimerkiksi määritellä objektien sijainteja tai rakentaa yksinkertaisia maailmoja.

WebGL-kirjastoja ovat esimerkiksi:

WebGL-sovellusten käyttö ei onnistu tämän hetken selainten julkaistuilla versioilla, mutta jos käy noutamassa itselleen esimerkiksi Chromen tai Firefoxin esiversion, homma lähtee toimimaan. Toki myös tietokoneesta on syytä löytyä OpenGL ES 2.0 rajapintaa tukeva näytönohjain ja kyseistä rajapintaa tukeva näytönohjain ajuri.

Itse otin kokeiluun C3DL-kirjaston, joka vaikutti ensisilmäyksellä toteutukseltaan melko selkeältä. Värkkäilin kirjaston avulla yksinkertaisen mashup-sovelluksen, joka hakee avainsanan perusteella kuvia Flickr-palvelusta. Kuvat näytetään kolmiuloitteisten laatikkojen pinnalla, jotka pyörivät ympyrää avaruudessa. Mashup-sovellus löytyy täältä. Ohessa on video tuotoksesta.


http://www.youtube.com/watch?v=BHzgPHM5Kgk

Ajanottojärjestelmä

Lauantai, Helmikuu 20, 2010

Ostin taannoin Verkkokauppa.com liikkeestä todella edullisen (12 euroa) autoradan. Eli sellaisen Scalextric-tyylisen lelun, jossa sähköautot kulkevat ympyrää ennalta määrättyä rataa pitkin kuljettajan määrätessä vauhdin.

Autoradassa pitäisi tietysti olla ajanottojärjestelmä, jotta siitä olisi iloa edes hetkeksi. Päädyin toteuttamaan ajanoton halvan videokameran ja Roborealm-ohjelman avulla.

Ajanottojärjestelmän mekaaninen toteutus selviää oheisesta kuvasta. Videokamera on kiinnitetty telineeseen kuvaamaan rataa ylhäältä käsin. Kuva saadaan TV-kortin kautta tietokoneelle.

Tietokoneella pyörii Roborealm-ohjelma, joka on ohjelmoitu tunnistamaan kuvasta liike, ja jos liike on tarpeeksi huomattavaa, otetaan ylös aika, jolloin liike tapahtui. Seuraavan kerran kun auto kulkee kameran alta, aikojen erotus, eli kierrosaika, esitetään kuvan päällä. Oikeasti aikojen sijaan Roborealm laskee videon kuvien määriä. Videossa kuvia on melko tarkkaan 30 sekunnissa. Eli kierrosaika 90 merkitsee sitä, että auto on kulkenut kameraportin ali viimeksi 3 sekuntia sitten. Kierrosajat tallennetaan myös tiedostoon, jotta niitä voidaan tarkastella myöhemmin. Oheisessa kuvakaappauksessa kierrosajat sisältävä tiedosto on avattu Firefoxiin, joka päivittää näkymän automaattisesti kymmenen sekunnin välein.

Tässä vielä video, joka on tallennettu Roborealmin avulla siitä, mitä kamera näkee. Ensimmäinen kierros kesti aika kauan, koska välissä täytyi säätää videointi päälle tietokoneelta.


ScalextricScaleSS

Video Urjalan SM-Rallisprint kilpailusta

Tiistai, Helmikuu 10, 2009

Kuten aikaisemmin julkaisemani valokuvat, myös tämä video on kuvattu Urjalassa järjestetyn SM-tason rallisprint-kilpailun toiselta kierrokselta. Virallisemmissa yhteyksissä rallia kutsutaan myös nimellä Nuutajärven Lasi -rallisprint. Kuvauspaikka on mutka viisi eli Laineentien ja Mahnunpolun risteys.


Videon lataamisessa Youtubeen esiin tuli seuraava ongelma: Vaikka video editoitaessa on 16:9 kuvasuhteessa, kuvasuhde “muuttuu” upload-operaation jälkeen Youtubessa. Ilmeisesti videon pikselit eivät ole muokatessa neliön mallisia ja resoluutio on siksi 4:3. Varmaan joku konvertointi voisi tässä tapauksessa auttaa.

Videon lataamisessa Vimeo-videopalveluun ei ollut ongelmia, koska lähdemateriaali oli nyt tallennettu oikein 16:9 kuvasuhteella neliön muotoisin pikselein.

Youtube-versio korjattuna:


Timelapse-video

Tiistai, Tammikuu 1, 2008

Timelapse-videot ovat useista yksittäisistä still-kuvista koostettuja videoita. Tyypillistä timelapse-videoille on, että niissä aika kuluu joko normaalia hitaammin tai nopeammin.

Laitoin uudenvuodenvaihteessa kameran keittiön ikkunalle kuvaamaan Kaukajärven tapahtumia. Kuvaus alkoi joskus yhdeksän maissa ja päättyi kahden jälkeen yöllä. Kuvat otettiin kolmen minuutin välein. Minolta Dimage 7H -kamera otti 99 kuvaa ja lopetti. Kamerassa on toiminto tämän toteuttamiseen.

Tein yksittäisistä kuvista videon Applen QuickTime Pro -ohjelmalla. Latasin tuloksen Youtubeen:


Täytyy kokeilla toistekin.

Edullista esitystekniikkaa

Maanantai, Joulukuu 10, 2007

Hackadayn artikkeli kertoi Wiimote-peliohjaimen avulla tapahtuvasta ohjauksesta. Ohjaus perustuu Wiimoten infrapunavalolle herkkään kameraan ja kynään, jonka päässä on infrapunavaloa lähettävä hohtodiodi (led). Wiimote lähettää tiedon “näkemänsä” valopisteen sijainnista tietokoneelle, jonka kanssa se keskustelee Bluetooth-yhteyden välityksellä. Näin on saatu aikaan erittäin hyvin skaalautuva “kosketusnäyttö”, jota voi käyttää esimerkiksi PowerPoint esityksessä. Järjestelmän kehittäjä näyttää tehneen myös ohjelman, jonka avulla kynä kalibroidaan. Ohjaus onkin hämmästyttävän tarkka. Video selventänee asian.


Koska Wiimote toimii tässä tapauksessa ainoastaan kamerana, saman systeemin voisi helposti toteuttaa infrapunavalolle herkän web-kameran avulla. Koska kaikki kamerat ovat enemmän tai vähemmän herkkiä infrapunavalolle, pärjättäisiin todennäköisesti millä tahansa modifioidulla web-kameralla. Tuollainen modifikaatio on tuttu esimerkiksi yökuvaukseen tarkoitetuista kameroista.

Kameran lisäksi tarvitaan vain ohjelma, joka muuntaa kuvapisteen paikan muutoksen hiiren kursorin liikkeeksi. Tämäkin on jo tehty. Esimerkiksi Roborealm-nimisellä ohjelmalla voi toteuttaa mitä moninaisimpia konenäkösovelluksia. Myös kursorin liikuttaminen onnistuu Roborealm-ohjelman avulla suoraan.

En etsinnöistäni huolimatta löytänyt yhtään valmista toteutusta. Olen 100-varma, että tämä on jo tehty. Missä siis on valmis ohjelma, jottei tarvitse alkaa itse väsäämään? Infrapunalle herkkä kamera on nimittäin jo täällä valmiina odottamassa.

Hieno sovellus olisi esimerkiksi kotiteatterikäytössä olevan PC:n ohjaaminen langattomalla kynällä. Tämän voisi toteuttaa esimerkiksi kameralla, joka on kiinnitetty kattoon kuvaamaan olohuoneen pöydän pintaa. Toinen vaihtoehto olisi pöydän lasisen pinnan kuvaaminen sen alapuolelta. Toki myös käyttö esimerkiksi PowerPoint esityksissä olisi hienoa.