Runoja maailmalta

Suomen ehkä kuuluisin runoilija on Eino Leino.

Posted in Uncategorized | 6 Comments

Valokuva portfolioita

12C www-sivut kurssi: valokuva portfolio esimerkkejä:

http://www.harrilarjosto.com/

 

ps. kurssin ohjelma: http://av-stadi.eu/teachers/jukkaylitalo/kurssit/wwwsivut/12C/index.html

 

 

 

Posted in valokuvaus, www-sivut | 17 Comments

Fitbit/webgl app

This spring we delved into webgl programming and arduino interfacing with a stationary bicycle. Next step is to integrate fitbit data to the system.

MyTotalFitnessTracking system would have 3d webgl interface and charting that is hooked to data coming from fitbit and  stationary bicycle.

Posted in Arduino, JavaScript, kuntolaite, Python | Leave a comment

Multimediainstallaatio ja yrittäjyys

Jee! kohta se alkaa. Multimediainstallaatio ja yrittäjyys kurssi. Parasta tässä opettajan hommassa on se, että useinkin voi osallistua mielenkiintoisille kursseille.  Suunnitelma on seuraava: pelillinen vuorovaikutteinen 3D installaatio. Tämä esimerkki antaa osviittaa siitä mikä nyt on mahdollista webGL:llä www.ro.me

Posted in JavaScript, opetushommelit, WebGL | Leave a comment

WebGL ja matriisilaskenta

Jihuu osaan matriisilaskentaa!

http://threejs.org/ avasi tien tässä

Näin se menee:

Otetaan neljä pistettä 3D avaruudessa (x,y,z): esim (1,  0 , 1), (1,  0 , -1), ( -1,0 ,1 ), ( -1,0 , -1 )

