` marker, AFTER the page's own+ meta description (those stay per-page). --><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="icon" href="/favicon.ico" sizes="32x32"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,420;9..144,560;9..144,640&display=swap"><script>const PRI_STORAGE={themeKey:"pri_site_theme_v1"};(()=>{const e=globalThis.localStorage.getItem(PRI_STORAGE.themeKey);"light"!==e&&"dark"!==e||(document.documentElement.dataset.theme=e)})()</script><script>const PRI_POSTHOG_KEY="PLACEHOLDER_POSTHOG_PROJECT_KEY",PRI_POSTHOG_HOST="https://us.i.posthog.com";PRI_POSTHOG_KEY.startsWith("PLACEHOLDER")||(!function(e,t){var r,o,s,i;t.__SV||(window.posthog=t,t._i=[],t.init=function(n,a,p){function g(e,t){var r=t.split(".");2==r.length&&(e=e[r[0]],t=r[1]),e[t]=function(){e.push([t].concat(Array.prototype.slice.call(arguments,0)))}}(s=e.createElement("script")).type="text/javascript",s.crossOrigin="anonymous",s.async=!0,s.src=a.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(i=e.getElementsByTagName("script")[0]).parentNode.insertBefore(s,i);var c=t;for(void 0!==p?c=t[p]=[]:p="posthog",c.people=c.people||[],c.toString=function(e){var t="posthog";return"posthog"!==p&&(t+="."+p),e||(t+=" (stub)"),t},c.people.toString=function(){return c.toString(1)+".people (stub)"},r="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSurveysLoaded onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey canRenderSurveyAsync identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug getPageViewId captureTraceFeedback captureTraceMetric".split(" "),o=0;o<r.length;o++)g(c,r[o]);t._i.push([n,a,p])},t.__SV=1)}(document,window.posthog||[]),globalThis.posthog.init(PRI_POSTHOG_KEY,{api_host:PRI_POSTHOG_HOST,defaults:"2025-05-24"}))</script><style>:root{--paper:#f8f4ec;--paper-raised:#fdfbf6;--ink:#24262c;--ink-soft:#4c4f57;--muted:#75787f;--line:#e2dbcd;--rust:#ad4f2b;--rust-bright:#c25d35;--ochre:#a97e2f;--navy:#2e4468;--sage:#7d8f78;--focus:#2e4468}:root:not([data-theme=light]){--paper-raised:#20232a;--ink:#eae4d8;--ink-soft:#c2bcb0;--muted:#8e929b;--line:#33363f;--rust:#d0693f;--rust-bright:#dd7a4f;--ochre:#c99a48;--navy:#8fa9d4;--sage:#97a892;--focus:#8fa9d4}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;min-height:100dvh;display:flex;flex-direction:column}.display,h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:560;line-height:1.12;letter-spacing:-.015em;text-wrap:balance}a{color:var(--navy);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--rust)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}::selection{background:color-mix(in srgb,var(--ochre) 30%,transparent)}.wrap{width:min(72rem,100% - 3rem);margin-inline:auto}.prose{width:min(44rem,100%)}.prose p+p{margin-top:1.1em}.site-header{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.site-header .wrap{display:flex;align-items:center;gap:1.5rem;padding-block:0.85rem}.brand{display:flex;align-items:center;gap:.65rem;font-family:Fraunces,Georgia,serif;font-weight:640;font-size:1.15rem;letter-spacing:-.01em;color:var(--ink);text-decoration:none}.brand:hover{color:var(--ink)}.brand img{width:1.7rem;height:1.7rem}.site-nav{margin-left:auto;display:flex;align-items:center;gap:1.4rem}.site-nav a{color:var(--ink-soft);text-decoration:none;font-size:.95rem;letter-spacing:.01em}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--rust)}.theme-toggle{border:1px solid var(--line);background:0 0;color:var(--ink-soft);border-radius:999px;width:2rem;height:2rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:.9rem}.theme-toggle:hover{color:var(--rust);border-color:var(--rust)}.site-footer{margin-top:auto;border-top:1px solid var(--line);padding-block:2.5rem 3rem;color:var(--muted);font-size:.92rem}.site-footer .wrap{display:grid;gap:1.75rem;grid-template-columns:1fr}@media (min-width:720px){.site-footer .wrap{grid-template-columns:2fr 1fr 1fr}}.site-footer h3{font-family:inherit;font-weight:600;font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.6rem}.site-footer ul{list-style:none;padding:0;display:grid;gap:.35rem}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{color:var(--rust)}.footer-brand{display:flex;align-items:center;gap:.6rem;margin-bottom:.7rem}.footer-brand img{width:1.5rem;height:1.5rem}.footer-brand span{font-family:Fraunces,Georgia,serif;font-weight:640;color:var(--ink);font-size:1.05rem}.kicker{font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--rust);margin-bottom:.9rem}.section{padding-block:4.5rem}.section+.section{border-top:1px solid var(--line)}.btn{display:inline-block;background:var(--ink);color:var(--paper);font-weight:600;font-size:.98rem;text-decoration:none;padding:.7rem 1.35rem;border-radius:6px;border:1px solid var(--ink)}.btn:hover{background:var(--rust);border-color:var(--rust);color:#fdfbf6}.btn-quiet{background:0 0;color:var(--ink)}.btn-quiet:hover{background:0 0;color:var(--rust)}</style><style>.page-head{padding-block:4.5rem 3rem}.page-head h1{font-size:clamp(2.2rem, 5vw, 3.4rem);max-width:18em}.page-head .lede{margin-top:1.2rem;font-size:1.2rem;color:var(--ink-soft);max-width:36em}.tenet{display:grid;gap:2rem;grid-template-columns:1fr;align-items:start}@media (min-width:880px){.tenet{grid-template-columns:1fr 2fr}}.tenet h2{font-size:1.65rem}.tenet .prose{color:var(--ink-soft)}.tenet .prose strong{color:var(--ink)}.swirl-band{border-block:1px solid var(--line);overflow:clip}.swirl-band img{display:block;width:100%;height:9rem;object-fit:cover;opacity:.85}</style>
Approach

Understanding and action are not two departments. They are one loop.

A robot that cannot act has no way to test what it believes. A robot that cannot understand has no way to choose what to do. Our entire technical program is the discipline of taking that sentence literally.

Grounded, not general‑purpose‑vague

The knowledge a robot needs is indexical — it is about here, now, this. Not “cups are graspable” but this cup, at this pose, reachable by this arm whose second joint runs four degrees hot. Most machine intelligence today manipulates symbols that refer to nothing in particular. Robot software has no such luxury: its symbols cash out at sensors and motors, or they don’t cash out at all.

So we build perception and state estimation that keep the connection between symbol and situation intact — from raw phenomena to the planner and back — instead of laundering it away through a benchmark.

Precision is not optional

“Roughly right” compounds into completely wrong within a few actions. Contact, friction, deformation, occlusion — the physical world charges interest on every approximation. Understanding reality at the granularity where robots live means modeling it at the granularity where physics lives, and being honest about the residual.

That honesty is an engineering artifact, not a virtue: calibrated uncertainty, explicit failure envelopes, models that know when they are out of their depth before the gripper does.

Develop where it’s reproducible, prove where it’s real

The world does not replay. Everything reproducible about a robot’s behavior — training, search, regression, ablation — belongs in simulation and replay, where an experiment can be run twice. Everything that matters ultimately happens once, in reality, where it can’t.

We treat the gap between those two as a first‑class quantity: measured continuously, narrowed deliberately, and never papered over with a demo reel. Environments and evaluation are core infrastructure here, not an afterthought bolted on before a launch.

Close the loop

Perceive, understand, decide, act — and then perceive what the action did. The second perception is the one most systems skip, and it is the one that turns a pipeline into intelligence. Acting on the world and being corrected by it is the only supervision signal reality offers for free, at scale, forever.

The ring we use as a mark is drawn in one continuous stroke. Understanding flows into action, action back into understanding. Break the circle anywhere and both halves die. That is the thesis, and everything we ship is judged by whether it strengthens the circle.

In practice

What this looks like as software

A stack robots run to know themselves and their surroundings: body‑grounded perception, world models honest enough to plan against, planners whose decisions survive contact with hardware, and the evaluation machinery that keeps every layer accountable to reality. We are building it now, and it is going well enough that we can afford to be this direct about the plan.

Talk to us