1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" imageSrcSet="https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_720,c_limit/Sunday_Home_Portrait_2MB_m8rf64 720w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_1080,c_limit/Sunday_Home_Portrait_2MB_m8rf64 1080w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_1440,c_limit/Sunday_Home_Portrait_2MB_m8rf64 1440w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_2160,c_limit/Sunday_Home_Portrait_2MB_m8rf64 2160w" imageSizes="100vh"/><link rel="stylesheet" href="/_next/static/css/b3c9cb248fc2de53.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-2eb758dea75faf50.js"/>
1<script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script>
1<script src="/_next/static/chunks/255-3991756713d22f05.js" async=""></script>
1<script src="/_next/static/chunks/main-app-f9b5d20365cb8be2.js" async=""></script>
1<script src="/_next/static/chunks/619-ba102abea3e3d0e4.js" async=""></script>
1<script src="/_next/static/chunks/app/layout-171e6fc4123e3a7d.js" async=""></script>
1<script src="/_next/static/chunks/app/project/%5Bslug%5D/page-ac92943acfb4bdd9.js" async=""></script>
1<title>Sean Hammett</title><meta name="description" content="A portfolio of my work"/><link rel="icon" href="/favicon.svg"/>
1<script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script>
1</head><body class="min-h-screen bg-white text-gray-900"><div hidden=""><!--$--><!--/$--></div><main class="relative h-dvh overflow-hidden bg-black"><div class="flex h-full overflow-x-auto items-center gap-0" style="scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity"><div class="flex-none h-full w-[32rem] bg-black" style="scroll-snap-align:start"></div><div class="relative flex-none h-full flex items-center justify-center overflow-hidden"><video autoPlay="" loop="" muted="" playsInline="" class="h-full w-auto max-w-none object-contain"><source src="https://res.cloudinary.com/dswixocu2/video/upload/0053_10sec_loop_20260310_bvtqyr" type="video/mp4"/></video></div><div class="relative flex-none h-full flex items-center justify-center overflow-hidden"><img src="https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_1080,c_limit/Sunday_Home_Portrait_2MB_m8rf64" srcSet="https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_720,c_limit/Sunday_Home_Portrait_2MB_m8rf64 720w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_1080,c_limit/Sunday_Home_Portrait_2MB_m8rf64 1080w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_1440,c_limit/Sunday_Home_Portrait_2MB_m8rf64 1440w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_2160,c_limit/Sunday_Home_Portrait_2MB_m8rf64 2160w" sizes="100vh" alt="Sunday - Image 2" class="h-full w-auto max-w-none" loading="eager" decoding="async"/></div><div class="relative flex-none h-full flex items-center justify-center overflow-hidden"><img src="https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_1080,c_limit/sunday01" srcSet="https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_720,c_limit/sunday01 720w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_1080,c_limit/sunday01 1080w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_1440,c_limit/sunday01 1440w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_2160,c_limit/sunday01 2160w" sizes="100vh" alt="Sunday - Image 1" class="h-full w-auto max-w-none" loading="lazy" decoding="async"/></div><div class="relative flex-none h-full flex items-center justify-center overflow-hidden"><img src="https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_1080,c_limit/5._Sunday_Bubbles_Portrait_SM_zrejqp" srcSet="https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_720,c_limit/5._Sunday_Bubbles_Portrait_SM_zrejqp 720w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_1080,c_limit/5._Sunday_Bubbles_Portrait_SM_zrejqp 1080w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_1440,c_limit/5._Sunday_Bubbles_Portrait_SM_zrejqp 1440w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_2160,c_limit/5._Sunday_Bubbles_Portrait_SM_zrejqp 2160w" sizes="100vh" alt="Sunday - Image 3" class="h-full w-auto max-w-none" loading="lazy" decoding="async"/></div><div class="relative flex-none h-full flex items-center justify-center overflow-hidden"><img src="https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_1080,c_limit/2Feast_jubbja" srcSet="https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_720,c_limit/2Feast_jubbja 720w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_1080,c_limit/2Feast_jubbja 1080w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_1440,c_limit/2Feast_jubbja 1440w, https://res.cloudinary.com/dswixocu2/image/upload/f_auto,q_auto,h_2160,c_limit/2Feast_jubbja 2160w" sizes="100vh" alt="Sunday - Image 4" class="h-full w-auto max-w-none" loading="lazy" decoding="async"/></div></div><div class="absolute bottom-0 left-0 right-0 pointer-events-none p-4 pb-8 md:p-12 md:pb-16"><div class="mix-blend-difference mb-4 md:mb-8 inline-block pointer-events-auto shrink-0"><div style="filter:invert(1) contrast(2)"><a class="transition" href="/">â Back to portfolio</a></div></div><div class="mb-4 md:mb-16 pr-16 md:pr-0"><div class="mix-blend-difference "><div style="filter:invert(1) contrast(2)"><h1 class="text-xl sm:text-3xl md:text-5xl font-bold mb-2 md:mb-6 max-w-[25rem]">Sunday</h1></div></div><div class="text-sm sm:text-lg md:text-xl max-w-[25rem] mix-blend-difference leading-tight flex flex-col gap-1" style="filter:invert(1) contrast(1.6)"><p>A sunlight machine</p></div><div class="text-xs sm:text-sm md:text-base max-w-[25rem] mt-1 mix-blend-difference leading-tight" style="filter:invert(1) contrast(1.6)"><p>2024 - 2026</p></div><div class="mix-blend-difference "><div style="filter:invert(1) contrast(2)"><div class="text-xs sm:text-sm md:text-base max-w-[25rem] mt-2 md:mt-4 opacity-80 leading-tight flex flex-col gap-1"><p>With my business partner, we created this light over the course of about 8 months, from initial prototypes to a product on the market. The light uses a high-fidelity, high-power LED and a custom-designed water cooling loop to manage the huge output. Simple optics at the LED, and an ethereal reflector that scatters white light in the same way as the atmosphere create sunlight indoors.</p><p>You can find out more about it at <a href='https://www.sundaylight.cc' class='underline'>sundaylight.cc</a></p></div></div></div><div class="mt-6 pointer-events-auto flex items-center gap-2"><button class="text-white transition mix-blend-difference hover:opacity-70 invisible pointer-events-none" aria-label="Scroll left"><svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M15 18l-6-6 6-6"></path></svg></button><button class="text-white transition mix-blend-difference hover:opacity-70" aria-label="Scroll right"><svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 18l6-6-6-6"></path></svg></button></div></div></div></main><!--$--><!--/$--><!--$--><!--/$-->
1<script src="/_next/static/chunks/webpack-2eb758dea75faf50.js" id="_R_" 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[4848,[\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"177\",\"static/chunks/app/layout-171e6fc4123e3a7d.js\"],\"ViewTransitions\"]\n3:I[9766,[],\"\"]\n4:I[8924,[],\"\"]\n5:I[8955,[\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"177\",\"static/chunks/app/layout-171e6fc4123e3a7d.js\"],\"Analytics\"]\n6:I[1959,[],\"ClientPageRoot\"]\n7:I[1363,[\"619\",\"static/chunks/619-ba102abea3e3d0e4.js\",\"144\",\"static/chunks/app/project/%5Bslug%5D/page-ac92943acfb4bdd9.js\"],\"default\"]\n8:I[4431,[],\"OutletBoundary\"]\na:I[5278,[],\"AsyncMetadataOutlet\"]\nc:I[4431,[],\"ViewportBoundary\"]\ne:I[4431,[],\"MetadataBoundary\"]\nf:\"$Sreact.suspense\"\n11:I[7150,[],\"\"]\n12:I[622,[],\"IconMark\"]\n:HL[\"/_next/static/css/b3c9cb248fc2de53.css\",\"style\"]\n"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"RfcRaBsocHZT6rPVBbjGj\",\"p\":\"\",\"c\":[\"\",\"project\",\"sunday\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"project\",{\"children\":[[\"slug\",\"sunday\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b3c9cb248fc2de53.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"children\":[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-white text-gray-900\",\"children\":[[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",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\"}],[\"$\",\"$L5\",null,{}]]}]}]}]]}],{\"children\":[\"project\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"slug\",\"sunday\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"Component\":\"$7\",\"searchParams\":{},\"params\":{\"slug\":\"sunday\"}}],null,[\"$\",\"$L8\",null,{\"children\":[\"$L9\",[\"$\",\"$La\",null,{\"promise\":\"$@b\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],null],[\"$\",\"$Le\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$f\",null,{\"fallback\":null,\"children\":\"$L10\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"s\":false,\"S\":false}\n"])</script>
1<script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n9:null\nb:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Sean Hammett\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"A portfolio of my work\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L12\",\"3\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n10:\"$b:metadata\"\n"])</script>
1</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.