Kuten kaikki tiedämme näistä pisteistä syntyy neliö. Siitä voi varmistua piirtämällä pisteet  ruutupaperiin. Kolmiulotteista ruutupaperia ei tarvita koska y akselilla arvo on O, joten pisteet on paperin pinnalla.

  1. three.js – javascript koodilla neliö luodaan näillä riveillä:
    
    this.geometry = new THREE.Geometry();
    this.geometry.vertices.push( new THREE.Vector3( 1,  0 , 1 ));
    this.geometry.vertices.push( new THREE.Vector3( 1,  0 , -1 ));
    this.geometry.vertices.push( new THREE.Vector3( -1, 0 ,1 ));
    this.geometry.vertices.push( new THREE.Vector3( -1, 0 , -1 ));
    this.geometry.faces.push( new THREE.Face3(  0,   2, 1 ));
    this.geometry.faces.push( new THREE.Face3( 1, 2, 3) );
    

    Tältä tulos näyttää:

    nelio01

  2. Toki tarvitaan hieman muutakin koodia, jotta jotain näkyisi, sitä varten tsekkaa githubin eka kommit: https://github.com/juyshy/webglstuff/
  3. Mitäs jos nyt haluasin lähteä siirtämään näitä pisteitä 3D kordinaatiostossa siten, että vaikkapa muutamalla koodirivillä voisin luoda lisää tällaisia neliomuotoisia pisteryppäitä jolloin niistä muodostuisi tällainen kuva:
    kuvawebgl_matrix_malli03
    otetaan käyttöön matriisit ja ryhdytään hivuttamaan pisteitä:
    luodaan uusi matriisi:

    
    var m1 = new THREE.Matrix4();
    
  4. siirretään pisteitä askel ylöspäin, eli laitetaan matriisi-objektin translate metodiin vektori, joka tuuppaa pisteitä y akselilla yhden pykälän ylös: x on 0, y = 1 ja z nolla:
    
    m1.translate( new THREE.Vector3( 0, 1 , 0 )  )  ;
    

    Itse asiassa tämä on fuskausta. Varsinaista matriisilaskentaa ei tarvitse osata koska THREE.Matrix4 objekti tekee sen koodaajan puolesta.

  5. napataan verteksien lista ja loopataan se läpi. Kloonataan pisteet väliaikaiseen listaan koska haluan luoda lisää pisteitä enkä siirtää alkuperäisiä. Lasketaan kukin vertekstipiste matriisilla ja lisätään kloonit uuteen listaan.
    
    var extraVerts = new Array();
    for (var j= 0; j < this.geometry.vertices.length; j++) {
    	var vertex = this.geometry.vertices[j].clone()
    	vertex.applyMatrix4( m1 ) ;
    	extraVerts.push(vertex );
    	//console.log(vertex);
    }
    // lets concatenate new vertex points to geometry
    this.geometry.vertices=this.geometry.vertices.concat(extraVerts);
    // and add faces:
    this.geometry.faces.push( new THREE.Face3( 4, 4+1, 4+2 ) );
    this.geometry.faces.push( new THREE.Face3( 4+1, 4+2, 4+3 ) );
    
  6. kokeillan myös pyörittämistä: lisätään rotateZ metodi eli pyöritetään pisteitä Z-akselin ympäri three.js käyttää pyörityskulmissa radiaaneja (tarkoittaa sitä, että Piin arvo vastaa 180 astetta, jolloin asteet saa muunnettua radiaaneiksi kaavalla: radiaanit= asteet * Math.PI/180
    m1.translate( new THREE.Vector3( 0, 1, 0 )  )  ;
    var kulma = 15;
    m1.rotateZ( kulma * Math.PI/180 )  ;
    

Wow!  Tältä se nyt näyttää:

nelio03

Tästä se lähtee. Lisätään vain uudet “facet” eli polygonpinnat ja uusi setti neliöitä..

 

 

Posted in 3D graphics, JavaScript, WebGL | Leave a comment

Kurssin suoritus ja arviointiperiaatteet

 

Tässä yleisiä kursseilla sovellettavia periaatteita:

Kurssin tavoitteet, sisällöt ja aikataulu:

  • Tule ensimäiselle tunnille ja muillekin tunneille ajoissa
  • linki kurssin  ohjelmaa löytyy yleensä täältä: http://juy.fi/kurssit/
  • jos epäselvää, kysy

Arviointimenetelmät ja skaala:

arviointiin vaikuttavat: harjoitukset, tehtävät, oma-aloitteinen aktiivisuus  ja tuntiläsnäolo:

Tuntiläsnäolo:

tuntiläsnäolo on muutakin kuin vain paikalla olemista. Facebookissa roikkuminen, tyhjää toimittava hengailu tai omien juttujen säätäminen ei ole “tuntiläsnäoloa”.

Omien juttujen säätämisestä voi kylläkin saada lisäpisteitä, jos ne osoittavat erityistä aktiivisuutta opiskeltavan aihealueen suhteen ja tämän seikan osaa kommunikoida opettajalle.

HARJOITUKSET, TEHTÄVÄT

Mikä on minimi, millä pääsee kurssin läpi, Mitä vaaditaan jotta saa 1 tai 3 arvosanaa vastaavan suorituksen?

Yritän soveltaa määrällistä ja laadullista arviota:

Määrällinen arvio:

Voidaan konstruoida ihannepotentiaali, eli jossain määrin fiktiivinen arvio: jos “keskiverto” opiskelija  osallistuu kaikille tunneille ja keskittyy työskentelyyn 100%:sesti (tai 95%), niin minkälaisiin tuloksiin päästään? Tällainen arviointikonstruktio toimii taustalla miettiessä sitä missä menee raja, jotta määrällinen työmäärä ylittää hyväksyttävän suorituksen rajan.

Tällaista 100% potentiaalia vasten voisi ehkä ajatella, että jos joku tekee siitä 50 tai 60% niin se voisi olla rimaahipoen  1 arvosanan suoritus.

Eli jos on paikalla 60% ja tekee sinä aikana 100% siitä mitä keskiverto-opiskelijalta voi vaatia, VOI saada saa ykkösen. Tai jos on paikalla 100% ja tekee 60% siitä mitä voi olettaa keskiverto-opiskelijan pystyvän tekemään VOI saada suorituksen ykkösellä.

Kakkonen ja ja kolmenen menee ehkä jotenkin näin: 2: 75 %, 3: 90%.

Laadullinen arvio

..täydentää määrällistä (laatu, perusteellisuus, huolellisuus, omaperäiset ratkaisut, aktiivisuus, oma-aloitteisuus, itsenäinen ote, aikaisempi osaaminen  jne. antaa lisäpisteitä)

Tietynlainen oma-aloitteisuus on myös peruslähtökohta: esim. jos on tehnyt kaikki pyydetyt tehtävät niin kannattaa kysyä lisätehtäviä. Tai jos et tiedä mitä tehdään kysy neuvoa.

Poissaolot

jos yli 20% poissaoloja on suositeltavaa tehdä poissaolon korvaavia tehtäviä jos mielii saada 3:n

jos yli 30% on suositeltavaa tehdä poissaolon korvaavia tehtäviä jos mielii saada 2:n

jos yli 40% on välttämätöntä tehdä poissaolon korvaavia tehtäviä jos mielii saada edes 1:n

huom: pelkkä 60% paikalla olo ei vielä takaa kurssin läpäisemistä rimaa hipoen. 60% läsnäololla on tehtävä tunneilla annettavat tehtävät varsin aktiivisesti jotta VOI saada suorituksen ykkösen.

Tämmöisiä.

 

Posted in opetushommelit | Leave a comment

WebGL rules

Tässä muutamia linkkejä:

http://mrdoob.github.io/three.js/

http://www.ro.me/

Posted in 3D graphics, JavaScript, WebGL | Leave a comment