1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/6b92b398a027809a.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-d07aa1820c2d0bc5.js"/>
1<script src="/_next/static/chunks/4bd1b696-db1710e60352e22a.js" async=""></script>
1<script src="/_next/static/chunks/684-bc5a9fa7dddceeb4.js" async=""></script>
1<script src="/_next/static/chunks/main-app-fd9462aea0742001.js" async=""></script>
1<script src="/_next/static/chunks/9da6db1e-d962ff2e36137d16.js" async=""></script>
1<script src="/_next/static/chunks/277-3d33c0df6fd4f386.js" async=""></script>
1<script src="/_next/static/chunks/493-070dbd2da42fdec8.js" async=""></script>
1<script src="/_next/static/chunks/228-214ce8896bf0c4b0.js" async=""></script>
1<script src="/_next/static/chunks/567-e7ce290e74bf1fbf.js" async=""></script>
1<script src="/_next/static/chunks/57-ca3598b9f5d47a0b.js" async=""></script>
1<script src="/_next/static/chunks/331-a32ddb29ce61397d.js" async=""></script>
1<script src="/_next/static/chunks/app/layout-55478f9635032e5c.js" async=""></script>
1<script src="/_next/static/chunks/558-df67cb66ba853223.js" async=""></script>
1<script src="/_next/static/chunks/318-e1936b0554b24ab5.js" async=""></script>
1<script src="/_next/static/chunks/395-62a3cce424311166.js" async=""></script>
1<script src="/_next/static/chunks/app/projects/page-8e9f5e5db484a981.js" async=""></script>
1<link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-DCV5L79M9T" as="script"/><title>Sean Hardesty Lewis</title><meta name="description" content="Sean Hardesty Lewis is a predoctoral researcher at MIT. His work focuses on embodied AI, world models, and scene understanding for agents in real and virtual 3D environments."/><meta property="og:title" content="Sean Hardesty Lewis"/><meta property="og:description" content="Sean Hardesty Lewis is a predoctoral researcher at MIT. His work focuses on embodied AI, world models, and scene understanding for agents in real and virtual 3D environments."/><meta property="og:image" content="https://seanhardestylewis.com/share.png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:url" content="https://seanhardestylewis.com/projects"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Sean Hardesty Lewis"/><meta name="twitter:description" content="Sean Hardesty Lewis is a predoctoral researcher at MIT. His work focuses on embodied AI, world models, and scene understanding for agents in real and virtual 3D environments."/><meta name="twitter:image" content="https://seanhardestylewis.com/share.png"/><link rel="canonical" href="https://seanhardestylewis.com/projects"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/><link rel="manifest" href="/site.webmanifest"/><link rel="shortcut icon" href="/favicon.ico"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&
1family=Space+Grotesk:wght@400;500;700&display=swap" rel="stylesheet"/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="16x16"/>
1<script>document.querySelectorAll('body link[rel="icon"], body link[rel="apple-touch-icon"]').forEach(el => document.head.appendChild(el))</script>
1<script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script>
1</head><body class="min-h-screen font-body antialiased"><div hidden=""><!--$--><!--/$--></div><div class="simplified-layout-container mx-auto flex min-h-screen max-w-4xl flex-col px-4 font-sans text-sm"><header class="py-8 flex justify-between items-center shrink-0"><div class="flex-1"><a class="hover:text-foreground" href="/"><span class="font-bold">Sean Hardesty</span> Lewis</a></div><div class="flex items-center gap-x-4"><nav class="flex space-x-6 text-muted-foreground"><a class="hover:text-foreground" href="/">about</a><a class="hover:text-foreground" href="/publications">publications</a><a class="hover:text-foreground font-bold text-foreground" href="/projects">projects</a><a class="hover:text-foreground" href="/contact">contact</a><a href="/cv/SeanHardesty_Lewis_CV_July_2026.pdf" target="_blank" rel="noopener noreferrer" class="hover:text-foreground">cv</a></nav><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground h-10 w-10"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span class="sr-only">Toggle theme</span></button></div></header><main class="flex-1"><div class="py-12"><div class="flex justify-center mb-8"><div class="flex flex-wrap justify-center gap-2"><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2 rounded-full"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-whole-word mr-2 h-4 w-4"><circle cx="7" cy="12" r="3"></circle><path d="M10 9v6"></path><circle cx="17" cy="12" r="3"></circle><path d="M14 7v8"></path><path d="M22 17v1c0 .5-.5 1-1 1H3c-.5 0-1-.5-1-1v-1"></path></svg>All</button><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 rounded-full"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain-circuit mr-2 h-4 w-4"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M9 13a4.5 4.5 0 0 0 3-4"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M12 13h4"></path><path d="M12 18h6a2 2 0 0 1 2 2v1"></path><path d="M12 8h8"></path><path d="M16 8V5a2 2 0 0 1 2-2"></path><circle cx="16" cy="13" r=".5"></circle><circle cx="18" cy="3" r=".5"></circle><circle cx="20" cy="21" r=".5"></circle><circle cx="20" cy="8" r=".5"></circle></svg>Artificial Intelligence</button><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 rounded-full"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-video mr-2 h-4 w-4"><path d="m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5"></path><rect x="2" y="6" width="14" height="12" rx="2"></rect></svg>Computer Vision</button><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 rounded-full"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database mr-2 h-4 w-4"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg>Data</button><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 rounded-full"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-gamepad2 mr-2 h-4 w-4">
1<line x1="6" x2="10" y1="11" y2="11"></line><line x1="8" x2="8" y1="9" y2="13"></line><line x1="15" x2="15.01" y1="12" y2="12"></line><line x1="18" x2="18.01" y1="10" y2="10"></line><path d="M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0 0 17.32 5z"></path></svg>Games</button><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 rounded-full"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe mr-2 h-4 w-4"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>Web</button></div></div><section id="projects"><div class="grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3"><a class="group block overflow-hidden p-2" href="/projects/daunt"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/daunt_coverr.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">AI</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Daunt</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">Sensory layer for embodied agents in virtual worlds. Real-time runtime connecting virtual worlds to AI for vision, speech, and action.</p></div><div class="w-full px-6 pb-6"><img alt="Daunt Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm hidden dark:block" style="color:transparent" src="/img/awards/d2026w.png"/><img alt="Daunt Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm block dark:hidden" style="color:transparent" src="/img/awards/d2026b.png"/></div></div></a><a class="group block overflow-hidden p-2" href="/projects/searchable-city"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/scitycoverrr2.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">AI</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Searchable.City</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A searchable visual index of New York City, created by running a Vision Language Model on millions of images. Presented at SIGGRAPH 2026.</p></div><div class="w-full px-6 pb-6"><img alt="Searchable.City Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm hidden dark:block" style="color:transparent" src="/img/awards/s2026w.png"/><img alt="Searchable.City Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm block dark:hidden" style="color:transparent" src="/img/awards/s2026b.png"/></div></div></a><a class="group block overflow-hidden p-2" href="/projects/human-operator"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/ho_cover.mp4" autoPlay="" loop="" muted="" playsInl
1ine="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">AI</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Human Operator</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A human augmentation tool that allows an AI to control your body with EMS, helping you learn new physical skills. Winner of MIT HARD MODE.</p></div><div class="w-full px-6 pb-6"><img alt="Human Operator Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm hidden dark:block" style="color:transparent" src="/img/awards/hmai2026w.png"/><img alt="Human Operator Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm block dark:hidden" style="color:transparent" src="/img/awards/hmai2026b.png"/></div></div></a><a class="group block overflow-hidden p-2" href="/projects/minecraft-to-3d"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/mc3d_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">AI</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Minecraft to 3D</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A pipeline that converts any Minecraft world into a high-quality polygonal scene for major 3D engines. Presented at SIGGRAPH 2025.</p></div><div class="w-full px-6 pb-6"><img alt="Minecraft to 3D Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm hidden dark:block" style="color:transparent" src="/img/awards/s2025w.png"/><img alt="Minecraft to 3D Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm block dark:hidden" style="color:transparent" src="/img/awards/s2025b.png"/></div></div></a><a class="group block overflow-hidden p-2" href="/projects/streamtwin"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/cams_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Computer Vision</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">StreamTwin</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A decentralized digital-twin framework that uses public webcams and browser-based edge computing to visualize real-time traffic conditions.</p></div><div class="w-full px-6 pb-6"><img alt="StreamTwin Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm hidden dark:block" style="color:transparent" src="/img/awards/aaai2026w.png"/><img alt="StreamTwin Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm block dark:hidden" style="color:transparent" src="/img/awards/aaai2026b.png"/></div></div></a><a class="group block overflow-hidden p-2" href="/projects/friend-compass"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/compass_cover.mp4" autoPlay="" loop="" muted="" playsInl
1ine="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">AI</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Friend Compass</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A pair of hardware compasses that point to each other using relative RF signal and sensors, fostering a sense of presence and connection.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/sequor-rt"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/robott_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300 object-left"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">AI</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">SequorRT</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A small companion robot that uses real-time computer vision and a remote PC "brain" to intelligently follow people around.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/truman-agents"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/mcagentt_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">AI</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Truman Agents</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A "Truman Show" style Minecraft simulation where a human is immersed in a world of AI agents, testing the boundaries of social illusion.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/visum-dei"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/vd_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">AI</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Visum Dei</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">An experimental device that explores contextual privacy by using real-time facial recognition to identify and personally address users.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/vision-language-time"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/vlt_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">AI</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Vision Language Time</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">An experimental clock that uses a Vision-Language Model on a Raspberry Pi to perceive and interpret the time of day from a live camera feed.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/agentic-exploration"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/aee_cover.mp4" autoPlay="" loop="" muted="" playsInl
1ine="" class="h-full w-full object-cover duration-300 object-left"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">AI</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Agentic Exploration</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A real-time world-modeling system for games, where agents reconstruct their environment like tiny autonomous vehicles.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/mirror-world"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/mw_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">AI</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Mirror World</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A visual transformation game that turns a RPI into an alternate reality, re-imagining friends into fantastical avatars in real-time.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/opencityai"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/opencityai_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">AI</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">OpenCityAI</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">The first large-scale chatbot using city data (March 2023), trained on over 200,000 open city datasets for optimized question answering.</p></div><div class="w-full px-6 pb-6"><img alt="OpenCityAI Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm hidden dark:block" style="color:transparent" src="/img/awards/neurips2025w.png"/><img alt="OpenCityAI Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm block dark:hidden" style="color:transparent" src="/img/awards/neurips2025b.png"/></div></div></a><a class="group block overflow-hidden p-2" href="/projects/feature-detection"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/harris_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Computer Vision</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Feature Detection</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A feature detection and matching pipeline that reliably compares two images even when camera shifts position, rotates, or lighting changes.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/hybrid-images"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/hb_cover.mp4" autoPlay="" loop="" muted="" playsInl
1ine="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Computer Vision</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Hybrid Images</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A recreation of the classic optical illusion where a single image changes interpretation based on viewing distance, from first principles.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/functional-heatmap"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/heatmap_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Data</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Functional Heatmap</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A real-time visualization system for conditioned time-dependent functions that represents their movement in heatmaps.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/safemate-austin-emergency-ai"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/safemate_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300 object-top"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">AI</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">SafeMate</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A RAG chatbot developed for a $100k UT & CoA grant to provide citizens with factual information during climate and weather emergencies.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/opencitycorpus"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/occ_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Data</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">OpenCityCorpus</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A largeâscale urban data corpus (~200Â GB) harmonized from over 200 cities to provide a unified repository for AI and urban research.</p></div><div class="w-full px-6 pb-6"><img alt="OpenCityCorpus Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm hidden dark:block" style="color:transparent" src="/img/awards/neurips2025w.png"/><img alt="OpenCityCorpus Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm block dark:hidden" style="color:transparent" src="/img/awards/neurips2025b.png"/></div></div></a><a class="group block overflow-hidden p-2" href="/projects/smartcitydata"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/smartcitydata_cover.mp4" autoPlay="" loop="" muted="" playsInl
1ine="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Data</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">SmartCityData</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A platform for accessing and visualizing smart city data in real-time, helping urban planners make informed decisions.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/ut-photogrammetry"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/ut_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Data</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">UT Photogrammetry</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A small grant and a DJI drone for high-resolution images of iconic UT Austin landmarks to produce detailed, geolocated 3D models for web.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/laurel-co-op-website"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/laurel_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Web</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Laurel Co-op Website</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A comprehensive website developed for the Laurel Cooperative in Austin, showcasing community life and streamlining member operations.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/ny-nonprofit-search"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/nps_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Web</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">NY Nonprofit Search</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A free, open-source search engine and API for all IRS-registered nonprofits in New York, built with fuzzy search for easy discovery.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/translate-love"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/tl_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Web</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">translate.love</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A free, open-source machine translation API supporting over 30 languages, born from a desire to make translation universally accessible.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/godot-websockets"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/websocket_cover.mp4" autoPlay="" loop="" muted="" playsInl
1ine="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Games</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Godot Websockets</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A template for a 3D multiplayer game in Godot Engine using Websockets, featuring player customization and a basic multiplayer structure.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/python-minesweeper"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/pysweep_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Games</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Python Minesweeper</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A classic logic puzzle game, rebuilt from scratch in Python with SDL by a team of four students at Texas A&M University.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/patchwork-beast"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/pb_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Games</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Patchwork Beast</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">The first ecocentric game from Aspen Games, a not-for-profit game development startup. Selected for "Best Art" at SXSW GDC² 2025.</p></div><div class="w-full px-6 pb-6"><img alt="Patchwork Beast Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm hidden dark:block" style="color:transparent" src="/img/awards/sxsw2025w.png"/><img alt="Patchwork Beast Award" loading="lazy" width="600" height="150" decoding="async" data-nimg="1" class="w-full h-auto object-cover rounded-sm block dark:hidden" style="color:transparent" src="/img/awards/sxsw2025b.png"/></div></div></a><a class="group block overflow-hidden p-2" href="/projects/fishori"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/fishori_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Games</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Fishori</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">A peaceful idle fishing game where you recruit shipwrecked heroes, explore a mysterious island, and fish your way from rags to riches.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/opengl-minecraft"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/opengl_cover.mp4" autoPlay="" loop="" muted="" playsInl
1ine="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Games</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">OpenGL Minecraft</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">An implementation of Minecraft-inspired scene using OpenGL, featuring instancing and animation techniques to create dynamic 3D environment.</p></div></div></a><a class="group block overflow-hidden p-2" href="/projects/mists-of-grianan"><div class="flex h-full flex-col overflow-hidden rounded-lg border bg-card shadow-sm transition-shadow duration-200 hover:shadow-md"><div class="relative w-full overflow-hidden aspect-square rounded-t-lg"><video src="/img/mog_cover.mp4" autoPlay="" loop="" muted="" playsInline="" class="h-full w-full object-cover duration-300"></video></div><div class="flex flex-1 flex-col p-6"><p class="mb-2 text-xs uppercase tracking-wider text-muted-foreground">Games</p><h3 class="mb-2 font-bold text-xl leading-tight text-foreground transition-colors group-hover:text-accent-hover">Mists of Grianan</h3><p class="mb-4 text-muted-foreground transition-colors group-hover:text-accent-hover">An open-world, multiplayer Action RPG set on a mist-shrouded isle, rebuilt in Unreal Engine 5 from its origins as a 3-year Minecraft world.</p></div></div></a></div></section></div><!--$--><!--/$--></main><footer class="py-8 text-center text-xs text-muted-foreground shrink-0"><div class="mb-4 flex justify-center gap-4"><a href="https://www.linkedin.com/in/seanhardestylewis" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn" class="text-muted-foreground hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-linkedin h-6 w-6"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect width="4" height="12" x="2" y="9"></rect><circle cx="4" cy="4" r="2"></circle></svg></a><a href="https://github.com/seanhlewis/" target="_blank" rel="noopener noreferrer" aria-label="GitHub" class="text-muted-foreground hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github h-6 w-6"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg></a><a href="https://scholar.google.com/citations?user=fFlsCtAAAAAJ&hl=en&oi=sra" target="_blank" rel="noopener noreferrer" aria-label="Google Scholar" class="text-muted-foreground hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-graduation-cap h-6 w-6"><path d="M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z"></path><path d="M22 10v6"></path><path d="M6 12.5V16a6 3 0 0 0 12 0v-3.5"></path></svg></a></div>© <!-- -->2026<!-- --> Sean Hardesty Lewis. All rights reserved.</footer></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div>
1<script src="/_next/static/chunks/webpack-d07aa1820c2d0bc5.js" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[4970,[],\"ClientSegmentRoot\"]\n3:I[5504,[\"229\",\"static/chunks/9da6db1e-d962ff2e36137d16.js\",\"277\",\"static/chunks/277-3d33c0df6fd4f386.js\",\"493\",\"static/chunks/493-070dbd2da42fdec8.js\",\"228\",\"static/chunks/228-214ce8896bf0c4b0.js\",\"567\",\"static/chunks/567-e7ce290e74bf1fbf.js\",\"57\",\"static/chunks/57-ca3598b9f5d47a0b.js\",\"331\",\"static/chunks/331-a32ddb29ce61397d.js\",\"177\",\"static/chunks/app/layout-55478f9635032e5c.js\"],\"default\"]\n4:I[7555,[],\"\"]\n5:I[1295,[],\"\"]\n7:I[894,[],\"ClientPageRoot\"]\n8:I[7637,[\"229\",\"static/chunks/9da6db1e-d962ff2e36137d16.js\",\"277\",\"static/chunks/277-3d33c0df6fd4f386.js\",\"493\",\"static/chunks/493-070dbd2da42fdec8.js\",\"558\",\"static/chunks/558-df67cb66ba853223.js\",\"318\",\"static/chunks/318-e1936b0554b24ab5.js\",\"395\",\"static/chunks/395-62a3cce424311166.js\",\"893\",\"static/chunks/app/projects/page-8e9f5e5db484a981.js\"],\"default\"]\nb:I[9665,[],\"OutletBoundary\"]\ne:I[4911,[],\"AsyncMetadataOutlet\"]\n10:I[9665,[],\"ViewportBoundary\"]\n12:I[9665,[],\"MetadataBoundary\"]\n14:I[6614,[],\"\"]\n:HL[\"/_next/static/css/6b92b398a027809a.css\",\"style\"]\n"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"KAjiDU1ChONpaiBwpAWaH\",\"p\":\"\",\"c\":[\"\",\"projects\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"projects\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/6b92b398a027809a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"Component\":\"$3\",\"slots\":{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]},\"params\":{},\"promise\":\"$@6\"}]]}],{\"children\":[\"projects\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"searchParams\":{},\"params\":\"$0:f:0:1:1:props:children:1:props:params\",\"promises\":[\"$@9\",\"$@a\"]}],null,[\"$\",\"$Lb\",null,{\"children\":[\"$Lc\",\"$Ld\",[\"$\",\"$Le\",null,{\"promise\":\"$@f\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"kSrZ7mxMDgQyGp7Mzn2g4v\",{\"children\":[[\"$\",\"$L10\",null,{\"children\":\"$L11\"}],null]}],[\"$\",\"$L12\",null,{\"children\":\"$L13\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$14\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script>
1<script>self.__next_f.push([1,"15:\"$Sreact.suspense\"\n16:I[4911,[],\"AsyncMetadata\"]\n6:{}\n9:{}\na:{}\n13:[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$15\",null,{\"fallback\":null,\"children\":[\"$\",\"$L16\",null,{\"promise\":\"$@17\"}]}]}]\n"])</script>
1<script>self.__next_f.push([1,"d:null\n"])</script>
1<script>self.__next_f.push([1,"11:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nc:null\n"])</script>
1<script>self.__next_f.push([1,"f:{\"metadata\":[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}]],\"error\":null,\"digest\":\"$undefined\"}\n17:{\"metadata\":\"$f:metadata\",\"error\":null,\"digest\":\"$undefined\"}\n"])</script>
1<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"06eb605b484f480d952059d174493428","r":1,"spa":2}' crossorigin="anonymous"></script>
1 2</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.