1<!DOCTYPE html><html lang="en" class="light"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><link rel="preload" as="image" imageSrcSet="/cdn-cgi/image/width=400,quality=50,format=auto,fit=cover/uploads/artifacts/1773086130280-Visualising%20AI%20Comp%20Light-poster.webp 400w, /cdn-cgi/image/width=800,quality=50,format=auto,fit=cover/uploads/artifacts/1773086130280-Visualising%20AI%20Comp%20Light-poster.webp 800w, /cdn-cgi/image/width=1200,quality=50,format=auto,fit=cover/uploads/artifacts/1773086130280-Visualising%20AI%20Comp%20Light-poster.webp 1200w, /cdn-cgi/image/width=1600,quality=50,format=auto,fit=cover/uploads/artifacts/1773086130280-Visualising%20AI%20Comp%20Light-poster.webp 1600w, /cdn-cgi/image/width=2400,quality=50,format=auto,fit=cover/uploads/artifacts/1773086130280-Visualising%20AI%20Comp%20Light-poster.webp 2400w" imageSizes="(max-width: 800px) 100vw, 800px" crossorigin="" fetchPriority="high"/><link rel="preload" as="image" imageSrcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 2400w" imageSizes="800px" crossorigin=""/><link rel="preload" as="image" imageSrcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 2400w" imageSizes="800px" crossorigin=""/><link rel="preload" as="image" imageSrcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 2400w" imageSizes="800px" crossorigin=""/><link rel="preload" as="image" imageSrcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 2400w" imageSizes="800px" crossorigin=""/><title>Visualising AI · New Material</title><meta name="description" content="A series of visualizations depicting the core concepts of machine learning. In 2019, when we first set out to build a company around the idea of making AI a
1pproachable to everyone, we knew that AI literacy was a crucial piece of progressing towards that vision. It was then, while we building the first iteration of what would become FieldDay that we started building our brand not only to communicate what our company was about, but as an educational tool to help people grasp some of the core concepts involved in building AI systems."/><meta name="robots" content="index,follow,max-image-preview:large,max-video-preview:-1"/><link rel="canonical" href="https://newmaterial.ai/stories/visualising-ai"/><meta property="og:site_name" content="New Material"/><meta property="og:locale" content="en_GB"/><meta property="og:type" content="article"/><meta property="og:url" content="https://newmaterial.ai/stories/visualising-ai"/><meta property="og:title" content="Visualising AI · New Material"/><meta property="og:description" content="A series of visualizations depicting the core concepts of machine learning. In 2019, when we first set out to build a company around the idea of making AI approachable to everyone, we knew that AI literacy was a crucial piece of progressing towards that vision. It was then, while we building the first iteration of what would become FieldDay that we started building our brand not only to communicate what our company was about, but as an educational tool to help people grasp some of the core concepts involved in building AI systems."/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@newmaterialai"/><meta name="twitter:title" content="Visualising AI · New Material"/><meta name="twitter:description" content="A series of visualizations depicting the core concepts of machine learning. In 2019, when we first set out to build a company around the idea of making AI approachable to everyone, we knew that AI literacy was a crucial piece of progressing towards that vision. It was then, while we building the first iteration of what would become FieldDay that we started building our brand not only to communicate what our company was about, but as an educational tool to help people grasp some of the core concepts involved in building AI systems."/><meta property="og:image" content="https://newmaterial.ai/uploads/artifacts/1778107366642-the-machine-learning-process-preview.webp"/><meta name="twitter:image" content="https://newmaterial.ai/uploads/artifacts/1778107366642-the-machine-learning-process-preview.webp"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="800"/><meta property="og:image:alt" content="The machine learning process"/><meta name="twitter:image:alt" content="The machine learning process"/><meta property="article:published_time" content="2021-06-13"/><meta property="article:modified_time" content="2026-06-09T18:48:36.490Z"/><meta property="article:section" content="labs"/><meta property="article:author" content="Aaron Abentheuer"/><meta property="article:author" content="Nelson Schöller"/><meta property="article:author" content="Gabriel Mitchell"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="preload" href="/fonts/ABCFavorit-Book.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="icon" href="/favicon-light.png"/><link rel="shortcut icon" href="/favicon-light.png"/><link rel="icon" href="/favicon-light.png" media="(prefers-color-scheme: light)"/><link rel="icon" href="/favicon-dark.png" media="(prefers-color-scheme: dark)"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/><link rel="modulepreload" href="/assets/entry.client-jqb2piIo.js"/><link rel="modulepreload" href="/assets/jsx-runtime-u17CrQMm.js"/><link rel="modulepreload" href="/assets/chunk-EPOLDU6W-DDKLhvzC.js"/><link rel="modulepreload" href="/assets/index-7OC5HNn7.js"/><link rel="modulepreload" href="/assets/index-nIknq2ud.js"/><link rel="modulepreload" href="/assets/root-CVBVwr96.js"/><link rel="modulepreload" href="/assets/preload-helper-BXl3LOEh.js"/><link rel="modulepreload" href="/assets/lightbox-context-DAuiXBBD.js"/><link rel="modulepreload" href="/assets/use-motion-value-event-DnAAq14n.js"/><link rel="modulepreload" href="/assets/button-D2XkC4S1.js"/><link rel="modulepreload" href="/assets/tooltip-_x8vZoE_.js"/><link rel="modulepreload" href="/assets/index-CuF72Boz.js"/><link rel="modulepreload" href="/assets/utils-BS5inCOb.js"/><link rel="modulepreload" href="/assets/useButton-BaC4TK_w.js"/><link rel="modulepreload" href="/assets/useRenderElement-ByvCCVxT.js"/><link rel="modulepreload" href="/assets/createBaseUIEventDetails-L9OVrBJ6.js"/><link rel="modulepreload" href="/assets/popupStateMapping-D96L6Nu6.js"/><link rel="modulepreload" href="/assets/useBaseUiId-2jn-_8Ix.js"/><link rel="modulepreload" href="/assets/element-BCnqlMgX.js"/><link rel="modulepreload" href="/assets/useTimeout-Dtp6uYGR.js"/><link rel="modulepreload" href="/assets/owner-Dm6pnmkm.js"/><link rel="modulepreload" href="/assets/useFocus-CClKL5R_.js"/><link rel="modulepreload" href="/assets/safePolygon-B0Oyhrlw.js"/><link rel="modulepreload" href="/assets/getDisabledMountTransitionStyles-CxtbxEyo.js"/><link rel="modulepreload" href="/assets/floating-ui.utils-BiZy_si2.js"/><link rel="modulepreload" href="/assets/DirectionContext-BZBed3Uc.js"/><link rel="modulepreload" href="/assets/usePopupAutoResize-BVaCeFa9.js"/><link rel="modulepreload" href="/assets/content.layout-CjjI5vuO.js"/><link rel="modulepreload" href="/assets/icons-DSyQTBjT.js"/><link rel="modulepreload" href="/assets/image-DiLk8n9P.js"/><link rel="modulepreload" href="/assets/use-reduced-motion-BAETq9Nb.js"/><link rel="modulepreload" href="/assets/index-CkZSuJ9p.js"/><link rel="modulepreload" href="/assets/proxy-DvfufeLI.js"/><link rel="modulepreload" href="/assets/content-visibility-GQQGOf1O.js"/><link rel="modulepreload" href="/assets/quote-gallery-BGw5Y9A9.js"/><link rel="modulepreload" href="/assets/typograph-CsL4lFT6.js"/><link rel="modulepreload" href="/assets/artifact-visual-analysis-Bwq68FpZ.js"/><link rel="modulepreload" href="/assets/paper-stack-_BS6s43l.js"/><link rel="modulepreload" href="/assets/tint-DSUULco-.js"/><link rel="modulepreload" href="/assets/home-C2Btszmj.js"/><link rel="modulepreload" href="/assets/portfolio-taxonomy-aq57wR6I.js"/>
1<link rel="modulepreload" href="/assets/use-drag-controls-7rqJ6DAa.js"/><link rel="modulepreload" href="/assets/index-DmW9LlW4.js"/><link rel="modulepreload" href="/assets/use-transform-Di-X5ZZY.js"/><link rel="modulepreload" href="/assets/presence-types-D_mDXtxz.js"/><link rel="modulepreload" href="/assets/persona-capture-form-COZg-zPr.js"/><link rel="modulepreload" href="/assets/discord-presence-context-4e2_4OGV.js"/><link rel="modulepreload" href="/assets/app-store-B1FRaRir.js"/><link rel="modulepreload" href="/assets/featured-app-privacy-context-DWGVRxa5.js"/><link rel="modulepreload" href="/assets/showcase-qr-dialog-walk7PN5.js"/><link rel="modulepreload" href="/assets/flipbook-gallery-D9tvbt7A.js"/><link rel="modulepreload" href="/assets/section-list-CibZXy6X.js"/><link rel="modulepreload" href="/assets/site-context-control-_Y4noZUV.js"/><link rel="modulepreload" href="/assets/MotionConfigContext-D_WkdJ8J.js"/><link rel="modulepreload" href="/assets/use-in-view-B89Mrsbm.js"/><link rel="modulepreload" href="/assets/gallery-progress-dots-Pde1NSDP.js"/><link rel="modulepreload" href="/assets/site-header-context--mVWwM2O.js"/><link rel="modulepreload" href="/assets/analytics.client-COam7ciE.js"/><link rel="modulepreload" href="/assets/devices-BJQoVHhU.js"/><link rel="modulepreload" href="/assets/remark-typograph-D2NaBMTg.js"/><link rel="modulepreload" href="/assets/index-Cn7hrrKz.js"/><link rel="modulepreload" href="/assets/avatar-dot-BGUZZVlE.js"/><link rel="modulepreload" href="/assets/image-placeholder-f_Uj4rT2.js"/><link rel="modulepreload" href="/assets/navigation-placeholder-CsFGDdUj.js"/><link rel="modulepreload" href="/assets/navigation-seed-ybS7nvwd.js"/><link rel="modulepreload" href="/assets/person-BNIsIt8P.js"/><link rel="modulepreload" href="/assets/speech-bubble-path-nGU9T00G.js"/><link rel="modulepreload" href="/assets/context-arrow-control-D3l2jq4H.js"/><link rel="modulepreload" href="/assets/use-mobile-Bg-RD5Oy.js"/><link rel="modulepreload" href="/assets/text-shimmer-CJPjEQUk.js"/><link rel="modulepreload" href="/assets/action-helpers-DkKLodi9.js"/><link rel="modulepreload" href="/assets/schemas-cszQidbv.js"/><link rel="modulepreload" href="/assets/artifact.index-B5slPMIl.js"/><link rel="modulepreload" href="/assets/video-artifact-CoeCJnKG.js"/><link rel="modulepreload" href="/assets/artifact-hearts.client-COtUZFKh.js"/><link rel="modulepreload" href="/assets/app-clip-yd5BNHgz.js"/><link rel="modulepreload" href="/assets/random-uuid-Bbe8nWZn.js"/><link rel="modulepreload" href="/assets/favorite-heart-control-Bkd8dics.js"/><link rel="modulepreload" href="/assets/content-types-D_mEm2eJ.js"/><link rel="modulepreload" href="/assets/focus-CMrwnIoW.js"/><link rel="modulepreload" href="/assets/seo-B90DoU_c.js"/><link rel="modulepreload" href="/assets/styles-lmQY2dAH.js"/><link rel="modulepreload" href="/assets/ScrollAreaThumb-CIcpC5Fc.js"/><link rel="modulepreload" href="/assets/use-event-source-BkUmBtoq.js"/><link rel="modulepreload" href="/assets/dialog-Ckv6RMpM.js"/><link rel="modulepreload" href="/assets/DialogTrigger-CconnOQ0.js"/><link rel="modulepreload" href="/assets/composite-BEMs77xx.js"/><link rel="modulepreload" href="/assets/useOpenInteractionType-DLO05xoO.js"/><link rel="modulepreload" href="/assets/home-attention-D3MBHtrV.js"/><link rel="modulepreload" href="/assets/format-date-yaQnJ40C.js"/><link rel="modulepreload" href="/assets/animated-shuffle-icon-0hm9rJm-.js"/><link rel="modulepreload" href="/assets/stories.slug-DpvAxIgU.js"/><link rel="modulepreload" href="/assets/stories.slug-C0kjpYhL.js"/><link rel="modulepreload" href="/assets/site-controls-CJ-AKeIW.js"/><link rel="modulepreload" href="/assets/generation-indicator-BwScE45A.js"/><link rel="modulepreload" href="/assets/index-BsWEDxGP.js"/><link rel="modulepreload" href="/assets/react-DZJN03Dt.js"/><link rel="modulepreload" href="/assets/schema-BV-w-kaV.js"/><link rel="modulepreload" href="/assets/index-ClaGlwFW.js"/><link rel="modulepreload" href="/assets/session-agent.api-Chtn4JHc.js"/><link rel="modulepreload" href="/assets/validation-helpers-C5GosE5M.js"/><link rel="modulepreload" href="/assets/artifact-appearance-analysis-Bt9gkLUA.js"/>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"BlogPosting","@id":"https://newmaterial.ai/stories/visualising-ai#article","url":"https://newmaterial.ai/stories/visualising-ai","mainEntityOfPage":"https://newmaterial.ai/stories/visualising-ai","headline":"Visualising AI","description":"A series of visualizations depicting the core concepts of machine learning. In 2019, when we first set out to build a company around the idea of making AI approachable to everyone, we knew that AI literacy was a crucial piece of progressing towards that vision. It was then, while we building the first iteration of what would become FieldDay that we started building our brand not only to communicate what our company was about, but as an educational tool to help people grasp some of the core concepts involved in building AI systems.","datePublished":"2021-06-13","dateModified":"2026-06-09T18:48:36.490Z","articleSection":"labs","image":["https://newmaterial.ai/uploads/artifacts/1778107366642-the-machine-learning-process-preview.webp"],"author":[{"@type":"Person","name":"Aaron Abentheuer","url":"https://newmaterial.ai/people/aaron-abentheuer"},{"@type":"Person","name":"Nelson Schöller","url":"https://newmaterial.ai/people/nelson-sch%C3%B6ller"},{"@type":"Person","name":"Gabriel Mitchell","url":"https://newmaterial.ai/people/gabriel-mitchell"}],"publisher":{"@id":"https://newmaterial.ai/#organization"},"isPartOf":{"@id":"https://newmaterial.ai/journal#journal"}}]}</script>
1<script> 2(() => { 3 const retryKey = 'nm-asset-recovery'; 4 const currentUrl = new URL(window.location.href); 5 if (currentUrl.searchParams.has('__asset_retry')) { 6 currentUrl.searchParams.delete('__asset_retry'); 7 history.replaceState(history.state, '', currentUrl.toString()); 8 } 9 const recover = () => { 10 if (sessionStorage.getItem(retryKey)) return; 11 sessionStorage.setItem(retryKey, '1'); 12 const url = new URL(window.location.href); 13 url.searchParams.set('__asset_retry', Date.now().toString()); 14 window.location.replace(url.toString()); 15 }; 16 window.addEventListener('error', (event) => { 17 const target = event.target; 18 const failedAsset = 19 target instanceof HTMLScriptElement 20 ? target.src 21 : target instanceof HTMLLinkElement && ['stylesheet', 'modulepreload'].includes(target.rel) 22 ? target.href 23 : ''; 24 if (failedAsset && new URL(failedAsset, window.location.href).pathname.startsWith('/assets/')) recover(); 25 const message = String(event.message ?? event.error?.message ?? event.error ?? ''); 26 if (/Importing binding name ['"][^'"]+['"] is not found|does not provide an export named/i.test(message)) recover(); 27 }, true); 28 window.addEventListener('unhandledrejection', (event) => { 29 const message = String(event.reason?.message ?? event.reason ?? ''); 30 if (/Failed to fetch dynamically imported module|Importing a module script failed|Load failed|Importing binding name ['"][^'"]+['"] is not found|does not provide an export named/i.test(message)) recover(); 31 }); 32 window.addEventListener('vite:preloadError', recover); 33})(); 34</script>
34<link rel="stylesheet" href="/assets/root-qARLWNin.css"/><link rel="stylesheet" href="/assets/text-shimmer-Xoih4BZU.css"/>
34<script> 35 (function() { 36 var pendingDirection = null; 37 var pendingUAVisualTransition = false; 38 var vtState = window.__NM_VIEW_TRANSITION__ || { active: false, direction: null }; 39 var navigationPerformance = window.__NM_NAVIGATION_PERFORMANCE__ || {}; 40 window.__NM_VIEW_TRANSITION__ = vtState; 41 window.__NM_NAVIGATION_PERFORMANCE__ = navigationPerformance; 42 var artifactEntries = Object.create(null); 43 var pendingTraversal = null; 44 var currentHistoryEntry = readHistoryEntry(); 45 artifactEntries[currentHistoryEntry.key] = { artifact: null, type: null }; 46 47 function readHistoryEntry() { 48 var state = window.history.state || {}; 49 var entry = window.navigation && window.navigation.currentEntry; 50 return { 51 key: state.key || (entry && entry.key) || (typeof state.idx === 'number' ? 'index-' + state.idx : 'initial'), 52 index: typeof state.idx === 'number' ? state.idx : (entry ? entry.index : null), 53 path: window.location.pathname + window.location.search, 54 }; 55 } 56 57 // Router history keys retain the artifact used to enter each page. Back 58 // selects the departing entry; Forward selects the destination entry. 59 // Unlike a popped stack, this also survives repeated history traversal. 60 var nativePushState = window.history.pushState; 61 window.history.pushState = function() { 62 var result = nativePushState.apply(this, arguments); 63 currentHistoryEntry = readHistoryEntry(); 64 artifactEntries[currentHistoryEntry.key] = { 65 artifact: window.__NM_PENDING_ARTIFACT__ || null, 66 type: window.__NM_VIEW_TRANSITION_TYPE__ || null, 67 }; 68 window.__NM_PENDING_ARTIFACT__ = null; 69 window.__NM_ACTIVE_ARTIFACT__ = artifactEntries[currentHistoryEntry.key].artifact; 70 pendingDirection = 'forward'; 71 pendingTraversal = null; 72 return result; 73 }; 74 75 var nativeReplaceState = window.history.replaceState; 76 window.history.replaceState = function() { 77 var previous = currentHistoryEntry; 78 var result = nativeReplaceState.apply(this, arguments); 79 currentHistoryEntry = readHistoryEntry(); 80 if (previous.key !== currentHistoryEntry.key) { 81 artifactEntries[currentHistoryEntry.key] = previous.path === currentHistoryEntry.path 82 ? artifactEntries[previous.key] || { artifact: null, type: null } 83 : { artifact: null, type: null }; 84 } 85 return result; 86 }; 87 88 navigationPerformance.navigationSequence = navigationPerformance.navigationSequence || 0; 89 navigationPerformance.transitionSequence = navigationPerformance.transitionSequence || 0; 90 91 function performanceNow() { 92 return window.performance && typeof window.performance.now === 'function' 93 ? window.performance.now() 94 : Date.now(); 95 } 96 97 function markPerformance(name, startTime, detail) { 98 if (!window.performance || typeof window.performance.mark !== 'function') return; 99 try { 100 window.performance.mark(name, { startTime: startTime, detail: detail }); 101 } catch (_) { 102 try { 103 window.performance.mark(name); 104 } catch (_) {} 105 } 106 } 107 108 function measurePerformance(name, startTime, endTime, detail) { 109 if (!window.performance || typeof window.performance.measure !== 'function') return; 110 try { 111 window.performance.measure(name, { 112 start: startTime, 113 end: endTime, 114 detail: detail, 115 }); 116 } catch (_) {} 117 } 118 119 function navigationPerformanceDetail(record, status) { 120 return { 121 navigationId: record.id, 122 destination: record.destination, 123 state: record.state, 124 status: status, 125 }; 126 } 127 128 function finishNavigationLoading(record, status) { 129 if (!record || record.loadingEndTime != null) return; 130 var endTime = performanceNow(); 131 record.loadingEndTime = endTime; 132 record.status = status; 133 var detail = navigationPerformanceDetail(record, status); 134 markPerformance('nm:navigation-loading-end', endTime, detail); 135 measurePerformance( 136 'nm:navigation-loading', 137 record.loadingStartTime, 138 endTime, 139 detail, 140 ); 141 navigationPerformance.lastNavigation = record; 142 if ( 143 navigationPerformance.activeNavigation && 144 navigationPerformance.activeNavigation.id === record.id 145 ) { 146 navigationPerformance.activeNavigation = null; 147 } 148 } 149 150 navigationPerformance.beginLoading = function(detail) {
151 var identity = (detail && (detail.key || detail.destination)) || null; 152 var activeNavigation = navigationPerformance.activeNavigation; 153 if (activeNavigation && activeNavigation.identity === identity) { 154 activeNavigation.state = detail && detail.state; 155 return activeNavigation.id; 156 } 157 if (activeNavigation) finishNavigationLoading(activeNavigation, 'interrupted'); 158 159 var startTime = performanceNow(); 160 var record = { 161 id: ++navigationPerformance.navigationSequence, 162 identity: identity, 163 destination: (detail && detail.destination) || null, 164 state: (detail && detail.state) || 'loading', 165 loadingStartTime: startTime, 166 loadingEndTime: null, 167 }; 168 navigationPerformance.activeNavigation = record; 169 markPerformance( 170 'nm:navigation-loading-start', 171 startTime, 172 navigationPerformanceDetail(record, 'started'), 173 ); 174 return record.id; 175 }; 176 177 navigationPerformance.endLoading = function(detail) { 178 finishNavigationLoading( 179 navigationPerformance.activeNavigation, 180 (detail && detail.status) || 'complete', 181 ); 182 }; 183 184 var transitionMarkNames = { 185 start: 'nm:view-transition-start', 186 updateStart: 'nm:view-transition-update-start', 187 updateEnd: 'nm:view-transition-update-end', 188 ready: 'nm:view-transition-ready', 189 finished: 'nm:view-transition-finished', 190 }; 191 192 function transitionPerformanceDetail(record, status) { 193 return { 194 transitionId: record.id, 195 navigationId: record.navigation ? record.navigation.id : null, 196 direction: record.direction, 197 transitionType: record.transitionType, 198 destination: record.navigation ? record.navigation.destination : null, 199 status: status, 200 }; 201 } 202 203 function recordTransitionPerformance(record, phase, status) { 204 var property = phase + 'Time'; 205 if (record[property] != null) return; 206 var time = performanceNow(); 207 record[property] = time; 208 var detail = transitionPerformanceDetail(record, status); 209 markPerformance(transitionMarkNames[phase], time, detail); 210 211 if (phase === 'start' && record.navigation) { 212 measurePerformance( 213 'nm:navigation-loading-to-view-transition', 214 record.navigation.loadingStartTime, 215 time, 216 detail, 217 ); 218 } else if (phase === 'updateEnd' && record.updateStartTime != null) { 219 measurePerformance( 220 'nm:view-transition-update', 221 record.updateStartTime, 222 time, 223 detail, 224 ); 225 } else if (phase === 'ready' && record.startTime != null) { 226 measurePerformance( 227 'nm:view-transition-start-to-ready', 228 record.startTime, 229 time, 230 detail, 231 ); 232 } else if (phase === 'finished' && record.startTime != null) { 233 measurePerformance( 234 'nm:view-transition-total', 235 record.startTime, 236 time, 237 detail, 238 ); 239 } 240 } 241 242 function emitStart(direction) { 243 vtState.active = true; 244 vtState.direction = direction; 245 document.documentElement.classList.add('nm-vt-active'); 246 window.dispatchEvent( 247 new CustomEvent('nm:view-transition-start', { 248 detail: { direction: direction }, 249 }), 250 ); 251 } 252 253 function emitEnd() { 254 vtState.active = false; 255 vtState.direction = null; 256 document.documentElement.classList.remove('nm-vt-active'); 257 window.dispatchEvent(new Event('nm:view-transition-end')); 258 } 259 260 function resetArtifactRadiusMorph() { 261 document.documentElement.classList.remove('nm-vt-artifact-radius'); 262 document.documentElement.style.removeProperty('--artifact-vt-radius-from'); 263 document.documentElement.style.removeProperty('--artifact-vt-radius-to'); 264 } 265 266 function installExactLightboxArtifactPolicy(name, shadowName, outlineName, retainedChrome, postTransition) { 267 if (!name || !/^[-_a-zA-Z0-9]+$/.test(name)) return null; 268 var style = document.createElement('style'); 269 var shadowRules = ''; 270 var outlineRules = ''; 271 if (shadowName && /^[-_a-zA-Z0-9]+$/.test(shadowName)) { 272 shadowRules =
273 ':root.nm-vt-shared-artifact::view-transition-group(' + shadowName + '){animation-duration:var(--artifact-duration);animation-timing-function:var(--artifact-curve);z-index:59}' + 274 ':root.nm-vt-shared-artifact::view-transition-old(' + shadowName + '){animation:fade-out var(--vt-lightbox-artifact-fade-duration) var(--primary-curve) forwards var(--vt-lightbox-artifact-fade-delay)!important;mix-blend-mode:normal!important}' + 275 ':root.nm-vt-shared-artifact::view-transition-new(' + shadowName + '){opacity:0;animation:fade-in var(--vt-lightbox-artifact-fade-duration) var(--primary-curve) forwards var(--vt-lightbox-artifact-fade-delay)!important;mix-blend-mode:normal!important}'; 276 } 277 if (outlineName && /^[-_a-zA-Z0-9]+$/.test(outlineName)) { 278 outlineRules = 279 '[data-nm-artifact-outline-capture]{box-shadow:none!important}' + 280 ':root.nm-vt-shared-artifact::view-transition-group(' + outlineName + '){animation-duration:var(--artifact-duration);animation-timing-function:var(--artifact-curve);z-index:61}' +
281 ':root.nm-vt-shared-artifact::view-transition-old(' + outlineName + '),:root.nm-vt-shared-artifact::view-transition-new(' + outlineName + '){animation:none!important;opacity:0!important;mix-blend-mode:normal!important}'; 282 } 283 style.setAttribute('data-nm-exact-lightbox-transition', name); 284 style.textContent = 285 ':root.nm-vt-shared-artifact::view-transition-group(' + name + '){animation-duration:var(--artifact-duration);animation-timing-function:var(--artifact-curve);z-index:60;overflow:clip}' + 286 ':root.nm-vt-shared-artifact::view-transition-image-pair(' + name + '){clip-path:inset(0 round var(--artifact-vt-radius-from, 0px))}' + 287 ':root.nm-vt-shared-artifact::view-transition-old(' + name + '){animation:none!important;opacity:1!important;mix-blend-mode:normal!important;inset:0;width:100%!important;height:100%!important;object-fit:cover;object-position:center}' + 288 ':root.nm-vt-shared-artifact::view-transition-new(' + name + '){animation:none!important;opacity:0!important;mix-blend-mode:normal!important;inset:0;width:100%!important;height:100%!important;object-fit:cover;object-position:center}' +
289 ':root.nm-vt-shared-artifact.nm-vt-artifact-radius::view-transition-image-pair(' + name + '){animation-name:artifact-corner-radius;animation-duration:var(--artifact-duration);animation-timing-function:var(--artifact-curve);animation-fill-mode:both}' + 290 shadowRules + outlineRules; 291 var chromeName = name + '-chrome'; 292 var returning = !!document.querySelector('[data-lightbox-transition-root]'); 293 if (!postTransition) style.textContent += 294 ':root.nm-vt-shared-artifact::view-transition-group(' + chromeName + '){animation-duration:var(--artifact-duration);animation-timing-function:var(--artifact-curve);z-index:62;overflow:clip;border-radius:var(--artifact-vt-radius-from,0px)}' + 295 ':root.nm-vt-shared-artifact::view-transition-old(' + chromeName + '),:root.nm-vt-shared-artifact::view-transition-new(' + chromeName + '){inset:0;width:100%;height:100%;object-fit:fill}' + 296 ':root.nm-vt-shared-artifact::view-transition-old(' + chromeName + '){mix-blend-mode:normal;animation:' + (returning ? (retainedChrome ? 'artifact-chrome-in var(--artifact-duration) var(--ease-damped-spring) both' : 'none;opacity:0') : 'artifact-chrome-out var(--artifact-duration) var(--ease-damped-spring) both') + '}' +
297 ':root.nm-vt-shared-artifact::view-transition-new(' + chromeName + '){mix-blend-mode:normal;animation:' + (returning && !retainedChrome ? 'artifact-chrome-in var(--artifact-duration) var(--ease-damped-spring) both' : 'none;opacity:0') + '}' + 298 '@keyframes artifact-chrome-out{from{opacity:1;transform:translateY(0);filter:blur(0)}to{opacity:0;transform:translateY(var(--spacing-prose-gutter));filter:blur(10px)}}' + 299 '@keyframes artifact-chrome-in{from{opacity:0;transform:translateY(var(--spacing-prose-gutter));filter:blur(10px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}'; 300 document.head.appendChild(style); 301 document.documentElement.classList.add('nm-vt-shared-artifact', postTransition ? 'nm-vt-post-artifact' : 'nm-vt-lightbox-exact'); 302 return style; 303 } 304 305 // WebKit can omit a composited video from the outgoing element snapshot. 306 // Paint its current frame synchronously in the same layout/clip for capture. 307 function freezeArtifactVideo(name) { 308 var frame = findArtifactTransitionTarget(name); 309 var video = frame && frame.querySelector('video'); 310 if (!video || video.readyState < 2 || !video.videoWidth || !video.videoHeight) return null; 311 var canvas = document.createElement('canvas'); 312 var scale = Math.min(1, 1440 / video.videoWidth); 313 canvas.width = Math.max(1, Math.round(video.videoWidth * scale)); 314 canvas.height = Math.max(1, Math.round(video.videoHeight * scale)); 315 var context = canvas.getContext('2d'); 316 if (!context) return null; 317 try { 318 // The start listener already retained this frame for the destination. 319 // Reuse its bitmap instead of reading the video surface a second time. 320 var handoffs = window.__NM_VIDEO_PLAYBACK_HANDOFF__; 321 var handoff = handoffs && handoffs.get(name.replace(/^artifact-/, '')); 322 var retainedFrame = handoff && Date.now() - handoff.capturedAt < 5000 && handoff.frame; 323 context.drawImage(retainedFrame || video, 0, 0, canvas.width, canvas.height); 324 } catch (_) { return null; } 325 var computed = getComputedStyle(video); 326 Object.assign(canvas.style, { 327 position: 'absolute', left: video.offsetLeft + 'px', top: video.offsetTop + 'px', 328 width: video.offsetWidth + 'px', height: video.offsetHeight + 'px', 329 objectFit: computed.objectFit, objectPosition: computed.objectPosition, 330 borderRadius: computed.borderRadius, transform: computed.transform, 331 transformOrigin: computed.transformOrigin, opacity: computed.opacity, 332 zIndex: computed.zIndex, pointerEvents: 'none', viewTransitionName: 'none' 333 }); 334 canvas.setAttribute('aria-hidden', 'true'); 335 canvas.setAttribute('data-artifact-video-snapshot', ''); 336 video.after(canvas); 337 return canvas; 338 } 339 340 function findArtifactTransitionTarget(name) { 341 if (!name) return null; 342 var candidates = document.querySelectorAll( 343 '[data-artifact-transition-name], [style*="view-transition-name"]', 344 ); 345 for (var i = 0; i < candidates.length; i++) { 346 var candidate = candidates[i]; 347 if (candidate.style.viewTransitionName === name) return candidate; 348 if (getComputedStyle(candidate).viewTransitionName === name) return candidate; 349 } 350 return null; 351 } 352 353 function retainPostCaptureSurface(name) { 354 var frame = findArtifactTransitionTarget(name); 355 if (!frame || !frame.closest('.article-view')) return null; 356 var bounds = frame.getBoundingClientRect(); 357 var clone = frame.cloneNode(true); 358 var originals = frame.querySelectorAll('canvas'); 359 var canvases = clone.querySelectorAll('canvas'); 360 for (var i = 0; i < originals.length; i++) { 361 canvases[i].getContext('2d').drawImage(originals[i], 0, 0); 362 } 363 var elements = [clone].concat(Array.from(clone.querySelectorAll('*'))); 364 var sourceElements = [frame].concat(Array.from(frame.querySelectorAll('*'))); 365 elements.forEach(function(element, index) { 366 // Preserve intrinsic video sizing and container-query geometry when the 367 // copy leaves the article. A source-less video otherwise reflows to its 368 // default dimensions and shifts the retained canvas inside the frame. 369 var style = getComputedStyle(sourceElements[index]); 370 element.style.width = style.width; 371 element.style.height = style.height; 372 element.style.boxSizing = style.boxSizing; 373 element.style.contentVisibility = 'visible'; 374 element.style.viewTransitionName = 'none'; 375 element.removeAttribute('data-artifact-transition-name'); 376 if (element.tagName === 'VIDEO') { 377 element.removeAttribute('src'); 378 element.removeAttribute('autoplay'); 379 } 380 });
381 Object.assign(clone.style, { 382 position: 'fixed', left: bounds.left + 'px', top: bounds.top + 'px', 383 width: bounds.width + 'px', height: bounds.height + 'px', margin: '0', 384 transform: 'none', pointerEvents: 'none', zIndex: '60' 385 }); 386 clone.inert = true; 387 clone.setAttribute('aria-hidden', 'true'); 388 clone.setAttribute('data-post-capture-surface', ''); 389 var computed = getComputedStyle(frame); 390 for (var propertyIndex = 0; propertyIndex < computed.length; propertyIndex++) { 391 var property = computed[propertyIndex]; 392 if (property.indexOf('--') === 0) clone.style.setProperty(property, computed.getPropertyValue(property)); 393 } 394 document.body.appendChild(clone); 395 // Canvas/video surfaces can disappear from WebKit's frozen page even when 396 // their DOM survives. Decode ordinary images before native capture begins. 397 // toBlob keeps image encoding off the synchronous navigation path. 398 var urls = []; 399 var ready = Promise.all(Array.from(canvases, function(canvas) { 400 return new Promise(function(resolve) { 401 try { 402 canvas.toBlob(function(blob) { 403 if (!blob) { resolve(); return; } 404 var url = URL.createObjectURL(blob); 405 urls.push(url); 406 var image = new Image(); 407 image.className = canvas.className; 408 image.style.cssText = canvas.style.cssText; 409 image.width = canvas.width; 410 image.height = canvas.height; 411 image.alt = ''; 412 image.decoding = 'sync'; 413 image.src = url; 414 image.decode().then(function() { canvas.replaceWith(image); resolve(); }, function() { resolve(); }); 415 }, 'image/jpeg', 0.92); 416 } catch (_) { resolve(); } 417 }); 418 })); 419 return { 420 element: clone, bounds: bounds, background: getComputedStyle(document.body).backgroundColor, ready: ready, 421 dispose: function() { clone.remove(); urls.forEach(function(url) { URL.revokeObjectURL(url); }); } 422 }; 423 } 424 425 function startAfterCaptureReady(ready, start, types) { 426 var native = null; 427 var skip = false; 428 var pendingTypes = new Set(types || []); 429 var pending = ready.then(function() { 430 native = start(Array.from(pendingTypes)); 431 if (skip) native.skipTransition(); 432 return native; 433 }); 434 var result = { 435 ready: pending.then(function(value) { return value.ready; }), 436 updateCallbackDone: pending.then(function(value) { return value.updateCallbackDone; }), 437 finished: pending.then(function(value) { return value.finished; }),
438 get types() { return native ? native.types : pendingTypes; }, 439 skipTransition: function() { skip = true; if (native) native.skipTransition(); } 440 }; 441 result.updateCallbackDone.catch(function() {}); 442 return result; 443 } 444 445 function measureArtifactRadius(name) { 446 var target = findArtifactTransitionTarget(name); 447 if (!target) return null; 448 var clip = target.querySelector('[data-artifact-clip]'); 449 if (!clip) return null; 450 var clipStyle = getComputedStyle(clip); 451 var clipPath = clipStyle.clipPath; 452 var match = clipPath && clipPath.match(/round +([0-9.]+)px/); 453 var width = Number.parseFloat(clipStyle.width) || clip.clientWidth; 454 if (!match || width <= 0) return null; 455 var px = Number.parseFloat(match[1]); 456 if (!Number.isFinite(px)) return null; 457 var radiusToken = clipStyle 458 .getPropertyValue('--artifact-corner-radius') 459 .trim(); 460 var cqiMatch = radiusToken.match(/^([0-9.]+)cqi$/); 461 var ratio = cqiMatch ? Number.parseFloat(cqiMatch[1]) / 100 : px / width; 462 return { px: px, ratio: ratio }; 463 } 464 465 function captureArtifactOutline(name, token, captured) { 466 var frame = findArtifactTransitionTarget(name); 467 var outline = frame && frame.querySelector('[data-artifact-transition-outline]'); 468 if (!outline) return null; 469 // WebKit can leave an inset shadow painted in the parent/root snapshot, 470 // even when its element has a separate transition name. Capture geometry 471 // only and recreate the stroke on that group's animated image pair. 472 outline.removeAttribute('data-nm-artifact-outline-capture'); 473 var style = getComputedStyle(outline); 474 var result = { 475 shadow: style.boxShadow || 'none', 476 radius: style.borderTopLeftRadius || '0px', 477 opacity: style.opacity || '1', 478 }; 479 outline.setAttribute('data-nm-artifact-outline-capture', String(token)); 480 captured.push(outline); 481 return result; 482 } 483 484 function updateArtifactOutlinePolicy(style, name, from, to, token) { 485 if (!style || !name || !from || !to) return; 486 if (!style.__nmOutlineBase) style.__nmOutlineBase = style.textContent; 487 var animationName = 'artifact-outline-' + token; 488 var stroke = to.shadow === 'none' ? from.shadow : to.shadow; 489 // The white lightbox stroke disappears against the returning white page. 490 // Paint the destination inset stroke from the first frame and move it with 491 // the frame; interpolating box-shadow also repaints this large layer. 492 style.textContent = style.__nmOutlineBase +
493 ':root.nm-vt-shared-artifact::view-transition-image-pair(' + name + '){box-shadow:' + stroke + ';border-radius:' + from.radius + ';animation:' + animationName + ' var(--artifact-duration) var(--artifact-curve) both!important}' + 494 '@keyframes ' + animationName + '{from{border-radius:' + from.radius + ';opacity:' + from.opacity + '}to{border-radius:' + to.radius + ';opacity:' + to.opacity + '}}'; 495 } 496 497 // WebKit can drop a freshly mounted chrome layer from the new snapshot. 498 // Keep bounded, inert copies of the two article states so Back can animate 499 // an old snapshot, just as the media transition does. No work runs per frame. 500 var artifactChromeCache = new Map(); 501 function copyChrome(chrome) { 502 var clone = chrome.cloneNode(true); 503 var sources = [chrome].concat(Array.from(chrome.querySelectorAll('*'))); 504 var copies = [clone].concat(Array.from(clone.querySelectorAll('*'))); 505 sources.forEach(function(source, index) { 506 var computed = getComputedStyle(source); 507 var copy = copies[index]; 508 for (var n = 0; n < computed.length; n++) { 509 var property = computed[n]; 510 if (property.indexOf('--') === 0) continue; 511 copy.style.setProperty(property, computed.getPropertyValue(property)); 512 } 513 copy.removeAttribute('id'); 514 copy.style.viewTransitionName = 'none'; 515 copy.style.transition = 'none';
516 copy.style.animation = 'none'; 517 }); 518 return clone; 519 } 520 521 function prepareArtifactChrome(name, token) { 522 var frame = findArtifactTransitionTarget(name); 523 var chrome = frame && frame.querySelector('[data-artifact-transition-chrome]'); 524 if (!chrome) return null; 525 var bounds = frame.getBoundingClientRect(); 526 if (!document.querySelector('[data-lightbox-transition-root]')) { 527 frame.setAttribute('data-artifact-chrome-token', String(token)); 528 var previous = frame.matches(':hover') || frame.hasAttribute('data-gallery-force-hover') ? 'true' : 'false'; 529 frame.setAttribute('data-artifact-chrome-hover', 'true'); 530 var hovered = copyChrome(chrome); 531 frame.setAttribute('data-artifact-chrome-hover', 'false'); 532 var resting = copyChrome(chrome); 533 frame.setAttribute('data-artifact-chrome-hover', previous); 534 artifactChromeCache.delete(name); 535 artifactChromeCache.set(name, { hovered: hovered, resting: resting, bounds: bounds, width: chrome.clientWidth }); 536 if (artifactChromeCache.size > 12) artifactChromeCache.delete(artifactChromeCache.keys().next().value); 537 return null; 538 } 539 var saved = artifactChromeCache.get(name); 540 if (!saved || !saved.width) return null; 541 var target = saved.bounds; 542 var hovered = artifactPointer && artifactPointer.x >= target.left && artifactPointer.x < target.right && artifactPointer.y >= target.top && artifactPointer.y < target.bottom; 543 var paint = (hovered ? saved.hovered : saved.resting).cloneNode(true); 544 var layer = document.createElement('div'); 545 layer.setAttribute('aria-hidden', 'true'); 546 layer.inert = true; 547 Object.assign(layer.style, { position: 'fixed', left: bounds.left + 'px', top: bounds.top + 'px', width: bounds.width + 'px', height: bounds.height + 'px', pointerEvents: 'none', viewTransitionName: name + '-chrome' }); 548 Object.assign(paint.style, { position: 'absolute', left: '0', top: '0', right: 'auto', bottom: 'auto', margin: '0', transformOrigin: '0 0', transform: 'scale(' + bounds.width / saved.width + ')' }); 549 layer.appendChild(paint); 550 chrome.style.viewTransitionName = 'none'; 551 document.body.appendChild(layer); 552 return layer; 553 } 554 555 var artifactPointer = null; 556 window.addEventListener('pointermove', function(event) { 557 artifactPointer = { x: event.clientX, y: event.clientY }; 558 }, { passive: true }); 559 document.addEventListener('pointerleave', function() { artifactPointer = null; }); 560 561 function settleArtifactChrome(name, token) { 562 var frame = findArtifactTransitionTarget(name); 563 if (!frame || !frame.querySelector('[data-artifact-transition-chrome]')) return; 564 frame.querySelector('[data-artifact-transition-chrome]').style.viewTransitionName = name + '-chrome'; 565 var rect = frame.getBoundingClientRect(); 566 var hovered = artifactPointer && artifactPointer.x >= rect.left && artifactPointer.x < rect.right && artifactPointer.y >= rect.top && artifactPointer.y < rect.bottom; 567 frame.setAttribute('data-artifact-chrome-hover', hovered ? 'true' : 'false'); 568 frame.setAttribute('data-artifact-chrome-token', String(token)); 569 return frame; 570 } 571 572 function activateArtifact(name) { 573 window.__NM_ACTIVE_ARTIFACT__ = name || null; 574 var artifactEls = document.querySelectorAll('[data-artifact-transition-name]'); 575 var activated = false; 576 for (var j = 0; j < artifactEls.length; j++) { 577 var artifactEl = artifactEls[j]; 578 var match = !activated && name && artifactEl.getAttribute('data-artifact-transition-name') === name; 579 if (match) { 580 artifactEl.style.viewTransitionName = name; 581 artifactEl.style.viewTransitionClass = 'artifact'; 582 activated = true; 583 } else if ((artifactEl.style.viewTransitionName || '').indexOf('artifact-') === 0) { 584 artifactEl.style.viewTransitionName = 'none'; 585 } 586 var shadowEl = artifactEl.querySelector('[data-artifact-transition-shadow]'); 587 if (shadowEl) { 588 if (match) { 589 shadowEl.style.viewTransitionName = name + '-shadow'; 590 shadowEl.style.viewTransitionClass = shadowEl.getAttribute('data-artifact-transition-shadow-class') || 'artifact-shadow'; 591 } else if ((shadowEl.style.viewTransitionName || '').indexOf('artifact-') === 0) { 592 shadowEl.style.viewTransitionName = 'none'; 593 } 594 } 595 var chromeEl = artifactEl.querySelector('[data-artifact-transition-chrome]'); 596 if (chromeEl) chromeEl.style.viewTransitionName = match ? name + '-c
596hrome' : 'none'; 597 var outlineEl = artifactEl.querySelector('[data-artifact-transition-outline]'); 598 if (outlineEl) { 599 if (match) { 600 outlineEl.style.viewTransitionName = name + '-outline'; 601 outlineEl.style.viewTransitionClass = outlineEl.getAttribute('data-artifact-transition-outline-class') || 'artifact-outline'; 602 } else if ((outlineEl.style.viewTransitionName || '').indexOf('artifact-') === 0) { 603 outlineEl.style.viewTransitionName = 'none'; 604 } 605 } 606 } 607 } 608 609 if (window.navigation) { 610 window.navigation.addEventListener('navigate', function(e) { 611 if (!e.destination) return; 612 var cur = window.navigation.currentEntry; 613 if (!cur) return; 614 if (e.navigationType === 'traverse') { 615 pendingDirection = 616 e.destination.index >= 0 && cur.index >= 0 617 ? (e.destination.index > cur.index ? 'forward' : 'back') 618 : 'back'; 619 pendingTraversal = { direction: pendingDirection }; 620 } else if (!pendingTraversal) { 621 pendingDirection = 'forward'; 622 } 623 pendingUAVisualTransition = !!e.hasUAVisualTransition; 624 }); 625 } 626 window.addEventListener('popstate', function() { 627 var destination = readHistoryEntry(); 628 var previous = currentHistoryEntry; 629 var direction = typeof destination.index === 'number' && typeof previous.index === 'number' 630 ? (destination.index > previous.index ? 'forward' : 'back') 631 : (pendingTraversal && pendingTraversal.direction) || 'back'; 632 var entry = artifactEntries[direction === 'back' ? previous.key : destination.key]; 633 pendingDirection = direction; 634 pendingTraversal = { direction: direction, artifact: entry ? entry.artifact : null, type: entry ? entry.type : null }; 635 currentHistoryEntry = destination; 636 window.__NM_PENDING_ARTIFACT__ = null; 637 window.__NM_VIEW_TRANSITION_TYPE__ = null; 638 activateArtifact(pendingTraversal.artifact); 639 }); 640 document.addEventListener('click', function(e) { 641 if (!e.target.closest || !e.target.closest('a[href]')) return; 642 pendingDirection = 'forward'; 643 pendingTraversal = null; 644 window.__NM_PENDING_ARTIFACT__ = null; 645 window.__NM_VIEW_TRANSITION_TYPE__ = null; 646 }, true); 647 document.addEventListener('submit', function() { 648 pendingDirection = 'forward'; 649 pendingTraversal = null; 650 window.__NM_PENDING_ARTIFACT__ = null; 651 window.__NM_VIEW_TRANSITION_TYPE__ = null; 652 }, true); 653 654 var orig = document.startViewTransition; 655 if (orig) { 656 document.startViewTransition = function(cb) { 657 var dir = pendingDirection || 'forward'; 658 var uaTransition = pendingUAVisualTransition; 659 var traversal = pendingTraversal; 660 pendingTraversal = null; 661 pendingDirection = null; 662 pendingUAVisualTransition = false; 663 var transitionToken = (vtState.transitionToken || 0) + 1; 664 vtState.transitionToken = transitionToken; 665 document.documentElement.classList.remove('nm-vt-skip-root', 'nm-vt-lightbox-exact', 'nm-vt-shared-artifact', 'nm-vt-post-artifact', 'nm-vt-post-ready'); 666 activateArtifact(traversal ? traversal.artifact : window.__NM_ACTIVE_ARTIFACT__); 667 emitStart(dir); 668 var types = [dir]; 669 if (uaTransition) types.push('ua-visual-transition'); 670 var opts = typeof cb === 'function' 671 ? { update: cb, types: types } 672 : Object.assign({}, cb, { types: types.concat(cb.types || []) }); 673 var transitionType = (traversal && traversal.type) || window.__NM_VIEW_TRANSITION_TYPE__; 674 window.__NM_VIEW_TRANSITION_TYPE__ = null; 675 if ( 676 !transitionType && 677 dir === 'back' && 678 document.querySelector('[data-lightbox-transition-root]') 679 ) { 680 transitionType = 'lightbox'; 681 } 682 if (transitionType && opts.types.indexOf(transitionType) === -1) { 683 opts.types.push(transitionType); 684 } 685 var transitionPerformance = { 686 id: ++navigationPerformance.transitionSequence, 687 navigation: navigationPerformance.activeNavigation || null, 688 direction: dir, 689 transitionType: transitionType || null, 690 }; 691 var skipRootSnapshot = transitionType === 'masonry'; 692 if (skipRootSnapshot) { 693 document.documentElement.classList.add('nm-vt-skip-root'); 694 } 695 var artifactRadiusToken = (vtState.artifactRadiusToken || 0) + 1; 696 vtState.artifactRadiusToken = artifactRadiusToken; 697 resetArtifactRadiusMorph(); 698 var activeArt = window.__NM_ACTIVE_ARTIFACT__; 699 var activeArtShadow = activeArt ? activeArt + '-shadow' : null; 700 var activeArtOutline = activeArt ? activeArt + '-outline' : null; 701 var sharedArtifactTransition = transitionType === 'lightbox' || transitionType === 'post-artifact'; 702 var videoSnapshot = transitionType === 'post-artifact' ? freezeArtifactVideo(activeArt) : null; 703 var postCaptureSurface = transitionType === 'post-artifact' && dir === 'back' ? retainPostCaptureSurface(activeArt) : null; 704 var capturedOutlines = []; 705 var settledChrome = null; 706 var sourceChromeFrame = transitionType === 'lightbox' ? findArtifactTransitionTarget(activeArt) : null; 707 var returnChrome = transitionType === 'lightbox' ? prepareArtifactChrome(activeArt, transitionToken) : null; 708 var oldArtifactOutline = sharedArtifactTransition 709 ? captureArtifactOutline(activeArt, transitionToken, capturedOutlines) 710 : null; 711 var exactLightboxStyle = 712 sharedArtifactTransition 713 ? installExactLightboxArtifactPolicy(activeArt, activeArtShadow, activeArtOutline, returnChrome, transitionType === 'post-artifact') 714 : null; 715 if (postCaptureSurface && exactLightboxStyle) { 716 var b = postCaptureSurface.bounds; 717 exactLightboxStyle.textContent += 718 ':root::view-transition-group(post-capture-retainer){animation:none!important;opacity:0!important}' + 719 ':root.nm-vt-post-ready::view-transition-image-pair(root){background:' + postCaptureSurface.background + '}' + 720 ':root.nm-vt-post-ready::view-transition-old(root){clip-path:polygon(evenodd,0 0,100% 0,100% 100%,0 100%,0 0,' + b.left + 'px ' + b.top + 'px,' + b.left + 'px ' + b.bottom + 'px,' + b.right + 'px ' + b.bottom + 'px,' + b.right + 'px ' + b.top + 'px,' + b.left + 'px ' + b.top + 'px)}'; 721 } 722 updateArtifactOutlinePolicy(exactLightboxStyle, activeArtOutline, oldArtifactOutline, oldArtifactOutline, transitionToken);
723 if (activeArt) { 724 var els = document.querySelectorAll('[style*="view-transition-name"]'); 725 for (var k = 0; k < els.length; k++) { 726 var vt = els[k].style.viewTransitionName; 727 if ( 728 vt && 729 vt !== activeArt && 730 vt !== activeArtShadow && 731 vt !== activeArtOutline && 732 vt !== activeArt + '-chrome' && 733 vt.indexOf('artifact-') === 0 734 ) { 735 els[k].style.viewTransitionName = 'none'; 736 } 737 } 738 } 739 740 var oldArtifactRadius = 741 !uaTransition && activeArt ? measureArtifactRadius(activeArt) : null; 742 if (oldArtifactRadius) { 743 document.documentElement.style.setProperty( 744 '--artifact-vt-radius-from', 745 oldArtifactRadius.px + 'px', 746 ); 747 } 748 var originalUpdate = opts.update; 749 if (typeof originalUpdate === 'function') { 750 opts.update = function() { 751 if (videoSnapshot) videoSnapshot.remove(); 752 if (postCaptureSurface) postCaptureSurface.element.style.viewTransitionName = 'post-capture-retainer'; 753 var updateThis = this; 754 var updateArgs = arguments; 755 recordTransitionPerformance(transitionPerformance, 'updateStart', 'started'); 756 var updatePromise; 757 if (oldArtifactRadius) { 758 // Preserve the radius morph's existing microtask boundary. 759 updatePromise = Promise.resolve().then(function() { 760 return originalUpdate.apply(updateThis, updateArgs); 761 }); 762 } else { 763 try { 764 updatePromise = Promise.resolve( 765 originalUpdate.apply(updateThis, updateArgs), 766 ); 767 } catch (err) { 768 recordTransitionPerformance( 769 transitionPerformance, 770 'updateEnd', 771 'rejected', 772 ); 773 throw err; 774 } 775 } 776 777 return updatePromise.then( 778 function(value) { 779 if (returnChrome) returnChrome.remove(); 780 if (transitionType === 'lightbox' && vtState.transitionToken === transitionToken) settledChrome = settleArtifactChrome(activeArt, transitionToken); 781 if (oldArtifactOutline && vtState.transitionToken === transitionToken) { 782 var newArtifactOutline = captureArtifactOutline(activeArt, transitionToken, capturedOutlines); 783 updateArtifactOutlinePolicy(exactLightboxStyle, activeArtOutline, oldArtifactOutline, newArtifactOutline, transitionToken); 784 } 785 if (oldArtifactRadius && vtState.transitionToken === transitionToken) { 786 var newArtifactRadius = measureArtifactRadius(activeArt); 787 if (newArtifactRadius) { 788 document.documentElement.style.setProperty( 789 '--artifact-vt-radius-from', 790 oldArtifactRadius.px + 'px', 791 ); 792 document.documentElement.style.setProperty( 793 '--artifact-vt-radius-to', 794 newArtifactRadius.px + 'px', 795 ); 796 document.documentElement.classList.add('nm-vt-artifact-radius'); 797 } 798 } 799 recordTransitionPerformance( 800 transitionPerformance, 801 'updateEnd', 802 'fulfilled', 803 ); 804 return value; 805 }, 806 function(err) { 807 recordTransitionPerformance( 808 transitionPerformance, 809 'updateEnd', 810 'rejected', 811 ); 812 throw err; 813 }, 814 ); 815 }; 816 } 817 818 function finishTransition(status) { 819 recordTransitionPerformance( 820 transitionPerformance, 821 'finished', 822 status, 823 ); 824 if (exactLightboxStyle) exactLightboxStyle.remove(); 825 if (videoSnapshot) videoSnapshot.remove(); 826 if (postCaptureSurface) postCaptureSurface.dispose(); 827 if (settledChrome && settledChrome.getAttribute('data-artifact-chrome-token') === String(transitionToken)) { settledChrome.removeAttribute('data-artifact-chrome-hover'); settledChrome.removeAttribute('data-artifact-chrome-token'); } 828 if (returnChrome) returnChrome.remove(); 829 if (sourceChromeFrame && sourceChromeFrame.getAttribute('data-artifact-chrome-token') === String(transitionToken)) { sourceChromeFrame.removeAttribute('data-artifact-chrome-hover'); sourceChromeFrame.removeAttribute('data-artifact-chrome-token'); } 830 for (var outlineIndex = 0; outlineIndex < capturedOutlines.length; outlineIndex++) { 831 var capturedOutline = capturedOutlines[outlineIndex]; 832 if (capturedOutline.getAttribute('data-nm-artifact-outline-capture') === String(transitionToken)) { 833 capturedOutline.removeAttribute('data-nm-artifact-outline-capture'); 834 } 835 } 836 // A skipped transition may finish after its replacement has started. 837 // Only the current operation may restore names or clear shared state. 838 if (vtState.transitionToken !== transitionToken) return; 839 var currentArtifactEntry = artifactEntries[currentHistoryEntry.key]; 840 activateArtifact(window.__NM_PENDING_ARTIFACT__ || (currentArtifactEntry && currentArtifactEntry.artifact)); 841 if (vtState.artifactRadiusToken === artifactRadiusToken) { 842 resetArtifactRadiusMorph(); 843 } 844 document.documentElement.classList.remove('nm-vt-skip-root', 'nm-vt-lightbox-exact', 'nm-vt-sh
844ared-artifact', 'nm-vt-post-artifact', 'nm-vt-post-ready'); 845 emitEnd(); 846 } 847 848 var transition; 849 try { 850 recordTransitionPerformance( 851 transitionPerformance, 852 'start', 853 'started', 854 ); 855 if (postCaptureSurface) { 856 transition = startAfterCaptureReady(postCaptureSurface.ready, function(types) { opts.types = types; return orig.call(document, opts); }, opts.types); 857 } else { 858 transition = orig.call(document, opts); 859 } 860 if ( 861 !uaTransition && 862 window.matchMedia && 863 window.matchMedia('(prefers-reduced-motion: reduce)').matches && 864 transition && 865 typeof transition.skipTransition === 'function' 866 ) { 867 // CSS still provides the fallback policy, but the native skip keeps 868 // snapshot/update overhead plus animation inside the 120ms budget. 869 transition.skipTransition(); 870 } 871 } catch (err) { 872 if (skipRootSnapshot && vtState.transitionToken === transitionToken) { 873 document.documentElement.classList.remove('nm-vt-skip-root'); 874 } 875 finishTransition('threw'); 876 throw err; 877 } 878 879 var finishReady = function(status) { 880 if (status === 'rejected' && postCaptureSurface) postCaptureSurface.element.remove(); 881 if (status === 'fulfilled' && postCaptureSurface && exactLightboxStyle) { 882 // The unnamed copy keeps WebKit's frozen root complete while it builds 883 // the destination. Once the shared layer exists, cut the copy out of 884 // that root so it cannot leave a second artifact behind the moving one. 885 document.documentElement.classList.add('nm-vt-post-ready'); 886 // WebKit may expose the live DOM before finished callbacks run. Keep 887 // the named element mounted for the snapshot lifetime, but hide its 888 // live copy now so teardown cannot flash it at the old article position. 889 postCaptureSurface.element.style.opacity = '0'; 890 } 891 if (status === 'fulfilled' && transitionType === 'post-artifact' && vtState.transitionToken === transitionToken && document.getAnimations) { 892 // WebKit can start against the frame timestamp from before route 893 // capture. Use the current document clock so capture doesn't consume 894 // the visible animation. Keep every snapshot on the same clock. 895 var animationStart = performance.now(); 896 document.getAnimations().forEach(function(animation) { 897 var effect = animation.effect; 898 if (effect && effect.pseudoElement && effect.pseudoElement.indexOf('::view-transition') === 0) animation.startTime = animationStart; 899 }); 900 } 901 recordTransitionPerformance( 902 transitionPerformance, 903 'ready', 904 status, 905 ); 906 if (skipRootSnapshot && vtState.transitionToken === transitionToken) { 907 document.documentElement.classList.remove('nm-vt-skip-root'); 908 } 909 }; 910 if (transition && transition.ready && typeof transition.ready.then === 'function') { 911 transition.ready.then( 912 function() { finishReady('fulfilled'); }, 913 function() { finishReady('rejected'); }, 914 ); 915 } else { 916 setTimeout(function() { finishReady('unavailable'); }, 0); 917 } 918 919 if (transition && transition.finished && typeof transition.finished.then === 'function') { 920 transition.finished.then( 921 function() { finishTransition('fulfilled'); }, 922 function() { finishTransition('rejected'); }, 923 ); 924 } else { 925 setTimeout(function() { finishTransition('unavailable'); }, 0); 926 } 927 928 return transition; 929 }; 930 } 931})(); 932</script>
932</head><body class="select-none"><div aria-hidden="true" data-lightbox-bottom-scrim="" class="fixed inset-x-0 bottom-0 z-80 h-[12vh] pointer-events-none" style="opacity:0;background:linear-gradient(to bottom, color-mix(in srgb, color-mix(in srgb, var(--lightbox-bg) 100.00%, var(--bg) 0.00%) 0%, transparent) 0%, color-mix(in srgb, var(--lightbox-bg) 100.00%, var(--bg) 0.00%) 100%);view-transition-name:article-lightbox-bottom-scrim"></div><div class="contents" style="--article-tint:#ffffff;--selection-bg:#ffffff;--selection-fg:#000000"><div data-content-shell="true" class="max-w-screen min-h-dvh bg-bg text-fg transition-colors duration-400 labs-content-theme"><header data-site-header="" class="sticky top-0 left-0 right-0 flex items-center pointer-events-none z-75"><div class="site-header-chrome z-10 w-full" data-animate-intro="false" data-visible="true" style="--site-header-tint:#ffffff;color:#ffffff"><div data-site-header-surface="" class="relative flex w-full items-center overflow-clip border-b border-transparent transition-[background-color,border-color] duration-300" style="view-transition-name:header;view-transition-class:header"><div data-site-header-tint="" class="absolute inset-0 pointer-events-none transition-colors duration-250 ease-in-out" style="background-color:transparent;opacity:0"></div><div class="flex min-w-0 w-full flex-1 items-center px-4 sm:px-6"><div class="flex min-w-0 w-full items-stretch gap-4 pl-0 pr-0 sm:pl-3"><div data-site-header-leading="" class="flex min-w-0 flex-1 items-center gap-2.5"><button type="button" title="Home" class="cursor-pointer pointer-events-auto shrink-0 transition-opacity duration-75 active:opacity-70"><div><div tabindex="0" style="pointer-events:none;cursor:default;width:80px;height:15px"><svg width="100%" viewBox="0 0 1600 300" xmlns="http://www.w3.org/2000/svg" style="overflow:visible;fill:#ffffff;stroke:#ffffff;width:80px" class="transition-colors duration-300" stroke-width="3"><title>New Material</title><path opacity="1" d="M 0, 300 m 20, 0 Q 0,300 20,280 L 90,210 Q 100,200 110,200 L 300,200 Q 300,200 290,210 L 200,300 Q 200,300 190,300 Z"></path><path d="M 200, 300 m 0, 0 Q 200,300 210,290 L 300,200 Q 300,200 310,200 L 600,200 L 500,300 Q 500,300 500,300 Z"></path><path opacity="1" d="M 500, 300 m 0,0 Q 500,300 500,300 L 600,200 L 800,200 Q 800,200 800,200 L 700,300 Z"></path><path d="M 700, 300 L 800,200 Q 800,200 810,200 L 1100,200 Q 1100,200 1090,210 L 1000,300 Q 1000,300 990,300 Z"></path><path opacity="1" d="M 1000,300 l 100,-100 l 300,0 l -100,100 Z"></path><path d="M 1300,300 l 100,-100 q 0,0 20,0 l 160,0 q 20,0 0,20 l -70,70 q -10,10 -20,10 Z"></path></svg></div></div></button><div class="site-header-title-motion group relative flex self-stretch items-center min-w-0 max-w-full grow text-[14px] font-[400] site-header-title-motion-hidden pointer-events-none" aria-hidden="true" style="color:var(--fg)"><div data-site-header-title-content="" class="flex flex-row self-stretch items-center gap-2.5 justify-start w-full"><div class="w-px h-4 shrink-0 transition-opacity duration-300 ease-in-out opacity-24" style="background-color:currentColor"></div><div class="grid w-full min-w-0 transition-all duration-300 ease-in-out opacity-100 blur-none"><div class="site-header-title-layer site-header-context-title-layer flex w-full min-w-0 items-center gap-1.5 overflow-visible site-header-title-layer-hidden" aria-hidden="true" style="color:var(--site-header-tint)"><div class="size-4 shrink-0"><div data-scroll-spinner-scroll="" class="size-full" style="rotate:0deg"><div data-scroll-spinner-idle="" class="size-full" style="transform:none"><svg viewBox="0 0 60 60" fill="none" aria-hidden="true" overflow="visible" class="size-full"><circle cx="49.425" cy="30" r="5" fill="currentColor"></circle><circle cx="39.7125" cy="46.827600000000004" r="5" fill="currentColor"></circle><circle cx="20.2875" cy="46.827600000000004" r="5" fill="currentColor"></circle><circle cx="10.575" cy="30" r="5" fill="currentColor"></circle><circle cx="20.2875" cy="13.1724" r="5" fill="currentColor"></circle><circle cx="39.7125" cy="13.1724" r="5" fill="currentColor"></circle></svg></div></div></div><span class="truncate">More from context</span></div><div class="site-header-title-layer site-header-article-title-layer truncate w-full site-header-title-layer-visible" data-site-header-title="" style="color:var(--fg)" aria-hidden="false"></div></div></div><button type="button" class="absolute left-0 inset-y-0 z-10 flex origin-center items-center justify-center pointer-events-none cursor-pointer shrink-0 group-hover:pointer-events-auto" tabindex="0" style="opacity:0;transform:scale(0.9)"><div class="flex items-center justify-center gap-2 p-1 pr-3 rounded-full bg-bg outline-[1pt] outline-fg/6 shadow-[0_1px_2px_color-mix(in_srgb,var(--fg)_6%,transparent)]"><div class="size-6 rounded-full overflow-clip relative" style="background-color:color-mix(in srgb, #ffffff 12%, transparent);color:#ffffff"><div class="site-header-jump-mask absolute inset-0 overflow-clip" style="-webkit-mask-image:linear-gradient(to bottom, transparent 0%, black 33%, black 67%, transparent 100%);mask-image:linear-gradient(to bottom, transparent 0%, black 33%, black 67%, transparent 100%)"><div data-site-header-jump-track="" class="h-12 w-6 flex flex-col"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="size-6"><path d="M15.9961 10V22" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path><path d="M11 15L16 10L21 15" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path></svg><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="size-6"><path d="M15.9961 10V22" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path><path d="M11 15L16 10L21 15" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path></svg></div></div></div><p class="shrink-0 text-[0.875rem] font-[400] leading-[21px] tracking-[-0.1px] text-muted">Jump to top</p></div></button></div></div><div data-site-header-announcement-slot="" class="pointer-events-none absolute inset-y-0 left-1/2 z-20 flex w-[var(--announcement-max-width,0px)] min-w-0 -translate-x-1/2 items-center justify-center"></div><div data-site-header-actions="" class="ml-auto flex shrink-0 items-center justify-end py-[8pt] will-change-transform"><a href="#get-in-touch" data-site-header-cta="" data-compact="false" aria-label="Get started" class="appearance-none text-fg cursor-pointer rounded-[10px] border border-fg/8 bg-transparent hover:border-[var(--btn-tint)]/8 hover:bg-[var(--btn-tint)]/8 hover:text-[var(--btn-tint)] active:bg-[var(--btn-tint)]/16 shadow-none hover:shadow-none active:shadow-none filter-none hover:filter-none active:filter-none transition-[border-color,background-color,color] duration-300 text-[14px] pointer-events-auto relative inline-flex h-9 shrink-0 items-center justify-center overflow-hidden p-0 font-[500]" style="--btn-tint:#ffffff;border-color:transparent;width:110px"><span aria-hidden="true" class="pointer-events-none absolute inset-0 rounded-[inherit] border border-fg/8" style="opacity:1"></span><span class="absolute inset-0 flex items-center origin-center whitespace-nowrap will-change-transform backface-hidden" style="transform:translateZ(0.01px)"><span data-cta-label="" aria-hidden="true" class="pointer-events-none absolute right-3 inline-block w-max" style="opacity:1;filter:blur(0px);transform:none">Get started</span><svg class="pointer-events-none absolute right-[3px]" width="28" height="28" viewBox="0 0 36 36" fill="none" aria-hidden="true" style="opacity:0;filter:blur(4px);transform:translateX(-62px) scale(0.8)"><path d="M29 18.5C29 21.7616 29 23.3924 28.4672 24.6788C27.7567 26.394 26.394 27.7567 24.6788 28.4672C23.3924 29 21.7616 29 18.5 29C15.2384 29 13.6076 29 12.3212 28.4672C10.606 27.7567 9.2433 26.394 8.53284 24.6788C8 23.3924 8 21.7616 8 18.5C8 15.2384 8 13.6076 8.53284 12.3212C9.2433 10.606 10.606 9.2433 12.3212 8.53284C13.6076 8 15.2384 8 18.5 8" stroke="currentColor" stroke-opacity="0.5" stroke-width="3"></path><path d="M21 8H29V16" stroke="currentColor" stroke-width="3"></path><path d="M30.0598 9.06066C30.6456 8.47488 30.6456 7.52513 30.0598 6.93934C29.4741 6.35355 28.5243 6.35355 27.9385 6.93934L28.9992 8L30.0598 9.06066ZM28.9992 8L27.9385 6.93934L19.9393 14.9385L21 15.9991L22.0607 17.0598L30.0598 9.06066L28.9992 8Z" fill="currentColor"></path></svg></span></a></div></div></div></div><div aria-hidden="true" data-public-navigation-pending-indicator="" class="absolute inset-x-0 bottom-0 h-px overflow-x-clip overflow-y-visible" style="--navigation-indicator-max-width:clamp(33.333333vw, 320px, 66vw);opacity:0"><div class="absolute inset-y-0 left-0 animate-[navigation-indicator-slide_2.5s_ease-in-out_infinite] motion-reduce:animate-none motion-reduce:translate-x-1/2 motion-reduce:[--navigation-gradient-position:0.5]" style="width:calc(100% - var(--navigation-indicator-max-width));animation-play-state:paused"><svg aria-hidden="true" fill="none" class="absolute top-0 h-full overflow-visible" style="--navigation-gradient-length:calc(4 * var(--navigation-gradient-position) * (1 - var(--navigation-gradient-position)));color:var(--color-white);width:var(--navigation-indicator-max-width);transform-origin:left center;transform:translateX(calc(100% * (1 - var(--navigation-gradient-length)) * var(--navigation-gradient-position))) scaleX(var(--navigation-gradient-length));left:0"><defs><linearGradient id="_R_cj5_" gradientUnits="userSpaceOnUse" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="currentColor" stop-opacity="0"></stop><stop offset="45%" stop-color="currentColor" stop-opacity="0.15"></stop><stop offset="80%" stop-color="currentColor" stop-opacity="0.55"></stop><stop offset="93%" stop-color="currentColor"></stop><stop offset="100%" stop-color="currentColor" stop-opacity="0"></stop></linearGradient><filter id="_R_cj5H1_" filterUnits="userSpaceOnUse" x="-20%" y="-20" width="140%" height="40"><feGaussianBlur stdDeviation="4"></feGaussianBlur></filter></defs><g data-navigation-gradient-direction="forward" class="origin-center [transform-box:view-box]" style="opacity:var(--navigation-gradient-forward-opacity)">
932<g filter="url(#_R_cj5H1_)" opacity="0.5"><line x1="0" y1="0.5" x2="100%" y2="0.5" stroke="url(#_R_cj5_)" stroke-width="3"></line></g><line x1="0" y1="0.5" x2="100%" y2="0.5" stroke="url(#_R_cj5_)" stroke-width="1"></line></g><g data-navigation-gradient-direction="reverse" class="origin-center [transform-box:view-box] -scale-x-100" style="opacity:calc(1 - var(--navigation-gradient-forward-opacity))"><g filter="url(#_R_cj5H1_)" opacity="0.5"><line x1="0" y1="0.5" x2="100%" y2="0.5" stroke="url(#_R_cj5_)" stroke-width="3"></line></g><line x1="0" y1="0.5" x2="100%" y2="0.5" stroke="url(#_R_cj5_)" stroke-width="1"></line></g></svg></div></div></div></header><main class="article-view relative mx-auto w-full max-w-post px-gutter pt-6 pb-16" aria-busy="true"><article><div class="flex flex-col gap-0 min-h-fold"><h1 class="mx-auto w-full origin-center px-[var(--article-text-gutter)] max-w-title font-semibold text-display text-balance text-center select-text z-70" data-article-open-layer="headline" style="margin-top:6vh;opacity:0;transform:scale(0.96)">Visualising AI<span data-headline-baseline="" class="inline-block size-0 align-baseline" aria-hidden="true"></span></h1><div class="article-lightbox-meta relative z-70 mx-auto w-full origin-center px-[var(--article-text-gutter)] max-w-title mb-4" data-article-open-layer="subheadline" style="--avatar-ring-color:var(--avatar-surface-color);--avatar-status-outline:var(--avatar-surface-color);--avatar-status-bg:var(--avatar-surface-color);--article-meta-circle-outline:color-mix(in srgb, var(--lightbox-bg) 0.00%, var(--bg) 100.00%);--avatar-surface-color:color-mix(in srgb, var(--lightbox-bg) 0.00%, var(--bg) 100.00%);--avatar-status-offline:color-mix(in srgb, color-mix(in srgb, var(--bg) 0.00%, var(--fg) 100.00%) 45%, transparent);opacity:0;transform:scale(0.96)"><div class="w-full min-h-[3rem]" data-article-meta-reserve="true"><div class="w-full"><div class="flex w-full flex-col justify-center items-center" style="gap:6px;margin-top:16px;margin-bottom:16px"><div class="flex w-full flex-wrap items-center gap-x-3 gap-y-1 justify-center"><p class="article-paragraph-type text-fg/50 transition-colors duration-400" data-article-meta-muted="true">June 13, 2021</p></div></div></div></div></div><div id="header-image" class="artifact-viewport-sized relative overflow-visible pointer-events-none" style="--artifact-display-aspect:1.5"><div class="overflow-visible flex flex-col items-center justify-end h-full"><div class="w-full origin-bottom relative z-60 pointer-events-auto"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="8yPZkNXWN54JpcAsaZjKZhwNTQ1Hf3jS" data-artifact-transition-name="artifact-visualising-ai-comp-light" style="view-transition-name:artifact-visualising-ai-comp-light;view-transition-class:artifact;height:0;padding-bottom:66.6667%;--artifact-outline-color:#002e7a"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact" data-artifact-transition-shadow="artifact-visualising-ai-comp-light-shadow" data-artifact-transition-shadow-class="artifact-shadow" style="view-transition-name:artifact-visualising-ai-comp-light-shadow;view-transition-class:artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b6c3cb;border-color:#002e7a;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi"><div class="contents" data-artifact-media-content="true"><div class="relative content-visibility-auto"><img draggable="false" src="/cdn-cgi/image/width=800,quality=50,format=auto,fit=cover/uploads/artifacts/1773086130280-Visualising%20AI%20Comp%20Light-poster.webp" srcSet="/cdn-cgi/image/width=400,quality=50,format=auto,fit=cover/uploads/artifacts/1773086130280-Visualising%20AI%20Comp%20Light-poster.webp 400w, /cdn-cgi/image/width=800,quality=50,format=auto,fit=cover/uploads/artifacts/1773086130280-Visualising%20AI%20Comp%20Light-poster.webp 800w, /cdn-cgi/image/width=1200,quality=50,format=auto,fit=cover/uploads/artifacts/1773086130280-Visualising%20AI%20Comp%20Light-poster.webp 1200w, /cdn-cgi/image/width=1600,qual
932ity=50,format=auto,fit=cover/uploads/artifacts/1773086130280-Visualising%20AI%20Comp%20Light-poster.webp 1600w, /cdn-cgi/image/width=2400,quality=50,format=auto,fit=cover/uploads/artifacts/1773086130280-Visualising%20AI%20Comp%20Light-poster.webp 2400w" sizes="(max-width: 800px) 100vw, 800px" alt="" crossorigin="anonymous" fetchPriority="high" class="m-0! transition-opacity duration-200 ease-out opacity-0 absolute inset-0 size-full object-cover z-0"/><video width="1920" height="1080" loop="" muted="" playsInline="" preload="auto" class="artifact-video relative z-1 w-full transition-opacity duration-200 pointer-events-none opacity-0" crossorigin="anonymous"></video></div></div></div></div><div class="absolute inset-0 z-5"></div></div><div aria-hidden="true" class="pointer-events-none absolute inset-0 z-80" style="background:radial-gradient(ellipse 150% 150% at 0% 0%, color-mix(in srgb, #b6c3cb 100.00%, transparent) 0.00%, color-mix(in srgb, #b6c3cb 98.70%, transparent) 8.10%, color-mix(in srgb, #b6c3cb 95.10%, transparent) 15.50%, color-mix(in srgb, #b6c3cb 89.60%, transparent) 22.50%, color-mix(in srgb, #b6c3cb 82.50%, transparent) 29.00%, color-mix(in srgb, #b6c3cb 74.10%, transparent) 35.30%, color-mix(in srgb, #b6c3cb 64.80%, transparent) 41.20%, color-mix(in srgb, #b6c3cb 55.00%, transparent) 47.10%, color-mix(in srgb, #b6c3cb 45.00%, transparent) 52.90%, color-mix(in srgb, #b6c3cb 35.20%, transparent) 58.80%, color-mix(in srgb, #b6c3cb 25.90%, transparent) 64.70%, color-mix(in srgb, #b6c3cb 17.50%, transparent) 70.10%, color-mix(in srgb, #b6c3cb 10.40%, transparent) 75.50%, color-mix(in srgb, #b6c3cb 4.90%, transparent) 80.20%, color-mix(in srgb, #b6c3cb 1.90%, transparent) 86.10%, color-mix(in srgb, #b6c3cb 0.10%, transparent) 91.10%, color-mix(in srgb, #b6c3cb 0.00%, transparent) 100.00%);opacity:0"></div><div class="absolute z-100" style="top:calc(1rem * var(--artifact-control-scale, 1));right:calc(1rem * var(--artifact-control-scale, 1));transform:scale(var(--artifact-control-scale, 1));transform-origin:top right;pointer-events:auto"><div class="flex flex-col items-end gap-2"></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact" style="view-transition-name:artifact-visualising-ai-comp-light-chrome"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-auto"><div style="color:#b6c3cb" class="artifact-hover-scrim absolute inset-0 -z-5 opacity-0 transition-opacity duration-300 ease-out group-touch:opacity-100 delay-artifact-hover scrim-b-full scrim-current w-full h-full"></div><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline="artifact-visualising-ai-comp-light-outline" data-artifact-transition-outline-class="artifact-outline" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="view-transition-name:artifact-visualising-ai-comp-light-outline;view-transition-class:artifact-outline;--artifact-frame-border-color:var(--artifact-default-view-border);inset:var(--artifact-press-inset, 0%)"></div></figure></div></div></div><div class="flex flex-col article-body-sections [&>:first-child_.article-content-section--headed]:pt-0! mt-[36pt] mb-12" data-article-open-layer="rest" style="opacity:0"><div class=""><div class="@container"><div id="18fe36187c93aacba8fdd0dcd93989c0" style="--article-tint:#ffffff" class="article-content-section relative px-[var(--article-text-gutter)] select-text py-0 article-content-section--intro"><div class="article-content-copy p-0 w-full"><div class="quote-markdown w-full prose tracking-tight dark:prose-invert transition-colors duration-300 text-body text-fg/60 text-pretty"><p>A series of visualizations depicting the core concepts of machine learning. In 2019, when we first set out to build a company around the idea of making AI approachable to everyone, we knew that AI literacy was a crucial piece of progressing towards that vision. It was then, while we building the first iteration of what would become FieldDay that we started building our brand not only to communicate what our company was about, but as an educational tool to help people grasp some of the core concepts involved in building AI systems.</p></div><div class="article-lightbox-meta relative z-70 mt-8 origin-center w-full px-[var(--body-
932padding-x,0rem)]" data-article-open-layer="byline" style="--avatar-ring-color:var(--avatar-surface-color);--avatar-status-outline:var(--avatar-surface-color);--avatar-status-bg:var(--avatar-surface-color);--article-meta-circle-outline:color-mix(in srgb, var(--lightbox-bg) 0.00%, var(--bg) 100.00%);--avatar-surface-color:color-mix(in srgb, var(--lightbox-bg) 0.00%, var(--bg) 100.00%);--avatar-status-offline:color-mix(in srgb, color-mix(in srgb, var(--bg) 0.00%, var(--fg) 100.00%) 45%, transparent);opacity:0;color:var(--fg);transform:scale(0.96)"><div class="flex min-h-[2.25rem] items-end" data-article-meta-reserve="true"><div class="min-h-[2.25rem] w-full origin-center" style="opacity:1;transform:none"></div></div></div></div></div></div></div><div class="mt-[36pt]"><div id="M5vg28DJa3D3t4hZw2r2j9anvP7OJpKD"><div class="artifact-gallery-shell not-prose" style="--artifact-display-aspect:1.5;--gallery-progress-tint:#c5d4dc"><div class="artifact-gallery"><div class="artifact-gallery-scroll-viewport relative w-screen left-1/2 -translate-x-1/2"><p class="absolute top-0 left-0 pointer-events-none opacity-0">0</p><div class="gallery-scroll flex snap-x snap-mandatory overflow-x-auto overflow-y-clip cursor-grab select-none" style="padding-left:max(var(--content-gutter), calc((100vw - var(--post-artifact-width)) / 2));padding-right:max(var(--content-gutter), calc((100vw - var(--post-artifact-width)) / 2))"><div class="gallery-virtual-track relative shrink-0" style="width:calc(4004 * var(--gallery-slide-span))"><div aria-hidden="true" class="invisible pointer-events-none w-post-artifact" style="aspect-ratio:1.5"></div><div data-slide="true" data-virtual-index="2000" data-gallery-active-card="" data-gallery-active-set="" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(2000 * var(--gallery-slide-span))"><span aria-hidden="true" class="pointer-events-none absolute top-1/2 left-[-0.1875rem] z-40 size-1 shrink-0 -translate-x-1/2 -translate-y-1/2 rounded-full bg-[currentColor] transition-opacity duration-200 ease-out sm:left-[-1rem] opacity-25"></span><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-classifier-light-00?lightbox&i=0&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container group contain-layout" data-artifact-cms-id="2WWe0aZBk9Z9kVrDtdmv25fL37qWIPL3" data-hover-scale="true" data-artifact-transition-target="" data-artifact-transition-name="artifact-visualising-ai-classifier-light-00-0" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#c5d4dc"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow="artifact-visualising-ai-classifier-light-00-0-shadow" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b6c5cc;border-color:#c5d4dc;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div><div aria-hidden="true" class="pointer-events-none absolute inset-0 z-80" style="background:radial-gradient(ellipse 150% 150% at 0% 0%, color-mix(in srgb, #b6c5cc 100.00%, transparent) 0.00%, color-mix(in srgb, #b6c5cc 98.70%, transparent) 8.10%, color-mix(in srgb, #b6c5cc 95.10%, transparent) 15.50%, color-mix(in srgb, #b6c5cc 89.60%, transparent) 22.50%, color-mix(in srgb, #b6c5cc 82.50%, transparent) 29.00%, color-mix(in srgb, #b6c5cc 74.10%, transparent) 35.30%, color-mix(in srgb, #b6c5cc 64.80%, transparent) 41.20%, color-mix(in srgb, #b6c5cc 55.00%, transparent) 47.10%, color-mix(in srgb, #b6c5cc 45.00%, transparent) 52.90%, color-mix(in srgb, #b6c5cc 35.20%, transparent) 58.80%, color-mix(in srgb, #b6c5cc 25.90%, transparent) 64.70%, color-mix(in srgb, #b6c5cc 17.50%, transparent) 70.10%, color-mix(in srgb, #b6c5cc 10.40%, transparent) 75.50%, color-mix(in srgb, #b6c5cc 4.90%, transparent) 80.20%, color-mix(in srgb, #b6c5cc 1.90%, transparent) 86.10%, color-mix(in srgb, #b6c5cc 0.10%, transparent) 91.10%, color-mix(in srgb, #b6c5cc 0.00%, transparent) 100.00%);opacity:0"></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-auto"><div style="color:#b6c5cc" class="artifact-hover-scrim absolute inset-0 -z-5 opacity-0 transition-opacity duration-300 ease-out group-touch:opacity-100 delay-artifact-hover scrim-b-full scrim-current w-full h-full"></div><div class="artifact-hover-title min-w-0 transform-gpu backface-hidden transition-[translate,opacity,filter] duration-[520ms] ease-damped-spring delay-artifact-hover motion-reduce:translate-y-0 motion-reduce:blur-[0px] motion-reduce:transition-none translate-y-[calc(100%+var(--spacing-prose-gutter))] opacity-0 blur-[10px] group-touch:translate-y-0 group-touch:opacity-100 group-touch:blur-[0px]" style="text-shadow:0 0 8px #b6c5cc"><p class="article-paragraph-type line-clamp-2 my-0! transform-gpu backface-hidden transition-colors duration-300 text-balance text-white">Data collection</p></div><div class="ml-auto shrink-0" aria-hidden="false"><div data-artifact-bottom-controls="" class="flex items-center"><div data-artifact-control-motion="heart" class="shrink-0" style="transform-origin:center;opacity:var(--gallery-controls-progress, 0);filter:none;transform:none"><div data-artifact-favorite="" class="relative shrink-0" style="zoom:0.8888888888888888;--favorite-resting-background:color-mix(in srgb, #c5d4dc 25%, transparent);--favorite-resting-color:#c5d4dc;--favorite-hover-color:var(--color-white)"><span class="favorite-control" style="padding-left:0"><span class="favorite-anchor"><span aria-hidden="true" class="favorite-effects"><span class="favorite-bursts"></span><span class="favorite-total" data-testid="favorite-total" data-hidden="false" style="opacity:1;transform:none"></span></span><button type="button" class="favorite-hit-target" aria-label="Add a heart to Data collection" aria-pressed="false" aria-description="0 of your hearts, 0 total. Hold to add more hearts."><span class="favorite-button" data-liked="false" style="transform:none"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="size-[18px] translate-y-[0.5px]"><path d="M10.2 20C8.4 18.8 3 14.7 3 9a5 5 0 0 1 9-3 5 5 0 0 1 9 3c0 5.7-5.4 9.8-7.2 11C12.7 20.733 11.3 20.733 10.2 20Z"></path></svg></span></button></span></span></div></div><div data-artifact-control-motion="plus" class="shrink-0" style="transform-origin:center;opacity:var(--gallery-controls-progress, 0);filter:none;transform:none"><div class="h-8" style="transform-origin:right center;width:0px;margin-left:0px;opacity:0;transform:scale(0.7)"><div class="artifact-plus-control size-8 rounded-full flex items-center justify-center shrink-0 motion-reduce:transition-none" style="transform-origin:center;--artifact-plus-start:#c5d4dc;--artifact-plus-hover-bg:var(--color-white)"><svg viewBox="0 0 12 12" fill="currentColor" aria-hidden="true" class="size-4 transition-colors duration-300" style="color:#b6c5cc"><circle cy="6" cx="6" r="0" opacity="0" style="transform:translateY(4px);transform-origin:50% 50%;transform-box:fill-box"></circle><circle cy="6" cx="8" r="0" opacity="0" style="transform:translateY(4px);transform-origin:50% 50%;transform-box:fill-box"></circle><circle cy="6" cx="10" r="0" opacity="0" style="transform:translateY(4px);transform-origin:50% 50%;transform-box:fill-box"></circle></svg></div></div></div></div></div></div></div><div data-artifact-transition-outline="artifact-visualising-ai-classifier-light-00-0-outline" data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div>
932<div data-slide="true" data-virtual-index="2001" data-gallery-active-set="" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(2001 * var(--gallery-slide-span))"><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-dataset-light-00?lightbox&i=1&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="lo7tSqToNDhH8CfqMUXWMLNskJdfGS3y" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#080656"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b6c6cd;border-color:#080656;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--muted) 12%, transparent)"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true">
932<div data-artifact-bottom-controls="" class="flex items-center"><div data-artifact-control-motion="heart" class="shrink-0" style="transform-origin:center;opacity:var(--gallery-controls-progress, 0);filter:blur(calc((1 - var(--gallery-controls-progress, 0)) * 8px));transform:scale(calc(0.8 + var(--gallery-controls-progress, 0) * 0.2))"><div data-artifact-favorite="" class="relative shrink-0" style="zoom:0.8888888888888888;--favorite-resting-background:color-mix(in srgb, #080656 25%, transparent);--favorite-resting-color:#080656;--favorite-hover-color:var(--fg)"><span class="favorite-control" style="padding-left:0"><span class="favorite-anchor"><span aria-hidden="true" class="favorite-effects"><span class="favorite-bursts"></span><span class="favorite-total" data-testid="favorite-total" data-hidden="false" style="opacity:1;transform:none"></span></span><button type="button" class="favorite-hit-target" aria-label="Add a heart to Data classification" aria-pressed="false" aria-description="0 of your hearts, 0 total. Hold to add more hearts."><span class="favorite-button" data-liked="false" style="transform:none"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="size-[18px] translate-y-[0.5px]"><path d="M10.2 20C8.4 18.8 3 14.7 3 9a5 5 0 0 1 9-3 5 5 0 0 1 9 3c0 5.7-5.4 9.8-7.2 11C12.7 20.733 11.3 20.733 10.2 20Z"></path></svg></span></button></span></span></div></div><div data-artifact-control-motion="plus" class="shrink-0" style="transform-origin:center;opacity:var(--gallery-controls-progress, 0);filter:blur(calc((1 - var(--gallery-controls-progress, 0)) * 8px));transform:scale(calc(0.8 + var(--gallery-controls-progress, 0) * 0.2))"><div class="h-8" style="transform-origin:right center;width:0px;margin-left:0px;opacity:0;transform:scale(0.7)"><div class="artifact-plus-control size-8 rounded-full flex items-center justify-center shrink-0 motion-reduce:transition-none" style="transform-origin:center;--artifact-plus-start:#080656;--artifact-plus-hover-bg:var(--fg)"><svg viewBox="0 0 12 12" fill="currentColor" aria-hidden="true" class="size-4 transition-colors duration-300" style="color:#b6c6cd"><circle cy="6" cx="6" r="0" opacity="0" style="transform:translateY(4px);transform-origin:50% 50%;transform-box:fill-box"></circle><circle cy="6" cx="8" r="0" opacity="0" style="transform:translateY(4px);transform-origin:50% 50%;transform-box:fill-box"></circle><circle cy="6" cx="10" r="0" opacity="0" style="transform:translateY(4px);transform-origin:50% 50%;transform-box:fill-box"></circle></svg></div></div></div></div></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="2002" data-gallery-active-set="" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(2002 * var(--gallery-slide-span))"><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-teaching-light-00?lightbox&i=2&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="qUpvoxy9oMeyFxpz2ret2ON88xvrIrMu" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#b7c5cd"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b7c7ce;border-color:#b7c5cd;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="2003" data-gallery-active-set="" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(2003 * var(--gallery-slide-span))"><span aria-hidden="true" class="pointer-events-none absolute top-1/2 right-[-0.1875rem] z-40 size-1 shrink-0 translate-x-1/2 -translate-y-1/2 rounded-full bg-[currentColor] transition-opacity duration-200 ease-out sm:right-[-1rem] opacity-25"></span><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-export-light-00?lightbox&i=3&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="gHEbOBhRarUtZqLdkeZShd2Xjzok8Td3" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#2d328f"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b8c7ce;border-color:#2d328f;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--muted) 12%, transparent)"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="2004" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(2004 * var(--gallery-slide-span))"><span aria-hidden="true" class="pointer-events-none absolute top-1/2 left-[-0.1875rem] z-40 size-1 shrink-0 -translate-x-1/2 -translate-y-1/2 rounded-full bg-[currentColor] transition-opacity duration-200 ease-out sm:left-[-1rem] opacity-0"></span><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-classifier-light-00?lightbox&i=0&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-artifact-cms-id="2WWe0aZBk9Z9kVrDtdmv25fL37qWIPL3" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#c5d4dc"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b6c5cc;border-color:#c5d4dc;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="2005" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(2005 * var(--gallery-slide-span))"><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-dataset-light-00?lightbox&i=1&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="lo7tSqToNDhH8CfqMUXWMLNskJdfGS3y" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#080656"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b6c6cd;border-color:#080656;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--muted) 12%, transparent)"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="2006" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(2006 * var(--gallery-slide-span))"><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-teaching-light-00?lightbox&i=2&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="qUpvoxy9oMeyFxpz2ret2ON88xvrIrMu" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#b7c5cd"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b7c7ce;border-color:#b7c5cd;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="2007" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(2007 * var(--gallery-slide-span))"><span aria-hidden="true" class="pointer-events-none absolute top-1/2 right-[-0.1875rem] z-40 size-1 shrink-0 translate-x-1/2 -translate-y-1/2 rounded-full bg-[currentColor] transition-opacity duration-200 ease-out sm:right-[-1rem] opacity-0"></span><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-export-light-00?lightbox&i=3&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="gHEbOBhRarUtZqLdkeZShd2Xjzok8Td3" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#2d328f"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b8c7ce;border-color:#2d328f;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--muted) 12%, transparent)"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="2008" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(2008 * var(--gallery-slide-span))"><span aria-hidden="true" class="pointer-events-none absolute top-1/2 left-[-0.1875rem] z-40 size-1 shrink-0 -translate-x-1/2 -translate-y-1/2 rounded-full bg-[currentColor] transition-opacity duration-200 ease-out sm:left-[-1rem] opacity-0"></span><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-classifier-light-00?lightbox&i=0&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-artifact-cms-id="2WWe0aZBk9Z9kVrDtdmv25fL37qWIPL3" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#c5d4dc"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b6c5cc;border-color:#c5d4dc;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="2009" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(2009 * var(--gallery-slide-span))"><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-dataset-light-00?lightbox&i=1&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="lo7tSqToNDhH8CfqMUXWMLNskJdfGS3y" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#080656"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b6c6cd;border-color:#080656;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--muted) 12%, transparent)"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="2010" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(2010 * var(--gallery-slide-span))"><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-teaching-light-00?lightbox&i=2&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="qUpvoxy9oMeyFxpz2ret2ON88xvrIrMu" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#b7c5cd"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b7c7ce;border-color:#b7c5cd;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="2011" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(2011 * var(--gallery-slide-span))"><span aria-hidden="true" class="pointer-events-none absolute top-1/2 right-[-0.1875rem] z-40 size-1 shrink-0 translate-x-1/2 -translate-y-1/2 rounded-full bg-[currentColor] transition-opacity duration-200 ease-out sm:right-[-1rem] opacity-0"></span><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-export-light-00?lightbox&i=3&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="gHEbOBhRarUtZqLdkeZShd2Xjzok8Td3" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#2d328f"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b8c7ce;border-color:#2d328f;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--muted) 12%, transparent)"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="1992" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(1992 * var(--gallery-slide-span))"><span aria-hidden="true" class="pointer-events-none absolute top-1/2 left-[-0.1875rem] z-40 size-1 shrink-0 -translate-x-1/2 -translate-y-1/2 rounded-full bg-[currentColor] transition-opacity duration-200 ease-out sm:left-[-1rem] opacity-0"></span><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-classifier-light-00?lightbox&i=0&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-artifact-cms-id="2WWe0aZBk9Z9kVrDtdmv25fL37qWIPL3" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#c5d4dc"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b6c5cc;border-color:#c5d4dc;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="1993" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(1993 * var(--gallery-slide-span))"><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-dataset-light-00?lightbox&i=1&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="lo7tSqToNDhH8CfqMUXWMLNskJdfGS3y" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#080656"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b6c6cd;border-color:#080656;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--muted) 12%, transparent)"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="1994" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(1994 * var(--gallery-slide-span))"><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-teaching-light-00?lightbox&i=2&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="qUpvoxy9oMeyFxpz2ret2ON88xvrIrMu" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#b7c5cd"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b7c7ce;border-color:#b7c5cd;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="1995" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(1995 * var(--gallery-slide-span))"><span aria-hidden="true" class="pointer-events-none absolute top-1/2 right-[-0.1875rem] z-40 size-1 shrink-0 translate-x-1/2 -translate-y-1/2 rounded-full bg-[currentColor] transition-opacity duration-200 ease-out sm:right-[-1rem] opacity-0"></span><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-export-light-00?lightbox&i=3&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="gHEbOBhRarUtZqLdkeZShd2Xjzok8Td3" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#2d328f"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b8c7ce;border-color:#2d328f;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--muted) 12%, transparent)"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="1996" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(1996 * var(--gallery-slide-span))"><span aria-hidden="true" class="pointer-events-none absolute top-1/2 left-[-0.1875rem] z-40 size-1 shrink-0 -translate-x-1/2 -translate-y-1/2 rounded-full bg-[currentColor] transition-opacity duration-200 ease-out sm:left-[-1rem] opacity-0"></span><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-classifier-light-00?lightbox&i=0&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-artifact-cms-id="2WWe0aZBk9Z9kVrDtdmv25fL37qWIPL3" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#c5d4dc"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b6c5cc;border-color:#c5d4dc;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="1997" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(1997 * var(--gallery-slide-span))"><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-dataset-light-00?lightbox&i=1&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="lo7tSqToNDhH8CfqMUXWMLNskJdfGS3y" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#080656"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b6c6cd;border-color:#080656;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--muted) 12%, transparent)"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="1998" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(1998 * var(--gallery-slide-span))"><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-teaching-light-00?lightbox&i=2&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="qUpvoxy9oMeyFxpz2ret2ON88xvrIrMu" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#b7c5cd"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b7c7ce;border-color:#b7c5cd;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div><div data-slide="true" data-virtual-index="1999" class="absolute top-0 w-post-artifact snap-center flex items-center justify-center px-0 isolate" style="aspect-ratio:1.5;left:calc(1999 * var(--gallery-slide-span))"><span aria-hidden="true" class="pointer-events-none absolute top-1/2 right-[-0.1875rem] z-40 size-1 shrink-0 translate-x-1/2 -translate-y-1/2 rounded-full bg-[currentColor] transition-opacity duration-200 ease-out sm:right-[-1rem] opacity-0"></span><div class="w-full isolate content-visibility-visible"><a data-artifact-media-type="image" class="artifact-link relative isolate transition-[transform,opacity] duration-75 active:scale-[0.995] active:opacity-90 motion-reduce:active:scale-100 motion-reduce:transition-none block cursor-pointer select-none drag-none" draggable="false" href="/artifact/visualising-ai-export-light-00?lightbox&i=3&returnTo=%2Fstories%2Fvisualising-ai" data-discover="true"><figure class="artifact-frame not-prose relative isolate @container contain-layout" data-dark-controls="" data-artifact-cms-id="gHEbOBhRarUtZqLdkeZShd2Xjzok8Td3" style="height:0;padding-bottom:66.6667%;--artifact-outline-color:#2d328f"><div class="artifact-shadow-layer absolute inset-0 -z-5 rounded-artifact artifact-shadow-hover-pair" data-artifact-transition-shadow-class="artifact-shadow"></div><div data-artifact-clip="true" style="background-color:#b8c7ce;border-color:#2d328f;border-radius:var(--artifact-corner-radius);overflow:hidden;clip-path:inset(var(--artifact-press-inset) round var(--artifact-corner-radius));transition:clip-path var(--artifact-press-duration, 0ms) ease-out" class="absolute inset-0 isolate z-30"><div data-artifact-visual-content="true" class="absolute inset-0 isolate"><div class="absolute inset-0 -z-5 flex items-center justify-center size-full"><div class="overflow-clip shrink-0" style="width:118.6%;border-radius:0cqi;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--muted) 12%, transparent)"><div class="contents" data-artifact-media-content="true"><div style="aspect-ratio:3840/2160" class="relative overflow-hidden w-full pointer-events-none"><img aria-hidden="true" alt="" draggable="false" crossorigin="anonymous" src="/cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,qual
932ity=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=70,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 2400w" sizes="800px" class="absolute inset-0 z-0 size-full object-cover"/><img draggable="false" src="/cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg" srcSet="/cdn-cgi/image/width=400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 400w, /cdn-cgi/image/width=800,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 800w, /cdn-cgi/image/width=1200,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1200w, /cdn-cgi/image/width=1600,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 1600w, /cdn-cgi/image/width=2400,quality=80,format=auto,fit=cover/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg 2400w" sizes="(max-width: 48rem) calc(100vw - 2rem), 800px" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! relative z-1 opacity-0 w-full" style="aspect-ratio:3840/2160"/></div></div></div></div></div></div><div data-artifact-transition-chrome="" class="absolute inset-0 z-35 pointer-events-none overflow-hidden rounded-artifact"><div class="absolute inset-x-0 bottom-0 flex items-end justify-between gap-4 overflow-hidden p-prose-gutter pl-[calc(var(--spacing-prose-gutter)+0.34375rem)] pt-72 z-10 pointer-events-none"><div class="ml-auto shrink-0" inert="" aria-hidden="true"><div data-artifact-bottom-controls="" class="flex items-center"><div data-artifact-control-motion="heart" class="shrink-0" style="transform-origin:center;opacity:var(--gallery-controls-progress, 0);filter:blur(calc((1 - var(--gallery-controls-progress, 0)) * 8px));transform:scale(calc(0.8 + var(--gallery-controls-progress, 0) * 0.2))"><div data-artifact-favorite="" class="relative shrink-0" style="zoom:0.8888888888888888;--favorite-resting-background:color-mix(in srgb, #2d328f 25%, transparent);--favorite-resting-color:#2d328f;--favorite-hover-color:var(--fg)"><span class="favorite-control" style="padding-left:0"><span class="favorite-anchor"><span aria-hidden="true" class="favorite-effects"><span class="favorite-bursts"></span><span class="favorite-total" data-testid="favorite-total" data-hidden="false" style="opacity:1;transform:none"></span></span><button type="button" class="favorite-hit-target" aria-label="Add a heart to Exporting machine learning models" aria-pressed="false" aria-description="0 of your hearts, 0 total. Hold to add more hearts."><span class="favorite-button" data-liked="false" style="transform:none"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="size-[18px] translate-y-[0.5px]"><path d="M10.2 20C8.4 18.8 3 14.7 3 9a5 5 0 0 1 9-3 5 5 0 0 1 9 3c0 5.7-5.4 9.8-7.2 11C12.7 20.733 11.3 20.733 10.2 20Z"></path></svg></span></button></span></span></div></div><div data-artifact-control-motion="plus" class="shrink-0" style="transform-origin:center;opacity:var(--gallery-controls-progress, 0);filter:blur(calc((1 - var(--gallery-controls-progress, 0)) * 8px));transform:scale(calc(0.8 + var(--gallery-controls-progress, 0) * 0.2))"><div class="h-8" style="transform-origin:right center;width:0px;margin-left:0px;opacity:0;transform:scale(0.7)"><div class="artifact-plus-control size-8 rounded-full flex items-center justify-center shrink-0 motion-reduce:transition-none" style="transform-origin:center;--artifact-plus-start:#2d328f;--artifact-plus-hover-bg:var(--fg)"><svg viewBox="0 0 12 12" fill="currentColor" aria-hidden="true" class="size-4 transition-colors duration-300" style="color:#b8c7ce"><circle cy="6" cx="6" r="0" opacity="0" style="transform:translateY(4px);transform-origin:50% 50%;transform-box:fill-box"></circle><circle cy="6" cx="8" r="0" opacity="0" style="transform:translateY(4px);transform-origin:50% 50%;transform-box:fill-box"></circle><circle cy="6" cx="10" r="0" opacity="0" style="transform:translateY(4px);transform-origin:50% 50%;transform-box:fill-box"></circle></svg></div></div></div></div></div></div></div><div data-artifact-transition-outline-class="artifact-outline" data-artifact-article-outline="true" class="artifact-border-layer absolute inset-0 rounded-artifact z-40 pointer-events-none" style="--artifact-frame-border-color:var(--artifact-border);inset:var(--artifact-press-inset, 0%)"></div></figure></a></div></div></div></div></div></div><div class="artifact-gallery-progress article-text-column relative z-10 mt-4 mb-8 flex items-start justify-between gap-4 text-footnote"><div class="grid min-w-0 flex-1 text-muted"><span aria-hidden="false" class="artifact-caption col-start-1 row-start-1 min-w-0 self-start">Data collection</span><span aria-hidden="true" class="artifact-caption col-start-1 row-start-1 min-w-0 self-start invisible pointer-events-none">Data classification</span><span aria-hidden="true" class="artifact-caption col-start-1 row-start-1 min-w-0 self-start invisible pointer-events-none">Correcting</span><span aria-hidden="true" class="artifact-caption col-start-1 row-start-1 min-w-0 self-start invisible pointer-events-none">Exporting machine learning models</span></div><div class="flex h-[1lh] shrink-0 items-center justify-end" style="width:calc(50px + 3 * 0.375rem)"><div class="flex items-center justify-center gap-1.5"><button type="button" aria-label="Go to highlight 1" class="flex items-center cursor-pointer border-0 bg-transparent px-0 py-2 -my-2"><div class="relative rounded-full overflow-hidden h-1.5" style="background-color:color-mix(in oklch, var(--gallery-progress-tint) 15%, transparent);width:6px"><div class="absolute inset-0" style="opacity:1"><div class="absolute top-0 left-0 size-1.5 rounded-full" style="background-color:var(--gallery-progress-tint)"></div><div class="absolute inset-y-0 left-[0.1875rem] right-[0.1875rem]" style="transform-origin:left;background-color:var(--gallery-progress-tint);
932transform:scaleX(0)"></div><div class="absolute top-0 left-0 size-1.5 rounded-full" style="background-color:var(--gallery-progress-tint);transform:none"></div></div></div></button><button type="button" aria-label="Go to highlight 2" class="flex items-center cursor-pointer border-0 bg-transparent px-0 py-2 -my-2"><div class="relative rounded-full overflow-hidden h-1.5" style="background-color:color-mix(in oklch, var(--gallery-progress-tint) 15%, transparent);width:6px"></div></button><button type="button" aria-label="Go to highlight 3" class="flex items-center cursor-pointer border-0 bg-transparent px-0 py-2 -my-2"><div class="relative rounded-full overflow-hidden h-1.5" style="background-color:color-mix(in oklch, var(--gallery-progress-tint) 15%, transparent);width:6px"></div></button><button type="button" aria-label="Go to highlight 4" class="flex items-center cursor-pointer border-0 bg-transparent px-0 py-2 -my-2"><div class="relative rounded-full overflow-hidden h-1.5" style="background-color:color-mix(in oklch, var(--gallery-progress-tint) 15%, transparent);width:6px"></div></button></div></div></div></div></div></div><div class=""><div class="@container"><div id="zcgdlcD8Yr3yI3lWABCMo57ZLgk6Kcna" style="--article-tint:#ffffff" class="article-content-section relative px-[var(--article-text-gutter)] select-text py-0"><div class="article-content-copy p-0 w-full"><div class="quote-markdown w-full prose tracking-tight dark:prose-invert transition-colors duration-300 text-body text-fg text-pretty"><p>Before tools like LLMs became mainstream, we set out to make machine learning more approachable through a pragmatic, hands-on lens. As part of our work leading up to FieldDay, we focused on âclassicâ machine learning and the idea that anyone should be able to teach models through data, even if that concept still carried a learning curve at the time. To support this, we embedded education directly into our brand. Led by Nelson Schöller, we created a series of visualizations and a short film that translated core ML concepts into clear, intuitive visuals. These assets became a central part of our website and internal materials, helping shift the narrative around AI away from abstract, overused imagery toward something more grounded and understandable.</p></div></div></div></div></div></div></div><div data-more-from-context="" class="w-screen shrink-0 ml-[calc(50%-50vw)] overflow-x-clip site-more-from-context-region relative mt-16 pointer-events-none" style="max-width:100dvw"><div class="flex w-full max-w-post mx-auto px-gutter flex-col pointer-events-auto"><div class="w-full h-px"></div><div class="pointer-events-auto w-full"><div id="questions"><div aria-busy="true" data-session-agent-bootstrap="visualising-ai"><div data-nosnippet="true" aria-busy="true" class="scheme-light flex flex-col relative"><p class="sr-only" aria-live="polite">Loading questionsâ¦</p><div class="sticky inset-x-0 top-0 h-24 sm:h-56 -mb-20 sm:-mb-36 bg-bg shadow-[0_-1px_0_0_var(--bg),0_1px_0_0_var(--bg)] w-screen ml-[calc(50%-50vw)] max-w-screen flex justify-center"><div class="h-full" style="transform:none"><svg viewBox="0 0 1405 176" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="h-full"><g opacity="0.12" filter="url(#filter0_f_generation_indicator)"><ellipse cx="702.5" cy="-0.136963" rx="462.5" ry="75.863" fill="#ffffff"></ellipse></g><defs><filter id="filter0_f_generation_indicator" x="140" y="-176" width="1125" height="351.726" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="50" result="effect1_foregroundBlur_generation_indicator"></feGaussianBlur></filter></defs></svg></div></div><div class="more-from-context-hover-region pt-16 pb-8"><div class="more-from-context-layout"><div class="more-from-context-copy"><div class="more-from-context-text flex flex-col justify-start relative gap-3"><div class="more-from-context-heading flex items-center gap-2"><div class="relative size-[26px] shrink-0" style="color:#ffffff"><div class="absolute inset-px"><div data-scroll-spinner-scroll="" class="size-full" style="rotate:0deg"><div data-scroll-spinner-idle="" class="size-full" style="transform:none"><svg viewBox="0 0 60 60" fill="none" aria-hidden="true" overflow="visible" class="block size-full"><circle cx="56.25" cy="30" r="5" fill="currentColor"></circle><circle cx="43.125" cy="52.74" r="5" fill="currentColor"></circle><circle cx="16.875" cy="52.74" r="5" fill="currentColor"></circle><circle cx="3.75" cy="30" r="5" fill="currentColor"></circle><circle cx="16.875" cy="7.259999999999998" r="5" fill="currentColor"></circle><circle cx="43.125" cy="7.259999999999998" r="5" fill="currentColor"></circle></svg></div></div><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="absolute inset-0 block size-full"><path d="M16 10.75V21.25M10.75 16H21.25" stroke="currentColor" stroke-width="2.625" stroke-linecap="round"></path></svg></div></div><p class="more-from-context-heading-copy text-balance select-text">More from context<span data-more-from-context-baseline="" class="inline-block size-0 align-baseline" aria-hidden="true"></span></p></div><p class="more-from-context-subheadline text-body text-fg/70 text-balance select-text">Select a theme and let<!-- --> <span><span class="whitespace-nowrap"><svg width="20" height="20" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="inline-block size-5 align-text-bottom mr-1"><circle cx="250" cy="250" r="250" fill="var(--color-fg)"></circle><g fill="var(--color-bg)"><path d="M256.865 140.139L238.787 165.866C236.006 169.899 231.277 172.402 226.271 172.402H127.535V140C127.396 140.139 256.865 140.139 256.865 140.139Z"></path><path d="M379.66 140.139L224.464 360H121L276.196 140.139H379.66Z"></path><path d="M243.795 360L262.012 334.134C264.794 330.101 269.522 327.598 274.528 327.598H373.125V360H243.795Z"></path></g></svg>GLM</span> 5.3 Flash</span> <!-- -->expand on this story<!-- -->.<!-- --> <a class="whitespace-nowrap text-fg no-underline transition-colors hover:text-fg/70" href="/stories/more-from-context" data-discover="true">Learn more</a></p></div></div><div class="more-from-context-stack"><div data-paper-stack="" data-paper-dragging="false" class="relative w-70 h-80"><button type="button" data-paper-fan-hit-area="" aria-label="Show next context c
932ard" tabindex="-1" class="absolute cursor-pointer" style="top:-8px;bottom:-32px;left:calc(-1 * (var(--more-context-arrow-size) + 1.25rem + 8px));right:min(-36px, calc(-1 * (var(--more-context-arrow-size) + 1.25rem + 8px)))"></button><div data-paper-stack-card="back" class="absolute inset-0 origin-bottom select-none cursor-pointer" style="opacity:1;z-index:1;color:rgba(177, 182, 204, 1);transform:translateX(24px) translateY(6px) scale(0.89) rotate(3deg)"><div data-paper-card="back" class="w-70 h-80 bg-bg rounded-[1.3125rem] overflow-hidden relative shadow-mild ring-1 ring-[var(--discord-invite-card-outline)] contain-[layout_paint]"><div class="pointer-events-none flex flex-col p-4.5 pr-8 relative gap-2"><div class="text-body absolute top-16 right-0 rotate-90 origin-top-left translate-x-full" style="--card-tag-bg:light-dark(color-mix(in srgb, var(--fg) 7%, var(--discord-card-bg)), rgba(255, 255, 255, 0.08));--card-tag-cap-bg:light-dark(color-mix(in srgb, var(--fg) 7%, var(--discord-card-bg)), rgba(255, 255, 255, 0.08));--card-tag-fg:light-dark(color-mix(in srgb, var(--fg) 48%, transparent), rgba(255, 255, 255, 0.56))"><p class="-mx-1 text-[var(--card-tag-fg,currentColor)]! h-full py-1 relative z-1">Design</p><svg class="h-full aspect-square absolute top-0 left-0 -translate-x-full text-[var(--card-tag-bg,color-mix(in_srgb,currentColor_12%,white))]" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M35 34.9971C27.5241 34.9847 23.5235 34.8461 20.4023 33.2559C17.3917 31.7219 14.9442 29.2743 13.4102 26.2637C11.7359 22.9778 11.6697 18.7169 11.667 10.4521V11.667C11.667 5.2237 6.4433 0 0 0H35V34.9971Z" fill="currentColor"></path></svg><svg class="h-full absolute top-0 inset-x-0 w-full text-[var(--card-tag-bg,color-mix(in_srgb,currentColor_12%,white))]" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><rect x="-80" y="0" width="200" height="35" fill="currentColor"></rect></svg><svg class="h-full aspect-square absolute top-0 right-0 translate-x-full text-[var(--card-tag-cap-bg,color-mix(in_srgb,currentColor_12%,white))]" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M23.3359 11.667C23.3359 5.2237 28.5599 0 35.0029 0H0V34.9971C7.47712 34.9847 11.4779 34.8462 14.5996 33.2559C17.6096 31.7219 20.0578 29.2743 21.5918 26.2637C23.3357 22.8412 23.3359 18.3609 23.3359 9.40039V11.667Z" fill="currentColor"></path></svg></div><p class="article-paragraph-type text-fg pr-4 text-balance" style="-webkit-mask-image:linear-gradient(to bottom, black calc(var(--reveal) * 130% - 30%), transparent calc(var(--reveal) * 130%));mask-image:linear-gradient(to bottom, black calc(var(--reveal) * 130% - 30%), transparent calc(var(--reveal) * 130%));--reveal:0;opacity:0;transform:scale(0.9)"></p><p class="article-paragraph-type text-fg/50 pr-4 text-balance" style="-webkit-mask-image:linear-gradient(to bottom, black calc(var(--reveal) * 130% - 30%), transparent calc(var(--reveal) * 130%));mask-image:linear-gradient(to bottom, black calc(var(--reveal) * 130% - 30%), transparent calc(var(--reveal) * 130%));--reveal:0;opacity:0;transform:scale(0.9)"></p><div class="origin-top" style="opacity:0"><div class="flex flex-col gap-2.5 text-muted/8 py-4 w-full"><div class="flex gap-2.5 w-full"><div class="w-24 bg-current rounded-sm shrink-0"></div><div class="flex flex-col gap-2.5 w-full"><div class="h-4 bg-current rounded-sm w-4/5"></div><div class="h-4 bg-current rounded-sm w-5/7"></div><div class="h-4 bg-current rounded-sm w-1/2"></div></div></div><div class="h-4 bg-current rounded-sm w-2/5"></div><div class="h-4 bg-current rounded-sm w-3/4"></div><div class="h-4 bg-current rounded-sm w-2/3"></div></div></div></div><div class="pointer-events-none absolute bottom-0 inset-x-0 h-56 flex flex-col"><div class="scrim-b-full scrim-bg flex-1"></div><div class="bg-bg h-12.5"></div></div><div aria-hidden="true" class="absolute inset-x-0 top-0 bottom-17 cursor-pointer"></div><div data-paper-footer="" class="absolute bottom-0 inset-x-0 h-17 cursor-pointer"><div class="opacity-0 pointer-events-none transition-opacity duration-300 absolute inset-0 bg-bg flex h-full items-center justify-between px-4.5 cursor-default"><div style="opacity:0;transform:scale(0.9)"><span data-component="text-shimmer" data-active="false" class="font-normal line-clamp-1 truncate text-body!" aria-label="Thinkingâ¦" style="color:#ffffff;--text-shimmer-swap:220ms;--text-shimmer-index:0"><span data-slot="text-shimmer-char" style="color:#ffffff"><span data-slot="text-shimmer-char-base" aria-hidden="true" style="color:#ffffff">Thinkingâ¦</span><span data-slot="text-shimmer-char-shimmer" data-run="false" aria-hidden="true" style="color:#ffffff">Thinkingâ¦</span></span></span></div><div class="size-8 shrink-0 text-current contain-strict"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="size-full translate-x-[0.5px]"><circle opacity="0.12" cx="16" cy="16" r="9" stroke="currentColor" stroke-width="3"></circle><defs><linearGradient id="_R_9hjavj8lkj5_" x1="16" y1="7" x2="16" y2="25" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor" stop-opacity="0"></stop><stop offset="1" stop-color="currentColor"></stop></linearGradient></defs>
932<path d="M16 7 A9 9 0 0 1 16 25" stroke="url(#_R_9hjavj8lkj5_)" stroke-width="3" stroke-linecap="round"></path></svg></div></div><div class="opacity-100 pointer-events-auto transition-opacity duration-300 absolute inset-0 bg-bg h-full w-full cursor-pointer"><button type="button" data-paper-generate="" disabled="" class="article-paragraph-type group absolute inset-0 cursor-pointer disabled:cursor-default disabled:text-muted disabled:saturate-0 [&_*]:pointer-events-none"><div class="h-full w-full p-4.5"><div class="flex h-full w-full items-center justify-between gap-1.5 transition-transform duration-200 group-enabled:group-active:scale-[0.98]"><p>Write section</p><div class="bg-current/12 group-enabled:group-hover:bg-current rounded-full size-8 flex items-center justify-center transition-colors duration-200"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="size-full group-enabled:group-hover:text-white transition-colors duration-200"><path fill-rule="evenodd" clip-rule="evenodd" d="M15 17V23H17V17H23V15H17V9H15V15H9V17H15Z" fill="currentColor"></path></svg></div></div></div></button></div></div></div></div><div data-paper-stack-card="back" class="absolute inset-0 origin-bottom select-none cursor-pointer" style="opacity:1;z-index:2;color:rgba(177, 182, 204, 1);transform:translateX(-24px) translateY(6px) scale(0.945) rotate(-3deg)"><div data-paper-card="back" class="w-70 h-80 bg-bg rounded-[1.3125rem] overflow-hidden relative shadow-mild ring-1 ring-[var(--discord-invite-card-outline)] contain-[layout_paint]"><div class="pointer-events-none flex flex-col p-4.5 pr-8 relative gap-2"><div class="text-body absolute top-16 right-0 rotate-90 origin-top-left translate-x-full" style="--card-tag-bg:light-dark(color-mix(in srgb, var(--fg) 7%, var(--discord-card-bg)), rgba(255, 255, 255, 0.08));--card-tag-cap-bg:light-dark(color-mix(in srgb, var(--fg) 7%, var(--discord-card-bg)), rgba(255, 255, 255, 0.08));--card-tag-fg:light-dark(color-mix(in srgb, var(--fg) 48%, transparent), rgba(255, 255, 255, 0.56))"><p class="-mx-1 text-[var(--card-tag-fg,currentColor)]! h-full py-1 relative z-1">Strategy</p><svg class="h-full aspect-square absolute top-0 left-0 -translate-x-full text-[var(--card-tag-bg,color-mix(in_srgb,currentColor_12%,white))]" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M35 34.9971C27.5241 34.9847 23.5235 34.8461 20.4023 33.2559C17.3917 31.7219 14.9442 29.2743 13.4102 26.2637C11.7359 22.9778 11.6697 18.7169 11.667 10.4521V11.667C11.667 5.2237 6.4433 0 0 0H35V34.9971Z" fill="currentColor"></path></svg><svg class="h-full absolute top-0 inset-x-0 w-full text-[var(--card-tag-bg,color-mix(in_srgb,currentColor_12%,white))]" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><rect x="-80" y="0" width="200" height="35" fill="currentColor"></rect></svg><svg class="h-full aspect-square absolute top-0 right-0 translate-x-full text-[var(--card-tag-cap-bg,color-mix(in_srgb,currentColor_12%,white))]" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M23.3359 11.667C23.3359 5.2237 28.5599 0 35.0029 0H0V34.9971C7.47712 34.9847 11.4779 34.8462 14.5996 33.2559C17.6096 31.7219 20.0578 29.2743 21.5918 26.2637C23.3357 22.8412 23.3359 18.3609 23.3359 9.40039V11.667Z" fill="currentColor"></path></svg></div><p class="article-paragraph-type text-fg pr-4 text-balance" style="-webkit-mask-image:linear-gradient(to bottom, black calc(var(--reveal) * 130% - 30%), transparent calc(var(--reveal) * 130%));mask-image:linear-gradient(to bottom, black calc(var(--reveal) * 130% - 30%), transparent calc(var(--reveal) * 130%));--reveal:0;opacity:0;transform:scale(0.9)"></p><p class="article-paragraph-type text-fg/50 pr-4 text-balance" style="-webkit-mask-image:linear-gradient(to bottom, black calc(var(--reveal) * 130% - 30%), transparent calc(var(--reveal) * 130%));mask-image:linear-gradient(to bottom, black calc(var(--reveal) * 130% - 30%), transparent calc(var(--reveal) * 130%));--reveal:0;opacity:0;transform:scale(0.9)"></p><div class="origin-top" style="opacity:0"><div class="flex flex-col gap-2.5 text-muted/8 py-4 w-full">
932<div class="h-4 bg-current rounded-sm w-2/3"></div><div class="h-4 bg-current rounded-sm w-3/4"></div><div class="flex gap-2.5 w-full"><div class="w-24 bg-current rounded-sm shrink-0"></div><div class="flex flex-col gap-2.5 w-full"><div class="h-4 bg-current rounded-sm w-2/5"></div><div class="h-4 bg-current rounded-sm w-6/7"></div><div class="h-4 bg-current rounded-sm w-1/2"></div></div></div><div class="h-4 bg-current rounded-sm w-4/5"></div></div></div></div><div class="pointer-events-none absolute bottom-0 inset-x-0 h-56 flex flex-col"><div class="scrim-b-full scrim-bg flex-1"></div><div class="bg-bg h-12.5"></div></div><div aria-hidden="true" class="absolute inset-x-0 top-0 bottom-17 cursor-pointer"></div><div data-paper-footer="" class="absolute bottom-0 inset-x-0 h-17 cursor-pointer"><div class="opacity-0 pointer-events-none transition-opacity duration-300 absolute inset-0 bg-bg flex h-full items-center justify-between px-4.5 cursor-default"><div style="opacity:0;transform:scale(0.9)"><span data-component="text-shimmer" data-active="false" class="font-normal line-clamp-1 truncate text-body!" aria-label="Thinkingâ¦" style="color:#ffffff;--text-shimmer-swap:220ms;--text-shimmer-index:0"><span data-slot="text-shimmer-char" style="color:#ffffff"><span data-slot="text-shimmer-char-base" aria-hidden="true" style="color:#ffffff">Thinkingâ¦</span><span data-slot="text-shimmer-char-shimmer" data-run="false" aria-hidden="true" style="color:#ffffff">Thinkingâ¦</span></span></span></div><div class="size-8 shrink-0 text-current contain-strict"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="size-full translate-x-[0.5px]"><circle opacity="0.12" cx="16" cy="16" r="9" stroke="currentColor" stroke-width="3"></circle><defs><linearGradient id="_R_9hlavj8lkj5_" x1="16" y1="7" x2="16" y2="25" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor" stop-opacity="0"></stop><stop offset="1" stop-color="currentColor"></stop></linearGradient></defs><path d="M16 7 A9 9 0 0 1 16 25" stroke="url(#_R_9hlavj8lkj5_)" stroke-width="3" stroke-linecap="round"></path></svg></div></div><div class="opacity-100 pointer-events-auto transition-opacity duration-300 absolute inset-0 bg-bg h-full w-full cursor-pointer"><button type="button" data-paper-generate="" disabled="" class="article-paragraph-type group absolute inset-0 cursor-pointer disabled:cursor-default disabled:text-muted disabled:saturate-0 [&_*]:pointer-events-none"><div class="h-full w-full p-4.5"><div class="flex h-full w-full items-center justify-between gap-1.5 transition-transform duration-200 group-enabled:group-active:scale-[0.98]"><p>Write section</p><div class="bg-current/12 group-enabled:group-hover:bg-current rounded-full size-8 flex items-center justify-center transition-colors duration-200"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="size-full group-enabled:group-hover:text-white transition-colors duration-200"><path fill-rule="evenodd" clip-rule="evenodd" d="M15 17V23H17V17H23V15H17V9H15V15H9V17H15Z" fill="currentColor"></path></svg></div></div></div></button></div></div></div></div><div data-paper-stack-card="front" class="absolute inset-0 origin-bottom select-none touch-none pointer-coarse:touch-pan-y cursor-pointer" style="opacity:1;z-index:3;color:rgba(255, 255, 255, 1);transform:none"><div data-paper-card="front" class="w-70 h-80 bg-bg rounded-[1.3125rem] overflow-hidden relative shadow-mild ring-1 ring-[var(--discord-invite-card-outline)] contain-[layout_paint]"><div class="pointer-events-none flex flex-col p-4.5 pr-8 relative gap-2"><div class="text-body absolute top-16 right-0 rotate-90 origin-top-left translate-x-full"><p class="-mx-1 text-[var(--card-tag-fg,currentColor)]! h-full py-1 relative z-1">Technology</p><svg class="h-full aspect-square absolute top-0 left-0 -translate-x-full text-[var(--card-tag-bg,color-mix(in_srgb,currentColor_12%,white))]" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M35 34.9971C27.5241 34.9847 23.5235 34.8461 20.4023 33.2559C17.3917 31.7219 14.9442 29.2743 13.4102 26.2637C11.7359 22.9778 11.6697 18.7169 11.667 10.4521V11.667C11.667 5.2237 6.4433 0 0 0H35V34.9971Z" fill="currentColor"></path></svg><svg class="h-full absolute top-0 inset-x-0 w-full text-[var(--card-tag-bg,color-mix(in_srgb,currentColor_12%,white))]" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><rect x="-80" y="0" width="200" height="35" fill="currentColor"></rect></svg><svg class="h-full aspect-square absolute top-0 right-0 translate-x-full text-[var(--card-tag-cap-bg,color-mix(in_srgb,currentColor_12%,white))]" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M23.3359 11.667C23.3359 5.2237 28.5599 0 35.0029 0H0V34.9971C7.47712 34.9847 11.4779 34.8462 14.5996 33.2559C17.6096 31.7219 20.0578 29.2743 21.5918 26.2637C23.3357 22.8412 23.3359
93218.3609 23.3359 9.40039V11.667Z" fill="currentColor"></path></svg></div><p class="article-paragraph-type text-fg pr-4 text-balance" style="-webkit-mask-image:linear-gradient(to bottom, black calc(var(--reveal) * 130% - 30%), transparent calc(var(--reveal) * 130%));mask-image:linear-gradient(to bottom, black calc(var(--reveal) * 130% - 30%), transparent calc(var(--reveal) * 130%));--reveal:0;opacity:0;transform:scale(0.9)"></p><p class="article-paragraph-type text-fg/50 pr-4 text-balance" style="-webkit-mask-image:linear-gradient(to bottom, black calc(var(--reveal) * 130% - 30%), transparent calc(var(--reveal) * 130%));mask-image:linear-gradient(to bottom, black calc(var(--reveal) * 130% - 30%), transparent calc(var(--reveal) * 130%));--reveal:0;opacity:0;transform:scale(0.9)"></p><div class="origin-top" style="opacity:0"><div class="flex flex-col gap-2.5 text-muted/8 py-4 w-full"><div class="h-4 bg-current rounded-sm w-5/7"></div><div class="flex gap-2.5 w-full"><div class="w-24 bg-current rounded-sm shrink-0"></div><div class="flex flex-col gap-2.5 w-full"><div class="h-4 bg-current rounded-sm w-2/5"></div><div class="h-4 bg-current rounded-sm w-2/3"></div><div class="h-4 bg-current rounded-sm w-1/2"></div></div></div><div class="h-4 bg-current rounded-sm w-3/4"></div><div class="h-4 bg-current rounded-sm w-4/5"></div></div></div></div><div class="pointer-events-none absolute bottom-0 inset-x-0 h-56 flex flex-col"><div class="scrim-b-full scrim-bg flex-1"></div><div class="bg-bg h-12.5"></div></div><div aria-hidden="true" data-paper-drag="" class="absolute inset-x-0 top-0 bottom-17 cursor-grab active:cursor-grabbing"></div><div data-paper-footer="" class="absolute bottom-0 inset-x-0 h-17 cursor-pointer"><div class="opacity-0 pointer-events-none transition-opacity duration-300 absolute inset-0 bg-bg flex h-full items-center justify-between px-4.5 cursor-default"><div style="opacity:0;transform:scale(0.9)"><span data-component="text-shimmer" data-active="false" class="font-normal line-clamp-1 truncate text-body!" aria-label="Thinkingâ¦" style="color:#ffffff;--text-shimmer-swap:220ms;--text-shimmer-index:0"><span data-slot="text-shimmer-char" style="color:#ffffff"><span data-slot="text-shimmer-char-base" aria-hidden="true" style="color:#ffffff">Thinkingâ¦</span><span data-slot="text-shimmer-char-shimmer" data-run="false" aria-hidden="true" style="color:#ffffff">Thinkingâ¦</span></span></span></div><div class="size-8 shrink-0 text-current contain-strict"><svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="size-full translate-x-[0.5px]"><circle opacity="0.12" cx="16" cy="16" r="9" stroke="currentColor" stroke-width="3"></circle><defs><linearGradient id="_R_9hnavj8lkj5_" x1="16" y1="7" x2="16" y2="25" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor" stop-opacity="0"></stop><stop offset="1" stop-color="currentColor"></stop></linearGradient></defs><path d="M16 7 A9 9 0 0 1 16 25" stroke="url(#_R_9hnavj8lkj5_)" stroke-width="3" stroke-linecap="round"></path></svg></div></div><div class="opacity-100 pointer-events-auto transition-opacity duration-300 absolute inset-0 bg-bg h-full w-full cursor-pointer"><button type="button" data-paper-generate="" disabled="" class="article-paragraph-type group absolute inset-0 cursor-pointer disabled:cursor-default disabled:text-muted disabled:saturate-0 [&_*]:pointer-events-none"><div class="h-full w-full p-4.5"><div class="flex h-full w-full items-center justify-between gap-1.5 transition-transform duration-200 group-enabled:group-active:scale-[0.98]"><p>Write section</p><div class="bg-current/12 group-enabled:group-hover:bg-current rounded-full size-8 flex items-center justify-center transition-colors duration-200"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="size-full group-enabled:group-hover:text-white transition-colors duration-200"><path fill-rule="evenodd" clip-rule="evenodd" d="M15 17V23H17V17H23V15H17V9H15V15H9V17H15Z" fill="currentColor"></path></svg></div></div></div></button></div></div></div></div><div class="more-from-context-arrow-control more-from-context-left-control absolute z-[999] top-1/2 left-0 -translate-x-[calc(100%+0.875rem)] -translate-y-1/2" style="pointer-events:none">
932<button type="button" aria-label="Show previous context card" data-no-drag="" class="more-from-context-arrow-button cursor-pointer more-from-context-arrow-stable" tabindex="0" style="--more-from-context-arrow-tint:#ffffff"><span class="more-from-context-arrow-visual"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="more-from-context-arrow-button-icon rotate-180"><path d="M14 11L19 16L14 21" stroke="currentColor" stroke-opacity="1" stroke-width="2.5" stroke-linecap="round"></path></svg></span></button></div><div class="more-from-context-arrow-control absolute z-[999] top-1/2 right-0 translate-x-[calc(100%+0.875rem)] -translate-y-1/2 sm:translate-x-[calc(100%+1.25rem)]" style="pointer-events:none"><button type="button" aria-label="Show next context card" data-no-drag="" class="more-from-context-arrow-button cursor-pointer more-from-context-arrow-stable" tabindex="0" style="--more-from-context-arrow-tint:#ffffff"><span class="more-from-context-arrow-visual"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="more-from-context-arrow-button-icon"><path d="M14 11L19 16L14 21" stroke="currentColor" stroke-opacity="1" stroke-width="2.5" stroke-linecap="round"></path></svg></span></button></div></div></div></div></div></div></div></div></div><div class="w-full h-px"></div></div><div aria-hidden="true" class="h-8 w-full pointer-events-auto"></div></div></article></main><div class="site-bottom-theme relative bg-bg text-fg" data-footer-appearance="dark" style="visibility:visible;opacity:1"><div class="relative"><div class="site-bottom-background-layer pointer-events-none absolute inset-0 overflow-hidden" aria-hidden="true" style="mask-image:linear-gradient(to top, rgb(255 255 255 / 1.000) 0.00%, rgb(255 255 255 / 0.824) 6.25%, rgb(255 255 255 / 0.670) 12.50%, rgb(255 255 255 / 0.536) 18.75%, rgb(255 255 255 / 0.422) 25.00%, rgb(255 255 255 / 0.325) 31.25%, rgb(255 255 255 / 0.244) 37.50%, rgb(255 255 255 / 0.178) 43.75%, rgb(255 255 255 / 0.125) 50.00%, rgb(255 255 255 / 0.084) 56.25%, rgb(255 255 255 / 0.053) 62.50%, rgb(255 255 255 / 0.031) 68.75%, rgb(255 255 255 / 0.016) 75.00%, rgb(255 255 255 / 0.007) 81.25%, rgb(255 255 255 / 0.002) 87.50%, rgb(255 255 255 / 0.000) 93.75%, rgb(255 255 255 / 0.000) 100.00%);-webkit-mask-image:linear-gradient(to top, rgb(255 255 255 / 1.000) 0.00%, rgb(255 255 255 / 0.824) 6.25%, rgb(255 255 255 / 0.670) 12.50%, rgb(255 255 255 / 0.536) 18.75%, rgb(255 255 255 / 0.422) 25.00%, rgb(255 255 255 / 0.325) 31.25%, rgb(255 255 255 / 0.244) 37.50%, rgb(255 255 255 / 0.178) 43.75%, rgb(255 255 255 / 0.125) 50.00%, rgb(255 255 255 / 0.084) 56.25%, rgb(255 255 255 / 0.053) 62.50%, rgb(255 255 255 / 0.031) 68.75%, rgb(255 255 255 / 0.016) 75.00%, rgb(255 255 255 / 0.007) 81.25%, rgb(255 255 255 / 0.002) 87.50%, rgb(255 255 255 / 0.000) 93.75%, rgb(255 255 255 / 0.000) 100.00%)"><img draggable="false" src="/cdn-cgi/image/width=1920,quality=80,format=auto,fit=cover/home/cloud.jpg" srcSet="/cdn-cgi/image/width=960,quality=80,format=auto,fit=cover/home/cloud.jpg 960w, /cdn-cgi/image/width=1920,quality=80,format=auto,fit=cover/home/cloud.jpg 1920w, /cdn-cgi/image/width=2880,quality=80,format=auto,fit=cover/home/cloud.jpg 2880w, /cdn-cgi/image/width=3840,quality=80,format=auto,fit=cover/home/cloud.jpg 3840w" sizes="100vw" alt="" crossorigin="anonymous" loading="lazy" decoding="async" class="m-0! site-bottom-background-image absolute inset-0 size-full object-cover"/></div><div class="relative"><section id="get-in-touch" aria-label="Get in touch" class="scroll-mt-24 overflow-visible text-fg"><div class="pt-20 pb-16 sm:px-gutter sm:pt-24 sm:pb-20"><div class="relative mx-auto w-full min-w-0 max-w-post-artifact rounded-post-artifact sm:shadow-contact-panel overflow-visible sm:overflow-hidden"><div class="pointer-events-none absolute inset-0 rounded-post-artifact bg-transparent sm:bg-[var(--contact-panel-bg)] sm:backdrop-blur-[12px]" aria-hidden="true"></div><div class="pointer-events-none absolute inset-0 z-10 hidden rounded-post-artifact sm:block" style="box-shadow:inset 0 0 0 1px var(--contact-panel-border)" aria-hidden="true"></div><div class="relative z-20 grid h-full grid-cols-1 gap-6 px-gutter py-6 sm:p-6 md:grid-cols-[minmax(0,1fr)_auto] md:grid-rows-[auto_1fr_auto] md:gap-x-12 md:gap-y-0"><div class="order-1 flex w-full select-text flex-col text-center md:col-start-1 md:row-start-1 md:max-w-[calc(var(--post-artifact-width)/2)] md:pt-2 md:pl-2 md:text-left gap-4"><p class="text-title-body font-[350] leading-[1.3]! text-fg text-balance mx-auto max-w-[28ch] sm:mx-0 sm:max-w-none"><span class="text-fg/50">Letâs transform your industry with AI.</span> <span class="text-nowrap sm:whitespace-normal">Get in touch.</span></p></div><div class="relative z-30 order-3 flex items-center justify-center overflow-visible md:order-none md:col-start-2 md:row-span-3 md:row-start-1 md:justify-start"><div class="shrink-0 overflow-visible"><div data-contact-keyboard-card=""><div class="pointer-events-none origin-top" style="opacity:0;transform:translateX(30px) translateY(-420px) rotate(-12deg)"><div class="origin-bottom" style="transform:none"><div data-persona-capture-phase="name" class="w-70 h-80 rounded-[1.3125rem] relative shadow-mild" style="transform:none"><div class="absolute inset-0 overflow-hidden rounded-[1.3125rem] border border-[var(--persona-capture-card-outline)] p-1 pt-5 backdrop-blur-[24px] [clip-path:inset(0_round_1.3125rem)] bg-[var(--persona-capture-shell-bg)]"><div data-drag-handle="" class="absolute inset-x-0 top-0 z-10 h-6 touch-none pointer-coarse:touch-pan-y cursor-grab active:cursor-grabbing"><div class="absolute inset-x-30 top-1.5 h-2 rounded-full bg-fg/12"></div></div><div class="absolute inset-x-0 bottom-0 contain-layout h-12 flex items-center pointer-events-none" inert="" style="opacity:0"><label class="flex items-center gap-2 text-sm text-fg/50 cursor-pointer select-none h-full w-full pb-1.5 px-4.5"><div class="relative size-4 items-center justify-center"><input type="checkbox" tabindex="-1" class="peer size-4 appearance-none rounded-sm bg-fg/20 cursor-pointer transition-colors duration-150"/><svg viewBox="0 0 36 36" fill="none" aria-hidden="true" class="pointer-events-none absolute inset-0 size-full transition-opacity duration-150 opacity-0 stroke-3!" style="color:#000000"><path fill-rule="evenodd" clip-rule="evenodd" d="M26.3366 11.3116L16.2422 25.9644L9.96255 19.2332C9.53872 18.7789 9.56342 18.067 10.0177 17.6432C10.472 17.2193 11.1839 17.244 11.6078 17.6983L15.9776 22.3824L24.4837 10.0352L2
9326.3366 11.3116Z" fill="currentColor"></path></svg></div><span class="h-4 flex items-center truncate mt-px text-sm">Receive updates</span><a class="text-sm underline hover:text-fg ml-auto transition-colors duration-200" href="/privacy" target="_blank" data-discover="true">Privacy</a></label></div><div data-persona-card="" class="relative flex flex-col gap-3 overflow-hidden rounded-[1.0625rem] bg-[var(--persona-capture-card-bg)] outline outline-[var(--persona-capture-inner-outline)]" style="height:calc(100% - 0rem)"><div data-persona-content="header" aria-hidden="false" class="relative flex flex-col gap-3 p-4 pb-0"><div class="flex items-start justify-between"><div class="relative size-14 shrink-0"><div class="relative isolate size-14 overflow-hidden rounded-full bg-fg/4"><div class="absolute inset-4 rounded-full bg-fg/24"></div><div class="absolute inset-x-2 -bottom-7 size-10 rounded-full bg-fg/24"></div></div></div></div></div><form noValidate="" data-persona-content="fields" aria-hidden="false" autoComplete="on" class="relative h-full overflow-clip"><div class="absolute left-0 p-4 flex flex-col justify-end items-start" style="padding-right:64px;top:calc(100% + -94px);height:94px;opacity:1;transform:none"><p class="text-footnote font-[400] text-balance leading-[1.4] flex items-start text-fg" style="opacity:1;height:26px">Whatâs your name?</p><div class="h-8 origin-bottom-left flex items-center justify-center" style="font-size:21px"><input type="name" required="" placeholder="" autoComplete="name" class="w-full cursor-text border-none bg-transparent px-0 text-fg outline-none read-only:cursor-pointer placeholder:text-muted/50" name="name" value=""/></div></div><div class="absolute left-0 p-4 flex flex-col justify-end items-start pointer-events-none" inert="" style="padding-right:64px;top:calc(100% + -94px);height:94px;opacity:0;transform:translateY(94px)"><p class="text-footnote font-[400] text-balance leading-[1.4] flex items-start text-fg/70" style="opacity:1;height:26px">Whatâs your email?</p><div class="h-8 origin-bottom-left flex items-center justify-center" style="font-size:21px"><input type="email" required="" placeholder="" autoComplete="email" tabindex="-1" class="w-full cursor-text border-none bg-transparent px-0 text-fg outline-none read-only:cursor-pointer placeholder:text-muted/50" name="email" value=""/></div></div><div class="absolute left-0 p-4 flex flex-col justify-end items-start pointer-events-none" inert="" style="padding-right:64px;top:calc(100% + -94px);height:94px;opacity:0;transform:translateY(94px)"><p class="text-footnote font-[400] text-balance leading-[1.4] flex items-start text-fg/70" style="opacity:1;height:26px">Whatâs your role?</p><div class="h-8 origin-bottom-left flex items-center justify-center" style="font-size:21px"><div class="relative"><span aria-hidden="true" class="pointer-events-none absolute inset-0 flex items-center truncate whitespace-pre"><span class="invisible"></span><span class="text-muted/30"></span></span><input type="text" placeholder="Your role" autoComplete="off" tabindex="-1" class="relative w-full border-none bg-transparent px-0 text-fg outline-none read-only:cursor-default placeholder:text-muted/50" value=""/></div></div></div></form><div class="absolute inset-0 pointer-events-none"><div data-persona-submit-control="" class="absolute size-8 transition-opacity duration-300" style="right:0%;bottom:calc(0% - 0px);transform:translateX(-50%) translateY(-50%)"><div class="absolute inset-0" style="pointer-events:auto"><div aria-label="Next step" style="color:var(--persona-capture-action-fg);background-color:transparent;box-shadow:0 1px 2px var(--persona-capture-action-shadow);outline:1pt solid var(--persona-capture-action-outline)" data-no-drag="true" class="flex size-8 shrink-0 items-center justify-center rounded-full cursor-pointer p-0 bg-fg/6 text-fg *:absolute *:inset-0 *:size-full transition-[background-color,color,border-color,transform,bottom,scale] duration-300 border border-transparent touch:scale-100 active:scale-95"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="transition-[opacity,transform] duration-300 size-full scale-100 opacity-40" style="color:var(--muted)"><path d="M22 15.9961L10 15.9961" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path><path d="M17 11L22 16L17 21" stroke="currentColor" stroke-width="2" stroke-linecap="round"></path></svg><svg viewBox="0 0 36 36" fill="none" aria-hidden="true" class="transition-[opacity,transform] duration-300 size-full scale-50 opacity-0"><path fill-rule="evenodd" clip-rule="evenodd" d="M26.3366 11.3116L16.2422 25.9644L9.96255 19.2332C9.53872 18.7789 9.56342 18.067 10.0177 17.6432C10.472 17.2193 11.1839 17.244 11.6078 17.6983L15.9776 22.3824L24.4837 10.0352L2
9326.3366 11.3116Z" fill="currentColor"></path></svg></div></div></div></div></div></div><div role="alert" class="sr-only" aria-atomic="true"><span></span></div></div></div></div></div></div></div><div class="order-2 flex flex-col items-center md:order-none md:col-start-1 md:row-start-3 md:items-start md:pb-2 md:pl-2"><div class="translate-y-[2pt] flex flex-wrap items-center gap-2 md:-ml-[6pt]"><div style="--email-link-tint:#ffffff" class="flex w-fit items-stretch overflow-hidden rounded-full pl-3 text-fg group/chip bg-fg/4"><div role="link" tabindex="0" class="email-address relative flex min-w-0 cursor-pointer items-center py-1 font-lining text-caption font-[350] tracking-[-0.02em] select-text"><span class="flex h-full shrink-0 items-center"></span></div><div data-copy-button="" class="relative z-10 flex shrink-0 items-center -ml-[3.5rem] overflow-visible py-1 pr-1 transition-[margin] duration-500 ease-damped-spring group-data-[expanded]/chip:ml-3"><div class="isolate flex shrink-0 items-center overflow-visible rounded-full bg-bg" tabindex="0"><button type="button" class="inline-flex h-7 cursor-pointer items-center justify-center overflow-visible py-1 px-2.5 font-sans text-footnote font-[400] tracking-[-0.02em] text-fg rounded-full bg-bg outline-[1pt] outline-fg/6 shadow-[0_1px_2px_color-mix(in_srgb,var(--fg)_6%,transparent)]" aria-label="Copy email address"><span class="relative inline-grid overflow-visible font-sans text-footnote"><span aria-hidden="true" class="invisible col-start-1 row-start-1 inline-block overflow-hidden whitespace-nowrap" style="width:4ch">Copied</span><span class="pointer-events-none col-start-1 row-start-1 overflow-visible"><span class="absolute inset-0 flex items-center justify-center overflow-visible whitespace-nowrap" style="opacity:1;transform:none">Copy</span></span></span></button></div></div></div></div></div></div></div></div></section><div class="site-footer-theme text-fg" data-footer-appearance="dark"><footer class="relative max-w-screen overflow-hidden font-normal text-fg"><div class="relative mx-auto max-w-screen px-8 pt-16 pb-10"><div class="grid grid-cols-1 gap-10 min-[480px]:grid-cols-2 sm:grid-cols-5"><div class="hidden h-full flex-col justify-end pb-2 sm:flex"><p class="text-body sm:text-title-body font-normal leading-tight" style="opacity:0"><span class="block">New</span><span class="block">Material</span></p></div><div><h3 class="text-base font-[400] text-fg/50" style="opacity:0">Contact</h3><ul class="mt-4 space-y-1"><div style="opacity:0"><li class="relative"><a class="cursor-pointer active:opacity-70 -mx-2 relative block overflow-hidden rounded-l-lg rounded-r-lg p-1.5 pl-2 transition-colors duration-200 touch:bg-fg/6 [@media(hover:hover)_and_(pointer:fine)]:rounded-r-[1.125rem]" style="perspective:600px" href="#"><span class="relative flex items-center justify-between"><span class="pointer-events-none invisible whitespace-nowrap text-base">Get in touch</span><span class="absolute inset-0 flex items-center" style="perspective:600px"><span class="block whitespace-nowrap text-base" style="opacity:1;transform:none">Get in touch</span></span><span class="text-base text-fg/40 [@media(hover:hover)_and_(pointer:fine)]:invisible"><span style="opacity:1;transform:none"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="size-6"><path d="M14 11L19 16L14 21" stroke="currentColor" stroke-opacity="1" stroke-width="2.5" stroke-linecap="round"></path></svg></span></span></span></a><div class="absolute top-1/2 -right-1 hidden origin-center -translate-y-1/2 transition-[opacity,scale] duration-200 ease-out [@media(hover:hover)_and_(pointer:fine)]:block pointer-events-none scale-90 opacity-0 has-[:focus-visible]:pointer-events-auto has-[:focus-visible]:scale-100 has-[:focus-visible]:opacity-100"><div class="isolate flex shrink-0 items-center overflow-visible rounded-full bg-bg" tabindex="0"><button type="button" class="inline-flex h-7 cursor-pointer items-center justify-center overflow-visible py-1 px-2.5 font-sans text-footnote font-[400] tracking-[-0.02em] text-fg rounded-full bg-bg outline-[1pt] outline-fg/6 shadow-[0_1px_2px_color-mix(in_srgb,var(--fg)_6%,transparent)]" aria-label="Copy email address">Copy</button></div></div></li></div><div style="opacity:0">
932<li class="relative"><a class="cursor-pointer active:opacity-70 -mx-2 relative block overflow-hidden rounded-l-lg rounded-r-lg p-1.5 pl-2 transition-colors duration-200 touch:bg-fg/6 [@media(hover:hover)_and_(pointer:fine)]:rounded-r-[1.125rem]" style="perspective:600px" href="#"><span class="relative flex items-center justify-between"><span class="pointer-events-none invisible whitespace-nowrap text-base">Press Inquiries</span><span class="absolute inset-0 flex items-center" style="perspective:600px"><span class="block whitespace-nowrap text-base" style="opacity:1;transform:none">Press Inquiries</span></span><span class="text-base text-fg/40 [@media(hover:hover)_and_(pointer:fine)]:invisible"><span style="opacity:1;transform:none"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="size-6"><path d="M14 11L19 16L14 21" stroke="currentColor" stroke-opacity="1" stroke-width="2.5" stroke-linecap="round"></path></svg></span></span></span></a><div class="absolute top-1/2 -right-1 hidden origin-center -translate-y-1/2 transition-[opacity,scale] duration-200 ease-out [@media(hover:hover)_and_(pointer:fine)]:block pointer-events-none scale-90 opacity-0 has-[:focus-visible]:pointer-events-auto has-[:focus-visible]:scale-100 has-[:focus-visible]:opacity-100"><div class="isolate flex shrink-0 items-center overflow-visible rounded-full bg-bg" tabindex="0"><button type="button" class="inline-flex h-7 cursor-pointer items-center justify-center overflow-visible py-1 px-2.5 font-sans text-footnote font-[400] tracking-[-0.02em] text-fg rounded-full bg-bg outline-[1pt] outline-fg/6 shadow-[0_1px_2px_color-mix(in_srgb,var(--fg)_6%,transparent)]" aria-label="Copy email address">Copy</button></div></div></li></div></ul></div><div><h3 class="text-base font-[400] text-fg/50" style="opacity:0">Products</h3><ul class="mt-4 space-y-1"><div style="opacity:0"><li class="relative"><a class="cursor-pointer active:opacity-70 -mx-2 relative block overflow-hidden rounded-l-lg rounded-r-lg p-1.5 pl-2 transition-colors duration-200 touch:bg-fg/6" style="perspective:600px" href="https://apps.apple.com/us/app/fieldday-real-world-ai/id6448133483" target="_blank" rel="noopener noreferrer"><span class="relative flex items-center justify-between"><span class="pointer-events-none invisible whitespace-nowrap text-base">Get on the App Store</span><span class="absolute inset-0 flex items-center" style="perspective:600px"><span class="block whitespace-nowrap text-base" style="opacity:1;transform:none">FieldDay</span></span><span class="text-base text-fg/40"><span style="opacity:1;transform:none"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="size-6"><path d="M14 11L19 16L14 21" stroke="currentColor" stroke-opacity="1" stroke-width="2.5" stroke-linecap="round"></path></svg></span></span></span></a></li></div><div style="opacity:0"><li class="relative"><a class="cursor-pointer active:opacity-70 -mx-2 relative block overflow-hidden rounded-l-lg rounded-r-lg p-1.5 pl-2 transition-colors duration-200 touch:bg-fg/6" style="perspective:600px" href="https://apps.apple.com/gb/app/anonymous-camera/id1504102584" target="_blank" rel="noopener noreferrer"><span class="relative flex items-center justify-between"><span class="pointer-events-none invisible whitespace-nowrap text-base">Get on the App Store</span><span class="absolute inset-0 flex items-center" style="perspective:600px"><span class="block whitespace-nowrap text-base" style="opacity:1;transform:none">Anonymous Camera</span></span><span class="text-base text-fg/40"><span style="opacity:1;transform:none"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="size-6"><path d="M14 11L19 16L14 21" stroke="currentColor" stroke-opacity="1" stroke-width="2.5" stroke-linecap="round"></path></svg></span></span></span></a></li></div></ul></div><div><h3 class="text-base font-[400] text-fg/50" style="opacity:0">Elsewhere</h3><ul class="mt-4 space-y-1"><div style="opacity:0"><li><a class="cursor-pointer active:opacity-70 group/simple -mx-2 flex items-center justify-between rounded-lg p-1.5 pl-2 text-base transition-colors duration-200 touch:bg-fg/6" href="https://linkedin.com/company/newmaterialco" target="_blank" rel="noopener noreferrer"><span class="flex items-center gap-2"><span>LinkedIn</span></span><span class="text-fg/40 opacity-0 transition-opacity duration-200 group-hover/simple:opacity-100 data-[copied=true]:opacity-100" data-copied="false"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="size-6 text-fg/40"><path d="M14 11L19 16L14 21" stroke="currentColor" stroke-opacity="1" stroke-width="2.5" stroke-linecap="round"></path></svg></span></a></li></div><div style="opacity:0">
932<li><a class="cursor-pointer active:opacity-70 group/simple -mx-2 flex items-center justify-between rounded-lg p-1.5 pl-2 text-base transition-colors duration-200 touch:bg-fg/6" href="https://x.com/newmaterialai" target="_blank" rel="noopener noreferrer"><span class="flex items-center gap-2"><span>X</span></span><span class="text-fg/40 opacity-0 transition-opacity duration-200 group-hover/simple:opacity-100 data-[copied=true]:opacity-100" data-copied="false"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="size-6 text-fg/40"><path d="M14 11L19 16L14 21" stroke="currentColor" stroke-opacity="1" stroke-width="2.5" stroke-linecap="round"></path></svg></span></a></li></div></ul></div><div><h3 class="text-base font-[400] text-fg/50" style="opacity:0">Legal</h3><ul class="mt-4 space-y-1"><div style="opacity:0"><li><a class="cursor-pointer active:opacity-70 group/simple -mx-2 flex items-center justify-between rounded-lg p-1.5 pl-2 text-base transition-colors duration-200 touch:bg-fg/6" href="/privacy" data-discover="true"><span class="flex items-center gap-2"><span>Privacy</span></span><span class="text-fg/40 opacity-0 transition-opacity duration-200 group-hover/simple:opacity-100 data-[copied=true]:opacity-100" data-copied="false"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="size-6 text-fg/40"><path d="M14 11L19 16L14 21" stroke="currentColor" stroke-opacity="1" stroke-width="2.5" stroke-linecap="round"></path></svg></span></a></li></div><div style="opacity:0"><li><a class="cursor-pointer active:opacity-70 group/simple -mx-2 flex items-center justify-between rounded-lg p-1.5 pl-2 text-base transition-colors duration-200 touch:bg-fg/6" href="/terms" data-discover="true"><span class="flex items-center gap-2"><span>Terms of Service</span></span><span class="text-fg/40 opacity-0 transition-opacity duration-200 group-hover/simple:opacity-100 data-[copied=true]:opacity-100" data-copied="false"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" class="size-6 text-fg/40"><path d="M14 11L19 16L14 21" stroke="currentColor" stroke-opacity="1" stroke-width="2.5" stroke-linecap="round"></path></svg></span></a></li></div></ul></div></div><p class="mt-10 text-body font-normal leading-tight sm:hidden"><span class="block">New</span><span class="block">Material</span></p><p class="mt-8 w-full text-sm text-fg/50 leading-relaxed select-text sm:mt-16 sm:flex sm:items-baseline sm:justify-between sm:gap-6"><span>© 2026 New Material, Inc. All rights reserved.</span> <span class="sm:hidden">· </span><span>New Material Studio Ltd, registered in England and Wales Nº 14847657 · VAT GB 446 8088 60</span></p></div></footer></div></div></div></div><div class="fixed bottom-0 left-0 pointer-events-none z-490" style="width:min(100vw, 600px, calc(400px + 5vw));height:min(50vw, 150px, calc(200px + 2.5vw));background:radial-gradient(ellipse min(100vw, 600px, calc(400px + 5vw)) min(50vw, 150px, calc(200px + 2.5vw)) at 0% 100%, color-mix(in srgb, var(--bg) 100.0%, transparent) 0.00%, color-mix(in srgb, var(--bg) 98.7%, transparent) 4.05%, color-mix(in srgb, var(--bg) 95.1%, transparent) 7.75%, color-mix(in srgb, var(--bg) 89.6%, transparent) 11.25%, color-mix(in srgb, var(--bg) 82.5%, transparent) 14.50%, color-mix(in srgb, var(--bg) 74.1%, transparent) 17.65%, color-mix(in srgb, var(--bg) 64.8%, transparent) 20.60%, color-mix(in srgb, var(--bg) 55.0%, transparent) 23.55%, color-mix(in srgb, var(--bg) 45.0%, transparent) 26.45%, color-mix(in srgb, var(--bg) 35.2%, transparent) 29.40%, color-mix(in srgb, var(--bg) 25.9%, transparent) 32.35%, color-mix(in srgb, var(--bg) 17.5%, transparent) 35.05%, color-mix(in srgb, var(--bg) 10.4%, transparent) 37.75%, color-mix(in srgb, var(--bg) 4.9%, transparent) 40.10%, color-mix(in srgb, var(--bg) 1.9%, transparent) 43.05%, color-mix(in srgb, var(--bg) 0.1%, transparent) 45.55%, color-mix(in srgb, var(--bg) 0.0%, transparent) 50.00%);opacity:0"></div><div data-persistent-context-control="" class="site-context-control-y fixed bottom-0 left-0 z-500 site-context-control-y-hidden" aria-hidden="true" style="color:#ffffff;pointer-events:none"><div class="p-3 pointer-coarse:pb-1" tabindex="0" style="transform:none"><div data-context-control-appearance="dock" class="site-context-control-surface flex items-center cursor-pointer relative group border border-current/12 hover:border-transparent roun
932ded-full p-3 backdrop-blur-[3px] shadow-none" style="view-transition-name:site-controls-a;view-transition-class:site-controls"><div class="size-6 shrink-0 relative pointer-events-auto"><div class="absolute inset-0" style="opacity:1;transform:none"><div class="absolute inset-0"><div data-scroll-spinner-scroll="" class="size-full" style="rotate:0deg"><div data-scroll-spinner-idle="" class="size-full" style="transform:none"><svg width="32" height="32" viewBox="-8 -8 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" overflow="visible" class="absolute -left-1/2 -top-1/2 size-[200%]"><title>Loading</title><circle cx="13" cy="8" r="1.5" fill="currentColor"></circle><circle cx="10.5" cy="12.330127018922193" r="1.5" fill="currentColor"></circle><circle cx="5.500000000000001" cy="12.330127018922195" r="1.5" fill="currentColor"></circle><circle cx="3" cy="8" r="1.5" fill="currentColor"></circle><circle cx="5.499999999999998" cy="3.669872981077808" r="1.5" fill="currentColor"></circle><circle cx="10.5" cy="3.6698729810778072" r="1.5" fill="currentColor"></circle></svg></div></div></div></div><div class="absolute top-1/2 left-1/2 size-16" style="opacity:1;transform:translateX(-50%) translateY(-50%) scale(0.375)"><div class="absolute inset-0 size-full" style="opacity:0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" class="size-full"><circle cx="8" cy="8" r="3.35938" fill="currentColor"></circle></svg></div><div class="absolute inset-0 size-full" style="opacity:0;transform:scale(0.133) rotate(45deg)"><svg viewBox="0 0 32 32" fill="none" aria-hidden="true" data-more-from-context-blob-plus="" class="size-full text-white"><path fill-rule="evenodd" clip-rule="evenodd" d="M15 17V23H17V17H23V15H17V9H15V15H9V17H15Z" fill="currentColor"></path></svg></div></div></div><div class="overflow-hidden pointer-events-none transition-[max-width,margin,opacity] duration-500 ease-out max-w-0 ml-0 mr-0 opacity-0"><p class="text-caption whitespace-nowrap translate-y-px">More from context</p></div><p class="absolute inset-y-0 left-12 ml-1 w-screen text-caption text-start pointer-events-none shrink-0 flex items-center transition-[opacity,translate] duration-300 ease-in-out translate-y-[calc(100%+1px)] group-hover:translate-y-px opacity-0 group-hover:opacity-100">More from context</p></div></div></div></div><output aria-live="polite" aria-atomic="true" class="sr-only"></output></div><form class="fixed bottom-4 right-4 hidden" data-discover="true" action="/" method="post"><button type="submit" tabindex="0" value="light" class="inline-flex shrink-0 cursor-pointer items-center justify-center gap-1.5 rounded-full font-medium whitespace-nowrap transition-[background-color,color,box-shadow,border-color] duration-150 outline-none focus-visible:ring-[3px] focus-visible:ring-ring/30 disabled:pointer-events-none disabled:opacity-50 [&_svg]:shrink-0 text-muted touch:bg-secondary touch:text-fg h-8 px-3.5 text-xs" name="color-scheme">Light</button><button type="submit" tabindex="0" value="dark" class="inline-flex shrink-0 cursor-pointer items-center justify-center gap-1.5 rounded-full font-medium whitespace-nowrap transition-[background-color,color,box-shadow,border-color] duration-150 outline-none focus-visible:ring-[3px] focus-visible:ring-ring/30 disabled:pointer-events-none disabled:opacity-50 [&_svg]:shrink-0 text-muted touch:bg-secondary touch:text-fg h-8 px-3.5 text-xs" name="color-scheme">Dark</button><button type="submit" tabindex="0" value="system" class="inline-flex shrink-0 cursor-pointer items-center justify-center gap-1.5 rounded-full font-medium whitespace-nowrap transition-[background-color,color,box-shadow,border-color] duration-150 outline-none focus-visible:ring-[3px] focus-visible:ring-ring/30 disabled:pointer-events-none disabled:opacity-50 [&_svg]:shrink-0 text-muted touch:bg-secondary touch:text-fg h-8 px-3.5 text-xs" name="color-scheme">System</button></form>
932<script>((storageKey2, restoreKey) => { 933 if (!window.history.state || !window.history.state.key) { 934 let key = Math.random().toString(32).slice(2); 935 window.history.replaceState({ 936 key 937 }, ""); 938 } 939 try { 940 let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}"); 941 let storedY = positions[restoreKey || window.history.state.key]; 942 if (typeof storedY === "number") { 943 window.scrollTo(0, storedY); 944 } 945 } catch (error2) { 946 console.error(error2); 947 sessionStorage.removeItem(storageKey2); 948 } 949 })("react-router-scroll-positions", null)</script>
949<script>window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":false,"unstable_subResourceIntegrity":false,"unstable_trailingSlashAwareDataRequests":false,"v8_middleware":true,"v8_splitRouteModules":false,"v8_viteEnvironmentApi":true},"routeDiscovery":{"mode":"lazy","manifestPath":"/__manifest"},"ssr":true,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script>
949<script type="module" async="">; 950import * as route0 from "/assets/root-CVBVwr96.js"; 951import * as route1 from "/assets/content.layout-CjjI5vuO.js"; 952import * as route2 from "/assets/stories.slug-DpvAxIgU.js"; 953 window.__reactRouterManifest = { 954 "entry": { 955 "module": "/assets/entry.client-jqb2piIo.js", 956 "imports": [ 957 "/assets/jsx-runtime-u17CrQMm.js", 958 "/assets/chunk-EPOLDU6W-DDKLhvzC.js", 959 "/assets/index-7OC5HNn7.js", 960 "/assets/index-nIknq2ud.js" 961 ], 962 "css": [] 963 }, 964 "routes": { 965 "root": { 966 "id": "root", 967 "path": "", 968 "hasAction": true, 969 "hasLoader": true, 970 "hasClientAction": false, 971 "hasClientLoader": false, 972 "hasClientMiddleware": false, 973 "hasErrorBoundary": true, 974 "module": "/assets/root-CVBVwr96.js", 975 "imports": [ 976 "/assets/jsx-runtime-u17CrQMm.js", 977 "/assets/chunk-EPOLDU6W-DDKLhvzC.js", 978 "/assets/index-7OC5HNn7.js", 979 "/assets/index-nIknq2ud.js", 980 "/assets/preload-helper-BXl3LOEh.js", 981 "/assets/lightbox-context-DAuiXBBD.js", 982 "/assets/use-motion-value-event-DnAAq14n.js", 983 "/assets/button-D2XkC4S1.js", 984 "/assets/tooltip-_x8vZoE_.js", 985 "/assets/index-CuF72Boz.js", 986 "/assets/utils-BS5inCOb.js", 987 "/assets/useButton-BaC4TK_w.js", 988 "/assets/useRenderElement-ByvCCVxT.js", 989 "/assets/createBaseUIEventDetails-L9OVrBJ6.js", 990 "/assets/popupStateMapping-D96L6Nu6.js", 991 "/assets/useBaseUiId-2jn-_8Ix.js", 992 "/assets/element-BCnqlMgX.js", 993 "/assets/useTimeout-Dtp6uYGR.js", 994 "/assets/owner-Dm6pnmkm.js", 995 "/assets/useFocus-CClKL5R_.js", 996 "/assets/safePolygon-B0Oyhrlw.js", 997 "/assets/getDisabledMountTransitionStyles-CxtbxEyo.js", 998 "/assets/floating-ui.utils-BiZy_si2.js", 999 "/assets/DirectionContext-BZBed3Uc.js", 1000 "/assets/usePopupAutoResize-BVaCeFa9.js" 1001 ], 1002 "css": [ 1003 "/assets/root-qARLWNin.css" 1004 ] 1005 }, 1006 "routes/content.layout": { 1007 "id": "routes/content.layout", 1008 "parentId": "root", 1009 "hasAction": false, 1010 "hasLoader": false, 1011 "hasClientAction": false, 1012 "hasClientLoader": false, 1013 "hasClientMiddleware": false, 1014 "hasErrorBoundary": false, 1015 "module": "/assets/content.layout-CjjI5vuO.js", 1016 "imports": [ 1017 "/assets/chunk-EPOLDU6W-DDKLhvzC.js", 1018 "/assets/jsx-runtime-u17CrQMm.js", 1019 "/assets/icons-DSyQTBjT.js", 1020 "/assets/image-DiLk8n9P.js", 1021 "/assets/utils-BS5inCOb.js", 1022 "/assets/use-reduced-motion-BAETq9Nb.js", 1023 "/assets/index-CkZSuJ9p.js", 1024 "/assets/proxy-DvfufeLI.js", 1025 "/assets/content-visibility-GQQGOf1O.js", 1026 "/assets/quote-gallery-BGw5Y9A9.js", 1027 "/assets/typograph-CsL4lFT6.js", 1028 "/assets/index-CuF72Boz.js", 1029 "/assets/artifact-visual-analysis-Bwq68FpZ.js", 1030 "/assets/paper-stack-_BS6s43l.js", 1031 "/assets/tint-DSUULco-.js", 1032 "/assets/home-C2Btszmj.js", 1033 "/assets/portfolio-taxonomy-aq57wR6I.js", 1034 "/assets/use-drag-controls-7rqJ6DAa.js", 1035 "/assets/index-DmW9LlW4.js", 1036 "/assets/use-transform-Di-X5ZZY.js", 1037 "/assets/presence-types-D_mDXtxz.js", 1038 "/assets/persona-capture-form-COZg-zPr.js", 1039 "/assets/discord-presence-context-4e2_4OGV.js", 1040 "/assets/app-store-B1FRaRir.js", 1041 "/assets/featured-app-privacy-context-DWGVRxa5.js", 1042 "/assets/showcase-qr-dialog-walk7PN5.js", 1043 "/assets/flipbook-gallery-D9tvbt7A.js", 1044 "/assets/section-list-CibZXy6X.js", 1045 "/assets/site-context-control-_Y4noZUV.js", 1046 "/assets/MotionConfigContext-D_WkdJ8J.js", 1047 "/assets/use-in-view-B89Mrsbm.js", 1048 "/assets/gallery-progress-dots-Pde1NSDP.js", 1049 "/assets/lightbox-context-DAuiXBBD.js", 1050 "/assets/site-header-context--mVWwM2O.js", 1051 "/assets/use-motion-value-event-DnAAq14n.js", 1052 "/assets/analytics.client-COam7ciE.js", 1053 "/assets/devices-BJQoVHhU.js", 1054 "/assets/index-nIknq2ud.js", 1055 "/assets/remark-typograph-D2NaBMTg.js", 1056 "/assets/index-Cn7hrrKz.js", 1057 "/assets/avatar-dot-BGUZZVlE.js", 1058 "/assets/tooltip-_x8vZoE_.js", 1059 "/assets/useRenderElement-ByvCCVxT.js", 1060 "/assets/createBaseUIEventDetails-L9OVrBJ6.js", 1061 "/assets/popupStateMapping-D96L6Nu6.js", 1062 "/assets/useBaseUiId-2jn-_8Ix.js", 1063 "/assets/element-BCnqlMgX.js", 1064 "/assets/useTimeout-Dtp6uYGR.js", 1065 "/assets/owner-Dm6pnmkm.js", 1066 "/assets/useFocus-CClKL5R_.js", 1067 "/assets/safePolygon-B0Oyhrlw.js", 1068 "/assets/getDisabledMountTransitionStyles-CxtbxEyo.js", 1069 "/assets/floating-ui.utils-BiZy_si2.js", 1070 "/assets/DirectionContext-BZBed3Uc.js", 1071 "/assets/usePopupAutoResize-BVaCeFa9.js", 1072 "/assets/image-placeholder-f_Uj4rT2.js", 1073 "/assets/navigation-placeholder-CsFGDdUj.js", 1074 "/assets/navigation-seed-ybS7nvwd.js", 1075 "/assets/person-BNIsIt8P.js", 1076 "/assets/speech-bubble-path-nGU9T00G.js", 1077 "/assets/context-arrow-control-D3l2jq4H.js", 1078 "/assets/use-mobile-Bg-RD5Oy.js", 1079 "/assets/text-shimmer-CJPjEQUk.js", 1080 "/assets/action-helpers-DkKLodi9.js", 1081 "/assets/schemas-cszQidbv.js", 1082 "/assets/artifact.index-B5slPMIl.js", 1083 "/assets/video-artifact-CoeCJnKG.js", 1084 "/assets/artifact-hearts.client-COtUZFKh.js", 1085 "/assets/app-clip-yd5BNHgz.js", 1086 "/assets/random-uuid-Bbe8nWZn.js", 1087 "/assets/favorite-heart-control-Bkd8dics.js", 1088 "/assets/content-types-D_mEm2eJ.js", 1089 "/assets/focus-CMrwnIoW.js", 1090 "/assets/seo-B90DoU_c.js", 1091 "/assets/styles-lmQY2dAH.js", 1092 "/assets/ScrollAreaThumb-CIcpC5Fc.js", 1093 "/assets/use-event-source-BkUmBtoq.js", 1094 "/assets/button-D2XkC4S1.js", 1095 "/assets/useButton-BaC4TK_w.js", 1096 "/assets/dialog-Ckv6RMpM.js", 1097 "/assets/DialogTrigger-CconnOQ0.js", 1098 "/assets/composite-BEMs77xx.js", 1099 "/assets/useOpenInteractionType-DLO05xoO.js", 1100 "/assets/home-attention-D3MBHtrV.js", 1101 "/assets/format-date-yaQnJ40C.js", 1102 "/assets/animated-shuffle-icon-0hm9rJm-.js" 1103 ], 1104 "css": [ 1105 "/assets/text-shimmer-Xoih4BZU.css" 1106 ] 1107 }, 1108 "routes/stories.slug": { 1109 "id": "routes/stories.slug", 1110 "parentId": "routes/content.layout", 1111 "path": "stories/:slug", 1112 "hasAction": false, 1113 "hasLoader": true, 1114 "hasClientAction": false, 1115 "hasClientLoader": true, 1116 "hasClientMiddleware": false, 1117 "hasErrorBoundary": false, 1118 "module": "/assets/stories.slug-DpvAxIgU.js", 1119 "imports": [ 1120 "/assets/stories.slug-C0kjpYhL.js", 1121 "/assets/chunk-EPOLDU6W-DDKLhvzC.js", 1122 "/assets/jsx-runtime-u17CrQMm.js",
1123 "/assets/site-controls-CJ-AKeIW.js", 1124 "/assets/MotionConfigContext-D_WkdJ8J.js", 1125 "/assets/index-CuF72Boz.js", 1126 "/assets/proxy-DvfufeLI.js", 1127 "/assets/analytics.client-COam7ciE.js", 1128 "/assets/index-DmW9LlW4.js", 1129 "/assets/use-transform-Di-X5ZZY.js", 1130 "/assets/random-uuid-Bbe8nWZn.js", 1131 "/assets/artifact.index-B5slPMIl.js", 1132 "/assets/quote-gallery-BGw5Y9A9.js", 1133 "/assets/index-nIknq2ud.js", 1134 "/assets/image-DiLk8n9P.js", 1135 "/assets/devices-BJQoVHhU.js", 1136 "/assets/utils-BS5inCOb.js", 1137 "/assets/remark-typograph-D2NaBMTg.js", 1138 "/assets/index-Cn7hrrKz.js", 1139 "/assets/typograph-CsL4lFT6.js", 1140 "/assets/avatar-dot-BGUZZVlE.js", 1141 "/assets/tooltip-_x8vZoE_.js", 1142 "/assets/useRenderElement-ByvCCVxT.js", 1143 "/assets/createBaseUIEventDetails-L9OVrBJ6.js", 1144 "/assets/popupStateMapping-D96L6Nu6.js", 1145 "/assets/useBaseUiId-2jn-_8Ix.js", 1146 "/assets/element-BCnqlMgX.js", 1147 "/assets/useTimeout-Dtp6uYGR.js", 1148 "/assets/owner-Dm6pnmkm.js", 1149 "/assets/useFocus-CClKL5R_.js", 1150 "/assets/safePolygon-B0Oyhrlw.js", 1151 "/assets/getDisabledMountTransitionStyles-CxtbxEyo.js", 1152 "/assets/floating-ui.utils-BiZy_si2.js", 1153 "/assets/DirectionContext-BZBed3Uc.js", 1154 "/assets/usePopupAutoResize-BVaCeFa9.js", 1155 "/assets/image-placeholder-f_Uj4rT2.js", 1156 "/assets/navigation-placeholder-CsFGDdUj.js", 1157 "/assets/navigation-seed-ybS7nvwd.js", 1158 "/assets/person-BNIsIt8P.js", 1159 "/assets/tint-DSUULco-.js", 1160 "/assets/speech-bubble-path-nGU9T00G.js", 1161 "/assets/use-reduced-motion-BAETq9Nb.js", 1162 "/assets/index-CkZSuJ9p.js", 1163 "/assets/gallery-progress-dots-Pde1NSDP.js", 1164 "/assets/content-visibility-GQQGOf1O.js", 1165 "/assets/video-artifact-CoeCJnKG.js", 1166 "/assets/icons-DSyQTBjT.js", 1167 "/assets/artifact-hearts.client-COtUZFKh.js", 1168 "/assets/app-clip-yd5BNHgz.js", 1169 "/assets/favorite-heart-control-Bkd8dics.js", 1170 "/assets/use-in-view-B89Mrsbm.js", 1171 "/assets/content-types-D_mEm2eJ.js", 1172 "/assets/showcase-qr-dialog-walk7PN5.js", 1173 "/assets/button-D2XkC4S1.js", 1174 "/assets/useButton-BaC4TK_w.js", 1175 "/assets/dialog-Ckv6RMpM.js", 1176 "/assets/DialogTrigger-CconnOQ0.js", 1177 "/assets/composite-BEMs77xx.js", 1178 "/assets/useOpenInteractionType-DLO05xoO.js", 1179 "/assets/generation-indicator-BwScE45A.js", 1180 "/assets/index-BsWEDxGP.js", 1181 "/assets/paper-stack-_BS6s43l.js", 1182 "/assets/context-arrow-control-D3l2jq4H.js", 1183 "/assets/use-mobile-Bg-RD5Oy.js", 1184 "/assets/presence-types-D_mDXtxz.js", 1185 "/assets/discord-presence-context-4e2_4OGV.js", 1186 "/assets/use-event-source-BkUmBtoq.js", 1187 "/assets/text-shimmer-CJPjEQUk.js", 1188 "/assets/action-helpers-DkKLodi9.js", 1189 "/assets/schemas-cszQidbv.js", 1190 "/assets/persona-capture-form-COZg-zPr.js", 1191 "/assets/styles-lmQY2dAH.js", 1192 "/assets/ScrollAreaThumb-CIcpC5Fc.js", 1193 "/assets/use-motion-value-event-DnAAq14n.js", 1194 "/assets/site-context-control-_Y4noZUV.js", 1195 "/assets/section-list-CibZXy6X.js", 1196 "/assets/react-DZJN03Dt.js", 1197 "/assets/schema-BV-w-kaV.js", 1198 "/assets/index-ClaGlwFW.js", 1199 "/assets/preload-helper-BXl3LOEh.js", 1200 "/assets/session-agent.api-Chtn4JHc.js", 1201 "/assets/validation-helpers-C5GosE5M.js", 1202 "/assets/site-header-context--mVWwM2O.js", 1203 "/assets/featured-app-privacy-context-DWGVRxa5.js", 1204 "/assets/app-store-B1FRaRir.js", 1205 "/assets/lightbox-context-DAuiXBBD.js", 1206 "/assets/format-date-yaQnJ40C.js", 1207 "/assets/seo-B90DoU_c.js", 1208 "/assets/artifact-appearance-analysis-Bt9gkLUA.js" 1209 ], 1210 "css": [ 1211 "/assets/text-shimmer-Xoih4BZU.css" 1212 ] 1213 }, 1214 "routes/home": { 1215 "id": "routes/home", 1216 "parentId": "routes/content.layout", 1217 "index": true, 1218 "hasAction": false, 1219 "hasLoader": true, 1220 "hasClientAction": false, 1221 "hasClientLoader": true, 1222 "hasClientMiddleware": false, 1223 "hasErrorBoundary": false, 1224 "module": "/assets/home-BZC2TlDY.js", 1225 "imports": [ 1226 "/assets/home-C2Btszmj.js", 1227 "/assets/chunk-EPOLDU6W-DDKLhvzC.js", 1228 "/assets/jsx-runtime-u17CrQMm.js", 1229 "/assets/flipbook-gallery-D9tvbt7A.js", 1230 "/assets/index-nIknq2ud.js", 1231 "/assets/showcase-qr-dialog-walk7PN5.js", 1232 "/assets/utils-BS5inCOb.js", 1233 "/assets/icons-DSyQTBjT.js", 1234 "/assets/button-D2XkC4S1.js", 1235 "/assets/useButton-BaC4TK_w.js", 1236 "/assets/useRenderElement-ByvCCVxT.js", 1237 "/assets/dialog-Ckv6RMpM.js", 1238 "/assets/DialogTrigger-CconnOQ0.js", 1239 "/assets/popupStateMapping-D96L6Nu6.js", 1240 "/assets/useBaseUiId-2jn-_8Ix.js", 1241 "/assets/element-BCnqlMgX.js", 1242 "/assets/createBaseUIEventDetails-L9OVrBJ6.js", 1243 "/assets/useTimeout-Dtp6uYGR.js", 1244 "/assets/owner-Dm6pnmkm.js", 1245 "/assets/composite-BEMs77xx.js", 1246 "/assets/useOpenInteractionType-DLO05xoO.js", 1247 "/assets/artifact-hearts.client-COtUZFKh.js", 1248 "/assets/app-clip-yd5BNHgz.js", 1249 "/assets/random-uuid-Bbe8nWZn.js", 1250 "/assets/use-in-view-B89Mrsbm.js", 1251 "/assets/MotionConfigContext-D_WkdJ8J.js", 1252 "/assets/index-CuF72Boz.js", 1253 "/assets/proxy-DvfufeLI.js", 1254 "/assets/index-CkZSuJ9p.js", 1255 "/assets/use-reduced-motion-BAETq9Nb.js", 1256 "/assets/content-visibility-GQQGOf1O.js", 1257 "/assets/analytics.client-COam7ciE.js", 1258 "/assets/index-DmW9LlW4.js", 1259 "/assets/use-transform-Di-X5ZZY.js", 1260 "/assets/home-attention-D3MBHtrV.js", 1261 "/assets/video-artifact-CoeCJnKG.js", 1262 "/assets/devices-BJQoVHhU.js", 1263 "/assets/image-DiLk8n9P.js", 1264 "/assets/typograph-CsL4lFT6.js", 1265 "/assets/favorite-heart-control-Bkd8dics.js", 1266 "/assets/gallery-progress-dots-Pde1NSDP.js", 1267 "/assets/format-date-yaQnJ40C.js", 1268 "/assets/navigation-placeholder-CsFGDdUj.js", 1269 "/assets/navigation-seed-ybS7nvwd.js", 1270 "/assets/tint-DSUULco-.js", 1271 "/assets/animated-shuffle-icon-0hm9rJm-.js", 1272 "/assets/artifact.index-B5slPMIl.js", 1273 "/assets/quote-gallery-BGw5Y9A9.js", 1274 "/assets/remark-typograph-D2NaBMTg.js", 1275 "/assets/index-Cn7hrrKz.js", 1276 "/assets/avatar-dot-BGUZZVlE.js", 1277 "/assets/tooltip-_x8vZoE_.js", 1278 "/assets/useFocus-CClKL5R_.js", 1279 "/assets/safePolygon-B0Oyhrlw.js", 1280 "/assets/getDisabledMountTransitionStyles-CxtbxEyo.js", 1281 "/assets/floating-ui.utils-BiZy_si2.js", 1282 "/assets/DirectionContext-BZBed3Uc.js", 1283 "/assets/usePopupAutoResize-BVaCeFa9.js", 1284 "/assets/image-placeholder-f_Uj4rT2.js", 1285 "/assets/person-BNIsIt8P.js", 1286 "/assets/speech-bubble-path-nGU9T00G.js", 1287 "/assets/content-types-D_mEm2eJ.js", 1288 "/assets/section-list-CibZXy6X.js", 1289 "/assets/presence-types-D_mDXtxz.js", 1290 "/assets/discord-presence-context-4e2_4OGV.js", 1291 "/assets/use-event-source-BkUmBtoq.js", 1292 "/assets/focus-CMrwnIoW.js", 1293 "/assets/site-header-context--mVWwM2O.js", 1294 "/assets/seo-B90DoU_c.js", 1295 "/assets/portfolio-taxonomy-aq57wR6I.js" 1296 ], 1297 "css": [] 1298 }, 1299 "routes/alias": { 1300 "id": "routes/alias", 1301 "parentId": "root", 1302 "path": ":alias", 1303 "hasAction": false, 1304 "hasLoader": true, 1305 "hasClientAction": false, 1306 "hasClientLoader": false, 1307 "hasClientMiddleware": false, 1308 "hasErrorBoundary": false, 1309 "module": "/assets/alias-l0sNRNKZ.js", 1310 "imports": [], 1311 "css": [] 1312 } 1313 }, 1314 "url": "/assets/manifest-7255f81d.js", 1315 "version": "7255f81d" 1316}; 1317 window.__reactRouterRouteModules = {"root":route0,"routes/content.layout":route1,"routes/stories.slug":route2}; 1318 1319import("/assets/entry.client-jqb2piIo.js");</script>
1319<!--$-->
1319<script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_285\":-5,\"_286\":-5},\"loaderData\",{\"_3\":4,\"_13\":14},\"root\",{\"_5\":6,\"_7\":8,\"_9\":10,\"_11\":-5,\"_12\":-5},\"colorScheme\",\"system\",\"sessionAgentId\",\"DU8pfrkJ9EzzvkCskFPQBtTaTot7fF6l\",\"isAuthenticated\",false,\"adminUser\",\"announcementBanner\",\"routes/stories.slug\",{\"_15\":16,\"_17\":-5,\"_18\":19,\"_23\":177,\"_44\":178,\"_47\":179,\"_48\":28,\"_180\":181,\"_99\":182,\"_183\":10,\"_50\":-5,\"_184\":-5,\"_185\":-5,\"_186\":10,\"_187\":188,\"_189\":-5,\"_190\":-5,\"_92\":-5,\"_191\":-5,\"_192\":-5,\"_193\":194,\"_197\":198,\"_240\":-5,\"_241\":242,\"_274\":-5,\"_275\":276,\"_277\":278,\"_279\":-5,\"_280\":281,\"_282\":-7,\"_283\":284},\"recognition\",[],\"resources\",\"structure\",[20,31,174],{\"_21\":22,\"_23\":24,\"_25\":26,\"_27\":28,\"_29\":30},\"type\",\"section\",\"id\",\"18fe36187c93aacba8fdd0dcd93989c0\",\"heading\",\"\",\"markdown\",\"A series of visualizations depicting the core concepts of machine learning. In 2019, when we first set out to build a company around the idea of making AI approachable to everyone, we knew that AI literacy was a crucial piece of progressing towards that vision. It was then, while we building the first iteration of what would become FieldDay that we started building our brand not only to communicate what our company was about, but as an educational tool to help people grasp some of the core concepts involved in building AI systems.\",\"intro\",true,{\"_21\":32,\"_23\":33,\"_34\":35,\"_173\":30},\"gallery\",\"M5vg28DJa3D3t4hZw2r2j9anvP7OJpKD\",\"items\",[36,121,138,156],{\"_23\":37,\"_38\":39,\"_40\":41,\"_42\":43},\"2WWe0aZBk9Z9kVrDtdmv25fL37qWIPL3\",\"aspectRatio\",1.5,\"caption\",\"Data collection\",\"content\",{\"_23\":37,\"_44\":45,\"_21\":46,\"_47\":41,\"_48\":49,\"_50\":-5,\"_51\":30,\"_52\":10,\"_53\":-5,\"_54\":55,\"_56\":57,\"_58\":10,\"_59\":10,\"_60\":10,\"_61\":10,\"_62\":10,\"_63\":64,\"_73\":-5,\"_74\":-5,\"_75\":-5,\"_76\":-5,\"_77\":-5,\"_78\":-5,\"_79\":-5,\"_80\":-5,\"_81\":-5,\"_82\":-5,\"_83\":84,\"_85\":-5,\"_86\":87,\"_88\":-5,\"_89\":-5,\"_90\":91,\"_92\":93,\"_94\":-5,\"_95\":-5,\"_96\":-5,\"_97\":98,\"_99\":100,\"_101\":102,\"_114\":-5,\"_115\":116,\"_120\":-5},\"slug\",\"visualising-ai-classifier-light-00\",\"image\",\"title\",\"description\",\"A render visualising how different types of data enter the machine learning pipeline and process.\\n\",\"seoTitle\",\"titleVisible\",\"highlight\",\"highlightText\",\"contentTint\",\"#c5d4dc\",\"backgroundTint\",\"#b6c5cc\",\"enableSound\",\"downloadable\",\"darkControls\",\"workInProgress\",\"behindTheScenes\",\"deviceConfig\",{\"_65\":66},\"frame\",{\"_67\":30,\"_68\":69,\"_70\":71,\"_72\":10},\"enabled\",\"padding\",-9.3,\"cornerRadius\",0,\"stroke\",\"url\",\"quoteText\",\"quotePersonId\",\"awardSubtitle\",\"awardIssuer\",\"awardYear\",\"awardAnnotation\",\"patentNumber\",\"patentOffice\",\"patentYear\",\"mediaId\",\"artifact_media_2WWe0aZBk9Z9kVrDtdmv25fL37qWIPL3\",\"posterId\",\"previewId\",\"artifact_preview_2WWe0aZBk9Z9kVrDtdmv25fL37qWIPL3\",\"linkPreviewId\",\"localContext\",\"folderId\",\"MIvvcDWaTU8Zh4ALjuKZ6AhsmXLeZErt\",\"projectId\",\"azVyLvh0ciAD1tG7hMQ7Xcr53YOktch0\",\"clientId\",\"focusVertical\",\"focusHeaderVertical\",\"createdAt\",\"2026-02-23 05:36:44\",\"updatedAt\",\"2026-09-04T01:20:36.627Z\",\"media\",{\"_23\":84,\"_21\":46,\"_73\":103,\"_104\":105,\"_106\":107,\"_108\":-5,\"_109\":-5,\"_110\":-5,\"_111\":-5,\"_112\":-5,\"_97\":113},\"/uploads/artifacts/1771825001058-Visualising_AI_Classifier_Light_00.jpg\",\"width\",3840,\"height\",2160,\"duration\",\"alt\",\"placeholderHash\",\"placeholderType\",\"videoVariants\",\"2026-03-21 18:48:29\",\"poster\",\"preview\",{\"_23\":87,\"_21\":46,\"_73\":117,\"_104\":118,\"_106\":119,\"_108\":-5,\"_109\":41,\"_110\":-5,\"_111\":-5,\"_112\":-5,\"_97\":113},\"/uploads/artifacts/1773696468251-data-collection-preview.webp\",1200,800,\"linkPreview\",{\"_23\":122,\"_38\":39,\"_40\":123,\"_42\":124},\"lo7tSqToNDhH8CfqMUXWMLNskJdfGS3y\",\"Data classification\",{\"_23\":122,\"_44\":125,\"_21\":46,\"_47\":123,\"_48\":126,\"_50\":-5,\"_51\":30,\"_52\":10,\"_53\":-5,\"_54\":127,\"_56\":128,\"_58\":10,\"_59\":10,\"_60\":30,\"_61\":10,\"_62\":10,\"_63\":129,\"_73\":-5,\"_74\":-5,\"_75\":-5,\"_76\":-5,\"_77\":-5,\"_78\":-5,\"_79\":-5,\"_80\":-5,\"_81\":-5,\"_82\":-5,\"_83\":131,\"_85\":-5,\"_86\":132,\"_88\":-5,\"_89\":-5,\"_90\":91,\"_92\":93,\"_94\":-5,\"_95\":-5,\"_96\":-5,\"_97\":133,\"_99\":100,\"_101\":134,\"_114\":-5,\"_115\":136,\"_120\":-5},\"visualising-ai-dataset-light-00\",\"A render visualizing how machine learning models interpret and classify unstructured data.\\n\",\"#080656\",\"#b6c6cd\",{\"_65\":130},{\"_67\":30,\"_68\":69,\"_70\":71,\"_72\":30},\"artifact_media_lo7tSqToNDhH8CfqMUXWMLNskJdfGS3y\",\"artifact_preview_lo7tSqToNDhH8CfqMUXWMLNskJdfGS3y\",\"2026-02-23 05:38:55\",{\"_23\":131,\"_21\":46,\"_73\":135,\"_104\":105,\"_106\":107,\"_108\":-
13195,\"_109\":-5,\"_110\":-5,\"_111\":-5,\"_112\":-5,\"_97\":113},\"/uploads/artifacts/1771825134808-Visualising_AI_Dataset_Light_00.jpg\",{\"_23\":132,\"_21\":46,\"_73\":137,\"_104\":118,\"_106\":119,\"_108\":-5,\"_109\":123,\"_110\":-5,\"_111\":-5,\"_112\":-5,\"_97\":113},\"/uploads/artifacts/1773696366888-data-classification-preview.webp\",{\"_23\":139,\"_38\":39,\"_40\":140,\"_42\":141},\"qUpvoxy9oMeyFxpz2ret2ON88xvrIrMu\",\"Correcting\",{\"_23\":139,\"_44\":142,\"_21\":46,\"_47\":140,\"_48\":143,\"_50\":-5,\"_51\":30,\"_52\":10,\"_53\":-5,\"_54\":144,\"_56\":145,\"_58\":10,\"_59\":30,\"_60\":30,\"_61\":10,\"_62\":10,\"_63\":146,\"_73\":-5,\"_74\":-5,\"_75\":-5,\"_76\":-5,\"_77\":-5,\"_78\":-5,\"_79\":-5,\"_80\":-5,\"_81\":-5,\"_82\":-5,\"_83\":148,\"_85\":-5,\"_86\":149,\"_88\":-5,\"_89\":-5,\"_90\":91,\"_92\":93,\"_94\":-5,\"_95\":-5,\"_96\":-5,\"_97\":150,\"_99\":100,\"_101\":151,\"_114\":-5,\"_115\":153,\"_120\":-5},\"visualising-ai-teaching-light-00\",\"A render visualising how humans can teach machine learning models to identify false positives and curate training data.\\n\",\"#b7c5cd\",\"#b7c7ce\",{\"_65\":147},{\"_67\":30,\"_68\":69,\"_70\":71,\"_72\":10},\"artifact_media_qUpvoxy9oMeyFxpz2ret2ON88xvrIrMu\",\"artifact_preview_qUpvoxy9oMeyFxpz2ret2ON88xvrIrMu\",\"2026-02-23 05:40:20\",{\"_23\":148,\"_21\":46,\"_73\":152,\"_104\":105,\"_106\":107,\"_108\":-5,\"_109\":-5,\"_110\":-5,\"_111\":-5,\"_112\":-5,\"_97\":113},\"/uploads/artifacts/1771825219339-Visualising_AI_Teaching_Light_00.jpg\",{\"_23\":149,\"_21\":46,\"_73\":154,\"_104\":118,\"_106\":119,\"_108\":-5,\"_109\":155,\"_110\":-5,\"_111\":-5,\"_112\":-5,\"_97\":113},\"/uploads/artifacts/1779554942671-teaching-models-preview.webp\",\"Teaching models\",{\"_23\":157,\"_38\":39,\"_40\":158,\"_42\":159},\"gHEbOBhRarUtZqLdkeZShd2Xjzok8Td3\",\"Exporting machine learning models\",{\"_23\":157,\"_44\":160,\"_21\":46,\"_47\":158,\"_48\":161,\"_50\":-5,\"_51\":30,\"_52\":10,\"_53\":-5,\"_54\":162,\"_56\":163,\"_58\":10,\"_59\":10,\"_60\":30,\"_61\":10,\"_62\":10,\"_63\":164,\"_73\":-5,\"_74\":-5,\"_75\":-5,\"_76\":-5,\"_77\":-5,\"_78\":-5,\"_79\":-5,\"_80\":-5,\"_81\":-5,\"_82\":-5,\"_83\":166,\"_85\":-5,\"_86\":167,\"_88\":-5,\"_89\":-5,\"_90\":91,\"_92\":93,\"_94\":-5,\"_95\":-5,\"_96\":-5,\"_97\":168,\"_99\":100,\"_101\":169,\"_114\":-5,\"_115\":171,\"_120\":-5},\"visualising-ai-export-light-00\",\"A render visualising how machine learning models can be packaged and deployed to a variety of use-cases. \\n\",\"#2d328f\",\"#b8c7ce\",{\"_65\":165},{\"_67\":30,\"_68\":69,\"_70\":71,\"_72\":30},\"artifact_media_gHEbOBhRarUtZqLdkeZShd2Xjzok8Td3\",\"artifact_preview_gHEbOBhRarUtZqLdkeZShd2Xjzok8Td3\",\"2026-02-23 05:39:42\",{\"_23\":166,\"_21\":46,\"_73\":170,\"_104\":105,\"_106\":107,\"_108\":-5,\"_109\":-5,\"_110\":-5,\"_111\":-5,\"_112\":-5,\"_97\":113},\"/uploads/artifacts/1771825181465-Visualising_AI_Export_Light_00.jpg\",{\"_23\":167,\"_21\":46,\"_73\":172,\"_104\":118,\"_106\":119,\"_108\":-5,\"_109\":158,\"_110\":-5,\"_111\":-5,\"_112\":-5,\"_97\":113},\"/uploads/artifacts/1773696492528-exporting-machine-learning-models-preview.webp\",\"autoAdvance\",{\"_21\":22,\"_23\":175,\"_25\":26,\"_27\":176,\"_29\":10},\"zcgdlcD8Yr3yI3lWABCMo57ZLgk6Kcna\",\"Before tools like LLMs became mainstream, we set out to make machine learning more approachable through a pragmatic, hands-on lens. As part of our work leading up to FieldDay, we focused on âclassicâ machine learning and the idea that anyone should be able to teach models through data, even if that concept still carried a learning curve at the time. To support this, we embedded education directly into our brand. Led by Nelson Schöller, we created a series of visualizations and a short film that translated core ML concepts into clear, intuitive visuals. These assets became a central part of our website and internal materials, helping shift the narrative around AI away from abstract, overused imagery toward something more grounded and understandable.\\n\",\"1OR33tpxt2ed3ceqmqCIjShpmek9AoIU\",\"visualising-ai\",\"Visualising AI\",\"date\",\"2021-06-13\",\"2026-06-09T18:48:36.490Z\",\"hidden\",\"seoDescription\",\"seoImageId\",\"disableQa\",\"category\",\"labs\",\"featuredAppStoreUrl\",\"projectFeaturedAppStoreUrl\",\"projectName\",\"projectTint\",\"headerImage\",{\"_73\":195,\"_47\":196},\"/uploads/artifacts/1771825080082-Visualising_AI_Comp_Light.mp4\",\"The machine learning process\",\"headerArtifact\",{\"_23\":199,\"_44\":200,\"_21\":201,\"_47\":196,\"_48\":202,\"_50\":-5,\"_51\":30,\"_52\":10,\"_53\":-5,\"_54\":203,\"_56\":204,\"_58\":10,\"_59\":10,\"_60\":30,\"_61\":10,\"_62\":10,\"_63\":205,\"_73\":-5,\"_74\":-5,\"_75\":-5,\"_76\":-5,\"_77\":-5,\"_78\":-5,\"_79\":-5,\"_80\":-5,\"_81\":-5,\"_82\":-5,\"_83\":207,\"_85\":208,\"_86\":209,\"_88\":-5,\"_89\":-5,\"_90\":91,\"_92\":93,\"_94\":-5,\"_95\":-5,\"_96\":-5,\"_97\":210,\"_99\":211,\"_101\":212,\"_114\":229,\"_115\":231,\"_120\":-5,\"_233\":-5,\"_234\":235,\"_239\":-5},\"8yPZkNXWN54JpcAsaZjKZhwNTQ1Hf3jS\",\"visualising-ai-comp-light\",\"video\",\"A series of visualizations depicting the core concepts of machine learning.\",\"#002e7a\",\"#b6c3cb\",{\"_65\":206},{\"_67\":30,\"_68\":69,\"_70\":71},\"artifact_media_8yPZkNXWN54JpcAsaZjKZhwNTQ1Hf3jS\",\"artifact_poster_8yPZkNXWN54JpcAsaZjKZhwNTQ1Hf3jS\",\"artifact_preview_8yPZkNXWN54JpcAsaZjKZhwNTQ1Hf3jS\",\"2026-02-23 05:38:03\",\"2026-08-31T19:34:16.827Z\",{\"_23\":207,\"_21\":201,\"_73\":195,\"_104\":213,\"_106\":214,\"_108\":-
13195,\"_109\":-5,\"_110\":-5,\"_111\":-5,\"_112\":215,\"_97\":113},1920,1080,[216,224],{\"_73\":217,\"_104\":119,\"_106\":218,\"_219\":220,\"_221\":222,\"_223\":10},\"/uploads/artifacts/1771825080082-Visualising_AI_Comp_Light-w800-muted.mp4\",450,\"bytes\",964898,\"codec\",\"h264\",\"hasAudio\",{\"_73\":225,\"_104\":226,\"_106\":227,\"_219\":228,\"_221\":222,\"_223\":10},\"/uploads/artifacts/1771825080082-Visualising_AI_Comp_Light-w1440-muted.mp4\",1440,810,3032484,{\"_23\":208,\"_21\":46,\"_73\":230,\"_104\":213,\"_106\":214,\"_108\":-5,\"_109\":196,\"_110\":-5,\"_111\":-5,\"_112\":-5,\"_97\":113},\"/uploads/artifacts/1773086130280-Visualising AI Comp Light-poster.webp\",{\"_23\":209,\"_21\":46,\"_73\":232,\"_104\":118,\"_106\":119,\"_108\":-5,\"_109\":196,\"_110\":-5,\"_111\":-5,\"_112\":-5,\"_97\":113},\"/uploads/artifacts/1778107366642-the-machine-learning-process-preview.webp\",\"quotePerson\",\"recognitionProject\",{\"_23\":93,\"_236\":237,\"_238\":-5},\"name\",\"Visualising Ai\",\"parentStory\",\"awardOrganisation\",\"seoImage\",\"seoAuthors\",[243,259,267],{\"_23\":244,\"_245\":177,\"_246\":247,\"_248\":71,\"_249\":250,\"_251\":252,\"_253\":254,\"_255\":256,\"_257\":258},\"MpdlS9hXTfocdIbm11SvxtT2rmWLgaWu\",\"postId\",\"personId\",\"0gcwRZkotLYKSi0sSctq31nkqyUIFdM5\",\"position\",\"personName\",\"Aaron Abentheuer\",\"personPhoto\",\"/uploads/people/1783878215137-1783878209664-profile.png\",\"personTitle\",\"Co-Founder\",\"personSlug\",\"aaron-abentheuer\",\"personType\",\"user\",{\"_23\":260,\"_245\":177,\"_246\":261,\"_248\":262,\"_249\":263,\"_251\":264,\"_253\":265,\"_255\":266,\"_257\":258},\"jeh6tCbvkp2eR4piN1NsxuKX1BLGeAtE\",\"bW4If9ty9OLLpmuN5vaRWkNIpgFu53eF\",1,\"Nelson Schöller\",\"/uploads/people/1783858742872-1774654206622-180ef87a-b87c-4ad9-add9-152cd756cf6c.png\",\"Industrial Designer\",\"nelson-schöller\",{\"_23\":268,\"_245\":177,\"_246\":269,\"_248\":270,\"_249\":271,\"_251\":272,\"_253\":254,\"_255\":273,\"_257\":258},\"G9B2ag2TQKsDgeVMgDGhjitLu45eb9IA\",\"5HqGAwaun28PnUHLwEAFhSM91Qo94Loa\",2,\"Gabriel Mitchell\",\"/uploads/people/1783806650623-1774365096228-Team_Gabriel_Mitchell_Team_Headshot.png\",\"gabriel-mitchell\",\"footerBackground\",\"footerAppearance\",\"light\",\"featuredApps\",[],\"tint\",\"origin\",\"https://newmaterial.ai\",\"headerIndex\",\"detailsUrl\",\"/api/story-details/visualising-ai\",\"actionData\",\"errors\"]\n");</script>
1319<!--$-->
1319<script>window.__reactRouterContext.streamController.close();</script>
1319<!--/$--><!--/$--></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.