[{"data":1,"prerenderedAt":424},["ShallowReactive",2],{"posts:*:area_development:all:15":3},{"posts":4,"hasNextPage":15},[5,16,28,36,45,56,66,75,86,94,104,112,120,129,140,158,174,182,192,201,210,218,226,235,243,254,263,271,280,288,295,302,310,321,328,336,343,352,361,370,378,386,395,404,416],{"path":6,"title":7,"description":8,"date":9,"image":10,"tags":11,"categories":13,"titleInPicture":15},"\u002Fposts\u002F2026-02-04-ai-coding-advice","AI coding advice based on my experience",null,"2026-02-04","\u002Fimages\u002F2026\u002F02\u002Fneon-space-explorer.jpg",[12],"area_development",[14],"blog",false,{"path":17,"title":18,"description":19,"date":20,"image":21,"tags":22,"categories":26,"titleInPicture":15},"\u002Fposts\u002F2026-01-27-kreen","Website for Kreen Foundation","WordPress site for Fundación Kreen, made with 2Litros Agency","2026-01-27","\u002Fimages\u002F2026\u002F01\u002FKreen-screenshot.jpg",[23,12,24,25],"area_web","context_for-clients","tool_wordpress",[27],"portfolio",{"path":29,"title":30,"description":31,"date":32,"image":33,"tags":34,"categories":35,"titleInPicture":15},"\u002Fposts\u002F2025-11-01-renca-3d","Renca Urban Projects Map","Interactive 3D Urban Planning Visualization","2025-11-01","\u002Fimages\u002F2025\u002F11\u002F2026-02-04_17-36-01.jpg",[12,24],[27],{"path":37,"title":38,"description":8,"date":39,"image":40,"tags":41,"categories":44,"titleInPicture":15},"\u002Fposts\u002F2024-09-06-pen","Pen input with pressure sensitivity","2024-09-06","\u002Fimages\u002F2024\u002F09\u002Fscribus.png",[12,42,43],"tool_javascript","gist",[14],{"path":46,"title":47,"description":8,"date":48,"image":8,"tags":49,"categories":54,"titleInPicture":15},"\u002Fposts\u002F2024-03-05-arpshoot-algo","Procedural arp harp episode 1","2024-03-05",[50,51,43,12,52,42,53],"generative","sound","area_experiment","tool_web-audio-api",[14,55],"music",{"path":57,"title":58,"description":59,"date":60,"image":61,"tags":62,"categories":65,"titleInPicture":15},"\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",[42,63,64,12,23,53],"tool_typescript","tool_vue",[27],{"path":67,"title":68,"description":69,"date":70,"image":71,"tags":72,"categories":74,"titleInPicture":15},"\u002Fposts\u002F2022-06-13-sine-desk","sine desk","An interactive sound experiment","2022-06-13","\u002Fimages\u002F2022\u002F06\u002Fsinedesk-video-shot.png",[51,73,12,23,42,53],"experiment",[27],{"path":76,"title":77,"description":78,"date":79,"image":80,"tags":81,"categories":85,"titleInPicture":15},"\u002Fposts\u002F2022-05-03-chorus-rollers-telemetry","chorus rollers telemetry","An instrument that converts the dancer's movements into an audio piece","2022-05-03","\u002Fimages\u002F2022\u002F05\u002Frollers-body.jpg",[12,82,83,84,24],"tool_arduino","area_sound","tool_esp-32",[27],{"path":87,"title":88,"description":89,"date":90,"image":91,"tags":92,"categories":93,"titleInPicture":15},"\u002Fposts\u002F2022-01-03-sula-defrost","Sula defrost","Development of an interactive video piece","2022-01-03","\u002Fimages\u002F2022\u002F01\u002Fwro11.jpeg",[12,82,83],[27],{"path":95,"title":96,"description":97,"date":98,"image":99,"tags":100,"categories":103,"titleInPicture":15},"\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",[101,42,12,102,53],"context_for-the-sake-of-doing","prototype",[27],{"path":105,"title":106,"description":8,"date":107,"image":108,"tags":109,"categories":111,"titleInPicture":15},"\u002Fposts\u002F2021-07-yt-spvBwJpYZNg","harp automaton, feedback and kaoss pad","2021-07","\u002Fimages\u002Fgeneric-vhs.png",[110,73,12],"area_music",[55],{"path":113,"title":114,"description":115,"date":116,"image":117,"tags":118,"categories":119,"titleInPicture":15},"\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",[101,42,12,102,53],[27],{"path":121,"title":122,"description":123,"date":124,"image":125,"tags":126,"categories":128,"titleInPicture":15},"\u002Fposts\u002F2019-03-28-nova-masters-website","Nova-Masters","Website for Nova Master's program.","2019-03-28","\u002Fimages\u002F2019\u002F03\u002Fnova-masters-montage-1-scaled.jpeg",[127,23,12,25,24],"year_2019",[27],{"path":130,"title":131,"description":132,"date":133,"image":134,"tags":135,"categories":139,"titleInPicture":15},"\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",[136,127,137,138,42,12,23,25],"year_2018","context_aalto","area_interaction",[27],{"path":141,"title":142,"description":143,"date":144,"image":145,"tags":146,"categories":157,"titleInPicture":15},"\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",[136,137,147,148,149,150,42,151,152,153,154,12,102,155,156],"context_autotel","concept","area_design","hands-on","manufacture","modular-sequencer","multimedia","area_play","thesis","virtual-polimod-tutorials",[27],{"path":159,"title":160,"description":161,"date":162,"image":163,"tags":164,"categories":173,"titleInPicture":15},"\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",[165,137,82,166,167,138,42,168,152,110,169,170,12,102,171,172],"year_2017","area_deep-experience","area_electronics","tool_kicad","tool_node-js","ongoing","tool_raspberry-pi","unfinished",[14,27],{"path":175,"title":176,"description":177,"date":178,"image":179,"tags":180,"categories":181,"titleInPicture":15},"\u002Fposts\u002F2017-07-03-ocaniemanights-toy","Oca­nie­ma­nights toy","Interactive music experience","2017-07-03","\u002Fimages\u002F2017\u002F07\u002Floopita-ocaniemanights.png",[165,149,101,138,42,153,110,154,12,23,53],[55,27],{"path":183,"title":184,"description":8,"date":185,"image":186,"tags":187,"categories":191,"titleInPicture":15},"\u002Fposts\u002F2017-06-16-molecular-sequencer-choosing-a-communication-protocol","molecular sequencer: choosing a communication protocol","2017-06-16","\u002Fimages\u002F2017\u002F06\u002Fnet-example-politeserial.jpg",[188,152,189,82,190,12],"hardware","tool_cpp","process-notes",[14],{"path":193,"title":194,"description":195,"date":196,"image":197,"tags":198,"categories":200,"titleInPicture":15},"\u002Fposts\u002F2017-02-26-granular-synth-exercise","Granular synth exercise","Exercise from a generative media course at Aalto","2017-02-26","\u002Fimages\u002F2017\u002F02\u002Fgranular-synth-experiment-capture.png",[165,137,148,52,138,153,110,199,12,102,172],"tool_openframeworks",[55,27],{"path":202,"title":203,"description":204,"date":205,"image":206,"tags":207,"categories":209,"titleInPicture":15},"\u002Fposts\u002F2016-11-04-autoxylofon","Autoxylofon","Prototype of an instrument played by solenoids","2016-11-04","\u002Fimages\u002F2016\u002F11\u002FIMG_20170322_150345-1024x768.jpg",[165,82,150,208,110,167,12],"mechanic-synth",[55,27],{"path":211,"title":212,"description":213,"date":214,"image":215,"tags":216,"categories":217,"titleInPicture":15},"\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",[165,138,24,42,153,169,12,23,53],[27],{"path":219,"title":220,"description":8,"date":221,"image":8,"tags":222,"categories":225,"titleInPicture":15},"\u002Fposts\u002F2016-09-10-lazy-stacking","Lazy queueing","2016-09-10",[223,224,101,42,12],"year_2016","code-snippets",[14],{"path":227,"title":228,"description":229,"date":230,"image":231,"tags":232,"categories":234,"titleInPicture":15},"\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",[223,137,233,138,42,153,12,23,24],"area_graphic",[27],{"path":236,"title":237,"description":8,"date":238,"image":239,"tags":240,"categories":242,"titleInPicture":15},"\u002Fposts\u002F2016-05-06-sample-slicing-in-tone-js","Sample slicing in Tone.js","2016-05-06","\u002Fimages\u002F2016\u002F04\u002FCapture.png",[223,137,52,101,42,12,241,53],"synth",[14],{"path":244,"title":245,"description":246,"date":247,"image":248,"tags":249,"categories":253,"titleInPicture":15},"\u002Fposts\u002F2016-04-17-ms-compose-95","Ms Compose 95","A web audio sequencer experiment","2016-04-17","\u002Fimages\u002F2016\u002F04\u002FCapture4.png",[223,147,149,52,101,138,42,250,110,154,251,12,102,252,53],"maschine","process","tool_reaper",[55,27],{"path":255,"title":256,"description":257,"date":258,"image":259,"tags":260,"categories":262,"titleInPicture":15},"\u002Fposts\u002F2016-04-01-stochastic-ipad-instrument","Stochastic Ipad instrument","iPad sound experiment for a course at Aalto","2016-04-01","\u002Fimages\u002F2016\u002F04\u002Fimage.png",[223,137,138,153,110,199,12,102,261],"stochastic",[27],{"path":264,"title":265,"description":8,"date":266,"image":267,"tags":268,"categories":270,"titleInPicture":15},"\u002Fposts\u002F2016-03-20-dj-roboto","Dj Roboto","2016-03-20","\u002Fimages\u002F2016\u002F03\u002FCapture.jpg",[223,52,101,42,110,12,269],"youtube",[14],{"path":272,"title":273,"description":274,"date":275,"image":276,"tags":277,"categories":279,"titleInPicture":15},"\u002Fposts\u002F2016-03-14-taskstack","Task­stack","A to-do tool I made for myself","2016-03-14","\u002Fimages\u002F2016\u002F03\u002Ftaskstack3_shot2.png",[223,101,138,42,278,12],"tool_php",[27],{"path":281,"title":282,"description":8,"date":283,"image":8,"tags":284,"categories":287,"titleInPicture":15},"\u002Fposts\u002F2016-03-05-the-incongruent-nature-of-interactive-stories","The incongruent nature of interactive stories","2016-03-05",[223,137,251,12,285,286],"area_storytelling","area_writing",[14],{"path":289,"title":290,"description":291,"date":292,"image":8,"tags":293,"categories":294,"titleInPicture":15},"\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",[223,137,166,138,42,153,12,102,285],[27],{"path":296,"title":297,"description":8,"date":298,"image":299,"tags":300,"categories":301,"titleInPicture":15},"\u002Fposts\u002F2016-02-25-live-interactive-video","live interactive video","2016-02-25","\u002Fimages\u002F2016\u002F02\u002Fawarenesstest.jpg",[223,52,42,153,251,12,102],[14],{"path":303,"title":304,"description":8,"date":305,"image":8,"tags":306,"categories":309,"titleInPicture":15},"\u002Fposts\u002F2016-02-03-blink","Blink","2016-02-03",[307,223,308,147,101,250,153,110,12,252,269],"year_2015","area_art",[55],{"path":311,"title":312,"description":8,"date":313,"image":314,"tags":315,"categories":320,"titleInPicture":15},"\u002Fposts\u002F2015-11-11-make-mechanic-synth-2","How to make a mechanic synth","2015-11-11","\u002Fimages\u002F2015\u002F11\u002Fsketch1_bb-1024x602.png",[307,316,317,167,208,110,12,318,319],"diy","area_education","tutorial","area_workshops",[14],{"path":322,"title":323,"description":8,"date":324,"image":8,"tags":325,"categories":327,"titleInPicture":15},"\u002Fposts\u002F2015-10-24-building-a-microsequencer","Building a microsequencer","2015-10-24",[82,316,317,150,12,167,168,326],"projects",[14],{"path":329,"title":330,"description":8,"date":331,"image":332,"tags":333,"categories":335,"titleInPicture":15},"\u002Fposts\u002F2015-09-24-polar-sequencer","polar sequencer","2015-09-24","\u002Fimages\u002F2015\u002F09\u002Flectura-a-cuadros.png",[137,334,12],"learning",[14],{"path":337,"title":338,"description":339,"date":340,"image":8,"tags":341,"categories":342,"titleInPicture":15},"\u002Fposts\u002F2015-07-16-mechanic-synth","Mechanic Synth","Drum machine I built to test my MIDI sequencer","2015-07-16",[307,82,167,52,101,150,208,110,154,190,12,102,241],[27],{"path":344,"title":345,"description":346,"date":347,"image":8,"tags":348,"categories":351,"titleInPicture":15},"\u002Fposts\u002F2015-05-23-elevators-pitch","Elevators pitch","A song with an animation made in Processing","2015-05-23",[307,308,147,349,101,233,250,110,350,12,252,241,269],"area_expression","tool_processing",[55,27],{"path":353,"title":354,"description":355,"date":356,"image":357,"tags":358,"categories":360,"titleInPicture":15},"\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",[307,308,52,101,138,42,110,154,12,359,53],"technologic",[55,27],{"path":362,"title":363,"description":364,"date":365,"image":366,"tags":367,"categories":369,"titleInPicture":15},"\u002Fposts\u002F2014-12-14-design-factorial-webpage","Design factorial Webpage","Website for our design office","2014-12-14","\u002Fimages\u002F2014\u002F12\u002Fdesign-factorial-web.png",[368,138,12],"year_2014",[27],{"path":371,"title":372,"description":373,"date":374,"image":375,"tags":376,"categories":377,"titleInPicture":15},"\u002Fposts\u002F2014-11-22-absurd-dictionary","Absurd dictionary","A web experiment with recursive definitions","2014-11-22","\u002Fimages\u002F2014\u002F01\u002Fabsurd_dictionary.png",[368,308,148,52,101,42,278,154,12],[27],{"path":379,"title":380,"description":381,"date":382,"image":383,"tags":384,"categories":385,"titleInPicture":15},"\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",[368,307,166,138,42,12],[27],{"path":387,"title":388,"description":389,"date":390,"image":391,"tags":392,"categories":394,"titleInPicture":15},"\u002Fposts\u002F2014-01-01-licog-composer","Licog composer","Composition software, a side project of Brocs","2014-01-01","\u002Fimages\u002F2014\u002F01\u002FLicog.png",[368,166,317,52,101,138,153,110,154,350,12,102,252,393,359],"context_stgo-makerspace",[55,27],{"path":396,"title":397,"description":398,"date":390,"image":399,"tags":400,"categories":403,"titleInPicture":15},"\u002Fposts\u002F2014-01-01-3d-navigation-experiment","3d navigation experiment","Unfinished website experiment for our design office","\u002Fimages\u002F2014\u002F01\u002F3d-navigation-experiment-shot.jpg",[368,148,401,52,402,101,138,42,278,12,172],"context_design-factorial","failure",[27],{"path":405,"title":406,"description":407,"date":408,"image":409,"tags":410,"categories":415,"titleInPicture":15},"\u002Fposts\u002F2013-01-01-brocs","Brocs","My bachelor's thesis project","2013-01-01","\u002Fimages\u002F2013\u002F01\u002Fbrocs-5-scaled.jpg",[82,411,412,166,149,317,167,188,138,110,413,154,350,12,252,393,241,359,414],"tool_attiny","brocs","tool_parametric-cad","context_udp",[27],{"path":417,"title":418,"description":419,"date":420,"image":8,"tags":421,"categories":423,"titleInPicture":15},"\u002Fposts\u002F2012-11-26-interactive-interfaces-workshop","Interactive interfaces workshop","A workshop I gave at Santiago Makerspace","2012-11-26",[82,317,138,153,350,12,422,393,319],"tool_reactivision",[27],1790978019880]