PageSourceSearch

https://memories.ai/

html memories.ai collected 2026-09-25 14:01:08 UTC 143,470 bytes, 2,468 lines download raw bytes

1<!DOCTYPE html><!-- Last Published: Thu Sep 24 2026 04:29:01 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="memories.ai" data-wf-page="6a26a66c0461307a4feed462" data-wf-site="6a26a66c0461307a4feed480" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Memories.ai — AI Video Analysis &amp; Visual Memory Platform</title><meta content="Memories.ai is an AI video intelligence platform for large-scale search, summarization, and multimodal understanding. Build faster workflows with contextual memory, timeline insights, and enterprise-ready video automation." name="description"/><meta content="Memories.ai — AI Video Analysis &amp; Visual Memory Platform" property="og:title"/><meta content="Memories.ai is an AI video intelligence platform for large-scale search, summarization, and multimodal understanding. Build faster workflows with contextual memory, timeline insights, and enterprise-ready video automation." property="og:description"/><meta content="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a4bf1c8f79ac056f4b6214f_OG%20Image.jpg" property="og:image"/><meta content="Memories.ai — AI Video Analysis &amp; Visual Memory Platform" name="twitter:title"/><meta content="Memories.ai is an AI video intelligence platform for large-scale search, summarization, and multimodal understanding. Build faster workflows with contextual memory, timeline insights, and enterprise-ready video automation." name="twitter:description"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/css/memories-ai-878938d4220f4712af66b42526e.webflow.shared.a18ba6b63.min.css" rel="stylesheet" type="text/css" integrity="sha384-oYumtj+8NU2GUXmkRQcvsdFzqa/vLyJvsUKtLYPoKXUcibXvkay87zYzNn5j0XR0" crossorigin="anonymous"/><style>html.w-mod-js:not(.w-mod-ix3) :is([data-wf-component-id="e6326f33-0d5d-6050-63f5-6afd9a87386b"]:is(.services_item), [data-wf-component-id="e6326f33-0d5d-6050-63f5-6afd9a87386b"] :is(.services_item)) {visibility: hidden !important;}</style>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a4bf166e05e8db5fcff4ea8_Favicon-black.png" rel="icon" type="image/png" sizes="32x32" media="(prefers-color-scheme: light)"/><link href="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a4bf17007781c28ab031e4a_Favicon-white.png" rel="icon" type="image/png" sizes="32x32" media="(prefers-color-scheme: dark)"/><link href="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a4bf1666d260986ce3901c6_Favicon-black.png" rel="icon" type="image/png" sizes="48x48"/><link href="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a4bf1772d5947caa7685897_WebClip.jpg" rel="apple-touch-icon" sizes="180x180"/><link href="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a4bf177b2183405105b044e_WebClip.jpg" rel="icon" type="image/png" sizes="192x192"/><link href="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a4bf1776d260986ce3902db_WebClip.jpg" rel="icon" type="image/png" sizes="512x512"/><link href="https://memories.ai" rel="canonical"/>
1<script type="application/ld+json">
2{
3  "@context": "https://schema.org",
4  "@graph": [
5    {
6      "@type": "WebSite",
7      "@id": "https://memories.ai/#website",
8      "url": "https://memories.ai/",
9      "name": "Memories.ai",
10      "alternateName": "Memories.ai - AI Video Analysis Platform",
11      "description": "AI video analysis platform powered by the Large Visual Memory Model (LVMM). Analyze, search, and understand video content at scale.",
12      "inLanguage": "en",
13      "publisher": {
14        "@id": "https://memories.ai/#organization"
15      }
16    },
17    {
18      "@type": "Organization",
19      "@id": "https://memories.ai/#organization",
20      "name": "Memories.ai",
21      "alternateName": "Memories AI",
22      "url": "https://memories.ai/",
23      "logo": {
24        "@type": "ImageObject",
25        "url": "https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a29473b61d39d62bcf807bb_Logotype.svg",
26        "width": 512,
27        "height": 512
28      },
29      "image": "https://resource.memories.ai/public/twitter-card.png",
30      "description": "Memories.ai develops the Large Visual Memory Model (LVMM) — AI infrastructure for persistent, structured, searchable visual memory. Enterprise video intelligence for security, media, manufacturing, and device OEMs.",
31      "slogan": "The multimodal memory infrastructure for AI",
32      "foundingDate": "2023",
33      "areaServed": "Worldwide",
34      "sameAs": [
35        "https://www.linkedin.com/company/memoriesai/",
36        "https://x.com/memories_ai",
37        "https://www.youtube.com/@memories_dot_ai",
38        "https://www.tiktok.com/@memories_dot_ai",
39        "https://www.instagram.com/memories_dot_ai",
40        "https://discord.gg/dAqjfdJaQz",
41        "https://www.producthunt.com/products/memories-ai",
42        "https://github.com/Memories-ai-labs"
43      ],
44      "contactPoint": [
45        {
46          "@type": "ContactPoint",
47          "contactType": "sales",
48          "email": "[email protected]",
49          "url": "https://memories.ai/contact-sales",
50          "availableLanguage": "en"
51        }
52      ],
53      "knowsAbout": [
54        "AI Video Analysis",
55        "Large Visual Memory Model",
56        "Multimodal AI",
57        "Video Understanding",
58        "Scene Detection",
59        "Video OCR",
60        "Computer Vision",
61        "Video Intelligence"
62      ]
63    },
64    {
65      "@type": "SoftwareApplication",
66      "@id": "https://memories.ai/#software",
67      "name": "Memories.ai",
68      "applicationCategory": "BusinessApplication",
69      "applicationSubCategory": "AI Video Analysis",
70      "operatingSystem": "Web",
71      "url": "https://memories.ai/",
72      "description": "AI-powered video analysis platform. Extract transcripts, summaries, key moments, and structured insights from any video. Supports YouTube, TikTok, Instagram, and 15+ platforms.",
73      "offers": {
74        "@type": "Offer",
75        "price": "0",
76        "priceCurrency": "USD",
77        "description": "Free tier available"
78      },
79      "featureList": [
80        "AI Video Analysis",
81        "Video Transcription",
82        "Video Summarization",
83        "Key Moment Detection",
84        "Cross-Platform Support (15+ platforms)",
85        "Natural Language Video Search",
86        "Real-Time Threat Detection",
87        "Human Re-Identification",
88        "Enterprise API"
89      ],
90      "screenshot": "https://resource.memories.ai/public/twitter-card.png",
91      "provider": {
92        "@id": "https://memories.ai/#organization"
93      }
94    },
95    {
96      "@type": "FAQPage",
97      "@id": "https://memories.ai/#faq",
98      "mainEntity": [
99        {
100          "@type": "Question",
101          "name": "What is AI video analysis and how does Memories.ai do it?",
102          "acceptedAnswer": {
103            "@type": "Answer",
104            "text": "AI video analysis uses machine learning to automatically interpret video content — identifying objects, understanding context, extracting speech, and detecting key moments. Memories.ai goes beyond single-clip analysis with its Large Visual Memory Model (LVMM), which maintains persistent context across videos for cross-video search, pattern recognition, and long-term visual memory."
105          }
106        },
107        {
108          "@type": "Question",
109          "name": "Is Memories.ai free to use?",
110          "acceptedAnswer": {
111            "@type": "Answer",
112            "text": "Yes, basic video analysis is free with no signup required. For higher volume, team collaboration, and enterprise API access, paid plans are available."
113          }
114        },
115        {
116          "@type": "Question",
117          "name": "How is Memories.ai different from ChatGPT or Gemini for video?",
118          "acceptedAnswer": {
119            "@type": "Answer",
120            "text": "ChatGPT and Gemini have limited video context windows. Memories.ai is purpose-built for video analysis with unlimited video context, powered by the Large Visual Memory Model (LVMM). Independent benchmarks show Memories.ai outperforms both Gemini and ChatGPT on video understanding tasks."
121          }
122        },
123        {
124          "@type": "Question",
125          "name": "What enterprise use cases does Memories.ai support?",
126          "acceptedAnswer": {
127            "@type": "Answer",
128            "text": "Enterprise use cases include real-time security threat detection, human re-identification across cameras, slip and fall detection, customer service monitoring, sports video analysis, and content intelligence at scale. Memories.ai is trusted by Qualcomm and Samsung for production-grade video intelligence."
129          }
130        },
131        {
132          "@type": "Question",
133          "name": "What is the Large Visual Memory Model (LVMM)?",
134          "acceptedAnswer": {
135            "@type": "Answer",
136            "text": "LVMM is Memories.ai's core technology — a visual memory architecture that gives AI persistent, structured, searchable memory across video content. Unlike frame-by-frame analysis, LVMM maintains long-term context, enabling cross-video search, temporal pattern recognition, and accumulated visual understanding over time."
137          }
138        }
139      ]
140    }
141  ]
142}
143</script>
143<link
144  rel="stylesheet"
145  href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css"
146/>
147
148<!-- Keep this css code to improve the font quality-->
149<style>
150  * {
151  -webkit-font-smoothing: antialiased;
152  -moz-osx-font-smoothing: grayscale;
153  -o-font-smoothing: antialiased;
154}
155
156  :root {
157  --plyr-color-main: var(--c-violet-300);
158}
159
160[text-letters-animation] .char
161{
162  opacity: 0.3;
163}  
164
165[text-letters-animation]
166{
167  opacity: 0.07;
168  transition: opacity 0.35s ease-in-out; 
169}  
170
171[text-letters-animation][data-letters-split="true"]{
172  opacity: 1;
173}  
174  
175</style>
176
177<meta name="twitter:site" content="@memories_ai">
178<meta name="twitter:creator" content="@memories_ai">
179<meta name="twitter:site:id" content="1914196624106303488">
180<meta name="twitter:creator:id" content="1914196624106303488">
181<link rel="alternate" type="text/plain" title="LLMs.txt" href="https://memories.ai/llms.txt">
182<link rel="alternate" type="text/plain" title="LLMs-full.txt" href="https://memories.ai/llms-full.txt">
183
184<!-- Global structured data (Organization + WebSite) — mirrors code JsonLdGlobal -->
185<script type="application/ld+json">[{"@context":"https://schema.org","@type":"Organization","@id":"https://memories.ai/#organization","name":"Memories.ai","url":"https://memories.ai","logo":{"@type":"ImageObject","url":"https://memories.ai/images/logo.svg","width":512,"height":512},"image":"https://resource.memories.ai/public/twitter-card.png","description":"Memories.ai is an AI video analysis platform that uses multimodal AI with long-term visual memory to help teams see, remember, and understand video content at scale. The platform processes videos from 20+ social and video platforms, providing scene detection, OCR, object recognition, and timestamped summaries.","foundingDate":"2023","sameAs":["https://www.linkedin.com/company/memoriesai/","https://x.com/memories_ai","https://www.youtube.com/@memoriesai"],"contactPoint":[{"@type":"ContactPoint","contactType":"sales","email":"[email protected]","availableLanguage":"en"},{"@type":"ContactPoint","contactType":"customer support","email":"[email protected]","availableLanguage":"en"}],"knowsAbout":["AI Video Analysis","Multimodal AI","Video Understanding","Scene Detection","Video OCR","Computer Vision","Large Visual Memory Models"]},{"@context":"https://schema.org","@type":"WebSite","@id":"https://memories.ai/#website","url":"https://memories.ai","name":"Memories.ai","description":"AI video analysis platform for scene detection, OCR, object recognition, and timestamped summaries across 20+ video platforms.","publisher":{"@id":"https://memories.ai/#organization"}}]</script>
185<link rel="stylesheet" href="https://cdn.plyr.io/3.7.8/plyr.css" />
186<script src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F689e5ba67671442434f3ca35%2F6a63289dbfe03765b7b7b10f%2Fgoogleanalytics-1.0.0.js" type="text/javascript"></script>
186<script src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F689e5ba67671442434f3ca35%2F6a63289d3380d71fb4da3f42%2Ftwitterpixel-1.0.0.js" type="text/javascript"></script>
186<script src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F689e5ba67671442434f3ca35%2F6a63289df76f91bbbb91665e%2Ftiktokpixel-1.0.0.js" type="text/javascript"></script>
186</head><body><div class="page-wrapper"><div class="global-styles"><div class="w-embed"><style>
187  :root {
188    --font-from: 18;
189    --font-to: 20;
190    --vw-from: calc(1960 / 100);
191    --vw-to: calc(2480 / 100);
192    --coefficient: calc((var(--font-to) - var(--font-from)) / (var(--vw-to) - var(--vw-from)));
193    --base: calc((var(--font-from) - var(--vw-from) * var(--coefficient)) / 16);
194  }
195
196  html {
197    font-size: calc(var(--base) * 1rem + var(--coefficient) * 1vw);
198  }
199
200  @media screen and (max-width: 1960px) {
201    :root {
202      --font-from: 16;
203      --font-to: 18;
204      --vw-from: calc(1440 / 100);
205      --vw-to: calc(1960 / 100);
206      }
207  }
208
209  @media screen and (max-width: 1440px) {
210    :root {
211      --font-from: 16;
212      --font-to: 16;
213      --vw-from: calc(479 / 100);
214      --vw-to: calc(1440 / 100);
215      }
216  }
217
218  @media screen and (max-width: 479px) {
219    :root {
220      --font-from: 16;
221      --font-to: 16;
222      --vw-from: calc(1 / 100);
223      --vw-to: calc(479 / 100);
224      }
225  }
226</style></div><div class="style-overrides w-embed"><style>
227
228/* Ensure all elements inherit the color from its parent */
229a,
230.w-input,
231.w-select,
232.w-tab-link,
233.w-nav-link,
234.w-nav-brand,
235.w-dropdown-btn,
236.w-dropdown-toggle,
237.w-slider-arrow-left,
238.w-slider-arrow-right,
239.w-dropdown-link {
240  color: inherit;
241  text-decoration: inherit;
242  font-size: inherit;
243}
244
245/* Focus state style for keyboard navigation for the focusable elements */
246*[tabindex]:focus-visible,
247  input[type="file"]:focus-visible {
248   outline: 0.125rem solid #4d65ff;
249   outline-offset: 0.125rem;
250}
251
252/* Get rid of top margin on first element in any rich text element */
253.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
254  margin-top: 0 !important;
255}
256
257/* Get rid of bottom margin on last element in any rich text element */
258.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
259	margin-bottom: 0 !important;
260}
261
262/* Prevent all click and hover interaction with an element */
263.pointer-events-off {
264	pointer-events: none;
265}
266
267/* Enables all click and hover interaction with an element */
268.pointer-events-on {
269  pointer-events: auto;
270}
271
272/* Create a class of .div-square which maintains a 1:1 dimension of a div */
273.div-square::after {
274	content: "";
275	display: block;
276	padding-bottom: 100%;
277}
278
279/* Make sure containers never lose their center alignment */
280.container-medium,.container-small, .container-large {
281	margin-right: auto !important;
282  margin-left: auto !important;
283}
284
285
286/* Apply "..." after 3 lines of text */
287.text-style-3lines {
288	display: -webkit-box;
289	overflow: hidden;
290	-webkit-line-clamp: 3;
291	-webkit-box-orient: vertical;
292}
293
294/* Apply "..." after 2 lines of text */
295.text-style-2lines {
296	display: -webkit-box;
297	overflow: hidden;
298	-webkit-line-clamp: 2;
299	-webkit-box-orient: vertical;
300}
301
302/* Adds inline flex display */
303.display-inlineflex {
304  display: inline-flex;
305}
306
307/* These classes are never overwritten */
308.hide {
309  display: none !important;
310}
311
312/* Remove default Webflow chevron from form select */
313select{
314  -webkit-appearance:none;
315}
316
317
318@media screen and (max-width: 991px) {
319    .hide, .hide-tablet {
320        display: none !important;
321    }
322}
323  @media screen and (max-width: 767px) {
324    .hide-mobile-landscape{
325      display: none !important;
326    }
327}
328  @media screen and (max-width: 479px) {
329    .hide-mobile{
330      display: none !important;
331    }
332}
333 
334.margin-0 {
335  margin: 0rem !important;
336}
337  
338.padding-0 {
339  padding: 0rem !important;
340}
341
342.spacing-clean {
343padding: 0rem !important;
344margin: 0rem !important;
345}
346
347.margin-top {
348  margin-right: 0rem !important;
349  margin-bottom: 0rem !important;
350  margin-left: 0rem !important;
351}
352
353.padding-top {
354  padding-right: 0rem !important;
355  padding-bottom: 0rem !important;
356  padding-left: 0rem !important;
357}
358  
359.margin-right {
360  margin-top: 0rem !important;
361  margin-bottom: 0rem !important;
362  margin-left: 0rem !important;
363}
364
365.padding-right {
366  padding-top: 0rem !important;
367  padding-bottom: 0rem !important;
368  padding-left: 0rem !important;
369}
370
371.margin-bottom {
372  margin-top: 0rem !important;
373  margin-right: 0rem !important;
374  margin-left: 0rem !important;
375}
376
377.padding-bottom {
378  padding-top: 0rem !important;
379  padding-right: 0rem !important;
380  padding-left: 0rem !important;
381}
382
383.margin-left {
384  margin-top: 0rem !important;
385  margin-right: 0rem !important;
386  margin-bottom: 0rem !important;
387}
388  
389.padding-left {
390  padding-top: 0rem !important;
391  padding-right: 0rem !important;
392  padding-bottom: 0rem !important;
393}
394  
395.margin-horizontal {
396  margin-top: 0rem !important;
397  margin-bottom: 0rem !important;
398}
399
400.padding-horizontal {
401  padding-top: 0rem !important;
402  padding-bottom: 0rem !important;
403}
404
405.margin-vertical {
406  margin-right: 0rem !important;
407  margin-left: 0rem !important;
408}
409  
410.padding-vertical {
411  padding-right: 0rem !important;
412  padding-left: 0rem !important;
413}
414
415/* Apply "..." at 100% width */
416.truncate-width { 
417		width: 100%; 
418    white-space: nowrap; 
419    overflow: hidden; 
420    text-overflow: ellipsis; 
421}
422/* Removes native scrollbar */
423.no-scrollbar {
424    -ms-overflow-style: none;
425    overflow: -moz-scrollbars-none; 
426}
427
428.no-scrollbar::-webkit-scrollbar {
429    display: none;
430}
431</style></div><div class="color-schemes w-embed"><style>
432/* Color Schemes Controls*/
433<meta name="relume-color-schemes" content="false"/>
434
435  .color-scheme-1 {
436/*All sections should point to Color Scheme 1*/
437
438  }
439
440  .color-scheme-2 {
441    --color-scheme-1--text: var(--color-scheme-2--text);
442    --color-scheme-1--background: var(--color-scheme-2--background);
443    --color-scheme-1--foreground: var(--color-scheme-2--foreground);
444    --color-scheme-1--border: var(--color-scheme-2--border);
445    --color-scheme-1--accent: var(--color-scheme-2--accent);
446  }
447
448  .color-scheme-3 {
449    --color-scheme-1--text: var(--color-scheme-3--text);
450    --color-scheme-1--background: var(--color-scheme-3--background);
451    --color-scheme-1--foreground: var(--color-scheme-3--foreground);
452    --color-scheme-1--border: var(--color-scheme-3--border);
453    --color-scheme-1--accent: var(--color-scheme-3--accent);
454  }
455
456  .color-scheme-4 {
457    --color-scheme-1--text: var(--color-scheme-4--text);
458    --color-scheme-1--background: var(--color-scheme-4--background);
459    --color-scheme-1--foreground: var(--color-scheme-4--foreground);
460    --color-scheme-1--border: var(--color-scheme-4--border);
461    --color-scheme-1--accent: var(--color-scheme-4--accent);
462  }
463
464  .color-scheme-5 {
465    --color-scheme-1--text: var(--color-scheme-5--text);
466    --color-scheme-1--background: var(--color-scheme-5--background);
467    --color-scheme-1--foreground: var(--color-scheme-5--foreground);
468    --color-scheme-1--border: var(--color-scheme-5--border);
469    --color-scheme-1--accent: var(--color-scheme-5--accent);
470  }
471
472  .color-scheme-6 {
473    --color-scheme-1--text: var(--color-scheme-6--text);
474    --color-scheme-1--background: var(--color-scheme-6--background);
475    --color-scheme-1--foreground: var(--color-scheme-6--foreground);
476    --color-scheme-1--border: var(--color-scheme-6--border);
477    --color-scheme-1--accent: var(--color-scheme-6--accent);
478  }
479
480  .color-scheme-7 {
481    --color-scheme-1--text: var(--color-scheme-7--text);
482    --color-scheme-1--background: var(--color-scheme-7--background);
483    --color-scheme-1--foreground: var(--color-scheme-7--foreground);
484    --color-scheme-1--border: var(--color-scheme-7--border);
485    --color-scheme-1--accent: var(--color-scheme-7--accent);
486  }
487
488  .color-scheme-8 {
489    --color-scheme-1--text: var(--color-scheme-8--text);
490    --color-scheme-1--background: var(--color-scheme-8--background);
491    --color-scheme-1--foreground: var(--color-scheme-8--foreground);
492    --color-scheme-1--border: var(--color-scheme-8--border);
493    --color-scheme-1--accent: var(--color-scheme-8--accent);
494  }
495
496  .color-scheme-9 {
497    --color-scheme-1--text: var(--color-scheme-9--text);
498    --color-scheme-1--background: var(--color-scheme-9--background);
499    --color-scheme-1--foreground: var(--color-scheme-9--foreground);
500    --color-scheme-1--border: var(--color-scheme-9--border);
501    --color-scheme-1--accent: var(--color-scheme-9--accent);
502  }
503
504  .color-scheme-10 {
505    --color-scheme-1--text: var(--color-scheme-10--text);
506    --color-scheme-1--background: var(--color-scheme-10--background);
507    --color-scheme-1--foreground: var(--color-scheme-10--foreground);
508    --color-scheme-1--border: var(--color-scheme-10--border);
509    --color-scheme-1--accent: var(--color-scheme-10--accent);
510  }
511  
512/* Inherit slider dot colors */
513.w-slider-dot {
514  background-color: var(--color-scheme-1--text);
515  opacity: 0.20;
516}
517
518.w-slider-dot.w-active {
519  background-color: var(--color-scheme-1--text);
520  opacity: 1;
521}
522
523/* Override .w-slider-nav-invert styles */
524.w-slider-nav-invert .w-slider-dot {
525  background-color: var(--color-scheme-1--text) !important;
526  opacity: 0.20 !important;
527}
528
529.w-slider-nav-invert .w-slider-dot.w-active {
530  background-color: var(--color-scheme-1--text) !important;
531  opacity: 1 !important;
532}
533
534</style></div><div class="w-embed"><style>
535
536  /* Main buttons */
537  /* .btn[data-wf--btn--variant="default"]{
538    background: radial-gradient(135.05% 1230.1% at 50% 112.77%, #E1D6C9 12.02%, #B5D996 18.15%, #85CDC9 22.49%, #7A7BDC 33.67%, #3A167B 50.47%, #231D2E 50.73%);
539  } */
540
541/* @keyframes button-gradient-rotate {
542  from {
543    transform: rotate(0deg);
544  }
545
546  to {
547    transform: rotate(360deg);
548  }
549} */
550  
551	.button-gradient{
552     background: linear-gradient(
553        to top right,
554        #231D2E 0%,
555        #231D2E 35%,
556        #3A167B 43%,
557        #7A7BDC 49%,
558        #85CDC9 53%,
559        #B5D996 56%,
560        #E1D6C9 60%,
561        #B5D996 64%,
562        #85CDC9 67%,
563        #7A7BDC 71%,
564        #3A167B 78%,
565        #231D2E 86%,
566        #231D2E 100%
567      );
568      
569    }
570  
571  /* .btn.is-pricing{
572    background: radial-gradient(135.05% 1230.1% at 50% 112.77%, #E1D6C9 12.02%, #B5D996 18.15%, #85CDC9 22.49%, #7A7BDC 33.67%, #3A167B 50.47%, #231D2E 50.73%);
573  } */
574
575  .btn[data-wf--btn--variant="primary"]{
576	background: radial-gradient(104.63% 141.12% at 51.02% 67.74%, #7A7BDC 0%, #3A167B 73.08%);
577  }
578  
579  .navbar_component[data-wf--section_navbar--variant="dark"] .btn[data-wf--btn--variant="primary"]{
580    background: rgba(255, 255, 255, 0.30);
581  }
582
583  
584  @media screen and (min-width: 992px) {
585    .btn[data-wf--btn--variant="primary"]:hover .btn_wrapper{
586      background-color: var(--c-violet-300);
587    }
588
589     /* .btn[data-wf--btn--variant="default"]:hover .button-gradient{
590      transform-origin: center;
591      will-change: transform;
592      --gradient-rotate: 0deg;
593       transform: rotate(var(--gradient-rotate));
594    }  */
595
596	.navbar_component[data-wf--section_navbar--variant="dark"] .btn[data-wf--btn--variant="primary"]:hover .btn_wrapper{
597      background-color: unset;
598    }
599    
600    .navbar_component[data-wf--section_navbar--variant="dark"] .btn[data-wf--btn--variant="primary"]:hover {
601     background: rgba(255, 255, 255, 0.75);
602  	}
603  
604    .btn[data-wf--btn--variant="primary"]:hover .btn_icon{
605      background-color: var(--c-violet-200);
606    }
607
608    .navbar_component[data-wf--section_navbar--variant="dark"] .btn[data-wf--btn--variant="primary"]:hover .btn_icon{
609      background-color: rgba(255, 255, 255, 0.5);
610    }
611
612    .btn:hover .btn_icon .icon-embed-8{
613      transform: rotate(360deg);
614    }
615  }
616
617  
618  /* Homepage cards animation */
619  @media screen and (min-width: 992px) {
620    .api_card {
621      width: calc(50% - 0.5rem);
622      transition: width 0.7s cubic-bezier(0.6, 0, 0.15, 1);
623    }
624  
625    .apis_grid:has(.api_card:hover) .api_card:not(:hover) {
626      width: calc(41.67% - 0.5rem);
627    }
628  
629    .apis_grid .api_card:hover {
630      width: calc(58.33% - 0.5rem);
631    }
632  }
633
634  .filter_radio-box.is-active .filter_radio-active{
635    opacity: 100%;
636  }
637
638  .filter_radio-box.is-active {
639    pointer-events: none;
640  }
641
642  .toc-item.w--current{
643    color: var(--c-gray-700);
644  }
645
646  .w-pagination-previous.blog_pagination-btn.is-list-pagination-disabled,
647  .w-pagination-next.blog_pagination-btn.is-list-pagination-disabled{
648    opacity: 50%;
649    pointer-events: none;
650  }
651</style></div><div class="w-embed"><style>
652  .footer_bg{
653    background: linear-gradient(180deg, #F8F8F8 38.71%, #F4FBEF 72.66%, #B5D996 78.65%, #85CDC9 83.11%, #7A7BDC 86.04%, #3A167B 93.46%, #231D2E 95.98%);
654  }
655
656  .section_footer[data-wf--section_footer--variant="dark"] .footer_bg{
657    background: radial-gradient(221.29% 374.72% at 50.03% -69.29%, #DCC9A0 21.33%, #FFAD56 27.47%, #C7470C 35.55%, #6F2E0A 38.29%, #120905 41.53%, #000 45.76%);
658  }
659
660	.luci-scroll_gradient{
661     background: radial-gradient(111.72% 151.21% at 50.07% 50%, #DCC9A0 1.82%, #FFAD56 15.87%, #C7470C 24.74%, #6F2E0A 30%, rgba(18, 9, 5, 0.00) 34.3%);
662    }
663  
664	.luci-hero_bg{
665      background: radial-gradient(221.29% 374.72% at 50.03% -69.29%, #DCC9A0 21.33%, #FFAD56 27.47%, #C7470C 35.55%, #6F2E0A 38.29%, #120905 41.53%, #000 44.76%);
666  }
667  
668  .hero_bg{
669    background: linear-gradient(0deg, #FFF 41.07%, #F4FBEF 61.39%, #B5D996 65.82%, #85CDC9 71.46%, #7A7BDC 74.66%, #3A167B 80.36%, #231D2E 87.87%, #231D2E 121.02%);
670  }
671
672  .section_hero-blank[data-wf--section_hero-blank--variant="sticky"] .hero_bg,
673  .section_hero-blank[data-wf--section_hero-blank--variant="gray"] .hero_bg {
674    background: linear-gradient(0deg, #F6F6F6 41.07%, #F4FBEF 61.39%, #B5D996 65.82%, #85CDC9 71.46%, #7A7BDC 74.66%, #3A167B 80.36%, #231D2E 87.87%, #231D2E 121.02%);
675  }
676
677  .api_visual-comment-box{
678    background: radial-gradient(135.05% 1230.1% at 50% 112.77%, #E1D6C9 12.02%, #B5D996 18.15%, #85CDC9 22.49%, #7A7BDC 33.67%, #3A167B 50.47%, #231D2E 50.73%);
679  }
680
681  .api_visual-line{
682    background: radial-gradient(135.05% 1230.1% at 50% 112.77%, #E1D6C9 12.02%, #B5D996 18.15%, #85CDC9 22.49%, #7A7BDC 33.67%, #3A167B 50.47%, #231D2E 50.73%);
683  }
684
685  /* Divider styles light */
686
687  /* invisible ±9px hover hit-area (a 1px line is too thin to hover) */
688  .numbers_divider::before{
689    content:''; position:absolute;
690    left:0; right:0; top:-9px; bottom:-9px;
691  }
692
693  /* the colored sweep beam — exactly the size of the divider */
694  .numbers_divider::after{
695    content:''; position:absolute; top:0; left:0;
696    width:100%; height:100%;
697    background-image:linear-gradient(90deg,
698      rgba(106,100,220,0)   0%,
699      rgba(106,100,220,0)   5%,
700      rgba(106,100,220,.95) 20%,
701      rgba(110,150,240,1)   35%,
702      rgba(120,220,215,1)   50%,
703      rgba(200,232,120,1)   65%,
704      rgba(232,224,200,.65) 80%,
705      rgba(232,224,200,0)   95%,
706      rgba(232,224,200,0)   100%);
707    background-size:200% 100%;
708    background-repeat:no-repeat;
709    background-position:200% 0;     /* parked off-screen left */
710    pointer-events: none;
711    will-change:background-position;
712  }
713
714  .numbers_divider:hover::after{
715    animation: numbers-divider-sweep 1.2s cubic-bezier(.22,1,.36,1);
716  }
717
718  @keyframes numbers-divider-sweep{
719    from{ background-position:200% 0; }
720    to  { background-position:-100% 0; }
721  }
722
723  @media (prefers-reduced-motion: reduce){
724    .numbers_divider:hover::after{ animation:none; }
725  }
726
727  /* Divider styles dark */
728  /* invisible ±9px hover hit-area (a 1px line is too thin to hover) */
729  .numbers_divider.is-dark::before{
730    content:''; position:absolute;
731    left:0; right:0; top:-9px; bottom:-9px;
732  }
733
734  /* the colored sweep beam — exactly the size of the divider */
735  .numbers_divider.is-dark::after{
736    content:''; position:absolute; top:0; left:0;
737    width:100%; height:100%;
738    background-image: linear-gradient(90deg,
739  		rgba(255,219,136,0)   0%,
740  		rgba(255,219,136,0)   5%,
741  		rgba(255,219,136,.95) 20%,
742  		rgba(173,90,34,1)     40%,
743  		rgba(111,46,10,1)     60%,
744  		rgba(18,9,5,1)        80%,
745 		rgba(18,9,5,0)        95%,
746  		rgba(18,9,5,0)        100%
747     );
748    background-size:200% 100%;
749    background-repeat:no-repeat;
750    background-position:200% 0;     /* parked off-screen left */
751    pointer-events: none;
752    will-change:background-position;
753  }
754
755  .numbers_divider.is-dark:hover::after{
756    animation: numbers-divider-sweep 1.2s cubic-bezier(.22,1,.36,1);
757  }
758
759  @keyframes numbers-divider-sweep{
760    from{ background-position:200% 0; }
761    to  { background-position:-100% 0; }
762  }
763
764  .services_wrapper .services_item:last-child .numbers_divider.is-service-last,
765  .numbers_container .numbers_row-item:last-child .numbers_divider.is-service-last,
766  .info_list-wrapper .info_list-item-box:last-child .numbers_divider.is-service-last,
767  .blog_cms-list .blog_cms-item:last-child .numbers_divider.is-service-last,
768  .cs_cms-list .cs_cms-item:last-child .numbers_divider.is-service-last,
769  .tools-features_cms-item:last-child .numbers_divider.is-service-last,
770  .career_cms-item:last-child .numbers_divider.is-service-last
771  {
772    display: block;
773  }
774
775  .announcemnet-line{
776    background: linear-gradient(270deg, #E1D6C9 -0.6%, #B5D996 9.66%, #85CDC9 16.93%, #7A7BDC 35.63%, #3A167B 63.72%, #231D2E 105.92%);
777  }
778</style></div><div class="hide w-embed"><style>
779/* Variant white  */  
780  .navbar_component[data-wf--section_navbar--variant="white"] .navbar_logo-link,
781  .navbar_component[data-wf--section_navbar--variant="dark"] .navbar_logo-link
782  {
783      filter: invert(1);
784  }
785
786  .navbar_component[data-wf--section_navbar--variant="white"] .menu-icon1_line-top,
787  .navbar_component[data-wf--section_navbar--variant="white"] .menu-icon1_line-middle,
788  .navbar_component[data-wf--section_navbar--variant="white"] .menu-icon1_line-bottom,
789  .navbar_component[data-wf--section_navbar--variant="dark"] .menu-icon1_line-top,
790  .navbar_component[data-wf--section_navbar--variant="dark"] .menu-icon1_line-middle,
791  .navbar_component[data-wf--section_navbar--variant="dark"] .menu-icon1_line-bottom
792  {
793    background: var(--c-white-100);
794  }
795
796  
797
798  .navbar_component[data-wf--section_navbar--variant="dark"] .navbar_dropdown-link{
799    color: var(--c-white-100);
800  }
801
802  .navbar_component[data-wf--section_navbar--variant="dark"] .t-paragraph-2-rg.c-gray-700{
803    color: var(--c-gray-500);
804  }
805  
806/* Variant:hover */
807  @media screen and (min-width: 992px) {  
808    .navbar_component:hover{
809      background: var(--c-white-100);
810      border-bottom: 0.0625rem solid var(--c-gray-300);
811    }
812
813    .navbar_component[data-wf--section_navbar--variant="dark"]:hover
814    {
815      background: var(--c-black-100);
816      border-bottom: 0.0625rem solid var(--c-gray-700);
817    }
818   
819    .navbar_component[data-wf--section_navbar--variant="white"]:hover .announcemnet_close,
820    .navbar_component[data-wf--section_navbar--variant="white"]:hover .announcemnet-bar{
821     color: var(--color-scheme-1--text);
822    }
823    
824	.navbar_component[data-wf--section_navbar--variant="white"] .is-navbar-title,
825    .navbar_component[data-wf--section_navbar--variant="dark"] .is-navbar-title
826    {
827      color: var(--c-white-100);
828    }
829  
830    .navbar_component[data-wf--section_navbar--variant="white"] .dropdown-chevron,
831    .navbar_component[data-wf--section_navbar--variant="dark"] .dropdown-chevron
832    {
833      color: var(--c-white-100);
834    }
835    
836    .navbar_component[data-wf--section_navbar--variant="white"]:hover .navbar_logo-link
837    {
838        filter: invert(0);
839    }
840  
841    .navbar_component[data-wf--section_navbar--variant="white"]:hover .is-navbar-title
842    {
843      color: inherit;
844    }
845  
846    .navbar_component[data-wf--section_navbar--variant="white"]:hover .dropdown-chevron
847    {
848      color: inherit;
849    }
850    
851  }
852
853  
854/* Variant transparent scrolled */
855  .navbar_component.scrolled{
856    background: var(--c-white-100);
857    border-bottom: 0.0625rem solid var(--c-gray-300);
858  }
859
860  .navbar_component[data-wf--section_navbar--variant="white"].scrolled .navbar_logo-link
861  {
862      filter: invert(0);
863  }
864
865  .navbar_component[data-wf--section_navbar--variant="white"].scrolled .is-navbar-title
866  {
867    color: inherit;
868  }
869
870  .navbar_component[data-wf--section_navbar--variant="white"].scrolled .dropdown-chevron
871  {
872    color: inherit;
873  }
874
875  .navbar_component[data-wf--section_navbar--variant="white"].scrolled .menu-icon1_line-top,
876  .navbar_component[data-wf--section_navbar--variant="white"].scrolled .menu-icon1_line-middle,
877  .navbar_component[data-wf--section_navbar--variant="white"].scrolled .menu-icon1_line-bottom
878  {
879    background: var(--color-scheme-1--text);
880  }
881
882/* Variant transparent scrolled dark */
883  .navbar_component[data-wf--section_navbar--variant="dark"].scrolled{
884    background: var(--c-black-100);
885    border-bottom: 0.0625rem solid var(--c-gray-700);
886  }
887
888  
889  
890/* Navbar links hover */
891  .navbar_dropdown-link:hover{
892    opacity: 50% !important;
893  }
894
895/* Mobile adjustments white */ 
896  .navbar_component:has(.navbar_menu-button.w--open) {
897    background: var(--c-white-100)!important;
898  }
899
900  .navbar_component:has(.navbar_menu-button.w--open) .menu-icon1_line-top,
901  .navbar_component:has(.navbar_menu-button.w--open) .menu-icon1_line-middle,
902  .navbar_component:has(.navbar_menu-button.w--open) .menu-icon1_line-bottom{
903    background: var(--color-scheme-1--text);
904  }
905
906  .navbar_component:has(.navbar_menu-button.w--open) .navbar_logo-link{
907    filter: invert(0);
908  }
909
910/* Mobile adjustments dark */ 
911  .navbar_component[data-wf--section_navbar--variant="dark"]:has(.navbar_menu-button.w--open) {
912    background: var(--c-black-100) !important;
913  }
914
915  .navbar_component[data-wf--section_navbar--variant="dark"]:has(.navbar_menu-button.w--open) .menu-icon1_line-top,
916  .navbar_component[data-wf--section_navbar--variant="dark"]:has(.navbar_menu-button.w--open) .menu-icon1_line-middle,
917  .navbar_component[data-wf--section_navbar--variant="dark"]:has(.navbar_menu-button.w--open) .menu-icon1_line-bottom{
918    background: var(--c-white-100);
919  }
920
921  .navbar_component[data-wf--section_navbar--variant="dark"]:has(.navbar_menu-button.w--open) .navbar_logo-link{
922    filter: invert(1);
923  } 
924</style></div></div><div data-animation="default" class="navbar_component w-nav" data-easing2="ease" data-wf-component-id="2e82118a-0a03-bb39-5795-bb7f5c3cea99" data-wf--section_navbar--variant="default" fs-scrolldisable-element="smart-nav" data-easing="ease" data-wf-variant-state="base" data-collapse="medium" data-w-id="2e82118a-0a03-bb39-5795-bb7f5c3cea99" role="banner" data-duration="400"><div class="announcemnet-bar-wrapper"><div class="announcemnet-inner-wrapper"><a href="https://luci.memories.ai/?utm_source=memories_ai&amp;utm_medium=banner&amp;utm_campaign=luci_desktop" target="_blank" class="announcemnet-bar w-inline-block"><div class="t-paragraph-1-rg is-announcment-bar">Introducing LUCI desktop: local computer history for every AI agent</div><div class="announcemnet-line"></div></a></div><a data-w-id="cda4f277-d156-6207-0e33-6c15569cade9" href="#" class="announcemnet_close w-inline-block"><div class="icon-embed-xxsmall w-embed">
924<svg width="100%" height="100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
925	<path d="M12.5 3.5L3.5 12.5" stroke="currentColor" stroke-linejoin="round"/>
926	<path d="M12.5 12.5L3.5 3.5" stroke="currentColor" stroke-linejoin="round"/>
927</svg>
928</div></a></div><div class="navbar_container"><a href="/" aria-current="page" class="navbar_logo-link w-nav-brand w--current"><img loading="lazy" src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a29473b61d39d62bcf807bb_Logotype.svg" alt="" class="navbar_logo"/></a><nav role="navigation" class="navbar_menu w-nav-menu"><div class="navbar_menu-left"><div data-delay="300" data-hover="true" data-w-id="2e82118a-0a03-bb39-5795-bb7f5c3cea9f" class="navbar_menu-dropdown w-dropdown"><div class="navbar_dropdown-toggle w-dropdown-toggle"><div class="t-paragraph-1-rg is-navbar-title">Solutions</div><div class="dropdown-chevron w-embed"><svg width="100%" height="100%" viewBox="0 0 6 6" fill="none" xmlns="http://www.w3.org/2000/svg">
929<path d="M3 5L5.59808 1.25L0.401924 1.25L3 5Z" fill="currentColor"/>
930</svg>
931</div></div><nav class="navbar6_dropdown-list w-dropdown-list"><div class="navbar_container"><div class="navbar_dropdown-content"><div class="navbar_dropdown-content-left"><div class="navbar_dropdown-column"><h4 data-el="stagger-in" class="t-label-1-md c-gray-500">Solutions</h4><div class="navbar_dropdown-link-list"><a data-el="stagger-in" href="/solution" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">Solution Overview</div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">The memory layer for every industry.</p></div></a></div></div><div class="navbar_dropdown-column"><h4 data-el="stagger-in" class="t-label-1-md c-gray-500">by industry</h4><div class="navbar_dropdown-link-list"><a data-el="stagger-in" href="/media" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">Media &amp; Entertainment</div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">Searchable archives, real-time clips.</p></div></a><a data-el="stagger-in" href="/security" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">Security &amp; Safety</div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">Real-time detection, cross-camera ReID.</p></div></a><a data-el="stagger-in" href="/robot" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">Robotic &amp; Physical AI</div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">Visual memory for robots and wearables.</p></div></a></div></div><div class="navbar_dropdown-column"><h4 data-el="stagger-in" class="t-label-1-md c-gray-500">success stories</h4><div class="navbar_dropdown-link-list"><a data-el="stagger-in" href="/case-studies" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">Case Studies</div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">Inside the products you already use.</p></div></a></div></div></div><div class="navbar_dropdown-content-right"><a href="/case-studies/nvidia" class="navbar_blog-item-violet w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a298c7ff950480f89a908a1_NVIDIA_white.svg" alt="" class="navbar_logo"/><div class="navbar_blog-content"><p class="t-paragraph-1-rg">Memories.ai gave our partners a shared retrieval layer that holds up across regions.</p><div class="navbar_blog-box"><p class="t-paragraph-2-rg">Read Nvidia Sucess Story</p><div class="icon-embed-6 w-embed"><svg width="100%" height="100%" viewBox="0 0 6 6" fill="none" xmlns="http://www.w3.org/2000/svg">
932<path d="M5 3L1.25 0.401924L1.25 5.59808L5 3Z" fill="currentColor"/>
933</svg>
934</div></div></div></a></div></div></div></nav></div><div data-delay="300" data-hover="true" data-w-id="2e82118a-0a03-bb39-5795-bb7f5c3ceacd" class="navbar_menu-dropdown w-dropdown"><div class="navbar_dropdown-toggle w-dropdown-toggle"><div class="t-paragraph-1-rg is-navbar-title">Developers</div><div class="dropdown-chevron w-embed">
934<svg width="100%" height="100%" viewBox="0 0 6 6" fill="none" xmlns="http://www.w3.org/2000/svg">
935<path d="M3 5L5.59808 1.25L0.401924 1.25L3 5Z" fill="currentColor"/>
936</svg>
937</div></div><nav class="navbar6_dropdown-list w-dropdown-list"><div class="navbar_container"><div class="navbar_dropdown-content"><div class="navbar_dropdown-content-left"><div class="navbar_dropdown-column"><h4 data-el="stagger-in" class="t-label-1-md c-gray-500">documentation</h4><div class="navbar_dropdown-link-list"><a data-el="stagger-in" href="https://docs.memories.ai/" target="_blank" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">API Docs</div><div class="icon-embed-5 is-abs w-embed"><svg width="100%" height="100%" viewBox="0 0 5 5" fill="none" xmlns="http://www.w3.org/2000/svg">
938<line x1="4.5" y1="2.18557e-08" x2="4.5" y2="5" stroke-width="1" stroke="currentColor"/>
939<line x1="5" y1="0.5" x2="-2.68229e-08" y2="0.499999" stroke-width="1" stroke="currentColor"/>
940</svg></div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">Endpoints, examples, and SDKs.</p></div></a><a data-el="stagger-in" href="https://memories.ai/app/login?redirectUrl=https://api-platform.memories.ai/?utm_source%3Dfooter%26_gl%3D1*19xn97g*_gcl_au*MTY1NTkwMzQ3Ny4xNzgwMDQwMzMx*_ga*MTgzMjQyMjE3Ni4xNzgwMDQwMzMx*_ga_Q3L9MFWM5F*czE3ODMwOTE4MzckbzYxJGcxJHQxNzgzMDkxOTAxJGo2MCRsMCRoOTgyMzQzNjg5" target="_blank" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">API Platform</div><div class="icon-embed-5 is-abs w-embed"><svg width="100%" height="100%" viewBox="0 0 5 5" fill="none" xmlns="http://www.w3.org/2000/svg">
941<line x1="4.5" y1="2.18557e-08" x2="4.5" y2="5" stroke-width="1" stroke="currentColor"/>
942<line x1="5" y1="0.5" x2="-2.68229e-08" y2="0.499999" stroke-width="1" stroke="currentColor"/>
943</svg></div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">The memory layer for every industry.</p></div></a></div></div><div class="navbar_dropdown-column"><h4 data-el="stagger-in" class="t-label-1-md c-gray-500">pricing</h4><div class="navbar_dropdown-link-list"><a data-el="stagger-in" href="/pricing" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">Pricing</div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">Per-inference and per-storage. No surprises.</p></div></a></div></div></div><div class="navbar_dropdown-content-right"><a href="/solution" class="navbar_blog-item-violet is-gray w-inline-block"><div class="navbar_blog-content"><div class="navbar_blog-box"><p class="t-paragraph-2-rg">Explore the Platform</p><div class="icon-embed-6 w-embed"><svg width="100%" height="100%" viewBox="0 0 6 6" fill="none" xmlns="http://www.w3.org/2000/svg">
944<path d="M5 3L1.25 0.401924L1.25 5.59808L5 3Z" fill="currentColor"/>
945</svg>
946</div></div></div></a></div></div></div></nav></div><div data-delay="300" data-hover="true" data-w-id="2e82118a-0a03-bb39-5795-bb7f5c3ceaee" class="navbar_menu-dropdown w-dropdown"><div class="navbar_dropdown-toggle w-dropdown-toggle"><div class="t-paragraph-1-rg is-navbar-title">Research</div><div class="dropdown-chevron w-embed"><svg width="100%" height="100%" viewBox="0 0 6 6" fill="none" xmlns="http://www.w3.org/2000/svg">
947<path d="M3 5L5.59808 1.25L0.401924 1.25L3 5Z" fill="currentColor"/>
948</svg>
949</div></div><nav class="navbar6_dropdown-list w-dropdown-list"><div class="navbar_container"><div class="navbar_dropdown-content"><div class="navbar_dropdown-content-left"><div class="navbar_dropdown-column"><h4 data-el="stagger-in" class="t-label-1-md c-gray-500">research</h4><div class="navbar_dropdown-link-list"><a data-el="stagger-in" href="/research" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">Publications</div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">Peer-reviewed papers from the team.</p></div></a><a data-el="stagger-in" href="https://github.com/Memories-ai-labs" target="_blank" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">GitHub</div><div class="icon-embed-5 is-abs w-embed">
949<svg width="100%" height="100%" viewBox="0 0 5 5" fill="none" xmlns="http://www.w3.org/2000/svg">
950<line x1="4.5" y1="2.18557e-08" x2="4.5" y2="5" stroke-width="1" stroke="currentColor"/>
951<line x1="5" y1="0.5" x2="-2.68229e-08" y2="0.499999" stroke-width="1" stroke="currentColor"/>
952</svg></div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">Open-source agents and SDKs.</p></div></a></div></div><div class="navbar_dropdown-column"><h4 data-el="stagger-in" class="t-label-1-md c-gray-500">projects</h4><div class="navbar_dropdown-link-list"><a data-el="stagger-in" href="/luci" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">Project LUCI</div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">Per-inference and per-storage. No surprises.</p></div></a><a data-el="stagger-in" href="/join" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">Research Fellowship</div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">Join our next research cohort.</p></div></a></div></div></div><div class="navbar_dropdown-content-right"><a href="/luci" class="navbar_blog-item-violet is-video w-inline-block"><div class="navbar_blog-content"><div class="navbar_blog-box"><p class="t-paragraph-2-rg">Learn about Project LUCI</p><div class="icon-embed-6 w-embed"><svg width="100%" height="100%" viewBox="0 0 6 6" fill="none" xmlns="http://www.w3.org/2000/svg">
953<path d="M5 3L1.25 0.401924L1.25 5.59808L5 3Z" fill="currentColor"/>
954</svg>
955</div></div></div><div class="video-abs_embed is-navbar w-embed"><!-- Set up -->
956<video width="100%" height="100%" style="object-fit: cover" autoplay loop muted playsinline poster="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a27ead8c434c5f5902c3dd8_poster-mini.webp">
957  <!-- Provide the Safari video -->
958  <source src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F6a29979c887c2d44bd4a8724_introduction_video_mp4.mp4" type='video/mp4'>
959  <!-- .. and the Chrome video -->
960  <source src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F6a29979c887c2d44bd4a8724_introduction_video_webm.webm" type="video/webm">
961</video></div></a></div></div></div></nav></div><div data-delay="300" data-hover="true" data-w-id="2e82118a-0a03-bb39-5795-bb7f5c3ceb0e" class="navbar_menu-dropdown w-dropdown"><div class="navbar_dropdown-toggle w-dropdown-toggle"><div class="t-paragraph-1-rg is-navbar-title">Company</div><div class="dropdown-chevron w-embed"><svg width="100%" height="100%" viewBox="0 0 6 6" fill="none" xmlns="http://www.w3.org/2000/svg">
962<path d="M3 5L5.59808 1.25L0.401924 1.25L3 5Z" fill="currentColor"/>
963</svg>
964</div></div><nav class="navbar6_dropdown-list w-dropdown-list"><div class="navbar_container"><div class="navbar_dropdown-content"><div class="navbar_dropdown-content-left"><div class="navbar_dropdown-column"><h4 data-el="stagger-in" class="t-label-1-md c-gray-500">company</h4><div class="navbar_dropdown-link-list"><a data-el="stagger-in" href="/about" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">About</div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">Who we are, what we believe.</p></div></a><a data-el="stagger-in" href="/careers" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">Careers</div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">Build the memory layer with us.</p></div></a></div></div><div class="navbar_dropdown-column"><h4 data-el="stagger-in" class="t-label-1-md c-gray-500">resources</h4><div class="navbar_dropdown-link-list"><a data-el="stagger-in" href="/blogs" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">Blog</div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">Updates from the team.</p></div></a><a data-el="stagger-in" href="/press" class="navbar_dropdown-link w-inline-block"><div class="navbar_item-right"><div class="navbar_heading-part"><div class="t-paragraph-1-rg">Press</div></div><p class="t-paragraph-2-rg c-gray-700 hide-mobile-landscape">Press releases and media resources.</p></div></a></div></div></div><div class="navbar_dropdown-content-right"><a href="/about" class="navbar_blog-item-violet is-company w-inline-block"><div class="navbar_blog-content"><div class="navbar_blog-box is-dark-text"><p class="t-paragraph-2-rg">Meet the team behind memories.ai</p><div class="icon-embed-6 w-embed">
964<svg width="100%" height="100%" viewBox="0 0 6 6" fill="none" xmlns="http://www.w3.org/2000/svg">
965<path d="M5 3L1.25 0.401924L1.25 5.59808L5 3Z" fill="currentColor"/>
966</svg>
967</div></div></div></a></div></div></div></nav></div></div><div class="navbar_buttons"><a href="https://memories.ai/app" target="_blank" class="btn is-default is-navbar w-inline-block"><div class="btn_wrapper is-navbar-default"><div class="t-paragraph-1-rg">Try now</div><div class="btn_icon is-gray is-navbar"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
968<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
969</svg>
970</div></div></div></a><a data-wf--btn--variant="primary" href="/contact-sales" class="btn is-default is-navbar-primary w-inline-block"><div class="btn_wrapper is-navbar-primary"><div class="t-paragraph-1-rg primary-3">Contact Sales</div><div class="btn_icon is-gray is-primary-navbar"><div class="icon-embed-8 primary-5 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
971<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
972</svg>
973</div></div></div></a></div></nav><div class="navbar_menu-button w-nav-button"><div class="menu-icon"><div class="menu-icon1_line-top"></div><div class="menu-icon1_line-middle"><div class="menu-icon1_line-middle-inner"></div></div><div class="menu-icon1_line-bottom"></div></div></div></div></div><main class="main-wrapper"><div class="popup_video"><div class="popup_video-bg"></div><div class="popup_video-modal"><div class="popup_video-embed w-embed"><div class="popup-plyr-wrapper">
974  <video
975    class="popup-plyr-video"
976    playsinline
977    preload="metadata"
978  >
979     <source src="https://resource.memories.ai/portal/0808img/memoriesai.mp4" data-wf-ignore="true">
980    Your browser does not support the video tag.
981  </video>
982</div></div></div><div class="popup_video-close"><div class="icon-embed-small w-embed"><svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 24 24" fill="currentColor" class="icon icon-tabler icons-tabler-filled icon-tabler-x"><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M6.707 5.293l5.293 5.292l5.293 -5.292a1 1 0 0 1 1.414 1.414l-5.292 5.293l5.292 5.293a1 1 0 0 1 -1.414 1.414l-5.293 -5.292l-5.293 5.292a1 1 0 1 1 -1.414 -1.414l5.292 -5.293l-5.292 -5.293a1 1 0 0 1 1.414 -1.414" /></svg></div></div><div class="hide w-embed w-script"><style>
983
984  .popup_video.is-open {
985    display: flex;
986    align-items: center;
987    justify-content: center;
988  }
989
990  .popup-plyr-wrapper,
991  .popup-plyr-wrapper .plyr,
992  .popup-plyr-wrapper video {
993    width: 100%;
994    height: 100%;
995  }
996
997  .popup-plyr-wrapper video {
998    object-fit: cover;
999  }
1000
1001  body.popup-scroll-locked {
1002    overflow: hidden;
1003  }
1004</style>
1005
1006<script>
1007  document.addEventListener("DOMContentLoaded", function () {
1008    const preview = document.querySelector(".video-abs_wrapper");
1009    const popup = document.querySelector(".popup_video");
1010    const closeButton = document.querySelector(".popup_video-close");
1011    const popupBg = document.querySelector(".popup_video-bg");
1012    const video = document.querySelector(".popup-plyr-video");
1013
1014    if (!preview || !popup || !closeButton || !video) return;
1015
1016    const popupPlayer = new Plyr(video, {
1017      controls: [
1018        "play-large",
1019        "play",
1020        "progress",
1021        "current-time",
1022        "mute",
1023        "volume",
1024        "fullscreen"
1025      ],
1026      autoplay: false,
1027      muted: false,
1028      clickToPlay: true,
1029      hideControls: false,
1030      resetOnEnd: false,
1031      fullscreen: {
1032        enabled: true,
1033        fallback: true,
1034        iosNative: true
1035      }
1036    });
1037
1038    function openPopup() {
1039      popup.classList.add("is-open");
1040      document.body.classList.add("popup-scroll-locked");
1041
1042      popupPlayer.muted = false;
1043      popupPlayer.volume = 1;
1044
1045      const playPromise = popupPlayer.play();
1046
1047      if (playPromise !== undefined) {
1048        playPromise.catch(function () {
1049          console.log("Video playback with audio was blocked by the browser.");
1050        });
1051      }
1052    }
1053
1054    function closePopup() {
1055      popupPlayer.pause();
1056      popupPlayer.currentTime = 0;
1057
1058      popup.classList.remove("is-open");
1059      document.body.classList.remove("popup-scroll-locked");
1060    }
1061
1062    preview.addEventListener("click", openPopup);
1063    closeButton.addEventListener("click", closePopup);
1064
1065    if (popupBg) {
1066      popupBg.addEventListener("click", closePopup);
1067    }
1068
1069    document.addEventListener("keydown", function (event) {
1070      if (event.key === "Escape" && popup.classList.contains("is-open")) {
1071        closePopup();
1072      }
1073    });
1074  });
1075</script>
1075</div></div><section data-video-hero="true" class="section_hero"><div class="padding-global"><div class="container-large"><div class="hero_layout"><div class="hero_video"><div class="hero_video-btn"><div class="hero_video-play">▶</div></div><div class="video-abs_wrapper"><div class="video-abs_embed w-embed"><!-- Set up -->
1076<video width="100%" height="100%" style="object-fit: cover" preload="none" loop muted playsinline poster="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a27ead8c434c5f5902c3dd8_poster-mini.webp">
1077  <!-- Provide the Safari video -->
1078  <source data-src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F6a27ea2d125c99e84c317cab_Minature_mp4.mp4" type='video/mp4'>
1079  <!-- .. and the Chrome video -->
1080  <source data-src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F6a27ea2d125c99e84c317cab_Minature_webm.webm" type="video/webm">
1081</video></div></div></div><div class="hero_text-part"><div class="mw-large is-hero"><h1 class="t-heading-1-md">The multimodal memory infrastructure <span class="no-wrap">for AI</span></h1></div><div class="mw-small"><p class="t-paragraph-1-rg">Memories.ai gives machines the ability to see, remember, and act. We build the foundational video intelligence layer that powers the next generation of AI.</p></div><div class="hero_buttons"><a data-wf--btn--variant="default" data-w-id="114a2f09-0bd6-258c-9b1d-72f0a4151594" href="https://memories.ai/app" target="_blank" class="btn is-default w-inline-block"><div class="btn_wrapper"><div class="t-paragraph-1-rg">Try now</div><div class="btn_icon is-gray-violet"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1082<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1083</svg>
1084</div></div></div><div class="button-gradient"></div></a><a data-wf--btn--variant="primary" data-w-id="114a2f09-0bd6-258c-9b1d-72f0a4151594" href="/contact-sales" class="btn is-default w-inline-block"><div class="btn_wrapper w-variant-5e0ec0ff-49c5-1981-6517-216b7daf5b7d"><div class="t-paragraph-1-rg">Contact Sales</div><div class="btn_icon is-gray-violet w-variant-5e0ec0ff-49c5-1981-6517-216b7daf5b7d"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1085<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1086</svg>
1087</div></div></div><div class="button-gradient w-variant-5e0ec0ff-49c5-1981-6517-216b7daf5b7d"></div></a></div></div></div></div></div><div class="video-abs_wrapper"><div class="video-abs_embed w-embed"><!-- Set up -->
1088<video width="100%" height="100%" style="object-fit: cover; object-position: center bottom;" preload="none" loop muted playsinline poster="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a27e84b70d24270a1cec120_poster.webp">
1089  <!-- .. and the Chrome video -->
1090  <source data-src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F6a27e70de649e743c87e8702_red_gradient_remix_remix_scene%20%281%29_webm.webm" type="video/webm">
1091  <!-- Provide the Safari video -->
1092  <source data-src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F6a27e70de649e743c87e8702_red_gradient_remix_remix_scene%20%281%29_mp4.mp4" type='video/mp4'>
1093</video></div></div><div class="hide w-embed w-script">
1093<script>
1094  window.addEventListener('load', function() {
1095    const isDesktop = window.matchMedia('(min-width: 768px)').matches;
1096    if (!isDesktop) return;
1097
1098    const hero = document.querySelector('[data-video-hero="true"]');
1099    if (!hero) return;
1100
1101    const videos = hero.querySelectorAll('video');
1102    if (!videos.length) return;
1103
1104    const loadVideo = (video) => {
1105      if (video.dataset.loaded === 'true') return;
1106
1107      const sources = video.querySelectorAll('source[data-src]');
1108
1109      sources.forEach(source => {
1110        source.src = source.dataset.src;
1111      });
1112
1113      video.load();
1114      video.dataset.loaded = 'true';
1115    };
1116
1117    videos.forEach(video => {
1118      loadVideo(video);
1119
1120      video.play().catch(() => {
1121        // Autoplay can be blocked in some cases
1122      });
1123    });
1124  });
1125</script>
1125</div></section><section class="section_pillars"><div class="padding-global"><div class="container-large"><div data-video-section="true" class="pilars_main"><div data-w-id="3cb5fe00-90ce-ac0e-8548-9838db1e2a1a" class="pilars_sticky"><div class="pillars_layout"><div class="pillars_content"><div class="mw-medium hide-tablet"><h2 class="t-heading-2-md">Three pillars of visual intelligence</h2></div><div class="pillars_list"><div data-active-class="is-active" data-mobile-scroll="true" class="pillars_visual is-mobile-1"><div class="pilars_box"><img sizes="(max-width: 702px) 100vw, 702px" srcset="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2c2ddc4f1d7675ec4f78fa_cube-png-p-500.png 500w, https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2c2ddc4f1d7675ec4f78fa_cube-png.png 702w" alt="" src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2c2ddc4f1d7675ec4f78fa_cube-png.png" loading="lazy" class="pilars_cube-img"/><div class="paper-stack"><div class="pillars_sheet is-first"></div><div class="pillars_sheet"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-4"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-active"><div class="pilars_sheet-active"><div class="api_visual-comment-box is-pre-hero-1"><div class="api_visual-comment-inner-box"><div class="api_visual-text-box"><div class="t-paragraph-2-rg">Prepare stats for player #86</div></div></div><div class="api_visual-line is-small-3"></div></div></div></div><div class="pillars_sheet"></div><div class="pillars_sheet is-4"></div><div class="pillars_sheet is-4"></div><div class="pillars_sheet is-5"></div><div class="pillars_sheet"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-2"></div><div class="pillars_sheet is-2"></div><div class="pillars_sheet is-3"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-2"></div></div></div></div><div class="pillar_item is-1 is-active"><p class="t-label-1-md">001 | SEE</p><div class="pillar_text"><h3 class="t-heading-5-rg">Visual Understanding &amp; Indexing</h3><div class="pilar_description"><div class="pilar_description-box"><p class="t-paragraph-1-rg c-gray-700">Our Large Visual Memory Model processes video at scale, turning raw footage into structured visual data. Every frame, every face, every scene, every spoken word. Indexed, compressed, and ready to recall. Built by ex-scientists from Meta, Google and Nvidia.</p></div></div></div></div><div data-active-class="is-active" data-mobile-scroll="true" class="pillars_visual is-mobile-2"><div class="pilars_box"><img sizes="(max-width: 702px) 100vw, 702px" srcset="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2c2ddc4f1d7675ec4f78fa_cube-png-p-500.png 500w, https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2c2ddc4f1d7675ec4f78fa_cube-png.png 702w" alt="" src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2c2ddc4f1d7675ec4f78fa_cube-png.png" loading="lazy" class="pilars_cube-img"/><div class="paper-stack"><div class="pillars_sheet is-first"></div><div class="pillars_sheet"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-4"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-active"><div class="pilars_sheet-active"><div class="api_visual-comment-box is-pre-hero-1"><div class="api_visual-comment-inner-box"><div class="api_visual-text-box"><div class="t-paragraph-2-rg">Prepare stats for player #86</div></div></div><div class="api_visual-line is-small-3"></div></div></div></div><div class="pillars_sheet"></div><div class="pillars_sheet is-4"></div><div class="pillars_sheet is-4"></div><div class="pillars_sheet is-5"></div><div class="pillars_sheet"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-2"></div><div class="pillars_sheet is-2"></div><div class="pillars_sheet is-3"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-2"></div></div></div></div><div class="pillar_item is-2"><p class="t-label-1-md">002 | REMEMBER</p><div class="pillar_text"><h3 class="t-heading-5-rg">Persistent Visual Memory</h3><div class="pilar_description"><div class="pilar_description-box"><p class="t-paragraph-1-rg c-gray-700">Structured memory that persists across time. People, events, actions, and context organized into a searchable knowledge layer. Not just stored. Understood. The more it sees, the more it remembers, the smarter it gets.</p></div></div></div></div><div data-active-class="is-active" data-mobile-scroll="true" class="pillars_visual is-mobile-3"><div class="pilars_box"><img sizes="(max-width: 702px) 100vw, 702px" srcset="https://cdn.prod.website-files.com/6a26a66c04
112561307a4feed480/6a2c2ddc4f1d7675ec4f78fa_cube-png-p-500.png 500w, https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2c2ddc4f1d7675ec4f78fa_cube-png.png 702w" alt="" src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2c2ddc4f1d7675ec4f78fa_cube-png.png" loading="lazy" class="pilars_cube-img"/><div class="paper-stack"><div class="pillars_sheet is-first"></div><div class="pillars_sheet"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-4"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-active"><div class="pilars_sheet-active"><div class="api_visual-comment-box is-pre-hero-1"><div class="api_visual-comment-inner-box"><div class="api_visual-text-box"><div class="t-paragraph-2-rg is-box">Prepare stats for player #86</div></div></div><div class="api_visual-line is-small-3"></div></div></div></div><div class="pillars_sheet"></div><div class="pillars_sheet is-4"></div><div class="pillars_sheet is-4"></div><div class="pillars_sheet is-5"></div><div class="pillars_sheet"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-2"></div><div class="pillars_sheet is-2"></div><div class="pillars_sheet is-3"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-2"></div></div></div></div><div class="pillar_item is-3"><p class="t-label-1-md">003 | ACT</p><div class="pillar_text"><h3 class="t-heading-5-rg">Intelligent Action</h3><div class="pilar_description"><div class="pilar_description-box"><p class="t-paragraph-1-rg c-gray-700">Agents built on top of visual memory that complete end-to-end tasks. Analyze hours of footage in seconds. Flag safety incidents the moment they happen. Auto-tag and organize your entire video library. Surface the exact moments that matter. Real value, not just search results.</p></div></div></div></div></div></div><div class="pillars_visual"><div class="pilars_box"><img sizes="(max-width: 702px) 100vw, 702px" srcset="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2c2ddc4f1d7675ec4f78fa_cube-png-p-500.png 500w, https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2c2ddc4f1d7675ec4f78fa_cube-png.png 702w" alt="" src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2c2ddc4f1d7675ec4f78fa_cube-png.png" loading="lazy" class="pilars_cube-img"/><div class="paper-stack"><div class="pillars_sheet is-first"><div class="video-abs_wrapper"><div class="video-abs_embed w-embed"><!-- Set up -->
1126<video width="100%" height="100%" style="object-fit: cover" preload="none" loop muted playsinline poster="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2b2a0c860771c53b8152dc_poster-prehero.webp">
1127  <!-- .. and the Chrome video -->
1128  <source data-src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F6a2b276130d2d256dfbba914_hp-pre-hero%201_webm.webm" type="video/webm">
1129  <!-- Provide the Safari video -->
1130  <source data-src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F6a2b276130d2d256dfbba914_hp-pre-hero%201_mp4.mp4" type='video/mp4'>
1131  
1132</video></div></div></div><div class="pillars_sheet"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-4"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-active"><div class="pilars_sheet-active"><div class="api_visual-comment-box is-pre-hero-1"><div class="api_visual-comment-inner-box"><div class="api_visual-text-box"><div class="t-paragraph-2-rg is-comment">Prepare stats for player #86</div></div></div><div class="api_visual-line is-small-3"></div></div></div></div><div class="pillars_sheet"></div><div class="pillars_sheet is-4"></div><div class="pillars_sheet is-4"></div><div class="pillars_sheet is-5"></div><div class="pillars_sheet"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-2"></div><div class="pillars_sheet is-2"></div><div class="pillars_sheet is-3"></div><div class="pillars_sheet"></div><div class="pillars_sheet is-2"></div></div></div></div><div class="pillars_mobile-heading"><h2 class="t-heading-2-md">Three pillars of visual intelligence</h2></div></div></div></div></div></div><div class="hide w-embed"><style>
1133  /* Card 2 */
1134    .pillars_visual {
1135    --sheet-width: 12.5rem;
1136    --sheet-height: 15rem;
1137    --sheet-gap: 0.5rem;
1138    --sheet-gap-hover: 0px;
1139    --sheet-count: 17;
1140  }
1141  
1142  .pillars_visual .paper-stack {
1143    position: relative;
1144    width: calc(var(--sheet-width) + (var(--sheet-gap-hover) * (var(--sheet-count) - 1)));
1145    height: calc(var(--sheet-height) + (var(--sheet-gap-hover) * (var(--sheet-count) - 1)));
1146  }
1147
1148   .pillar_item .pilar_description{
1149    transition: grid-template-rows 0.6s cubic-bezier(0.6, 0, 0.15, 1),
1150      opacity 0.6s cubic-bezier(0.6, 0, 0.15, 1);
1151  }
1152  
1153  .pillars_visual .paper-stack, .pilars_sheet-active{
1154    transition: transform 0.7s cubic-bezier(0.6, 0, 0.15, 1);
1155  }
1156  
1157  .pillars_visual .pilars_cube-img{
1158    transition: opacity 0.7s cubic-bezier(0.6, 0, 0.15, 1);
1159  }
1160
1161  .pillars_visual .pillars_sheet {
1162    position: absolute;
1163    left: 0;
1164    bottom: 0;
1165    width: var(--sheet-width);
1166    height: var(--sheet-height);
1167    border-radius: 0px;
1168    transform: translate(0 , 0);
1169    z-index: calc(10 - var(--i));
1170    transition: transform 0.7s cubic-bezier(0.6, 0, 0.15, 1);
1171  }
1172
1173  .pillars_visual .pillars_sheet:nth-child(1) { --i: 0; }
1174  .pillars_visual .pillars_sheet:nth-child(2) { --i: 1; }
1175  .pillars_visual .pillars_sheet:nth-child(3) { --i: 2; }
1176  .pillars_visual .pillars_sheet:nth-child(4) { --i: 3; }
1177  .pillars_visual .pillars_sheet:nth-child(5) { --i: 4; }
1178  .pillars_visual .pillars_sheet:nth-child(6) { --i: 5; }
1179  .pillars_visual .pillars_sheet:nth-child(7) { --i: 6; }
1180  .pillars_visual .pillars_sheet:nth-child(8) { --i: 7; }
1181  .pillars_visual .pillars_sheet:nth-child(9) { --i: 8; }
1182  .pillars_visual .pillars_sheet:nth-child(10) { --i: 9; }
1183  .pillars_visual .pillars_sheet:nth-child(11) { --i: 10; }
1184  .pillars_visual .pillars_sheet:nth-child(12) { --i: 11; }
1185  .pillars_visual .pillars_sheet:nth-child(13) { --i: 12; }
1186  .pillars_visual .pillars_sheet:nth-child(14) { --i: 13; }
1187  .pillars_visual .pillars_sheet:nth-child(15) { --i: 14; }
1188  .pillars_visual .pillars_sheet:nth-child(16) { --i: 15; }
1189  .pillars_visual .pillars_sheet:nth-child(17) { --i: 16; }
1190
1191  .pillars_sheet.is-first{
1192      -webkit-mask-image: url("https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2abab5430a95819592a02b_vector.svg");
1193      mask-image: url("https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2abab5430a95819592a02b_vector.svg");
1194      -webkit-mask-repeat: no-repeat;
1195      mask-repeat: no-repeat;
1196      -webkit-mask-position: center;
1197      mask-size: 100%; /* your initial mask size */
1198      -webkit-mask-size: 100%; /* your initial mask size */
1199      mask-position: center;
1200  }
1201
1202  
1203  /* Active options */
1204  
1205  .pillars_visual.is-active .pillars_sheet {
1206    transform: translate(
1207    calc(var(--i) * var(--sheet-gap)),
1208    calc(var(--i) * var(--sheet-gap) * -1) );
1209  }
1210
1211   .pillars_visual.is-active  .paper-stack{
1212    transform: translate(-4rem, 4rem);
1213   }
1214
1215   .pillars_visual.is-active-2 .pilars_cube-img{
1216     opacity: 1;
1217   }
1218
1219  .pillars_visual.is-active-3 .pilars_sheet-active{
1220    transform: translateY(-65%);
1221  }
1222
1223  .pillars_visual.is-active-3 .pilars_cube-img{
1224    z-index: 1;
1225  }
1226
1227   .pillars_visual.is-active-3 .api_visual-comment-box.is-pre-hero-1{
1228     opacity: 1;
1229   }
1230
1231
1232  .pillar_item.is-active{
1233    opacity: 100%;
1234  }
1235
1236  .pillar_item.is-active .pilar_description{
1237    grid-template-rows: 1fr;
1238    opacity: 1;
1239  }
1240
1241/* Mobile styles */
1242@media (max-width: 992px) {
1243	.pillars_visual.is-mobile-2  .paper-stack, .pillars_visual.is-mobile-3  .paper-stack{
1244    transform: translate(-4rem, 4rem);
1245   }
1246
1247}  
1248  @media (max-width: 767px) {
1249  	 .pillars_visual {
1250    --sheet-width: 7rem;
1251    --sheet-height: 8.4rem;
1252    --sheet-gap: 0.25rem;
1253    --sheet-gap-hover: 0px;
1254    --sheet-count: 17;
1255  	}
1256
1257    .pillars_visual.is-active  .paper-stack{
1258    transform: translate(-2rem, 2em);
1259   }
1260
1261    .pillars_visual.is-mobile-2  .paper-stack, .pillars_visual.is-mobile-3  .paper-stack{
1262    transform: translate(-2rem, 2rem);
1263   }
1264  }
1265
1266  @media (max-width: 479px) {
1267  	 .pillars_visual {
1268    --sheet-width: 6.23rem;
1269    --sheet-height: 7.48rem;
1270    --sheet-gap: 0.25rem;
1271    --sheet-gap-hover: 0px;
1272    --sheet-count: 17;
1273  	}
1274
1275    /* .pillars_visual.is-active  .paper-stack{
1276    transform: translate(-1.78rem, -1.78rem);
1277   } */
1278  }
1279
1280
1281  /* Mobile iteraction step 1 */
1282  .pillars_visual.is-mobile-1.is-active .pillars_sheet {
1283    transform: translate(
1284    calc(var(--i) * var(--sheet-gap)),
1285    calc(var(--i) * var(--sheet-gap) * -1) );
1286  }
1287
1288  .pillars_visual.is-mobile-1.is-active  .paper-stack{
1289    transform: translate(-2rem, 2rem);
1290   }
1291
1292  .pillars_visual.is-mobile-2 .pillars_sheet, .pillars_visual.is-mobile-3 .pillars_sheet {
1293    transform: translate(
1294    calc(var(--i) * var(--sheet-gap)),
1295    calc(var(--i) * var(--sheet-gap) * -1) );
1296  }
1297  
1298  
1299
1300  /* Mobile iteraction step 2 */
1301  	.pillars_visual.is-mobile-2.is-active .pilars_cube-img{
1302     opacity: 1;
1303   }
1304
1305  .pillars_visual.is-mobile-3 .pilars_cube-img{
1306     opacity: 1;
1307   }
1308
1309  /* Mobile iteraction step 3 */
1310  .pillars_visual.is-mobile-3.is-active .pilars_sheet-active{
1311     transform: translateY(-65%);
1312   }
1313
1314   .pillars_visual.is-mobile-3.is-active .api_visual-comment-box.is-pre-hero-1{
1315     opacity: 1;
1316   }
1317  
1318</style></div></section><section class="section_statement"><div class="padding-global"><div class="container-large"><div class="statement_wrapper"><div class="mw-xlarge"><p text-letters-animation="" class="t-heading-2-md">Our engineers sit with your team until the system runs in production. We define success together, ship in weeks, and stay after launch. Edge, on-prem, or cloud, modular around your stack.</p></div></div></div></div></section><section class="section_numbers"><div class="padding-global"><div class="container-large"></div></div></section><section class="section_industries"><div class="padding-global"><div class="container-large"><div class="numbers_container"><div data-wf--numbers_row-item--variant="default" class="numbers_row-item"><div class="numbers_divider"></div><div class="numbers_row"><p fb-count-time="2000" fb-count="true" fb-count-target="100M+" fb-count-delay="100" class="t-heading-2-md">100M+</p><p class="t-heading-5-rg c-gray-700">Cameras powered by partner integrations</p></div><div class="numbers_divider is-service-last"></div></div><div data-wf--numbers_row-item--variant="default" class="numbers_row-item"><div class="numbers_divider"></div><div class="numbers_row"><p fb-count-time="2000" fb-count="true" fb-count-target="6+" fb-count-delay="100" class="t-heading-2-md">6+</p><p class="t-heading-5-rg c-gray-700">Global technology partnerships</p></div><div class="numbers_divider is-service-last"></div></div><div data-wf--numbers_row-item--variant="default" class="numbers_row-item"><div class="numbers_divider"></div><div class="numbers_row"><p fb-count-time="2000" fb-count="true" fb-count-target="SOC 2 Type II" fb-count-delay="100" class="t-heading-2-md">SOC 2 Type II</p><p class="t-heading-5-rg c-gray-700">Certified</p></div><div class="numbers_divider is-service-last"></div></div></div><div class="drum_wrap"><div class="drum"><div class="drum_track"><div data-url="/media" class="drum_item"><h2 class="t-heading-2-md">Media &amp; Entertainment</h2></div><div data-url="/robot" class="drum_item"><h2 class="t-heading-2-md">Robotics &amp; Physical AI</h2></div><div data-url="/security" class="drum_item"><h2 class="t-heading-2-md">Security &amp; Safety</h2></div></div><div class="drum_overlay"><div class="drum_overlay-inner"><a data-wf--btn--variant="default" data-w-id="114a2f09-0bd6-258c-9b1d-72f0a4151594" href="#" class="btn is-default w-inline-block"><div class="btn_wrapper"><div class="t-paragraph-1-rg">Check Solution</div><div class="btn_icon is-gray-violet"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1319<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1320</svg>
1321</div></div></div><div class="button-gradient"></div></a></div></div></div><div class="hide w-embed w-script"><style>
1322  /* fade mask top & bottom — not available in the Designer */
1323  .drum{
1324    -webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.2) 12%,rgba(0,0,0,.6) 26%,#000 40%,#000 60%,rgba(0,0,0,.6) 74%,rgba(0,0,0,.2) 88%,transparent 100%);
1325            mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.2) 12%,rgba(0,0,0,.6) 26%,#000 40%,#000 60%,rgba(0,0,0,.6) 74%,rgba(0,0,0,.2) 88%,transparent 100%);
1326  }
1327  .drum_track{will-change:transform;transition:transform .7s cubic-bezier(.33,1,.68,1);}
1328  .drum_item{
1329    opacity:0;
1330    transition:transform .7s cubic-bezier(.33,1,.68,1), color .7s ease, opacity .7s ease;
1331  }
1332  /* JS writes data-d (distance from centre): 0 = active, 1 = neighbour, 2+ = hidden */
1333  .drum_item[data-d="0"]{color:#0b0b0b;opacity:1;cursor:pointer;}
1334  .drum_item[data-d="1"]{color:#b8b8b8;opacity:1;}
1335  .drum_item:not([data-d="0"]):hover{color:#6a6a6a;transition:color .18s ease, transform .7s cubic-bezier(.33,1,.68,1);}
1336
1337  /* button fade-in + icon rotate (reuses your btn / btn_icon classes) */
1338  .drum_overlay-inner{opacity:0;transform:translateY(8px);pointer-events:none;
1339    transition:opacity .2s ease, transform .35s cubic-bezier(.33,1,.68,1);}
1340  .drum_overlay-inner.is-visible{opacity:1;transform:none;pointer-events:auto;}
1341  .btn .btn_icon{transition:transform .42s cubic-bezier(.33,1,.68,1), background .18s ease;}
1342  .btn.is-pop .btn_icon{transform:rotate(90deg);}
1343</style>
1344
1345<script>
1346(function () {
1347  // ── match these to YOUR Webflow class names if you renamed anything ──
1348  const SEL = {
1349    drum:    '.drum',
1350    track:   '.drum_track',
1351    item:    '.drum_item',
1352    overlay: '.drum_overlay-inner',
1353    btn:     '.btn',
1354  };
1355  const VISIBLE  = 'is-visible';
1356  const URL_ATTR = 'data-url';   // custom attribute on each .drum_item
1357  const NEW_TAB  = false;        // true → open solutions in a new tab
1358
1359  const COPIES     = 3;
1360  const INTERVAL   = 4000;       // auto-advance (ms)
1361  const ANIM_MS    = 700;        // must match the transition above
1362  const SCALES     = [1, 0.76, 0.58, 0.44, 0.35];
1363  const PULL_RATIO = 0.37;       // pulls items above the centre closer (≈68/184 from the reference)
1364
1365  const drum = document.querySelector(SEL.drum);
1366  if (!drum) return;
1367  const track   = drum.querySelector(SEL.track);
1368  const overlay = document.querySelector(SEL.overlay);
1369  const btn     = overlay && overlay.querySelector(SEL.btn);
1370
1371  // your items are the source of truth; clone them COPIES× for the infinite loop
1372  const originals = Array.from(track.querySelectorAll(SEL.item));
1373  const N = originals.length;
1374  if (!N) return;
1375  track.innerHTML = '';
1376  for (let c = 0; c < COPIES; c++) originals.forEach(n => track.appendChild(n.cloneNode(true)));
1377  const items = Array.from(track.querySelectorAll(SEL.item));
1378
1379  // measured at runtime → adapts to whatever sizes your breakpoints set
1380  let ITEM_H = items[0].offsetHeight || 184;
1381  let PULL   = Math.round(ITEM_H * PULL_RATIO);
1382
1383  let vi = N, busy = false, timer;
1384  const show = () => overlay && overlay.classList.add(VISIBLE);
1385  const hide = () => overlay && overlay.classList.remove(VISIBLE);
1386  const ty   = v => -(v * ITEM_H + ITEM_H / 2);
1387
1388  // keep the button pointed at the currently-centred solution
1389  function syncLink() {
1390    const url = items[vi] && items[vi].getAttribute(URL_ATTR);
1391    if (btn && url) {
1392      btn.setAttribute('href', url);
1393      if (NEW_TAB) { btn.setAttribute('target', '_blank'); btn.setAttribute('rel', 'noopener'); }
1394    }
1395  }
1396  function go(url) {
1397    if (!url) return;
1398    if (NEW_TAB) window.open(url, '_blank', 'noopener');
1399    else window.location.href = url;
1400  }
1401
1402  function paint(animate) {
1403    if (!animate) { track.style.transition = 'none'; items.forEach(el => el.style.transition = 'none'); }
1404    track.style.transform = 'translateY(' + ty(vi) + 'px)';
1405    items.forEach((el, i) => {
1406      const d = i - vi, abs = Math.abs(d);
1407      const extraY = d < 0 ? -d * PULL : 0;
1408      el.style.transform = 'translateY(' + extraY + 'px) scale(' + SCALES[Math.min(abs, 4)] + ')';
1409      el.dataset.d = String(Math.min(abs, 4));
1410    });
1411    if (!animate) { void track.offsetHeight; track.style.transition = ''; items.forEach(el => el.style.transition = ''); }
1412  }
1413
1414  function goTo(target) {
1415    if (busy || target === vi) return;
1416    busy = true; hide(); vi = target; paint(true);
1417    setTimeout(() => {
1418      if (vi >= N * 2) { vi -= N; paint(false); }
1419      else if (vi < N) { vi += N; paint(false); }
1420      busy = false; show(); syncLink();
1421    }, ANIM_MS + 40);
1422  }
1423  const advance = () => goTo(vi + 1);
1424  const auto = () => { clearInterval(timer); timer = setInterval(advance, INTERVAL); };
1425
1426  // button → navigate to the active solution
1427  if (btn) btn.addEventListener('click', (e) => {
1428    e.preventDefault();
1429    if (overlay && !overlay.classList.contains(VISIBLE)) return;
1430    btn.classList.add('is-pop');
1431    setTimeout(() => btn.classList.remove('is-pop'), 200);
1432    go(items[vi] && items[vi].getAttribute(URL_ATTR));
1433  });
1434
1435  // click active label → go to its page; click a side label → rotate to it
1436  items.forEach((el, i) => el.addEventListener('click', () => {
1437    if (i === vi) go(el.getAttribute(URL_ATTR));
1438    else { goTo(i); auto(); }
1439  }));
1440
1441  // re-measure when the breakpoint / orientation changes
1442  let rt;
1443  window.addEventListener('resize', () => {
1444    clearTimeout(rt);
1445    rt = setTimeout(() => {
1446      ITEM_H = items[0].offsetHeight || ITEM_H;
1447      PULL   = Math.round(ITEM_H * PULL_RATIO);
1448      paint(false);
1449    }, 150);
1450  });
1451
1452  // pause autoplay when the tab is hidden (saves cycles, avoids jump on return)
1453  document.addEventListener('visibilitychange', () => {
1454    if (document.hidden) clearInterval(timer);
1455    else auto();
1456  });
1457
1458  paint(false);
1459  syncLink();
1460  auto();
1461  setTimeout(show, 100);
1462})();
1463</script>
1463</div></div></div></div></section><section class="section_apis"><div class="padding-global"><div class="container-large"><div data-video-section="true" class="apis_wrapper"><div class="apis_header"><h2 class="t-heading-2-md">Two ways the platform gets used</h2><div class="mw-medium"><p class="t-paragraph-1-rg c-gray-700">Some teams have a piece of footage and need an answer about it right now. Others are building systems that have to remember across years of operation. Our APIs are shaped around those two patterns.</p></div></div><div class="apis_grid"><div class="hide w-embed"><style>
1464/* Cards 1 */  
1465.corner-svg-path {
1466    	stroke-width: 2;
1467    	transition: stroke-width 0.7s cubic-bezier(0.6, 0, 0.15, 1);
1468	}
1469
1470	.api_visual-comment-box, .api_mobile-comment-box{
1471      transition: opacity 0.7s cubic-bezier(0.6, 0, 0.15, 1);
1472    }
1473    
1474	.api_visual-corner-box{
1475      transition: 
1476        transform 0.8s cubic-bezier(0.6, 0, 0.15, 1), 
1477        left 0.8s cubic-bezier(0.6, 0, 0.15, 1), 
1478        top 0.8s cubic-bezier(0.6, 0, 0.15, 1), 
1479        width 0.8s cubic-bezier(0.6, 0, 0.15, 1), 
1480        height 0.8s cubic-bezier(0.6, 0, 0.15, 1);
1481    }
1482    
1483	.api_card-visual-box-left, .api_visual-corner-embed{
1484      transition: width 0.7s cubic-bezier(0.6, 0, 0.15, 1), height 0.7s cubic-bezier(0.6, 0, 0.15, 1);
1485    }
1486  
1487  @media screen and (min-width: 992px) {
1488    [hp-card-1]:hover .api_card-visual-box-left{
1489      width: 19.75rem;
1490      height: 12.125rem;
1491    }
1492
1493    [hp-card-1]:hover .api_visual-corner-box{
1494      width: 4.85rem;
1495      height: 4.85rem;
1496      /* transform: translate(140%, 20%);  */
1497      left: 35%;
1498      top: 10%; 
1499    }
1500
1501	[hp-card-1]:hover .api_visual-comment-box{
1502      opacity: 100%;
1503    }
1504    
1505    [hp-card-1]:hover .api_visual-corner-embed{
1506      width: 0.500rem;
1507      height: 0.500rem;
1508    }
1509
1510    [hp-card-1]:hover .api_visual-corner-embed .corner-svg-path{
1511       stroke-width: 8;
1512    }
1513  }
1514
1515/* mobile */
1516  [hp-card-1].is-active .api_card-visual-box-left{
1517      width: 25rem;
1518      height: auto;
1519    }
1520
1521    [hp-card-1].is-active .api_visual-corner-box{
1522      width: 5rem;
1523      height: 5rem;
1524      /* transform: translate(250%, 50%);  */
1525      left: 39%;
1526      top: 10%; 
1527    }
1528
1529	[hp-card-1].is-active .api_mobile-comment-box{
1530      opacity: 100%;
1531    }
1532  
1533    [hp-card-1].is-active .api_visual-corner-embed{
1534      width: 0.500rem;
1535      height: 0.500rem;
1536    }
1537
1538    [hp-card-1].is-active .api_visual-corner-embed .corner-svg-path{
1539       stroke-width: 8;
1540    }
1541  @media (max-width: 479px) {
1542    [hp-card-1].is-active .api_visual-corner-box{
1543      width: 15vw;
1544      height: 15vw;
1545      /* transform: translate(250%, 50%);  */
1546      left: 42%;
1547      top: 10%; 
1548    }
1549  }  
1550  
1551/* Card 2 */
1552    [hp-card-2] {
1553    --sheet-width: 10.625rem;
1554    --sheet-height: 12.5rem;
1555    --sheet-gap: 0.8125rem;
1556    --sheet-gap-hover: 0.9375rem;
1557    --sheet-count: 7;
1558  }
1559  
1560  [hp-card-2] .paper-stack {
1561    position: relative;
1562    width: calc(var(--sheet-width) + (var(--sheet-gap-hover) * (var(--sheet-count) - 1)));
1563    height: calc(var(--sheet-height) + (var(--sheet-gap-hover) * (var(--sheet-count) - 1)));
1564  }
1565  
1566  [hp-card-2] .paper-sheet {
1567    position: absolute;
1568    left: 0;
1569    bottom: 0;
1570    width: var(--sheet-width);
1571    height: var(--sheet-height);
1572    border-radius: 0px;
1573    transform: translate(
1574      calc(var(--i) * var(--sheet-gap)),
1575      calc(var(--i) * var(--sheet-gap) * -1)
1576    );
1577    z-index: calc(10 - var(--i));
1578    transition: transform 0.7s cubic-bezier(0.6, 0, 0.15, 1);
1579  }
1580  
1581  @media screen and (min-width: 992px) {  
1582    [hp-card-2]:hover .paper-sheet {
1583      transform: translate(
1584        calc(var(--i) * var(--sheet-gap-hover)),
1585        calc(var(--i) * var(--sheet-gap-hover) * -1)
1586      );
1587    }
1588
1589    [hp-card-2]:hover .api_visual-comment-box{
1590    	opacity: 100%;
1591  	}
1592  }
1593
1594  [hp-card-2] .paper-sheet:nth-child(1) { --i: 0; }
1595  [hp-card-2] .paper-sheet:nth-child(2) { --i: 1; }
1596  [hp-card-2] .paper-sheet:nth-child(3) { --i: 2; }
1597  [hp-card-2] .paper-sheet:nth-child(4) { --i: 3; }
1598  [hp-card-2] .paper-sheet:nth-child(5) { --i: 4; }
1599  [hp-card-2] .paper-sheet:nth-child(6) { --i: 5; }
1600  [hp-card-2] .paper-sheet:nth-child(7) { --i: 6; }
1601
1602  .paper-sheet.is-first{
1603      -webkit-mask-image: url("https://cdn.prod.website-files.com/6a26a66c04
160361307a4feed480/6a2abab5430a95819592a02b_vector.svg");
1604      mask-image: url("https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2abab5430a95819592a02b_vector.svg");
1605      -webkit-mask-repeat: no-repeat;
1606      mask-repeat: no-repeat;
1607      -webkit-mask-position: center;
1608      mask-size: 100%; /* your initial mask size */
1609      -webkit-mask-size: 100%; /* your initial mask size */
1610      mask-position: center;
1611  }
1612
1613  [hp-card-2].is-active .paper-sheet {
1614      transform: translate(
1615        calc(var(--i) * var(--sheet-gap-hover)),
1616        calc(var(--i) * var(--sheet-gap-hover) * -1)
1617      );
1618    }
1619
1620    [hp-card-2].is-active .api_visual-comment-box{
1621    	opacity: 100%;
1622  	}
1623
1624  @media (max-width: 479px) {
1625  	 [hp-card-2] {
1626    --sheet-width: 8.5rem;
1627    --sheet-height: 10rem;
1628    --sheet-gap: 0.8125rem;
1629    --sheet-gap-hover: 0.9375rem;
1630    --sheet-count: 7;
1631  }
1632
1633    [hp-card-2].is-active .paper-stack{
1634      transform: translate(-4%, 0%);  */
1635    }
1636  }
1637</style></div><div data-mobile-scroll="true" hp-card-1="" data-active-class="is-active" class="api_card"><div class="api_card-visual"><div class="api_card-visual-box-left"><div class="api_visual-video-box"><div class="video-abs_wrapper"><div class="video-abs_embed w-embed"><!-- Set up -->
1638<video width="100%" height="100%" style="object-fit: cover" preload="none" loop muted playsinline poster="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2acfb694c894604a71f9f0_poster-new-2.webp">
1639  <!-- .. and the Chrome video -->
1640  <source data-src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F6a2a90d2265eef8818764bff_123_webm.webm" type="video/webm">
1641  <!-- Provide the Safari video -->
1642  <source data-src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F6a2a90d2265eef8818764bff_123_mp4.mp4" type='video/mp4'>
1643</video></div></div><div class="api_mobile-comment-box"><div class="api_visual-text-box"><div>0:13:43<br/></div><div>The magic isn&#x27;t in the machine. It&#x27;s in the fact that we agreed, collectively, </div></div><div class="api_visual-text-box c-gray-500"><div>0:13:52<br/></div><div>that a string of ones and zeros could mean...<br/></div></div></div></div><div class="api_visual-corner-box"><div class="api_visual-corner-embed is-left-top w-embed"><svg width="100%" height="100%" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
1644<path class="corner-svg-path" stroke-width="2" d="M39.5 0.5H0.5V39.5" stroke="url(#paint0_radial_5144_14328)"/>
1645<defs>
1646<radialGradient id="paint0_radial_5144_14328" cx="0" cy="0" r="1" gradientTransform="matrix(103.74 -207.217 77.5946 34.1392 20 44.1706)" gradientUnits="userSpaceOnUse">
1647<stop offset="0.120192" stop-color="#E1D6C9"/>
1648<stop offset="0.181473" stop-color="#B5D996"/>
1649<stop offset="0.224942" stop-color="#85CDC9"/>
1650<stop offset="0.336731" stop-color="#7A7BDC"/>
1651<stop offset="0.504676" stop-color="#3A167B"/>
1652<stop offset="0.507253" stop-color="#231D2E"/>
1653</radialGradient>
1654</defs>
1655</svg>
1656</div><div class="api_visual-corner-embed is-right-top w-embed"><svg width="100%" height="100%" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
1657<path class="corner-svg-path" stroke-width="2" d="M39 39.5L39 0.5L0 0.499998" stroke="url(#paint0_radial_5144_14329)"/>
1658<defs>
1659<radialGradient id="paint0_radial_5144_14329" cx="0" cy="0" r="1" gradientTransform="matrix(207.217 103.74 -34.1392 77.5946 -4.67064 20)" gradientUnits="userSpaceOnUse">
1660<stop offset="0.120192" stop-color="#E1D6C9"/>
1661<stop offset="0.181473" stop-color="#B5D996"/>
1662<stop offset="0.224942" stop-color="#85CDC9"/>
1663<stop offset="0.336731" stop-color="#7A7BDC"/>
1664<stop offset="0.504676" stop-color="#3A167B"/>
1665<stop offset="0.507253" stop-color="#231D2E"/>
1666</radialGradient>
1667</defs>
1668</svg>
1669</div><div class="api_visual-corner-embed is-right-bottom w-embed"><svg width="100%" height="100%" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
1670<path class="corner-svg-path" stroke-width="2" d="M39 0L39 39L0 39" stroke="url(#paint0_radial_5144_14331)"/>
1671<defs>
1672<radialGradient id="paint0_radial_5144_14331" cx="0" cy="0" r="1" gradientTransform="matrix(207.217 -103.74 -34.1392 -77.5946 -4.67064 19.5)" gradientUnits="userSpaceOnUse">
1673<stop offset="0.120192" stop-color="#E1D6C9"/>
1674<stop offset="0.181473" stop-color="#B5D996"/>
1675<stop offset="0.224942" stop-color="#85CDC9"/>
1676<stop offset="0.336731" stop-color="#7A7BDC"/>
1677<stop offset="0.504676" stop-color="#3A167B"/>
1678<stop offset="0.507253" stop-color="#231D2E"/>
1679</radialGradient>
1680</defs>
1681</svg>
1682</div><div class="api_visual-corner-embed is-left-bottom w-embed">
1682<svg width="100%" height="100%" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
1683<path class="corner-svg-path" stroke-width="2" d="M39.5 39H0.5V0" stroke="url(#paint0_radial_5144_14330)"/>
1684<defs>
1685<radialGradient id="paint0_radial_5144_14330" cx="0" cy="0" r="1" gradientTransform="matrix(103.74 207.217 77.5946 -34.1392 20 -4.67064)" gradientUnits="userSpaceOnUse">
1686<stop offset="0.120192" stop-color="#E1D6C9"/>
1687<stop offset="0.181473" stop-color="#B5D996"/>
1688<stop offset="0.224942" stop-color="#85CDC9"/>
1689<stop offset="0.336731" stop-color="#7A7BDC"/>
1690<stop offset="0.504676" stop-color="#3A167B"/>
1691<stop offset="0.507253" stop-color="#231D2E"/>
1692</radialGradient>
1693</defs>
1694</svg>
1695</div></div><div class="api_visual-comment-box"><div class="api_visual-comment-inner-box is-used"><div class="api_visual-text-box"><div>0:13:43<br/></div><div>The magic isn&#x27;t in the machine. It&#x27;s in the fact that we agreed, collectively, </div></div><div class="api_visual-text-box c-gray-500"><div>0:13:52<br/></div><div>that a string of ones and zeros could mean...<br/></div></div></div><div class="api_visual-line"></div></div></div></div><div class="api_card-text-part"><div class="api_card-title"><h3 class="t-heading-5-rg">Video Intelligence API</h3></div><div class="api_card-footer"><div class="api_heading-max"><p class="t-paragraph-1-rg c-gray-700">Captioning, streaming understanding, and human re-identification, available through a single API.</p></div><a data-wf--btn--variant="default" data-w-id="114a2f09-0bd6-258c-9b1d-72f0a4151594" href="https://api-tools.memories.ai/visual-intelligence/getting-started/introduction" target="_blank" class="btn is-default w-inline-block"><div class="btn_wrapper"><div class="t-paragraph-1-rg">Read Docs</div><div class="btn_icon is-gray-violet"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1696<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1697</svg>
1698</div></div></div><div class="button-gradient"></div></a></div></div></div><div data-active-class="is-active" hp-card-2="" data-mobile-scroll="true" class="api_card"><div class="api_card-visual"><div class="paper-stack"><div class="paper-sheet is-first"><div class="video-abs_wrapper"><div class="video-abs_embed w-embed"><!-- Set up -->
1699<video width="100%" height="100%" style="object-fit: cover" preload="none" loop muted playsinline poster="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2acfb65eea0e6c29943cff_poster-new-1.webp">
1700  <source data-src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F6a2a919e121c0560f6682dec_4444_webm.webm" type="video/webm">
1701  <!-- Provide the Safari video -->
1702  <source data-src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480%2F6a2a919e121c0560f6682dec_4444_mp4.mp4" type='video/mp4'>
1703  <!-- .. and the Chrome video -->
1704</video></div></div></div><div class="paper-sheet"></div><div class="paper-sheet"></div><div class="paper-sheet"></div><div class="paper-sheet"></div><div class="paper-sheet"></div><div class="api_visual-comment-box is-small-1"><div class="api_visual-comment-inner-box"><div class="api_visual-text-box"><div class="t-paragraph-2-rg">Search</div></div></div><div class="api_visual-line is-small-1"></div></div><div class="api_visual-comment-box is-small-2"><div class="api_visual-comment-inner-box"><div class="api_visual-text-box"><div class="t-paragraph-2-rg">Index<br/></div></div></div><div class="api_visual-line is-small-1"></div></div><div class="api_visual-comment-box is-small-3"><div class="api_visual-comment-inner-box"><div class="api_visual-text-box"><div class="t-paragraph-2-rg">Host</div></div></div><div class="api_visual-line is-small-3"></div></div></div></div><div class="api_card-text-part"><div class="api_card-title"><h3 class="t-heading-5-rg">Visual Search API</h3></div><div class="api_card-footer"><div class="api_heading-max"><p class="t-paragraph-1-rg c-gray-700">Host, index, and search video at scale.<br/>Built for products that need to remember.</p></div><a data-wf--btn--variant="default" data-w-id="114a2f09-0bd6-258c-9b1d-72f0a4151594" href="https://api-tools.memories.ai/visual-search/introduction" target="_blank" class="btn is-default w-inline-block"><div class="btn_wrapper"><div class="t-paragraph-1-rg">Read Docs</div><div class="btn_icon is-gray-violet"><div class="icon-embed-8 w-embed">
1704<svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1705<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1706</svg>
1707</div></div></div><div class="button-gradient"></div></a></div></div></div></div></div></div></div></section><section class="section_partners"><div class="padding-global"><div class="container-large"><div class="padding-section-large"><div class="partners_layout"><div class="partners_content"><div class="mw-medium is-partners"><h2 class="t-heading-2-md">Built for the world’s largest platforms.</h2></div><div class="mw-small"><p class="t-paragraph-1-rg t-heading-5-rg c-gray-700">Our infrastructure processes visual data for partners across consumer electronics, security, telecommunications, and enterprise AI.</p></div><a data-wf--btn--variant="default" data-w-id="114a2f09-0bd6-258c-9b1d-72f0a4151594" href="/case-studies" class="btn is-default w-inline-block"><div class="btn_wrapper"><div class="t-paragraph-1-rg">Read all Case Studies</div><div class="btn_icon is-gray-violet"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1708<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1709</svg>
1710</div></div></div><div class="button-gradient"></div></a><link rel="prefetch" href="/case-studies"/></div><div class="partners_cms-wrapper"><div class="partners_cms-list"><div data-wf--component_cell--variant="default" class="logo_cell"><a href="#" class="logo_partners-link w-inline-block"><img width="Auto" height="33" alt="" src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2709eb2b83c952cab2ec69_microsoft.svg" loading="lazy" class="logo_img"/><div class="icon-embed-12 is-left-bottom w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1711<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 11)" stroke="currentColor"/>
1712<path d="M0.5 11L0.5 0" stroke="currentColor"/>
1713</svg>
1714</div><div class="icon-embed-12 is-right-bottom w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1715<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 11)" stroke="currentColor"/>
1716<path d="M11.5 11L11.5 0" stroke="currentColor"/>
1717</svg>
1718</div><div class="icon-embed-12 is-right-top w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1719<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 0)" stroke="currentColor"/>
1720<path d="M11.5 12L11.5 1" stroke="currentColor"/>
1721</svg>
1722</div><div class="icon-embed-12 is-left-top w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1723<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 0)" stroke="currentColor"/>
1724<path d="M0.5 12L0.5 1" stroke="currentColor"/>
1725</svg>
1726</div></a></div><div data-wf--component_cell--variant="is-link" class="logo_cell"><a href="/case-studies/nvidia" class="logo_partners-link w-variant-7a3054fc-1513-62ed-da34-8dbca3979ba1 w-inline-block"><img width="Auto" height="33" alt="" src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2709eb1652a778df790a1d_NVIDIA_logo.svg" loading="lazy" class="logo_img"/><div class="icon-embed-12 is-left-bottom w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1727<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 11)" stroke="currentColor"/>
1728<path d="M0.5 11L0.5 0" stroke="currentColor"/>
1729</svg>
1730</div><div class="icon-embed-12 is-right-bottom w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1731<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 11)" stroke="currentColor"/>
1732<path d="M11.5 11L11.5 0" stroke="currentColor"/>
1733</svg>
1734</div><div class="icon-embed-12 is-right-top w-embed">
1734<svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1735<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 0)" stroke="currentColor"/>
1736<path d="M11.5 12L11.5 1" stroke="currentColor"/>
1737</svg>
1738</div><div class="icon-embed-12 is-left-top w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1739<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 0)" stroke="currentColor"/>
1740<path d="M0.5 12L0.5 1" stroke="currentColor"/>
1741</svg>
1742</div></a></div><div data-wf--component_cell--variant="is-link" class="logo_cell"><a href="#" class="logo_partners-link w-variant-7a3054fc-1513-62ed-da34-8dbca3979ba1 w-inline-block"><img width="Auto" height="33" alt="" src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2709eb36fde8d23a676d60_samsung.svg" loading="lazy" class="logo_img"/><div class="icon-embed-12 is-left-bottom w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1743<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 11)" stroke="currentColor"/>
1744<path d="M0.5 11L0.5 0" stroke="currentColor"/>
1745</svg>
1746</div><div class="icon-embed-12 is-right-bottom w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1747<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 11)" stroke="currentColor"/>
1748<path d="M11.5 11L11.5 0" stroke="currentColor"/>
1749</svg>
1750</div><div class="icon-embed-12 is-right-top w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1751<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 0)" stroke="currentColor"/>
1752<path d="M11.5 12L11.5 1" stroke="currentColor"/>
1753</svg>
1754</div><div class="icon-embed-12 is-left-top w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1755<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 0)" stroke="currentColor"/>
1756<path d="M0.5 12L0.5 1" stroke="currentColor"/>
1757</svg>
1758</div></a></div><div data-wf--component_cell--variant="default" class="logo_cell"><a href="#" class="logo_partners-link w-inline-block"><img width="Auto" height="33" alt="" src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2709eb4919db54b2bc322b_lenovo.svg" loading="lazy" class="logo_img"/><div class="icon-embed-12 is-left-bottom w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1759<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 11)" stroke="currentColor"/>
1760<path d="M0.5 11L0.5 0" stroke="currentColor"/>
1761</svg>
1762</div><div class="icon-embed-12 is-right-bottom w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1763<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 11)" stroke="currentColor"/>
1764<path d="M11.5 11L11.5 0" stroke="currentColor"/>
1765</svg>
1766</div><div class="icon-embed-12 is-right-top w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1767<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 0)" stroke="currentColor"/>
1768<path d="M11.5 12L11.5 1" stroke="currentColor"/>
1769</svg>
1770</div><div class="icon-embed-12 is-left-top w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1771<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 0)" stroke="currentColor"/>
1772<path d="M0.5 12L0.5 1" stroke="currentColor"/>
1773</svg>
1774</div></a></div><div data-wf--component_cell--variant="default" class="logo_cell"><a href="#" class="logo_partners-link w-inline-block"><img width="Auto" height="33" alt="" src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2709ebd0f3b64d98270d39_Qualcomm-Logo.svg" loading="lazy" class="logo_img"/><div class="icon-embed-12 is-left-bottom w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1775<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 11)" stroke="currentColor"/>
1776<path d="M0.5 11L0.5 0" stroke="currentColor"/>
1777</svg>
1778</div><div class="icon-embed-12 is-right-bottom w-embed">
1778<svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1779<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 11)" stroke="currentColor"/>
1780<path d="M11.5 11L11.5 0" stroke="currentColor"/>
1781</svg>
1782</div><div class="icon-embed-12 is-right-top w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1783<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 0)" stroke="currentColor"/>
1784<path d="M11.5 12L11.5 1" stroke="currentColor"/>
1785</svg>
1786</div><div class="icon-embed-12 is-left-top w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1787<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 0)" stroke="currentColor"/>
1788<path d="M0.5 12L0.5 1" stroke="currentColor"/>
1789</svg>
1790</div></a></div><div data-wf--component_cell--variant="is-link" class="logo_cell"><a href="#" class="logo_partners-link w-variant-7a3054fc-1513-62ed-da34-8dbca3979ba1 w-inline-block"><img width="Auto" height="33" alt="" src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/6a2709ebf234a10a4f9bbc06_ring.svg" loading="lazy" class="logo_img"/><div class="icon-embed-12 is-left-bottom w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1791<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 11)" stroke="currentColor"/>
1792<path d="M0.5 11L0.5 0" stroke="currentColor"/>
1793</svg>
1794</div><div class="icon-embed-12 is-right-bottom w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1795<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 11)" stroke="currentColor"/>
1796<path d="M11.5 11L11.5 0" stroke="currentColor"/>
1797</svg>
1798</div><div class="icon-embed-12 is-right-top w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1799<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 0)" stroke="currentColor"/>
1800<path d="M11.5 12L11.5 1" stroke="currentColor"/>
1801</svg>
1802</div><div class="icon-embed-12 is-left-top w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1803<line y1="-0.5" x2="12" y2="-0.5" transform="matrix(1 0 0 -1 0 0)" stroke="currentColor"/>
1804<path d="M0.5 12L0.5 1" stroke="currentColor"/>
1805</svg>
1806</div></a></div></div></div></div></div></div></div></section><section data-video-section="true" class="section_luci"><div class="padding-global"><div class="container-large"><div class="luci_wrapper"><div id="w-node-_5d1dfa4d-91d8-c226-6642-4d4481ed854d-4feed462" class="luci_layout"><div class="luci_heading-part"><p text-letters-animation="" class="t-heading-4-md">The richest training signal for AI is what humans see, do, and say. So we built LUCI which powers human-centric AI training and self-improving models.</p><div class="luci_buttons"><a data-wf--btn--variant="default" data-w-id="114a2f09-0bd6-258c-9b1d-72f0a4151594" href="https://luci.memories.ai/" target="_blank" class="btn is-default w-inline-block"><div class="btn_wrapper"><div class="t-paragraph-1-rg">Meet LUCI Desktop</div><div class="btn_icon is-gray-violet"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1807<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1808</svg>
1809</div></div></div><div class="button-gradient"></div></a><a data-wf--btn--variant="primary" data-w-id="114a2f09-0bd6-258c-9b1d-72f0a4151594" href="/luci" class="btn is-default w-inline-block"><div class="btn_wrapper w-variant-5e0ec0ff-49c5-1981-6517-216b7daf5b7d"><div class="t-paragraph-1-rg">Explore LUCI Pin</div><div class="btn_icon is-gray-violet w-variant-5e0ec0ff-49c5-1981-6517-216b7daf5b7d"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1810<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1811</svg>
1812</div></div></div><div class="button-gradient w-variant-5e0ec0ff-49c5-1981-6517-216b7daf5b7d"></div></a></div></div><div class="luci_video"><div class="video_component"><div class="hide w-embed"><style>
1813  .custom-plyr-wrapper {
1814    position: relative;
1815    width: 100%;
1816    overflow: hidden;
1817    background: #000;
1818  }
1819
1820  .custom-plyr-wrapper video,
1821  .custom-plyr-wrapper .plyr {
1822    width: 100%;
1823    height: 100%;
1824  }
1825
1826  .custom-plyr-wrapper video {
1827    object-fit: cover;
1828  }
1829
1830  /* Hide Plyr controls by default */
1831  .custom-plyr-wrapper .plyr__controls {
1832    opacity: 0;
1833    pointer-events: none;
1834    transform: translateY(10px);
1835    transition: opacity 0.25s ease, transform 0.25s ease;
1836  }
1837
1838  /* Show controls on hover */
1839  .custom-plyr-wrapper:hover .plyr__controls {
1840    opacity: 1;
1841    pointer-events: auto;
1842    transform: translateY(0);
1843
1844  }
1845
1846  /* Also show controls when keyboard focus is inside */
1847  .custom-plyr-wrapper:focus-within .plyr__controls {
1848    opacity: 1;
1849    pointer-events: auto;
1850    transform: translateY(0);
1851  }
1852
1853  /* Optional: make video fill a nice ratio */
1854  .video_component {
1855    width: 100%;
1856    aspect-ratio: 16 / 9;
1857  }
1858
1859  .video_component .custom-plyr-wrapper {
1860    height: 100%;
1861  }
1862</style></div><div class="hide w-embed w-script">
1862<script>
1863  document.addEventListener("DOMContentLoaded", function () {
1864    const players = Array.from(document.querySelectorAll(".js-plyr-video"));
1865
1866    players.forEach(function (video) {
1867      const player = new Plyr(video, {
1868        controls: [
1869          "play-large",
1870          "play",
1871          "progress",
1872          "current-time",
1873          "mute",
1874          "volume",
1875          "fullscreen"
1876        ],
1877        muted: true,
1878        autoplay: true,
1879        clickToPlay: true,
1880        hideControls: false,
1881        resetOnEnd: false,
1882        fullscreen: {
1883          enabled: true,
1884          fallback: true,
1885          iosNative: true
1886        }
1887      });
1888
1889      player.muted = true;
1890      player.volume = 0;
1891
1892      const playPromise = player.play();
1893
1894      if (playPromise !== undefined) {
1895        playPromise.catch(function () {
1896          console.log("Autoplay was blocked by the browser.");
1897        });
1898      }
1899    });
1900  });
1901</script>
1901</div><div class="video_embed w-embed"><div class="custom-plyr-wrapper">
1902  <video
1903    class="js-plyr-video"
1904    autoplay
1905    muted
1906    loop
1907    playsinline
1908    preload="metadata"
1909    data-poster=""
1910  >
1911    <source data-src="https://resource.memories.ai/portal/0808img/introduction_video.mp4" data-wf-ignore="true">
1912    Your browser does not support the video tag.
1913  </video>
1914</div></div></div></div></div></div></div></div></section><section class="section_research"><div class="padding-global"><div class="container-large"><div class="research_wrapper"><div class="research_layout"><div class="research_content"><div class="research_bg-container"><div class="research_bg"></div></div><div class="mw-medium"><h2 class="t-heading-2-md">Built on research,<br/>not buzzwords.</h2></div><div class="mw-small"><p class="t-paragraph-1-rg t-heading-5-rg c-gray-700">Memories.ai began at Cambridge with a single thesis: visual memory deserves its own field.</p></div><a data-wf--btn--variant="default" data-w-id="114a2f09-0bd6-258c-9b1d-72f0a4151594" href="/research" class="btn is-default w-inline-block"><div class="btn_wrapper"><div class="t-paragraph-1-rg">Read all Publications</div><div class="btn_icon is-gray-violet"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1915<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1916</svg>
1917</div></div></div><div class="button-gradient"></div></a></div><div class="research_cards-wrapper research-bg_box"><div class="swiper is-research w-dyn-list"><div role="list" class="swiper-wrapper is-research w-dyn-items"><div role="listitem" class="swiper-slide is-research w-dyn-item"><a aria-label="single news" data-w-id="400441a0-ba04-03ea-0c63-05fc8c54f70c" href="/research/magic-video" class="news_card w-inline-block"><div class="news_card-img"><img src="https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6ab488b9c06337628c44cc3f_6ab48869de267ce6c7b888da_lilac-mist-16x10-1200.webp" loading="lazy" alt="MAGIC-Video: Structured Memory for Ultra-Long Agentic Video Reasoning" class="card_image"/></div><div class="card_footer"><p class="t-paragraph-1-rg">MAGIC-Video: Structured Memory for Ultra-Long Agentic Video Reasoning</p><div class="btn_icon is-gray-btn"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1918<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1919</svg>
1920</div></div></div></a></div><div role="listitem" class="swiper-slide is-research w-dyn-item"><a aria-label="single news" data-w-id="400441a0-ba04-03ea-0c63-05fc8c54f70c" href="/research/spatialmem" class="news_card w-inline-block"><div class="news_card-img"><img src="https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6ab488b9c06337628c44cc47_6ab488691be9bd99bd8a17a6_amethyst-16x10-1200.webp" loading="lazy" alt="SpatialMem: Metric-Aligned Long-Horizon Video Memory for Language Grounding and QA" class="card_image"/></div><div class="card_footer"><p class="t-paragraph-1-rg">SpatialMem: Metric-Aligned Long-Horizon Video Memory for Language Grounding and QA</p><div class="btn_icon is-gray-btn"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1921<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1922</svg>
1923</div></div></div></a></div><div role="listitem" class="swiper-slide is-research w-dyn-item"><a aria-label="single news" data-w-id="400441a0-ba04-03ea-0c63-05fc8c54f70c" href="/research/o-marc" class="news_card w-inline-block"><div class="news_card-img"><img src="https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6ab488b9c06337628c44cc3c_6ab48869a5581afb8b3adddf_twilight-16x10-1200.webp" loading="lazy" alt="O-MARC: Omni Memory-Augmented Compression Distillation for Efficient Video Understanding" class="card_image"/></div><div class="card_footer"><p class="t-paragraph-1-rg">O-MARC: Omni Memory-Augmented Compression Distillation for Efficient Video Understanding</p><div class="btn_icon is-gray-btn"><div class="icon-embed-8 w-embed">
1923<svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1924<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1925</svg>
1926</div></div></div></a></div><div role="listitem" class="swiper-slide is-research w-dyn-item"><a aria-label="single news" data-w-id="400441a0-ba04-03ea-0c63-05fc8c54f70c" href="/research/omniretriever" class="news_card w-inline-block"><div class="news_card-img"><img src="https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6ab488b9c06337628c44cc44_6ab4886959e0ce7b09f927f9_violet-sage-16x10-1200.webp" loading="lazy" alt="OmniRetriever: Any-to-Any Audio-Video-Text Retrieval via Fusion-as-Teacher Distillation" class="card_image"/></div><div class="card_footer"><p class="t-paragraph-1-rg">OmniRetriever: Any-to-Any Audio-Video-Text Retrieval via Fusion-as-Teacher Distillation</p><div class="btn_icon is-gray-btn"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1927<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1928</svg>
1929</div></div></div></a></div><div role="listitem" class="swiper-slide is-research w-dyn-item"><a aria-label="single news" data-w-id="400441a0-ba04-03ea-0c63-05fc8c54f70c" href="/research/marc" class="news_card w-inline-block"><div class="news_card-img"><img src="https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a427739d9a66517e5f82071_Cover-03-min.webp" loading="lazy" alt="MARC: Memory-Augmented RL Token Compression for Efficient Video Understanding" sizes="100vw" srcset="https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a427739d9a66517e5f82071_Cover-03-min-p-500.webp 500w, https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a427739d9a66517e5f82071_Cover-03-min-p-800.webp 800w, https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a427739d9a66517e5f82071_Cover-03-min-p-1080.webp 1080w, https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a427739d9a66517e5f82071_Cover-03-min.webp 1400w" class="card_image"/></div><div class="card_footer"><p class="t-paragraph-1-rg">MARC: Memory-Augmented RL Token Compression for Efficient Video Understanding</p><div class="btn_icon is-gray-btn"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1930<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1931</svg>
1932</div></div></div></a></div><div role="listitem" class="swiper-slide is-research w-dyn-item"><a aria-label="single news" data-w-id="400441a0-ba04-03ea-0c63-05fc8c54f70c" href="/research/ugc-videocaptioner" class="news_card w-inline-block"><div class="news_card-img"><img src="https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a42777045bad9f3476dd718_Cover-07-min.webp" loading="lazy" alt="UGC-VideoCaptioner: An Omni UGC Video Detail Caption Model and New Benchmarks" sizes="100vw" srcset="https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a42777045bad9f3476dd718_Cover-07-min-p-500.webp 500w, https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a42777045bad9f3476dd718_Cover-07-min-p-800.webp 800w, https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a42777045bad9f3476dd718_Cover-07-min-p-1080.webp 1080w, https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a42777045bad9f3476dd718_Cover-07-min.webp 1400w" class="card_image"/></div><div class="card_footer"><p class="t-paragraph-1-rg">UGC-VideoCaptioner: An Omni UGC Video Detail Caption Model and New Benchmarks</p><div class="btn_icon is-gray-btn"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1933<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1934</svg>
1935</div></div></div></a></div><div role="listitem" class="swiper-slide is-research w-dyn-item"><a aria-label="single news" data-w-id="400441a0-ba04-03ea-0c63-05fc8c54f70c" href="/research/camera" class="news_card w-inline-block"><div class="news_card-img"><img src="https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a42774bd125ad8126d2986b_Cover-04-min.webp" loading="lazy" alt="Memories-S0: An Efficient and Accurate Framework for Security Video Understanding" sizes="100vw" srcset="https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a42774bd125ad8126d2986b_Cover-04-min-p-500.webp 500w, https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a42774bd125ad8126d2986b_Cover-04-min-p-800.webp 800w, https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a42774bd125ad8126d2986b_Cover-04-min-p-1080.webp 1080w, https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a42774bd125ad8126d2986b_Cover-04-min.webp 1400w" class="card_image"/></div><div class="card_footer"><p class="t-paragraph-1-rg">Memories-S0: An Efficient and Accurate Framework for Security Video Understanding</p><div class="btn_icon is-gray-btn"><div class="icon-embed-8 w-embed">
1935<svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1936<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1937</svg>
1938</div></div></div></a></div><div role="listitem" class="swiper-slide is-research w-dyn-item"><a aria-label="single news" data-w-id="400441a0-ba04-03ea-0c63-05fc8c54f70c" href="/research/agentic-video-editing" class="news_card w-inline-block"><div class="news_card-img"><img src="https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a4277561c9745153992fcbb_Cover-05-min.webp" loading="lazy" alt="Prompt-Driven Agentic Video Editing System: Autonomous Comprehension of Long-Form, Story-Driven Media" sizes="100vw" srcset="https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a4277561c9745153992fcbb_Cover-05-min-p-500.webp 500w, https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a4277561c9745153992fcbb_Cover-05-min-p-800.webp 800w, https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a4277561c9745153992fcbb_Cover-05-min-p-1080.webp 1080w, https://cdn.prod.website-files.com/6a285c529f68b3f8cc485ef9/6a4277561c9745153992fcbb_Cover-05-min.webp 1400w" class="card_image"/></div><div class="card_footer"><p class="t-paragraph-1-rg">Prompt-Driven Agentic Video Editing System: Autonomous Comprehension of Long-Form, Story-Driven Media</p><div class="btn_icon is-gray-btn"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1939<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1940</svg>
1941</div></div></div></a></div></div></div><div class="research_arrows"><a id="research-btn-prev" aria-label="prev-slide" href="#" class="research_link-box w-inline-block"><div class="icon-embed-12 is-nav w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1942<path d="M7 10.823L2.26288 6L7 1.17697L5.84369 0L2.38419e-07 6L5.84369 12L7 10.823Z" fill="currentColor"/>
1943</svg>
1944</div></a><a id="research-btn-next" aria-label="next-slider" href="#" class="research_link-box w-inline-block"><div class="icon-embed-12 is-nav w-embed"><svg width="100%" height="100%" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
1945<path d="M5 10.823L9.73712 6L5 1.17697L6.15631 0L12 6L6.15631 12L5 10.823Z" fill="currentColor"/>
1946</svg>
1947</div></a></div><div class="hide w-embed w-script"><style>
1948  .research_link-box.swiper-button-disabled{
1949    opacity: 50%;
1950    pointer-events: none;
1951  }
1952</style>
1953<script>
1954  document.addEventListener("DOMContentLoaded", function() {
1955  var swiper;
1956  function swiperInit() {
1957        swiper = new Swiper(".swiper.is-research", {
1958        direction: "horizontal",
1959        slidesPerView: 1,
1960        spaceBetween: 8,
1961        speed: 700,
1962        navigation: { 
1963          nextEl: '#research-btn-next', //it can allso be class .x or comboclass .x.y
1964          prevEl: '#research-btn-prev',
1965        },
1966        breakpoints: {
1967            // when window width is >= 320px
1968            320: {
1969              slidesPerView: 1,
1970              spaceBetween: 8
1971            },
1972            // when window width is >= 480px
1973            480: {
1974              slidesPerView: "auto",
1975              spaceBetween: 16
1976            },
1977            // when window width is >= 640px
1978            640: {
1979              slidesPerView: "auto",
1980              spaceBetween: 16
1981            }
1982          }
1983        });
1984      }  
1985  swiperInit();
1986});
1987</script>
1987</div></div></div></div></div></div></section><section data-wf--section_footer--variant="base" class="section_footer"><div class="footer_bg"></div><div class="padding-global"><div class="container-large"><div class="footer_wrapper"><div class="cta_inner"><div class="footer_cta-top"><div class="mw-medium"><h2 class="t-heading-2-md">Ready to build<br/>with visual memory?</h2></div><div class="cta_top-right"><div class="mw-small"><p class="t-paragraph-1-rg">Whether you are integrating our infrastructure into your platform or exploring LUCI for your team, we are here to help.</p></div><div class="luci_buttons"><a data-wf--btn--variant="default" data-w-id="114a2f09-0bd6-258c-9b1d-72f0a4151594" href="https://memories.ai/app" target="_blank" class="btn is-default w-inline-block"><div class="btn_wrapper"><div class="t-paragraph-1-rg">Try now</div><div class="btn_icon is-gray-violet"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1988<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1989</svg>
1990</div></div></div><div class="button-gradient"></div></a><a data-wf--btn--variant="primary" data-w-id="114a2f09-0bd6-258c-9b1d-72f0a4151594" href="/contact-sales" class="btn is-default w-inline-block"><div class="btn_wrapper w-variant-5e0ec0ff-49c5-1981-6517-216b7daf5b7d"><div class="t-paragraph-1-rg">Contact Sales</div><div class="btn_icon is-gray-violet w-variant-5e0ec0ff-49c5-1981-6517-216b7daf5b7d"><div class="icon-embed-8 w-embed"><svg width="100%" height="100%" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
1991<path d="M4.26196 6.80798H3.36065V4.25535H0.808014V3.35404H3.36065V0.807983H4.26196V3.35404H6.80801V4.25535H4.26196V6.80798Z" fill="currentColor"/>
1992</svg>
1993</div></div></div><div class="button-gradient w-variant-5e0ec0ff-49c5-1981-6517-216b7daf5b7d"></div></a></div></div></div><div class="footer_bottom-part"><div class="footer_main"><div class="footer_brand"><a href="#" class="footer_logo-link w-inline-block"><div class="footer_logo w-embed"><svg width="100%" height="100%" viewBox="0 0 41 48" fill="none" xmlns="http://www.w3.org/2000/svg">
1994<path d="M41 11.3086V48L22.4566 40.9383L33.9364 8.54795L41 11.3086ZM33.2625 0L22.8123 29.5802L0 29.5308L26.487 0H33.2625Z" fill="currentColor"/>
1995</svg>
1996</div></a><div class="mw-extra-small"><p class="t-heading-5-rg">The multimodal memory infrastructure for AI</p></div></div><div class="footer_nav"><div class="footer_col"><p class="t-label-1-md opacity-70">Solution</p><div class="footer_col-list"><a href="/solution" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">Solution Overview</div></a><a href="/media" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">Media &amp; Entertainment</div></a><a href="/security" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">Security &amp; Safety</div></a><a href="/robot" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">Robotics &amp; Physical AI</div></a></div></div><div class="footer_col"><p class="t-label-1-md opacity-70">Developers</p><div class="footer_col-list"><a href="https://memories.ai/app/login?redirectUrl=https://api-platform.memories.ai/?utm_source%3Dheader%26_gl%3D1*1aznpr9*_gcl_au*MTY1NTkwMzQ3Ny4xNzgwMDQwMzMx*_ga*MTgzMjQyMjE3Ni4xNzgwMDQwMzMx*_ga_Q3L9MFWM5F*czE3ODMwOTE4MzckbzYxJGcxJHQxNzgzMDkyMDkyJGo2MCRsMCRoOTgyMzQzNjg5" target="_blank" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">API Platform</div><div class="icon-embed-5 is-abs w-embed"><svg width="100%" height="100%" viewBox="0 0 5 5" fill="none" xmlns="http://www.w3.org/2000/svg">
1997<line x1="4.5" y1="2.18557e-08" x2="4.5" y2="5" stroke-width="1" stroke="currentColor"/>
1998<line x1="5" y1="0.5" x2="-2.68229e-08" y2="0.499999" stroke-width="1" stroke="currentColor"/>
1999</svg>
2000</div></a><a href="https://docs.memories.ai/" target="_blank" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">API Docs</div><div class="icon-embed-5 is-abs w-embed">
2000<svg width="100%" height="100%" viewBox="0 0 5 5" fill="none" xmlns="http://www.w3.org/2000/svg">
2001<line x1="4.5" y1="2.18557e-08" x2="4.5" y2="5" stroke-width="1" stroke="currentColor"/>
2002<line x1="5" y1="0.5" x2="-2.68229e-08" y2="0.499999" stroke-width="1" stroke="currentColor"/>
2003</svg>
2004</div></a><a href="/pricing" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">Pricing</div></a></div></div><div class="footer_col"><p class="t-label-1-md opacity-70">Resources</p><div class="footer_col-list"><a href="/blogs" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">Blog</div></a><a href="/research" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">Publications</div></a><a href="https://github.com/Memories-ai-labs" target="_blank" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">GitHub</div><div class="icon-embed-5 is-abs w-embed"><svg width="100%" height="100%" viewBox="0 0 5 5" fill="none" xmlns="http://www.w3.org/2000/svg">
2005<line x1="4.5" y1="2.18557e-08" x2="4.5" y2="5" stroke-width="1" stroke="currentColor"/>
2006<line x1="5" y1="0.5" x2="-2.68229e-08" y2="0.499999" stroke-width="1" stroke="currentColor"/>
2007</svg>
2008</div></a><a href="/tools" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">Tools</div></a><a href="/luci" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">Project LUCI</div></a></div></div><div class="footer_col"><p class="t-label-1-md opacity-70">Company</p><div class="footer_col-list"><a href="/about" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">About Us</div></a><a href="/careers" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">Careers</div></a><a href="/press" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">Press</div></a><a href="/contact-sales" class="footer_link w-inline-block"><div class="t-paragraph-1-rg">Contact Sales</div></a><a href="https://trust.memories.ai/" target="_blank" class="footer_link w-inline-block"><div he="https://trust.memories.ai/" class="t-paragraph-1-rg">Trust Center</div></a></div></div></div></div><div class="footer_bottom"><p class="t-label-1-md c-white">© memories.ai</p><div class="footer_left-part"><div class="footer_legal"><a href="/legal/privacy" class="footer_link w-inline-block"><div class="t-label-1-md c-white">Privacy Policy</div></a><a href="/legal/terms-of-service" class="footer_link w-inline-block"><div class="t-label-1-md c-white">Terms of Service</div></a><a href="/legal/api-use-policy" class="footer_link w-inline-block"><div class="t-label-1-md c-white">API Use Policy</div></a></div></div></div></div></div></div></div></div></section></main></div>
2008<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=6a26a66c0461307a4feed480" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
2008<script src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/js/webflow.schunk.b36de0610a35aa79.js" type="text/javascript" integrity="sha384-bOZ0zosqGRfOla7kqUultK9km3dXI3K5kOn6mDnozBPY/ZGl9/GKllrjZ0EdPONC" crossorigin="anonymous"></script>
2008<script src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/js/webflow.schunk.3140c3e327c01c20.js" type="text/javascript" integrity="sha384-vuz7dDECI+HszEpB8wrezonU63Qd8tILX+TIgwTf3Ay2Erbtmv69a/8wnlYyIOy9" crossorigin="anonymous"></script>
2008<script src="https://cdn.prod.website-files.com/6a26a66c0461307a4feed480/js/webflow.10d865dd.0e1972ba4b9ce8f5.js" type="text/javascript" integrity="sha384-Z/uSXJs6SJdY22ol3JMx82QceNvs3CkEQ48pZgWpq91MKuq3LwRadSpG+HLJ0/hL" crossorigin="anonymous"></script>
2008<script src="https://cdn.prod.website-files.com/gsap/3.15.0/gsap.min.js" type="text/javascript"></script>
2008<script src="https://cdn.prod.website-files.com/gsap/3.15.0/ScrollTrigger.min.js" type="text/javascript"></script>
2008<script src="https://cdn.prod.website-files.com/gsap/3.15.0/SplitText.min.js" type="text/javascript"></script>
2008<script type="text/javascript">gsap.registerPlugin(ScrollTrigger,SplitText);</script>
2008<script defer src="https://cdn.jsdelivr.net/npm/swiper@12/swiper-bundle.min.js"></script>
2008
2009<!-- Flowbase Booster [Count Up] -->
2010<script src="https://cdn.jsdelivr.net/npm/@flowbase-co/[email protected]/dist/countup.min.js" type="text/javascript"></script>
vendor: 1 bytes, line 2010
2010
2011<script>
2012document.addEventListener("DOMContentLoaded", function () {
2013  const navbar = document.querySelector(".navbar_component");
2014  const announcementBar = document.querySelector(".announcemnet-bar-wrapper");
2015
2016  if (!navbar) return;
2017
2018  let isScrolled = null;
2019
2020  function updateNavbar() {
2021    const shouldBeScrolled = window.scrollY > 50;
2022
2023    // Zapobiega ponownemu uruchamianiu animacji przy każdym pikselu scrolla
2024    if (shouldBeScrolled === isScrolled) return;
2025
2026    isScrolled = shouldBeScrolled;
2027    navbar.classList.toggle("scrolled", shouldBeScrolled);
2028
2029    // Announcement bar jest opcjonalny
2030    if (!announcementBar) return;
2031
2032    gsap.to(announcementBar, {
2033      height: shouldBeScrolled ? 0 : "auto",
2034      opacity: shouldBeScrolled ? 0 : 1,
2035      duration: 0.35,
2036      ease: "power2.inOut",
2037      overwrite: true
2038    });
2039  }
2040
2041  updateNavbar();
2042
2043  window.addEventListener("scroll", updateNavbar, {
2044    passive: true
2045  });
2046});
2047</script>
vendor: 1 bytes, line 2047
2047
2048<script>
2049(() => {
2050  let initialized = false;
2051
2052  function initLettersAnimation() {
2053    // Prevent double initialization
2054    if (initialized) return;
2055
2056    // Wait until GSAP + ScrollTrigger are available
2057    if (
2058      typeof gsap === "undefined" ||
2059      typeof ScrollTrigger === "undefined"
2060    ) {
2061      setTimeout(initLettersAnimation, 50);
2062      return;
2063    }
2064
2065    initialized = true;
2066
2067    gsap.registerPlugin(ScrollTrigger);
2068
2069    // Add required CSS
2070    if (!document.querySelector("#letters-animation-styles")) {
2071      const style = document.createElement("style");
2072
2073      style.id = "letters-animation-styles";
2074
2075      style.textContent = `
2076        [text-letters-animation] .word {
2077          display: inline-block;
2078          white-space: nowrap;
2079        }
2080
2081        [text-letters-animation] .char {
2082          display: inline-block;
2083        }
2084      `;
2085
2086      document.head.appendChild(style);
2087    }
2088
2089    function createWord(wordText) {
2090      const wordSpan = document.createElement("span");
2091      wordSpan.classList.add("word");
2092
2093      wordText.split("").forEach((char) => {
2094        const charSpan = document.createElement("span");
2095
2096        charSpan.classList.add("char");
2097        charSpan.textContent = char;
2098
2099        wordSpan.appendChild(charSpan);
2100      });
2101
2102      return wordSpan;
2103    }
2104
2105    function splitTextNodeIntoWords(node) {
2106      const fragment = document.createDocumentFragment();
2107
2108      const parts = node.textContent.split(/(\s+)/);
2109
2110      parts.forEach((part) => {
2111        if (part.trim() === "") {
2112          fragment.appendChild(
2113            document.createTextNode(part)
2114          );
2115        } else {
2116          fragment.appendChild(
2117            createWord(part)
2118          );
2119        }
2120      });
2121
2122      node.replaceWith(fragment);
2123    }
2124
2125    function splitElementTextIntoWords(el) {
2126      const text = el.textContent;
2127
2128      el.textContent = "";
2129
2130      const parts = text.split(/(\s+)/);
2131
2132      parts.forEach((part) => {
2133        if (part.trim() === "") {
2134          el.appendChild(
2135            document.createTextNode(part)
2136          );
2137        } else {
2138          el.appendChild(
2139            createWord(part)
2140          );
2141        }
2142      });
2143    }
2144
2145    function splitTextIntoChars(el) {
2146      // Don't split element twice
2147      if (el.dataset.lettersSplit === "true") {
2148        return;
2149      }
2150
2151      const nodes = Array.from(el.childNodes);
2152
2153      nodes.forEach((node) => {
2154        // Normal text node
2155        if (node.nodeType === Node.TEXT_NODE) {
2156          splitTextNodeIntoWords(node);
2157        }
2158
2159        // Preserve basic nested formatting
2160        if (
2161          node.nodeType === Node.ELEMENT_NODE &&
2162          ["EM", "I", "STRONG", "B", "SPAN"].includes(
2163            node.tagName
2164          )
2165        ) {
2166          splitElementTextIntoWords(node);
2167        }
2168      });
2169
2170      el.dataset.lettersSplit = "true";
2171    }
2172
2173    function getAnimationConfig(el) {
2174      const variant = el.getAttribute(
2175        "text-letters-animation"
2176      );
2177
2178      // Dark version
2179      if (variant === "dark") {
2180        return {
2181          initialColor: "#FFFFFF",
2182          finalColor: "#FFFFFF",
2183
2184          colorSteps: [
2185            "#FFFFFF",
2186            "#F6FFC3",
2187            "#FFDB88",
2188            "#DE7341",
2189            "#6F2E0A",
2190            "#000000",
2191            "#FFFFFF",
2192          ],
2193        };
2194      }
2195
2196      // Default / light version
2197      return {
2198        initialColor: "#DDDDDD",
2199        finalColor: "#231D2E",
2200
2201        colorSteps: [
2202          "#E1D6C9",
2203          "#B5D996",
2204          "#85CDC9",
2205          "#7A7BDC",
2206          "#3A167B",
2207          "#231D2E",
2208        ],
2209      };
2210    }
2211
2212    function animateLetters(el) {
2213      // Split text first
2214      splitTextIntoChars(el);
2215
2216      const chars = Array.from(
2217        el.querySelectorAll(".char")
2218      );
2219
2220      if (!chars.length) return;
2221
2222      /**
2223       * Animation controls
2224       */
2225      const totalInitialAnimationTime = 1.5;
2226      const stepDuration = 0.05;
2227
2228      const config = getAnimationConfig(el);
2229
2230      const totalStepsTime =
2231        config.colorSteps.length *
2232        stepDuration;
2233
2234      const stagger =
2235        chars.length > 1
2236          ? Math.max(
2237              0,
2238              (
2239                totalInitialAnimationTime -
2240                totalStepsTime
2241              ) /
2242                (chars.length - 1)
2243            )
2244          : 0;
2245
2246      /**
2247       * Initial state
2248       */
2249      gsap.set(chars, {
2250        opacity: 0.3,
2251
2252        color: config.initialColor,
2253
2254        backgroundImage: "none",
2255        backgroundClip: "border-box",
2256        WebkitBackgroundClip: "border-box",
2257
2258        WebkitTextFillColor: "currentColor",
2259      });
2260
2261      /**
2262       * Animation timeline
2263       */
2264      const tl = gsap.timeline({
2265        scrollTrigger: {
2266          trigger: el,
2267          start: "top 80%",
2268          once: true,
2269        },
2270      });
2271
2272      chars.forEach((char, i) => {
2273        const offset = i * stagger;
2274
2275        config.colorSteps.forEach(
2276          (color, stepIndex) => {
2277            tl.to(
2278              char,
2279              {
2280                opacity: 1,
2281
2282                color: color,
2283
2284                WebkitTextFillColor:
2285                  "currentColor",
2286
2287                duration: stepDuration,
2288
2289                ease: "power2.out",
2290              },
2291
2292              offset +
2293                stepIndex *
2294                  stepDuration
2295            );
2296          }
2297        );
2298      });
2299    }
2300
2301    /**
2302     * Find and initialize all elements
2303     */
2304    document
2305      .querySelectorAll(
2306        "[text-letters-animation]"
2307      )
2308      .forEach((el) => {
2309        animateLetters(el);
2310      });
2311
2312    /**
2313     * Refresh ScrollTrigger after fonts load
2314     */
2315    if (
2316      document.fonts &&
2317      document.fonts.ready
2318    ) {
2319      document.fonts.ready.then(() => {
2320        ScrollTrigger.refresh();
2321      });
2322    } else {
2323      ScrollTrigger.refresh();
2324    }
2325  }
2326
2327  /**
2328   * Safe initialization
2329   *
2330   * If window.load already happened,
2331   * run immediately.
2332   *
2333   * Otherwise wait for window.load.
2334   */
2335  if (document.readyState === "complete") {
2336    initLettersAnimation();
2337  } else {
2338    window.addEventListener(
2339      "load",
2340      initLettersAnimation,
2341      {
2342        once: true,
2343      }
2344    );
2345  }
2346})();
2347</script>
vendor: 1 bytes, line 2347
2347
2348<script defer src="https://cdn.prod.website-files.com/6a602d2cbb7b4ed31c6e46e1%2F689e5ba67671442434f3ca35%2F6a61c92f853e51295de45c0a%2Fpseo_navbar_hide_on_scroll-1.0.3.js"></script>
vendor: 1 bytes, line 2348
2348
2349<script src="https://cdn.plyr.io/3.7.8/plyr.polyfilled.js"></script>
vendor: 1 bytes, line 2349
2349
2350<script>
2351  document.addEventListener('DOMContentLoaded', function() {
2352    const isDesktop = window.matchMedia('(min-width: 768px)').matches;
2353    if (!isDesktop) return;
2354
2355    gsap.registerPlugin(ScrollTrigger);
2356
2357    function initLazyPlayPauseVideoSections() {
2358      const sections = document.querySelectorAll('[data-video-section="true"]');
2359      if (!sections.length) return;
2360
2361      const loadVideo = (video) => {
2362        if (video.dataset.loaded === 'true') return;
2363
2364        const sources = video.querySelectorAll('source[data-src]');
2365
2366        sources.forEach(source => {
2367          source.src = source.dataset.src;
2368        });
2369
2370        video.load();
2371        video.dataset.loaded = 'true';
2372      };
2373
2374      const playVideo = (video) => {
2375        loadVideo(video);
2376
2377        video.play().catch(() => {
2378          // Autoplay can be blocked in some cases
2379        });
2380      };
2381
2382      const pauseVideo = (video) => {
2383        video.pause();
2384      };
2385
2386      sections.forEach(section => {
2387        const videos = section.querySelectorAll('video');
2388        if (!videos.length) return;
2389
2390        const playSectionVideos = () => {
2391          videos.forEach(video => {
2392            playVideo(video);
2393          });
2394        };
2395
2396        const pauseSectionVideos = () => {
2397          videos.forEach(video => {
2398            pauseVideo(video);
2399          });
2400        };
2401
2402        ScrollTrigger.create({
2403          trigger: section,
2404          start: '0% 100%',
2405          end: '100% 0%',
2406          onEnter: playSectionVideos,
2407          onEnterBack: playSectionVideos,
2408          onLeave: pauseSectionVideos,
2409          onLeaveBack: pauseSectionVideos,
2410        });
2411      });
2412    }
2413
2414    initLazyPlayPauseVideoSections();
2415  });
2416</script>
vendor: 1 bytes, line 2416
2416
2417<script>
2418/* Mobile assets animation */
2419  
2420(function () {
2421  const SELECTOR   = '[data-mobile-scroll]';   // elements to watch
2422  const ATTR_CLASS = 'data-active-class';       // combo class to add (read per element)
2423  const MQ         = '(max-width: 991px)';      // smaller than 992px only
2424  const LINE       = 0.7;                        // trigger when element top hits 70% of viewport
2425  const ONCE       = true;                       // add once and stop (set false to toggle on scroll out)
2426
2427  const els = Array.from(document.querySelectorAll(SELECTOR));
2428  if (!els.length) return;
2429
2430  const mq = window.matchMedia(MQ);
2431  let observer = null;
2432
2433  const classesOf = (el) => (el.getAttribute(ATTR_CLASS) || '').trim().split(/\s+/).filter(Boolean);
2434
2435  function enable() {
2436    if (observer) return;
2437    observer = new IntersectionObserver((entries) => {
2438      entries.forEach((entry) => {
2439        const cls = classesOf(entry.target);
2440        if (!cls.length) return;
2441        if (entry.isIntersecting) {
2442          entry.target.classList.add(...cls);
2443          if (ONCE) observer.unobserve(entry.target);
2444        } else if (!ONCE) {
2445          entry.target.classList.remove(...cls);
2446        }
2447      });
2448    }, {
2449      root: null,
2450      // bottom margin pulls the trigger line up to 70% of viewport height
2451      rootMargin: '0px 0px -' + Math.round((1 - LINE) * 100) + '% 0px',
2452      threshold: 0,
2453    });
2454    els.forEach((el) => observer.observe(el));
2455  }
2456
2457  function disable() {
2458    if (observer) { observer.disconnect(); observer = null; }
2459    // strip the class above the breakpoint so desktop is never affected
2460    els.forEach((el) => { const c = classesOf(el); if (c.length) el.classList.remove(...c); });
2461  }
2462
2463  const sync = () => (mq.matches ? enable() : disable());
2464  sync();
2465  mq.addEventListener ? mq.addEventListener('change', sync) : mq.addListener(sync); // react to resize/rotate
2466})();
2467</script>
vendor: 1 bytes, line 2467
2467
2468<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a40a8f21885298b8',t:'MTc5MDM0NDg2OA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
2468</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.