[{"data":1,"prerenderedAt":84},["ShallowReactive",2],{"mdc-zh4rr1-key":3,"mdc--tf6a18-key":16,"mdc-an232n-key":25,"mdc-pnbpxd-key":34,"mdc--n2tp16-key":43},{"data":4,"body":5},{},{"type":6,"children":7},"root",[8],{"type":9,"tag":10,"props":11,"children":12},"element","p",{},[13],{"type":14,"value":15},"text","Nuxt, Vue y TypeScript",{"data":17,"body":18},{},{"type":6,"children":19},[20],{"type":9,"tag":10,"props":21,"children":22},{},[23],{"type":14,"value":24},"Three.js, shaders y vídeo como textura",{"data":26,"body":27},{},{"type":6,"children":28},[29],{"type":9,"tag":10,"props":30,"children":31},{},[32],{"type":14,"value":33},"Proyectos en Markdown, en español e inglés",{"data":35,"body":36},{},{"type":6,"children":37},[38],{"type":9,"tag":10,"props":39,"children":40},{},[41],{"type":14,"value":42},"Transiciones entre tarjetas y fichas, proyectos relacionados y experimentos",{"data":44,"body":45},{},{"type":6,"children":46},[47,52,60,70,79],{"type":9,"tag":10,"props":48,"children":49},{},[50],{"type":14,"value":51},"Este es el portfolio que estás recorriendo: una web personal que reúne la mayoría de mis proyectos —programación, instalaciones interactivas, aplicaciones y experimentos en tiempo real— o, al menos, aquellos de los que conservo constancia. Diseñé y desarrollé tanto la presentación del trabajo como el motor visual que la acompaña.",{"type":9,"tag":53,"props":54,"children":59},"media",{"alt":55,"effect":56,"poster":57,"src":58},"Recorrido por la portada y las fichas de sychev.xyz","reveal","https:\u002F\u002Fres.cloudinary.com\u002Fddwpkkaqv\u002Fvideo\u002Fupload\u002Fso_25p,w_1280,q_auto\u002F26sychev_xyz-0_uobyq7.webp","https:\u002F\u002Fres.cloudinary.com\u002Fddwpkkaqv\u002Fvideo\u002Fupload\u002Fvc_h264,q_auto,w_1280\u002F26sychev_xyz-0_uobyq7.mp4",[],{"type":9,"tag":61,"props":62,"children":64},"section",{"title":63},"Un motor compartido",[65],{"type":9,"tag":10,"props":66,"children":67},{},[68],{"type":14,"value":69},"Las imágenes y los vídeos conviven con una capa WebGL común a toda la página. Un motor con Three.js sincroniza los medios con su posición en el documento y aplica las deformaciones al hacer scroll o mover el cursor. Cuando el navegador lo permite, el render se ejecuta en un worker con OffscreenCanvas.",{"type":9,"tag":61,"props":71,"children":73},{"title":72},"El contenido sigue siendo una web",[74],{"type":9,"tag":10,"props":75,"children":76},{},[77],{"type":14,"value":78},"Los proyectos se validan y se preparan al construir el sitio. Cada ficha conserva su texto, enlaces y medios en el HTML; si WebGL no está disponible, siguen funcionando como contenido normal. La preferencia de movimiento reducido adapta los efectos y la reproducción.",{"type":9,"tag":10,"props":80,"children":81},{},[82],{"type":14,"value":83},"La portada incorpora un pequeño juego con una mano y piezas geométricas. En el about, el retrato se construye con una nube de puntos. Son dos maneras de presentar mi trabajo usando las mismas herramientas con las que lo desarrollo.",1794317809959]