[{"data":1,"prerenderedAt":323},["ShallowReactive",2],{"posts:*:tool_javascript:all:15":3},{"posts":4,"hasNextPage":17},[5,18,27,33,43,50,57,64,71,83,92,97,103,113,119,126,134,147,165,183,191,200,208,217,228,236,247,255,264,272,279,286,296,305,313],{"path":6,"title":7,"description":8,"date":9,"image":10,"tags":11,"categories":15,"titleInPicture":17},"\u002Fposts\u002F2024-09-06-pen","Pen input with pressure sensitivity",null,"2024-09-06","\u002Fimages\u002F2024\u002F09\u002Fscribus.png",[12,13,14],"area_development","tool_javascript","gist",[16],"blog",false,{"path":19,"title":20,"description":8,"date":21,"image":22,"tags":23,"categories":26,"titleInPicture":17},"\u002Fposts\u002F2024-04-10-spirograph","Spirograph experiment 2","2024-04-10","\u002Finstagram\u002Fautotel\u002F2024-04-09_00-02-38_UTC.jpg",[24,25,14,13],"generative","visuals",[16],{"path":28,"title":29,"description":8,"date":30,"image":22,"tags":31,"categories":32,"titleInPicture":17},"\u002Fposts\u002F2024-04-08-spirograph","Spirograph experiment","2024-04-08",[24,25,14,13],[16],{"path":34,"title":35,"description":8,"date":36,"image":8,"tags":37,"categories":41,"titleInPicture":17},"\u002Fposts\u002F2024-03-05-arpshoot-algo","Procedural arp harp episode 1","2024-03-05",[24,38,14,12,39,13,40],"sound","area_experiment","tool_web-audio-api",[16,42],"music",{"path":44,"title":45,"description":8,"date":46,"image":47,"tags":48,"categories":49,"titleInPicture":17},"\u002Fposts\u002F2024-03-02-wavy-generative-animation","wavy generative animation","2024-03-02","\u002Finstagram\u002Fautotel\u002F2024-03-02_19-40-09_UTC_1.jpg",[24,25,14,13],[16],{"path":51,"title":52,"description":8,"date":53,"image":54,"tags":55,"categories":56,"titleInPicture":17},"\u002Fposts\u002F2024-02-05-mycellium","Mycellium 1","2024-02-05","\u002Fimages\u002F2024\u002F02\u002Fmycellium-visual-canvas.png",[24,25,14,13],[16],{"path":58,"title":59,"description":8,"date":60,"image":8,"tags":61,"categories":63,"titleInPicture":17},"\u002Fposts\u002F2024-08-22-sample-interpolator","1st Failed attempt at interpolating samples","2023-08-22",[13,62,40],"process-notes",[16],{"path":65,"title":66,"description":8,"date":67,"image":68,"tags":69,"categories":70,"titleInPicture":17},"\u002Fposts\u002F2023-07-15-sine-anim","Round sine anim","2023-07-15","\u002Fimages\u002F2024\u002F02\u002Fsine-rose.png",[24,25,14,13],[16],{"path":72,"title":73,"description":74,"date":75,"image":76,"tags":77,"categories":81,"titleInPicture":17},"\u002Fposts\u002F2022-12-19-piano-roll","Non-discrete piano roll","A piano roll for music outside the 12 tones","2023-05-31","\u002Fimages\u002F2022\u002F12\u002Fforbidden-music-piano-roll.png",[13,78,79,12,80,40],"tool_typescript","tool_vue","area_web",[82],"portfolio",{"path":84,"title":85,"description":86,"date":87,"image":88,"tags":89,"categories":91,"titleInPicture":17},"\u002Fposts\u002F2022-06-13-sine-desk","sine desk","An interactive sound experiment","2022-06-13","\u002Fimages\u002F2022\u002F06\u002Fsinedesk-video-shot.png",[38,90,12,80,13,40],"experiment",[82],{"path":93,"title":94,"description":8,"date":87,"image":88,"tags":95,"categories":96,"titleInPicture":17},"\u002Fposts\u002F2022-06-13-harmonic-sculptures","Three Harmonic Sculptures",[38,90,13],[42],{"path":98,"title":99,"description":8,"date":100,"image":8,"tags":101,"categories":102,"titleInPicture":17},"\u002Fposts\u002F2022-04-08-karplus-on-a-worker","Worker + karplus synth example","2022-04-08",[62,13,40],[16],{"path":104,"title":105,"description":106,"date":107,"image":108,"tags":109,"categories":112,"titleInPicture":17},"\u002Fposts\u002F2021-09-28-wave-fields","Wave fields experiment","Non-realtime modular synthesis experimental interface","2021-09-28","\u002Fimages\u002F2021\u002F09\u002Fwave-fields-shot.png",[110,13,12,111,40],"context_for-the-sake-of-doing","prototype",[82],{"path":114,"title":115,"description":8,"date":116,"image":8,"tags":117,"categories":118,"titleInPicture":17},"\u002Fposts\u002F2021-07-30-very-simple-time-tracker","Time tracking simple tool","2021-07-30",[13],[16],{"path":120,"title":121,"description":8,"date":122,"image":123,"tags":124,"categories":125,"titleInPicture":17},"\u002Fposts\u002F2021-07-26-multitouch-start","Micro guide to multi-touch events","2021-07-26","\u002Fimages\u002F2021\u002F07\u002Fminimal-touch-screen-example.jpg",[13],[16],{"path":127,"title":128,"description":129,"date":130,"image":131,"tags":132,"categories":133,"titleInPicture":17},"\u002Fposts\u002F2021-04-08-universal-tuner","Universal tuner","A tool to delve into other tuning systems","2021-04-08","\u002Fimages\u002F2021\u002F04\u002Fimage-edited.png",[110,13,12,111,40],[82],{"path":135,"title":136,"description":137,"date":138,"image":139,"tags":140,"categories":146,"titleInPicture":17},"\u002Fposts\u002F2019-03-19-aalto-online-learning-website-renovation","Aalto Online Learning","Implementation of the website for Aalto University's Online Learning program.","2019-03-19","\u002Fimages\u002F2019\u002F03\u002FScreenshot-laptop.jpg",[141,142,143,144,13,12,80,145],"year_2018","year_2019","context_aalto","area_interaction","tool_wordpress",[82],{"path":148,"title":149,"description":150,"date":151,"image":152,"tags":153,"categories":164,"titleInPicture":17},"\u002Fposts\u002F2018-11-21-polimod-calculeitor","Polimod + Calculeitor","A modular environment that lets you to improvise dance music from scratch.","2018-11-21","\u002Fimages\u002F2018\u002F11\u002FIMG_20181121_160433_c-e1542810362800-scaled.jpg",[141,143,154,155,156,157,13,158,159,160,161,12,111,162,163],"context_autotel","concept","area_design","hands-on","manufacture","modular-sequencer","multimedia","area_play","thesis","virtual-polimod-tutorials",[82],{"path":166,"title":167,"description":168,"date":169,"image":170,"tags":171,"categories":182,"titleInPicture":17},"\u002Fposts\u002F2017-07-04-modular-sequencer-first-physical-prototype","Modular sequencer: First physical prototype","First prototype of the modular sequencer, my thesis project","2017-07-04","\u002Fimages\u002F2017\u002F06\u002FIMG_0844-e1499074182216.jpg",[172,143,173,174,175,144,13,176,159,177,178,179,12,111,180,181],"year_2017","tool_arduino","area_deep-experience","area_electronics","tool_kicad","area_music","tool_node-js","ongoing","tool_raspberry-pi","unfinished",[16,82],{"path":184,"title":185,"description":186,"date":187,"image":188,"tags":189,"categories":190,"titleInPicture":17},"\u002Fposts\u002F2017-07-03-ocaniemanights-toy","Oca­nie­ma­nights toy","Interactive music experience","2017-07-03","\u002Fimages\u002F2017\u002F07\u002Floopita-ocaniemanights.png",[172,156,110,144,13,160,177,161,12,80,40],[42,82],{"path":192,"title":193,"description":194,"date":195,"image":196,"tags":197,"categories":199,"titleInPicture":17},"\u002Fposts\u002F2016-10-05-tzina-symphony-of-longing","Tzina: Symphony of longing","My part in developing Tzina, an interactive cinema piece","2016-10-05","\u002Fimages\u002F2016\u002F10\u002Ftzina-extracted.jpg",[172,144,198,13,160,178,12,80,40],"context_for-clients",[82],{"path":201,"title":202,"description":8,"date":203,"image":8,"tags":204,"categories":207,"titleInPicture":17},"\u002Fposts\u002F2016-09-10-lazy-stacking","Lazy queueing","2016-09-10",[205,206,110,13,12],"year_2016","code-snippets",[16],{"path":209,"title":210,"description":211,"date":212,"image":213,"tags":214,"categories":216,"titleInPicture":17},"\u002Fposts\u002F2016-07-13-ros-3d-wall-project","ROS 3d wall project","A tool to author and present the research group's outputs in a mapped 3d environment","2016-07-13","\u002Fimages\u002F2016\u002F07\u002FROS-wall-overview.jpg",[205,143,215,144,13,160,12,80,198],"area_graphic",[82],{"path":218,"title":219,"description":220,"date":221,"image":222,"tags":223,"categories":227,"titleInPicture":17},"\u002Fposts\u002F2016-06-12-web-audio-api-basics-tutorial-in-toptal","Toptal: Web Audio API basics tutorial","A Web Audio API tutorial I wrote for Toptal","2016-06-12","\u002Fimages\u002F2016\u002F06\u002Ftoptal-blog-image-1465474393804-b2135b0069e586ba9b66690af9e65d8c.jpg",[205,13,224,225,40,226],"technologic","context_toptal","area_writing",[16],{"path":229,"title":230,"description":8,"date":231,"image":232,"tags":233,"categories":235,"titleInPicture":17},"\u002Fposts\u002F2016-05-06-sample-slicing-in-tone-js","Sample slicing in Tone.js","2016-05-06","\u002Fimages\u002F2016\u002F04\u002FCapture.png",[205,143,39,110,13,12,234,40],"synth",[16],{"path":237,"title":238,"description":239,"date":240,"image":241,"tags":242,"categories":246,"titleInPicture":17},"\u002Fposts\u002F2016-04-17-ms-compose-95","Ms Compose 95","A web audio sequencer experiment","2016-04-17","\u002Fimages\u002F2016\u002F04\u002FCapture4.png",[205,154,156,39,110,144,13,243,177,161,244,12,111,245,40],"maschine","process","tool_reaper",[42,82],{"path":248,"title":249,"description":8,"date":250,"image":251,"tags":252,"categories":254,"titleInPicture":17},"\u002Fposts\u002F2016-03-20-dj-roboto","Dj Roboto","2016-03-20","\u002Fimages\u002F2016\u002F03\u002FCapture.jpg",[205,39,110,13,177,12,253],"youtube",[16],{"path":256,"title":257,"description":258,"date":259,"image":260,"tags":261,"categories":263,"titleInPicture":17},"\u002Fposts\u002F2016-03-14-taskstack","Task­stack","A to-do tool I made for myself","2016-03-14","\u002Fimages\u002F2016\u002F03\u002Ftaskstack3_shot2.png",[205,110,144,13,262,12],"tool_php",[82],{"path":265,"title":266,"description":267,"date":268,"image":8,"tags":269,"categories":271,"titleInPicture":17},"\u002Fposts\u002F2016-03-04-in-the-box-a-game-about-artificial-intelligence-evil","In the box: a game about artificial intelligence evil","Course project with Elisa Spigai, for a bodily interaction course","2016-03-04",[205,143,174,144,13,160,12,111,270],"area_storytelling",[82],{"path":273,"title":274,"description":8,"date":275,"image":276,"tags":277,"categories":278,"titleInPicture":17},"\u002Fposts\u002F2016-02-25-live-interactive-video","live interactive video","2016-02-25","\u002Fimages\u002F2016\u002F02\u002Fawarenesstest.jpg",[205,39,13,160,244,12,111],[16],{"path":280,"title":281,"description":8,"date":282,"image":8,"tags":283,"categories":285,"titleInPicture":17},"\u002Fposts\u002F2015-10-10-unchat","Unchat","2015-10-10",[143,13,161,284],"projects",[16],{"path":287,"title":288,"description":289,"date":290,"image":291,"tags":292,"categories":295,"titleInPicture":17},"\u002Fposts\u002F2015-05-21-ttr_03","Text to rhythm synthesizer","A web experiment for making rhythms by typing onomatopoeias","2015-05-21","\u002Fimages\u002F2015\u002F05\u002Fbeitbox.png",[293,294,39,110,144,13,177,161,12,224,40],"year_2015","area_art",[42,82],{"path":297,"title":298,"description":299,"date":300,"image":301,"tags":302,"categories":304,"titleInPicture":17},"\u002Fposts\u002F2014-11-22-absurd-dictionary","Absurd dictionary","A web experiment with recursive definitions","2014-11-22","\u002Fimages\u002F2014\u002F01\u002Fabsurd_dictionary.png",[303,294,155,39,110,13,262,161,12],"year_2014",[82],{"path":306,"title":307,"description":308,"date":309,"image":310,"tags":311,"categories":312,"titleInPicture":17},"\u002Fposts\u002F2014-07-26-tag-navigation-portfolio","Tag navigation portfolio","An older version of my portfolio, from 2014","2014-07-26","\u002Fimages\u002F2014\u002F07\u002FCapture.png",[303,293,174,144,13,12],[82],{"path":314,"title":315,"description":316,"date":317,"image":318,"tags":319,"categories":322,"titleInPicture":17},"\u002Fposts\u002F2014-01-01-3d-navigation-experiment","3d navigation experiment","Unfinished website experiment for our design office","2014-01-01","\u002Fimages\u002F2014\u002F01\u002F3d-navigation-experiment-shot.jpg",[303,155,320,39,321,110,144,13,262,12,181],"context_design-factorial","failure",[82],1792083599622]