1import"../chunks/DsnmJJEf.js";import"../chunks/69_IOA4Y.js";import{p as ct,k as pt,a as b,b as vt,w as Ie,t as H,d as i,c as T,g as d,o as I,s as r,r as s,e as K,l as ke,n as q,q as Re,i as ut,f as Ke,h as ce}from"../chunks/CfcviehU.js";import{e as A,i as G}from"../chunks/Bir7oz03.js";import{a as L,b as j,c as E}from"../chunks/nG0X9MEa.js";import{e as Z,b as pe}from"../chunks/CGG3bsdZ.js";import{B as W}from"../chunks/Cr04onck.js";import{P as mt}from"../chunks/_Xy5_L_k.js";import{S as ht}from"../chunks/DTu4EqBS.js";import{C as rt}from"../chunks/DLxhleRq.js";import{A as ot}from"../chunks/DQ69o_C2.js";import{C as st}from"../chunks/BR_SRy5o.js";import{S as ft}from"../chunks/BVWihPOJ.js";import{i as gt}from"../chunks/BzjamIi2.js";import{b as $e}from"../chunks/BaFZ4p9W.js";var xt=T('<div><div class="md:pr-8"><h3 class="heading-6 text-[color:var(--color-fg)] uppercase"> </h3> <p class="mt-2 text-[color:var(--color-muted)]"> </p></div> <svg aria-hidden="true"><line x1="0.5" y1="0" x2="0.5" y2="100%" stroke="currentColor" stroke-width="1" stroke-dasharray="7 4" stroke-linecap="round"></line></svg></div>'),lt=T('<span class="sdk-val svelte-oa3iyz"></span>'),bt=T('<div class="sdk-grid svelte-oa3iyz"><span class="sdk-key svelte-oa3iyz"></span> <!></div>'),yt=T('<div class="bg-[var(--color-bg)] p-5"><h3 class="heading-6 text-[color:var(--color-fg)]"> </h3> <p class="mt-1.5 text-sm text-[color:var(--color-muted)]"> </p></div>'),_t=T('<div class="flex flex-col gap-[3px] rounded-[2px] border border-[var(--color-border-strong)] px-[4px] py-[5px]"></div>'),wt=T('<div class="grid grid-cols-[8px_2.6fr_1fr_1fr_1fr] items-center gap-[4px]"><div class="h-[6px] rounded-[1px] bg-[var(--color-token-keyword)]"></div> <div class="h-[6px] rounded-[1px] bg-[var(--color-token-string)]"></div> <div class="h-[6px] rounded-[1px] bg-[var(--color-token-string)]"></div> <div class="h-[6px] rounded-[1px] bg-[var(--color-token-string)]"></div> <div class="h-[6px] rounded-[1px] bg-[var(--color-token-string)]"></div></div>'),nt=T("<div></div>"),kt=T('<span class="dld-chunk svelte-oa3iyz" aria-hidden="true"><span class="dld-row svelte-oa3iyz"><span class="dld-sq svelte-oa3iyz"></span><span class="dld-line svelte-oa3iyz"></span></span> <span class="dld-row svelte-oa3iyz"><span class="dld-sq svelte-oa3iyz"></span><span class="dld-line svelte-oa3iyz"></span></span> <span class="dld-row svelte-oa3iyz"><span class="dld-sq svelte-oa3iyz"></span><span class="dld-line svelte-oa3iyz"></span></span></span>'),Rt=T('<div class="overflow-hidden"><div></div></div>'),$t=T('<div class="dld relative isolate pt-20 pb-8 md:pt-24"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 z-20 hidden text-[color:var(--color-fg)] md:block"></canvas> <div class="relative z-10 grid grid-cols-[minmax(0,1fr)] gap-y-8 md:grid-cols-[18rem_minmax(0,1fr)] md:gap-x-6 md:gap-y-10"><!> <div class="mx-6 grid grid-cols-2 gap-[1px] overflow-hidden rounded-[1px] border-[1px] border-[var(--color-fg)] bg-[var(--color-fg)] sm:mx-[60px] lg:grid-cols-4"></div> <!> <div class="grid grid-cols-2 gap-4 lg:grid-cols-4"><div class="dld-media flex aspect-[16/10] gap-2.5 overflow-hidden rounded-[1px] border-[1px] border-[var(--color-fg)] p-2.5"><div class="flex flex-1 flex-col justify-between border border-transparent px-[4px]"></div> <div class="flex flex-1 flex-col justify-between"></div></div> <div class="dld-media aspect-[16/10] overflow-hidden rounded-[1px] border-[1px] border-[var(--color-fg)]"><video src="/product/review.mp4" autoplay="" loop="" playsinline="" preload="metadata" aria-hidden="true" class="h-full w-full object-cover"></video></div> <div class="dld-media flex aspect-[16/10] flex-col overflow-hidden rounded-[1px] border-[1px] border-[var(--color-fg)] p-2.5"><p class="mb-2 truncate font-mono text-[10px] tracking-wide text-[color:var(--color-fg)] uppercase">df.select(...).where(...)</p> <div class="flex flex-1 flex-col justify-between"></div></div> <div class="dld-media flex aspect-[16/10] flex-col overflow-hidden rounded-[1px] border-[1px] border-[var(--color-fg)] p-2.5"><p class="mb-2 truncate font-mono text-[10px] tracking-wide text-[color:var(--color-fg)] uppercase">for batch in dataloader:</p> <div class="flex flex-1 items-center gap-3"><div class="flex flex-1 flex-col justify-center gap-[6px]"><div class="flex items-end gap-[6px]" style="height: 72px"></div> <div class="flex items-end gap-[6px]" style="height: 36px"></div></div> <div class="w-[42%] rounded-[1px] bg-[var(--color-token-keyword)]" style="height: 72px"></div></div></div></div> <!> <div class="flex flex-col overflow-hidden md:mt-10"></div></div></div>',2);function Tt(Oe,Ye){ct(Ye,!0);const Fe=[{title:"Collect",body:"Teleop, fleet logs, human-data rigs, sim, and web video, all in one format."},{title:"Refine",body:"Add columns and run CV transforms. Curate with dataframes or SQL."},{title:"Train",body:"Stream dataset mixes straight to GPUs. No exp
1ort jobs, no idle waiting."},{title:"Deploy",body:"Evaluate rollouts and trace failures back to the data that caused them."}],ve=[{title:"Experiment loop",body:"Teams win by iterating fast on data composition and modeling while scaling data and compute."},{title:"Rerun SDK",body:"Open source SDK that makes it easy to build the applications and compute you need to create physical intelligence."},{title:"Rerun Hub",body:"Data catalog and backend for large-scale storage, access, and streaming from object storage. Makes Rerun SDK scale."}],Te=[{cells:[1,2]},{bar:[3,4]},{bar:[1,3]},{cells:[1,2]},{bar:[1,5]},{bar:[1,3]},{cells:[1,2]},{bar:[3,4]},{bar:[1,3]},{bar:[1,4]},{cells:[1,2]},{bar:[1,3]},{cells:[4,5]},{bar:[1,5]}],Se=[{rows:[{bar:[4,5]},{bar:[4,5]}]},{rows:[{bar:[1,3]},{bar:[1,3]}]},{rows:[{cells:[4,5]},{cells:[4,5]},{cells:[4,5]},{cells:[4,5]}]},{rows:[{bar:[1,5]}]}],V=[40,64,92],Ce=e=>V[((e+1)*2654435761>>>0)%V.length],Ae=5,ue=18,Pe=8,Ge=5,ee=Array.from({length:Ae},(e,M)=>Array.from({length:ue},(n,v)=>Ce(M*37+v))),ze=ee.map(e=>e.reduce((M,n)=>M+n,0)+ue*Pe),me=ze.map(e=>Math.round(e/Ge));let P=Re(void 0),z=Re(void 0),te=Re(void 0),O=Re(void 0),U=Re(void 0);pt(()=>{if(!d(P)||!d(z)||!d(te)||!d(O)||!d(U))return;const e=d(z).getContext("2d");if(!e)return;const M=window.matchMedia("(prefers-reduced-motion: reduce)").matches;let n=0,v=0,m=null,h=[],f=null;const k=[],t=4,o=1300,c=2600,y=1200,R=new Map,D=a=>{R.set(a,(R.get(a)??0)+1),a.classList.add("is-active")},Ue=a=>{const l=(R.get(a)??0)-1;l<=0?(R.delete(a),a.classList.remove("is-active")):R.set(a,l)},de=()=>getComputedStyle(d(z)).color;let _e=0;const $=a=>Math.round(a)+_e;function Be(){const a=d(P).getBoundingClientRect();n=a.width,v=a.height;const l=Math.min(2,window.devicePixelRatio||1);_e=l===1?.5:0,d(z).width=Math.round(n*l),d(z).height=Math.round(v*l),d(z).style.width=`${n}px`,d(z).style.height=`${v}px`,e.setTransform(l,0,0,l,0,0);const p=d(O).getBoundingClientRect(),g=d(te).getBoundingClientRect(),_=p.top-a.top,u=Math.max(8,_-60);m={frameLeft:g.left-a.left,frameRight:g.right-a.left,boxLeft:p.left-a.left,boxRight:p.right-a.left,cy:_+p.height/2,busY:u},h=Array.from(d(O).children).map(S=>{const C=S.getBoundingClientRect(),B=C.left-a.left+C.width/2,X=C.top-a.top,He=Math.round((X-u)*.3);return{tx:B+He,ty:u,hx:B,hy:X}});const w=g.bottom-a.top,x=d(U).getBoundingClientRect().top-a.top;f={x:(g.left+g.right)/2-a.left,topY:w,busY:Math.round((w+x)/2)}}function Je(a,l){e.beginPath(),e.moveTo(a,l),e.lineTo(a-3.5,l+6),e.lineTo(a+3.5,l+6),e.closePath(),e.fill()}function Le(a,l){e.beginPath(),e.moveTo(a,l),e.lineTo(a-7,l-4),e.lineTo(a-7,l+4),e.closePath(),e.fill()}function je(a,l,p,g){const _=Math.hypot(p,g)||1,u=p/_,w=g/_,x=a-u*8,S=l-w*8,C=-w*4,B=u*4;e.beginPath(),e.moveTo(a,l),e.lineTo(x+C,S+B),e.lineTo(x-C,S-B),e.closePath(),e.fill()}function we(a){if(!m)return;const{frameLeft:l,frameRight:p,boxLeft:g,boxRight:_,cy:u,busY:w}=m,x=B=>$(B),S=Math.round(l)+.5,C=Math.round(p)-.5;e.save(),e.strokeStyle=a,e.fillStyle=a,e.lineWidth=1,e.lineJoin="miter",e.lineCap="butt",e.beginPath(),e.moveTo(x(_),x(u)),e.lineTo(C,x(u)),e.lineTo(C,x(w)),e.lineTo(S,x(w)),e.lineTo(S,x(u)),e.lineTo(x(g-5),x(u)),e.stroke(),Le(x(g),x(u)),e.restore()}function Ee(a){if(h.length){e.save(),e.strokeStyle=a,e.fillStyle=a,e.lineWidth=1,e.lineJoin="miter",e.lineCap="butt";for(const l of h){const p=$(l.tx),g=$(l.ty),_=$(l.hx),u=$(l.hy);e.beginPath(),e.moveTo(p,g),e.lineTo(_,u),e.stroke(),je(_,u,_-p,u-g)}e.restore()}}function qe(a,l){const p=l-a.born;return p<o?{prog:p/o,alpha:1}:p<o+c?{prog:1,alpha:1}:{prog:1,alpha:Math.max(0,1-(p-o-c)/y)}}function Ze(a,l,p){if(!f)return!0;const{prog:g,alpha:_}=qe(a,l);if(_<=0)return!1;const u=$(a.sx),w=$(a.sy),x=$(f.x),S=$(f.busY),C=w-S,B=Math.abs(x-u);let X=g*(C+B);e.save(),e.globalAlpha=_,e.strokeStyle=p,e.lineWidth=1,e.lineJoin="miter",e.lineCap="butt",e.beginPath(),e.moveTo(u,w);const He=Math.min(X,C);if(e.lineTo(u,w-He),X-=He,X>0){const dt=x>=u?1:-1;e.lineTo(u+dt*Math.min(X,B),S)}return e.stroke(),e.restore(),!0}function Ve(a,l){if(!f||l<=0)return;const p=$(f.x);e.save(),e.globalAlpha=l,e.strokeStyle=a,e.fillStyle=a,e.lineWidth=1,e.lineCap="butt",e.beginPath(),e.moveTo(p,$(f.busY)),e.lineTo(p,$(f.topY)),e.stroke(),Je(p,$(f.topY)),e.restore(
1)}function et(){const a=d(P).querySelectorAll(".dld-chunk");if(!a.length)return;const l=d(P).getBoundingClientRect(),p=d(U).getBoundingClientRect(),g=p.left-l.left,_=p.right-l.left;for(let u=0;u<10;u++){const w=a[Math.floor(Math.random()*a.length)];if(R.has(w))continue;const x=w.getBoundingClientRect();if(x.top>=p.bottom)continue;const S=x.left-l.left+x.width/2;if(S<g+40||S>_-40)continue;const C=x.top-l.top;k.push({sx:S,sy:C,born:performance.now(),el:w}),D(w);return}}let Ne=0;function tt(a){e.clearRect(0,0,n,v);const l=de();we(l),Ee(l);const p=d(P).getBoundingClientRect();let g=0;for(let _=k.length-1;_>=0;_--){const u=k[_],w=u.el.getBoundingClientRect();u.sx=w.left-p.left+w.width/2,u.sy=w.top-p.top;const{alpha:x}=qe(u,a);x>g&&(g=x),Ze(u,a,l)||(Ue(u.el),k.splice(_,1))}Ve(l,g),Ne=requestAnimationFrame(tt)}let Qe;function at(){k.length<t&&et(),Qe=setTimeout(at,600+Math.random()*700)}Be();const Xe=new ResizeObserver(()=>Be());if(Xe.observe(d(P)),M){const a=de();e.clearRect(0,0,n,v),we(a),Ee(a);for(let g=0;g<t;g++)et();const l=performance.now()+o;let p=0;for(const g of k)p=1,Ze(g,l,a);return Ve(a,p),()=>Xe.disconnect()}return Ne=requestAnimationFrame(tt),Qe=setTimeout(at,400),()=>{cancelAnimationFrame(Ne),clearTimeout(Qe),Xe.disconnect()}});var Y=$t();{const e=(n,v=Ie,m=Ie,h=Ie)=>{var f=xt(),k=i(f),t=i(k),o=I(t,!0),c=r(t,2),y=I(c,!0);s(k);var R=r(k,2);s(f),H(()=>{pe(f,1,`relative self-stretch ${h()??""} ${m()?"md:-translate-y-[60px]":""}`,"svelte-oa3iyz"),K(o,v().title),K(y,v().body),pe(R,0,`pointer-events-none absolute top-0 right-0 hidden w-px text-[color:var(--color-border-strong)] md:block ${m()?"h-[calc(100%+60px)]":"h-full"}`)}),b(n,f)},M=(n,v=Ie)=>{var m=bt(),h=r(i(m),2);{var f=t=>{var o=lt();H(()=>Z(o,`grid-column: ${v().bar[0]+1} / ${v().bar[1]+2}`)),b(t,o)},k=t=>{var o=ut(),c=Ke(o);A(c,16,()=>v().cells,y=>y,(y,R)=>{var D=lt();H(()=>Z(D,`grid-column: ${R+1}`)),b(y,D)}),b(t,o)};gt(h,t=>{v().bar?t(f):v().cells&&t(k,1)})}s(m),b(n,m)};var ae=i(Y);$e(ae,n=>ke(z,n),()=>d(z));var he=r(ae,2),De=i(he);e(De,()=>ve[0],()=>!0,()=>"");var J=r(De,2);A(J,21,()=>Fe,n=>n.title,(n,v)=>{var m=yt(),h=i(m),f=I(h,!0),k=r(h,2),t=I(k,!0);s(m),H(()=>{K(f,d(v).title),K(t,d(v).body)}),b(n,m)}),s(J),$e(J,n=>ke(O,n),()=>d(O));var re=r(J,2);e(re,()=>ve[1],()=>!1,()=>"");var F=r(re,2),fe=i(F),N=i(fe);A(N,21,()=>Te,G,(n,v)=>{M(n,()=>d(v))}),s(N);var ge=r(N,2);A(ge,21,()=>Se,G,(n,v)=>{var m=_t();A(m,21,()=>d(v).rows,G,(h,f)=>{M(h,()=>d(f))}),s(m),b(n,m)}),s(ge),s(fe);var oe=r(fe,2),We=i(oe);We.muted=!0,s(oe);var se=r(oe,2),le=r(i(se),2);A(le,20,()=>Array(9),G,(n,v,m)=>{var h=wt();Z(h,`opacity: ${m===8?.3:1}`),b(n,h)}),s(le),s(se);var xe=r(se,2),be=r(i(xe),2),Me=i(be),Q=i(Me);A(Q,20,()=>Array(6),G,(n,v,m)=>{var h=nt();pe(h,1,`h-full w-[6px] rounded-[1px] bg-[var(--color-token-string)] ${m===0?"opacity-25":""}`),b(n,h)}),s(Q);var ne=r(Q,2);A(ne,20,()=>Array(6),G,(n,v,m)=>{var h=nt();pe(h,1,`h-full w-[6px] rounded-[1px] bg-[var(--color-token-string)] ${m===0?"opacity-25":""}`),b(n,h)}),s(ne),s(Me),q(2),s(be),s(xe),s(F),$e(F,n=>ke(te,n),()=>d(te));var ye=r(F,2);e(ye,()=>ve[2],()=>!1,()=>"md:mt-10");var ie=r(ye,2);Z(ie,"height: 152px; gap: 8px;"),A(ie,21,()=>ee,G,(n,v,m)=>{var h=Rt();Z(h,"height: 24px;");var f=i(h);pe(f,1,"dld-track flex w-max svelte-oa3iyz",null,{},{reverse:m%2===1}),A(f,21,()=>[...d(v),...d(v)],G,(k,t)=>{var o=kt();H(()=>Z(o,`width: ${d(t)??""}px;`)),b(k,o)}),s(f),s(h),H(()=>Z(f,`gap: 8px; --marquee-shift: -${ze[m]??""}px; animation-duration: ${me[m]??""}s;`)),b(n,h)}),s(ie),$e(ie,n=>ke(U,n),()=>d(U)),s(he),s(Y),$e(Y,n=>ke(P,n),()=>d(P))}b(Oe,Y),vt()}var it=T('<li class="flex items-start gap-2"><!> <span> </span></li>'),St=T("Explore the SDK <!>",1),Ct=T("Explore Hub <!>",1),At=T('<div><div class="font-medium text-[color:var(--color-fg)] md:font-normal md:text-[color:var(--color-muted)]"> </div> <div class="text-[color:var(--color-fg)]"><span class="caption mb-1 block text-[color:var(--color-muted)] md:hidden">Rerun SDK</span> <span class="flex items-center gap-2"><!> <span> </span></span></div> <div class="text-[color:var(--color-fg)]"><span class="caption mb-1 block text-[color:var(--color-muted)] md:hidden">Rerun Hub</span> <span class="flex items-center gap-2"><!> <span> </span></span></div></div>'),Pt=T(`<!> <section class="md:mx-auto max-w-5xl px-4 sm:px-6 pt-16 md:pt-24 pb-0 sm:pb-8 text-left md:text-center"><h1 class="heading-1 md:mx-auto max-w-4xl">The Data Layer for Physical AI</h1> <p class="md:mx-auto mt-5 max-w-2xl large">The data primitives to build, understand, and improve your data loop. 2 Designed for multi-rate, multimodal data, from the first recording to 3 massive scale.</p> <div class="mt-7 flex flex-wrap justify-start gap-2 md:justify-center"><!> <!></div></section> <section class="md:mx-auto max-w-3xl px-4 sm:px-6 pt-24 pb-0 sm:py-10"><!></section> <section class="md:mx-auto max-w-page px-4 sm:px-6 pt-24 md:pt-20"><header class="md:mx-auto max-w-3xl text-left md:text-center"><h2 class="heading-2 md:mx-auto"><span class="text-[color:var(--color-muted)]">End-to-end learning</span><br/>
3needs end-to-end data</h2> <p class="md:mx-auto mt-5 large">End-to-end models learn from multi-rate, multimodal sequences. So every 4 stage of the loop works on that same data: collect, refine, train, deploy. 5 Rerun is one layer underneath all of it.</p></header> <div class="mt-6"><!></div></section> <section class="md:mx-auto max-w-page px-4 sm:px-6 pt-24 md:pt-32"><header class="md:mx-auto max-w-3xl text-left md:text-center"><h2 class="heading-2 md:mx-auto"><span class="text-[color:var(--color-muted)]">Two parts.</span> One data layer.</h2> <p class="md:mx-auto mt-5 large">The Rerun SDK is the open-source toolchain physical AI teams build on. 6 Rerun Hub is the production backend that connects it to your data at 7 scale.</p></header> <div class="md:mx-auto mt-12 grid max-w-4xl gap-6 md:grid-cols-2 md:gap-0"><article class="flex h-full flex-col justify-center rounded-3xl border border-[var(--color-border)] bg-[var(--color-bg)] p-8 md:p-10"><p class="caption text-[color:var(--color-muted)]">Open source</p> <h3 class="heading-3 mt-1">Rerun SDK</h3> <p class="mt-4 text-[color:var(--color-muted)]">Open-source SDK for logging, storing, querying, visualizing, and 8 training on multi-rate, multimodal data. Includes viewer, query library, 9 visualization framework, CLI, and the file format the data layer is
10 built on.</p> <div class="mt-2"><!></div> <ul class="mt-2 space-y-2 text-[color:var(--color-fg)]"></ul> <div class="mt-8 flex flex-wrap gap-2"><!> <!></div></article> <article class="flex flex-col self-center rounded-3xl border border-[var(--color-border)] bg-[var(--color-bg)] p-8 md:rounded-l-none md:p-10 md:[border-left:none]"><p class="caption text-[color:var(--color-muted)]">Commercial</p> <h3 class="heading-3 mt-1">Rerun Hub</h3> <p class="mt-4 text-[color:var(--color-muted)]">The production backend for the Rerun data layer. Catalog, byte-range 11 indexing, and retrieval that turns your object stores into a queryable, 12 streamable foundation. Run transforms on the edge or close to the data.</p> <ul class="mt-6 space-y-2 text-[color:var(--color-fg)]"></ul> <div class="mt-8 flex flex-wrap gap-2"><!> <!></div></article></div></section> <section class="md:mx-auto max-w-page px-4 sm:px-6 pt-24 md:pt-32"><header class="md:mx-auto max-w-3xl text-left md:text-center"><h2 class="heading-3 md:mx-auto">How they fit together</h2> <p class="md:mx-auto mt-3 large">You log, query, visualize, transform, and train with the same open-source 13 SDK and the same APIs either way. Hub doesn't change what you do. It 14 changes what runs underneath.</p></header> <div class="mt-10 overflow-hidden border border-[var(--color-border)]"><div class="hidden text-[color:var(--color-muted)] md:grid md:grid-cols-[0.7fr_1fr_1.4fr]"><div class="px-5 py-4"></div> <div class="px-5 py-4"><span class="block text-[color:var(--color-fg)] heading-6">Rerun SDK</span> <span class="caption mt-1 inline-block">Open source</span></div> <div class="px-5 py-4"><span class="block text-[color:var(--color-fg)] heading-6">Rerun Hub</span> <span class="caption mt-1 inline-block">Commercial</span></div></div> <!></div></section> <section class="md:mx-auto max-w-5xl px-4 sm:px-6 pt-24 md:pt-32 pb-24 md:pb-32 text-left md:text-center"><h2 class="heading-2 md:mx-auto">Iterate faster on robot learning data</h2> <p class="md:mx-auto mt-5 max-w-2xl large">Build, understand, and improve your data loop on one set of primitives, from 15 your first recording to massive scale. Start with the SDK, or talk to us 16 about Hub.</p> <div class="mt-8 flex flex-wrap justify-start gap-2 md:justify-center"><!> <!></div></section>`,1);function Wt(Oe){const Ye={sources:{"get-started":{cpp:`# Add this to your CMakeLists.txt: 17include(FetchContent) 18FetchContent_Declare(rerun_sdk URL 19https://github.com/rerun-io/rerun/releases/latest/download/rerun_cpp_sdk.zip) 20FetchContent_MakeAvailable(rerun_sdk)`,python:`pip install rerun-sdk 21rerun`,rust:`cargo install rerun-cli --locked 22rerun`}},rrdUrls:{}},Fe=["pip install rerun-sdk","Interactive viewer + visualization framework","Dataframe query library built in","Multi-rate, multimodal, spatial native","Python, Rust, and C++ APIs","Open source. Start in two minutes."],ve=["Query across multiple object stores","Byte-range indexing for fast lookups","Stream dataset mixes directly to training","Catalog and metadata management","Deployed to your preferred cloud region"];var Te=Pt(),Se=Ke(Te);mt(Se,{title:"Product",ogTitle:"The Data Layer for Physical AI",description:"The data primitives to build, understand, and improve your data loop. Designed for multi-rate, multimodal data, from the first recording to massive scale."});var V=r(Se,2),Ce=i(V);L(Ce,(t,o)=>E?.(t,o),()=>j);var Ae=r(Ce,2);L(Ae,(t,o)=>E?.(t,o),()=>j);var ue=r(Ae,2),Pe=i(ue);W(Pe,{variant:"primary",href:"/docs/getting-started/quick-start",children:(t,o)=>{q();var c=ce("Get started");b(t,c)},$$slots:{default:!0}});var Ge=r(Pe,2);W(Ge,{variant:"secondary",href:"https://5li7zhj98k8.typeform.com/to/a5XDpBkZ",children:(t,o)=>{q();var c=ce("Talk to us");b(t,c)},$$slots:{default:!0}}),s(ue),s(V);var ee=r(V,2),ze=i(ee);ft(ze,{stats:[{value:"__GH_STARS__",label:"GitHub stars"},{value:"__LANG_COLLAGE__",label:"3 supported languages"},{value:"End-to-end",label:"Collection to training"}]}),s(ee);var me=r(ee,2),P=i(me),z=i(P);L(z,(t,o)=>E?.(t,o),()=>j);var te=r(z,2);L(te,(t,o)=>E?.(t,o),()=>j),s(P);var O=r(P,2),U=i(O);Tt(U,{}),s(O),s(me);var Y=r(me,2),ae=i(Y),he=i(ae);L(he,(t,o)=>E?.(t,o),()=>j);var De=r(he,2);L(De,(t,o)=>E?.(t,o),()=>j),s(ae);var J=r(ae,2),re=i(J),F=r(i(re),6),fe=i(F);ht(fe,{id:"product-overview-get-started",name:"get-started",get snippets(){return Ye}}),s(F);var N=r(F,2);A(N,5,()=>Fe,t=>t,(t,o)=>{var c=it(),y=i(c);ot(y,{size:16,"aria-hidden":"true",class:"mt-1 shrink-0 text-[color:var(--color-muted)]"});var R=r(y,2),D=I(R,!0);s(c),H(()=>K(D,d(o))),b(t,c)}),s(N);var ge=r(N,2),oe=i(ge);W(oe,{variant:"primary",href:"/sdk",children:(t,o)=>{q();var c=St(),y=r(Ke(c));rt(y,{size:16,"aria-hidden":"true"}),b(t,c)},$$slots:{default:!0}});var We=r(oe,2);W(We,{variant:"secondary",href:"https://github.com/rerun-io/rerun",target:"_blank",rel:"noopener noreferrer",children:(t,o)=>{q();var c=ce("GitHub");b(t,c)},$$slots:{default:!0}}),s(ge),s(re);var se=r(re,2),le=r(i(se),6);A(le,5,()=>ve,t=>t,(t,o)=>{var c=it(),y=i(c);ot(y,{size:16,"aria-hidden":"true",class:"mt-1 shrink-0 text-[color:var(--color-muted)]"});var R=r(y,2),D=I(R,!0);s(c),H(()=>K(D,d(o))),b(t,c)}),s(le);var xe=r(le,2),be=i(xe);W(be,{variant:"primary",href:"/hub",children:(t,o)=>{q();var c=Ct(),y=r(Ke(c));rt(y,{size:16,"aria-hidden":"true"}),b(t,c)},$$slots:{default:!0}});var Me=r(be,2);W(Me,{variant:"secondary",href:"https://5li7zhj98k8.typeform.com/to/a5XDpBkZ",children:(t,o)=>{q();var c=ce("Book a meeting");b(t,c)},$$slots:{default:!0}}),s(xe),s(se),s(J),s(Y);var Q=r(Y,2),ne=i(Q),ye=i(ne);L(ye,(t,o)=>E?.(t,o),()=>j);var ie=r(ye,2);L(ie,(t,o)=>E?.(t,o),()=>j),s(ne);var e=r(ne,2),M=r(i(e),2);A(M,2,()=>[{label:"Your data",sdk:"Local .rrd files on one machine",hub:"Your object storage, streamed at petabyte scale"},{label:"The catalog",sdk:"In-process, for local work",hub:"Persistent and managed, indexed across your object stores"},{label:"Access",sdk:"Just you",hub:"Your team, with SSO and authenticated share links"},{label:"Running it",sdk:"pip install, self-hosted",hub:"Run for you, single-tenant, in your cloud region of choice"}],t=>t.label,(t,o,c)=>{var y=At();let R;var D=i(y),Ue=I(D,!0),de=r(D,2),_e=r(i(de),2),$=i(_e);st($,{size:16,"aria-hidden":"true",class:"shrink-0 text-[color:var(--color-muted)]"});var Be=r($,2),Je=I(Be,!0);s(_e),s(de);var Le=r(de,2),je=r(i(Le),2),we=i(je);st(we,{size:16,"aria-hidden":"true",class:"shrink-0 text-[color:var(--color-muted)]"});var Ee=r(we,2),qe=I(Ee,!0);s(je),s(Le),s(y),H(()=>{R=pe(y,1,"grid grid-cols-1 gap-y-3 border-t border-[var(--color-border)] px-5 py-4 md:grid-cols-[0.7fr_1fr_1.4fr] md:gap-y-0",null,R,{"bg-[var(--color-code-bg)]":d(c)%2===0}),K(Ue,o.label),K(Je,o.sdk),K(qe,o.hub)}),b(t,y)}),s(e),s(Q);var n=r(Q,2),v=i(n);L(v,(t,o)=>E?.(t,o),()=>j);var m=r(v,2);L(m,(t,o)=>E?.(t,o),()=>j);var h=r(m,2),f=i(h);W(f,{variant:"primary",href:"/docs/getting-started/quick-start",children:(t,o)=>{q();var c=ce("Install the SDK");b(t,c)},$$slots:{default:!0}});var k=r(f,2);W(k,{variant:"brand",href:"https://5li7zhj98k8.typeform.com/to/a5XDpBkZ",children:(t,o)=>{q();var c=ce("Book a meeting");b(t,c)},$$slots:{default:!0}}),s(h),s(n),b(Oe,Te)}export{Wt as component};
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.