|
/
|
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 91.86 20.35">
<!-- Generator: Adobe Illustrator 29.2.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 116) -->
<defs>
<style>
.st0, .st1 {
isolation: isolate;
}
.st1 {
font-family: Jost-SemiBold, Jost;
font-size: 12px;
font-weight: 600;
}
</style>
</defs>
<path d="M43.31,19.36h-.94s-.11,0-.23,0h0c-.1,0-.23,0-.41-.08h0c-.17-.08-.27-.18-.34-.26h0c-.07-.08-.12-.17-.15-.24h0c-.08-.14-.13-.27-.15-.29h0c-.26-.46-.62-.97-.88-1.56h0l-.27-.61.64-.19c.28-.08.55-.1.81-.1h0c.41,0,.81.05,1.08.04h0c.13,0,.24.01.32.01h0c.03-.06.07-.15.13-.25h0c.14-.24.28-.47.41-.69h0c-.25.01-.53.03-.79.03h0s-.18.01-.36.01h0c-.12,0-.27,0-.46-.08h0c-.17-.08-.27-.17-.34-.26h0c-.07-.08-.12-.17-.15-.24h0c-.08-.14-.13-.27-.15-.29h0c-.12-.21-.24-.43-.36-.64h0c-.11.19-.21.38-.32.57h0s-.07.15-.14.29h0c-.08.14-.15.32-.41.5h0c-.28.16-.48.15-.67.15h0c-.28,0-.56-.04-.63-.03h-.94s-.12,0-.25.01h0c-.11,0-.24,0-.41-.08h0c-.17-.08-.27-.18-.34-.27h0c-.07-.08-.12-.17-.15-.24h0c-.07-.13-.12-.25-.14-.29h0c-.26-.46-.61-.97-.86-1.55h0l-.27-.61.64-.19c.28-.08.55-.1.81-.1h0c.41,0,.81.05,1.08.04h0c.12,0,.22.01.29.01h0c.03-.07.08-.16.13-.27h0c.13-.23.26-.44.38-.64h0c-.24.02-.53.06-.83.06h0c-.22,0-.47-.02-.72-.1h0l-.64-.19.26-.61c.25-.59.61-1.08.87-1.53h0c.07-.12.14-.22.19-.29h0s-.08-.11-.13-.2h0l-.62-1.1s-.07-.1-.13-.21h0c-.06-.1-.15-.24-.18-.47h0s0-.08,0-.12h0c0-.2.06-.34.11-.46h0c.06-.12.12-.22.17-.31h0c.12-.18.24-.36.27-.4h0c.16-.28.32-.55.48-.83h0s.03-.08.09-.17h0c.06-.09.13-.23.32-.36h0c.25-.15.42-.13.56-.14h0c.18,0,.34.02.36.02h0c.27,0,.67-.04,1.08-.04h0c.26,0,.53.01.81.1h0l.71.21-1.15,2.04-.18.34.18.34.32.56,1.2-2.07.51.88c.29.51.59,1.02.88,1.53h0c.06.1.09.18.13.25h0s0,.02.01.03h0c.07,0,.17-.01.29-.01h0c.27,0,.67-.04,1.08-.04h0c.26,0,.53.01.81.1h0l.64.19-.27.61c-.25.59-.59,1.09-.86,1.55h0s-.04.09-.08.18h0c-.05.1-.11.21-.2.34h0c-.07.08-.17.19-.34.27h0c-.2.08-.34.08-.47.08h0c-.18,0-.34-.02-.38-.02h0c-.26,0-.52-.02-.77-.04h0c.13.21.27.43.4.66h0c.06.1.09.18.13.25h0s0,.01.01.02h1.06c.22,0,.44.03.62.03h.03c.03-.06.07-.14.13-.25h0c.2-.34.4-.69.6-1.03h0s.06-.13.13-.26h0c.08-.13.15-.29.39-.45h0c.25-.14.43-.13.57-.13h0c.18,0,.35.02.38.02h0c.25,0,.51.02.75.04h0l-1.02-1.86.7-.21c.29-.08.56-.1.83-.1h0c.42,0,.83.05,1.11.05h0s.16-.01.33-.01h0c.15.01.36-.01.64.2h0c.19.17.27.34.35.48h0c.07.14.13.26.16.31h0c.11.18.2.35.3.52h0c.12-.2.23-.41.35-.61h0c.07-.11.14-.22.19-.29h0s-.03-.06-.06-.1h0c-.16-.27-.32-.55-.48-.83h0c-.08-.14-.13-.27-.2-.41h0c-.03-.07-.07-.14-.11-.19h0c-.07,0-.16.01-.28.01h-1.23s-.17.01-.34.02h0c-.13,0-.31,0-.55-.14h0c-.24-.17-.32-.34-.4-.48h0c-.07-.13-.12-.26-.13-.28h0c-.11-.2-.23-.4-.34-.59h0c-.11.19-.22.38-.33.57h0s-.08.16-.15.3h0c-.08.14-.16.31-.41.48h0c-.28.16-.48.15-.66.16h0c-.27,0-.55-.04-.61-.04h-.94s-.12,0-.25.01h0c-.11,0-.24,0-.41-.08h0c-.17-.08-.27-.18-.34-.26h0c-.07-.08-.12-.16-.16-.24h0c-.08-.14-.13-.27-.15-.29h0c-.26-.46-.6-.94-.88-1.52h0l-.29-.62.66-.19c.28-.08.55-.1.81-.1h0c.41,0,.81.05,1.08.04h0c.12,0,.22.01.29.01h0c.03-.07.08-.16.14-.28h0c.13-.23.26-.44.38-.64h-1.38v-1.18h1.57l1.67.06-.34.79c-.26.59-.62,1.1-.88,1.56h0s-.04.09-.09.18h0c-.05.1-.11.21-.21.34h0c-.07.08-.16.19-.34.27h0c-.2.08-.34.08-.46.08h0c-.18,0-.32-.02-.36-.01h0c-.26,0-.53-.02-.77-.04h0c.13.21.27.43.4.66h0c.06.1.09.18.13.24h0s0,.01.01.03h1.09c.22,0,.44.04.61.04h.03s0-.01.01-.03h0c.05-.09.1-.2.17-.33h0c.27-.48.55-.97.85-1.46h0l.51-.83.5.84c.29.5.57.99.85,1.48h0c.06.11.09.19.13.27h0s.01.03.02.05h0c.06,0,.15-.01.26-.01h1.23s.17-.01.34-.01h0c.12,0,.26,0,.46.08h0c.21.1.31.22.4.33h0c.08.11.15.22.2.32h0c.11.2.2.41.22.45h0c.15.27.32.55.47.82h0s.06.08.11.18h0c.05.09.13.22.15.44h0v.07c-.01.31-.13.47-.21.61h0c-.08.13-.16.24-.17.26h0c-.28.5-.57.99-.87,1.48h0l-.5.83-.5-.82c-.29-.47-.55-.94-.82-1.39h0c-.07-.13-.13-.25-.17-.34h0s-.02-.04-.03-.06h0c-.07,0-.15.01-.27.01h0c-.27,0-.55-.03-.81-.04h0l1.03,1.87-.7.21c-.28.08-.55.1-.81.1h0c-.41,0-.8-.05-1.06-.04h0c-.13,0-.24-.01-.32-.02h0c-.03.06-.07.15-.13.25h0c-.2.34-.4.69-.6,1.03h0s-.06.11-.11.22h0c-.06.1-.13.24-.29.38h0c-.16.13-.3.16-.42.19h0c-.13.02-.23.03-.34.03h0c-.28,0-.57-.04-.62-.03h-.94s-.11,0-.23,0h0c-.1,0-.23,0-.41-.08h0c-.17-.08-.27-.17-.34-.26h0c-.07-.08-.12-.16-.16-.24h0c-.08-.14-.13-.27-.15-.29h0c-.26-.45-.6-.95-.88-1.52h0l-.29-.62.66-.19c.28-.08.55-.1.81-.1h0c.41,0,.81.05,1.08.04h0c.13,0,.24.01.32.01h0c.03-.07.07-.16.13-.28h0c.13-.24.27-.46.41-.69h0c-.25.01-.53.04-.8.04h0s-.18.01-.36.02h0c-.12,0-.27,0-.46-.08h0c-.17-.08-.27-.18-.34-.26h0c-.07-.08-.12-.17-.15-.24h0c-.08-.14-.13-.27-.15-.29h0c-.13-.22-.25-.43-.37-.64h0l-1.21,2.1-1.34-2.38-.45-.9.46-.9.34-.61c-.24.01-.5.04-.76.04h0c-.11,0-.2-.01-.27-.01h0s-.03.05-.04.08h0c-.16.27-.32.55-.48.82h0c-.08.15-.18.27-.27.39h0c-.04.06-.08.13-.11.18h0c.03.06.08.13.15.23h0l.62,1.09s.08.12.15.22h0c.07.13.17.28.18.57h0c-.01.31-.13.48-.2.62h0c-.08.13-.16.24-.18.27h0c-.13.22-.26.43-.38.64h0c.25-.02.53-.06.84-.06h0c.22,0,.47.02.72.1h0l.65.2-.29.62c-.27.57-.61,1.05-.88,1.51h0s-.05.1-.09.19h0c-.05.1-.11.22-.21.34h0c-.07.08-.16.18-.34.26h0c-.19.08-.34.08-.46.08h0c-.18,0-.32-.02-.36-.01h0c-.27,0-.55-.02-.8-.03h0c.13.22.27.45.41.69h0c.05.1.08.18.12.25h0s.09.01.15.01h.94c.23,0,.46.04.63.03h.03s0-.01,0-.02h0c.05-.08.09-.2.17-.34h0c.27-.48.54-.98.83-1.48h0l.51-.87.5.87c.29.51.59,1.02.88,1.53h0c.06.1.09.17.13.25h0s0,.02.01.03h0c.07,0,.17-.01.29-.01h0c.27,0,.67-.04,1.08-.04h0c.26,0,.53.01.81.1h0l.64.19-.27.61c-.26.6-.62,1.1-.88,1.55h0s-.04.08-.08.17h0c-.05.09-.1.2-.2.33h0c-.07.08-.16.18-.33.26h0c-.2.08-.34.08-.47.08h0c-.18,0-.34-.02-.38-.02h0c-.27,0-.54-.02-.78-.03h0c.13.22.28.45.41.69h0c.06.1.09.18.13.25h0s0,.01,0,.02h1.06c.22,0,.44.03.62.03h.03c.03-.06.08-.15.14-.27h0l.59-1.03s.06-.13.13-.26h0c.08-.13.15-.29.39-.45h0c.25-.14.43-.13.57-.14h0c.18,0,.35.02.38.02h0c.26,0,.53.02.77.03h0c-.13-.2-.25-.41-.38-.63h0s-.09-.13-.18-.26h0c-.08-.13-.19-.29-.21-.59h0v-.03h0c.02-.38.17-.57.27-.76h0c.11-.18.23-.34.26-.38h0c.16-.29.33-.57.5-.85h0s.04-.09.1-.18h0c.06-.1.13-.23.32-.36h0c.25-.15.43-.14.57-.15h0c.18,0,.34.02.36.02h0c.27,0,.67-.04,1.08-.04h0c.26,0,.53.01.81.1h0l.71.21-1.2,2.1-.16.31.16.31.34.59.7-1.19,1.02.6-1.72,2.93-1.38-2.35-.46-.87.45-.87.38-.67c-.24.01-.5.03-.76.03h0c-.11,0-.2-.01-.27-.01h0s-.03.06-.06.1h0c-.16.28-.33.57-.49.85h0c-.13.21-.28.41-.35.54h0c.05.08.12.18.2.32h0c.25.45.59.92.85,1.48h0l.29.62-.66.2c-.28.08-.55.1-.81.1h0c-.41,0-.81-.05-1.08-.05h0c-.13,0-.24-.01-.32-.01h0c-.03.06-.07.15-.13.25h0l-.59,1.03s-.06.13-.13.24h0c-.06.11-.13.25-.3.39h0c-.17.14-.32.18-.43.2h0c-.13.02-.23.03-.34.03h0c-.28,0-.57-.04-.62-.03h0v-.04ZM52.1,8.32h0ZM46.46,5.75h0Z"></path>
<g class="st0">
<text class="st1" transform="translate(2.35 13.59)"><tspan x="0" y="0">Edmund Harriss</tspan></text>
</g>
</svg>
|
|
Анализировать url
|
|
/projects/geometric-flows/
|
<div class="card-shader" data-astro-cid-mspuyifq=""> <style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(()=>{var a=(s,i,o)=>{let r=async()=>{await(await s())()},t=typeof i.value=="object"?i.value:void 0,c={rootMargin:t==null?void 0:t.rootMargin},n=new IntersectionObserver(e=>{for(let l of e)if(l.isIntersecting){n.disconnect(),r();break}},c);for(let e of o.children)n.observe(e)};(self.Astro||(self.Astro={})).visible=a;window.dispatchEvent(new Event("astro:visible"));})();</script><script>(()=>{var g=Object.defineProperty;var w=(c,s,d)=>s in c?g(c,s,{enumerable:!0,configurable:!0,writable:!0,value:d}):c[s]=d;var l=(c,s,d)=>w(c,typeof s!="symbol"?s+"":s,d);var E=new Set(["__proto__","constructor","prototype"]);{let c={0:t=>y(t),1:t=>d(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(d(t)),5:t=>new Set(d(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>Number.POSITIVE_INFINITY*t},s=t=>{let[p,e]=t;return p in c?c[p](e):void 0},d=t=>t.map(s),y=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([p,e])=>[p,s(e)]));class f extends HTMLElement{constructor(){super(...arguments);l(this,"Component");l(this,"hydrator");l(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let n=this.querySelectorAll("astro-slot"),r={},i=this.querySelectorAll("template[data-astro-template]");for(let o of i){let a=o.closest(this.tagName);a!=null&&a.isSameNode(this)&&(r[o.getAttribute("data-astro-template")||"default"]=o.innerHTML,o.remove())}for(let o of n){let a=o.closest(this.tagName);a!=null&&a.isSameNode(this)&&(r[o.getAttribute("name")||"default"]=o.innerHTML)}let u;try{u=this.hasAttribute("props")?y(JSON.parse(this.getAttribute("props"))):{}}catch(o){let a=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(a+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${a}`,this.getAttribute("props"),o),o}let h;await this.hydrator(this)(this.Component,u,r,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});l(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),n.disconnect(),this.childrenConnectedCallback()},n=new MutationObserver(()=>{var r;((r=this.lastChild)==null?void 0:r.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});n.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}getRetryImportUrl(e){let n=new URL(e,document.baseURI),r=`astro-retry=${Date.now()}`,i=n.hash.replace(/^#/,"");return n.hash=i?`${i}&${r}`:r,n.toString()}async importWithRetry(e){try{return await import(e)}catch(n){return await new Promise(r=>setTimeout(r,1e3)),import(this.getRetryImportUrl(e))}}handleHydrationError(e){let n=this.getAttribute("component-url"),r=new CustomEvent("astro:hydration-error",{cancelable:!0,bubbles:!0,composed:!0,detail:{error:e,componentUrl:n}});this.dispatchEvent(r)&&console.error(`[astro-island] Error hydrating ${n}`,e)}async start(){let e=JSON.parse(this.getAttribute("opts")),n=this.getAttribute("client");if(Astro[n]===void 0){window.addEventListener(`astro:${n}`,()=>this.start(),{once:!0});return}try{await Astro[n](async()=>{let r=this.getAttribute("renderer-url");try{let[i,{default:u}]=await Promise.all([this.importWithRetry(this.getAttribute("component-url")),r?this.importWithRetry(r):Promise.resolve({default:()=>()=>{}})]),h=this.getAttribute("component-export")||"default";if(h.includes(".")){this.Component=i;for(let m of h.split(".")){if(E.has(m)||!this.Component||typeof this.Component!="object"&&typeof this.Component!="function"||!Object.hasOwn(this.Component,m))throw new Error(`Invalid component export path: ${h}`);this.Component=this.Component[m]}}else{if(E.has(h))throw new Error(`Invalid component export path: ${h}`);this.Component=i[h]}return this.hydrator=u,this.hydrate}catch(i){return this.handleHydrationError(i),()=>{}}},e,this)}catch(r){this.handleHydrationError(r)}}attributeChangedCallback(){this.hydrate()}}l(f,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",f)}})();</script><astro-island uid="ccUxG" component-url="/_astro/VisualiserHost.C8Oj2nvz.js" component-export="default" renderer-url="/_astro/client.svelte.fT7-JXMq.js" props="{"spec":[0,{"visualisers":[1,[[0,{"name":[0,"2dHalfplane"],"kind":[0,"shader"],"url":[0,"/shaders/2dHalfplane/"],"driver":[0,"lattice"],"driverUrl":[0,"/shaders/_drivers/lattice.js"],"controls":[1,[[0,{"kind":[0,"slider"],"uniform":[0,"uSpeed"],"label":[0,"Speed"],"value":[0,0.15],"min":[0,-0.5],"max":[0,0.5],"step":[0,0.01]}]]],"setUniforms":[0],"setText":[0],"init":[0]}]]],"outputs":[1,[]]}],"poster":[0,true],"height":[0,"100%"],"data-astro-cid-mspuyifq":[0,true]}" ssr="" client="visible" opts="{"name":"VisualiserHost","value":true}" await-children=""><!--[--><div class="visualiser-host svelte-1rgvdi8 poster"><div class="vis-canvases svelte-1rgvdi8 single"><!--[--><div class="vis-canvas svelte-1rgvdi8" aria-label="2dHalfplane" style="height: 100%;"></div><!--]--></div> <!--[-1--><!--]--> <!--[-1--><!--]--></div><!--]--><!--astro:end--></astro-island> </div> <div class="card-overlay" data-astro-cid-mspuyifq=""> <p class="card-title" data-astro-cid-mspuyifq="">Geometric Flows</p> <p class="card-summary" data-astro-cid-mspuyifq="">Placeholder for project explaining geodesic flow and continued fractions with Pierre Arnoux.</p> </div>
|
|
Анализировать url
|
|
/projects/tilings-projection-method/
|
<div class="card-shader" data-astro-cid-mspuyifq=""> <astro-island uid="Z26QV1i" component-url="/_astro/VisualiserHost.C8Oj2nvz.js" component-export="default" renderer-url="/_astro/client.svelte.fT7-JXMq.js" props="{"spec":[0,{"visualisers":[1,[[0,{"name":[0,"4to2CPT"],"kind":[0,"shader"],"url":[0,"/shaders/4to2CPT/"],"driver":[0,"4to2CPT"],"driverUrl":[0,"/shaders/_drivers/4to2CPT.js"],"controls":[1,[[0,{"kind":[0,"xy"],"uniform":[0,"uFreeEdge"],"label":[0,"Free edge"],"value":[1,[[0,0],[0,1]]],"mins":[1,[[0,0],[0,0.02]]],"maxs":[1,[[0,2],[0,2]]],"steps":[1,[[0,0.01],[0,0.01]]]}],[0,{"kind":[0,"xy"],"uniform":[0,"uTwist"],"label":[0,"Twist (edge 2 vs pointer)"],"value":[1,[[0,0],[0,1]]],"mins":[1,[[0,0],[0,0.02]]],"maxs":[1,[[0,2],[0,2]]],"steps":[1,[[0,0.01],[0,0.01]]]}],[0,{"kind":[0,"color"],"uniform":[0,"uTileColor"],"label":[0,"Tile colour"],"value":[1,[[0,0],[0,0],[0,0.7]]]}],[0,{"kind":[0,"xy"],"uniform":[0,"winShift"],"label":[0,"Window shift"],"value":[1,[[0,0],[0,0]]],"mins":[1,[[0,-2],[0,-2]]],"maxs":[1,[[0,2],[0,2]]],"steps":[1,[[0,0.01],[0,0.01]]]}]]],"setUniforms":[0],"setText":[0],"init":[0]}]]],"outputs":[1,[]]}],"poster":[0,true],"height":[0,"100%"],"data-astro-cid-mspuyifq":[0,true]}" ssr="" client="visible" opts="{"name":"VisualiserHost","value":true}" await-children=""><!--[--><div class="visualiser-host svelte-1rgvdi8 poster"><div class="vis-canvases svelte-1rgvdi8 single"><!--[--><div class="vis-canvas svelte-1rgvdi8" aria-label="4to2CPT" style="height: 100%;"></div><!--]--></div> <!--[-1--><!--]--> <!--[-1--><!--]--></div><!--]--><!--astro:end--></astro-island> </div> <div class="card-overlay" data-astro-cid-mspuyifq=""> <p class="card-title" data-astro-cid-mspuyifq="">Tilings, substitutions and Projection</p> <p class="card-summary" data-astro-cid-mspuyifq="">Research into the relationship between substitution rules and projection tilings.</p> </div>
|
|
Анализировать url
|