Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> | |
| <title>PPISP on a Real 3-Camera Capture — Forenly AI Lab</title> | |
| <meta name="description" content="Forenly AI Lab · Study 01 — NVIDIA's PPISP tested on a real 3-camera capture in our Scene→Sim pipeline. Drag to compare OFF vs ON (+9.5 dB PSNR)." /> | |
| <link rel="canonical" href="https://forenly.ai/lab-study/ppisp" /> | |
| <meta property="og:title" content="PPISP on a Real 3-Camera Capture — Forenly AI Lab" /> | |
| <meta property="og:description" content="Drag to compare PPISP OFF vs ON on a real 3-camera capture. +9.5 dB PSNR. Scene→Sim research for humanoid training." /> | |
| <meta property="og:type" content="article" /> | |
| <meta property="og:url" content="https://forenly.ai/lab-study/ppisp" /> | |
| <meta property="og:image" content="https://forenly.ai/lab-study/ppisp/ppisp-on.jpg" /> | |
| <link rel="icon" type="image/svg+xml" href="/assets/images/branding/logo.svg" /> | |
| <link rel="preconnect" href="https://fonts.googleapis.com" /> | |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> | |
| <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" /> | |
| <style> | |
| :root{ | |
| --bg:#f9f7f2; --ink:#252b27; --muted:#7c8479; --border:#e7e2d8; | |
| --card:#ffffff; --secondary:#ecebe4; | |
| --off:#C4785A; /* terracotta — PPISP OFF */ | |
| --on:#6f8f3f; /* leaf green — PPISP ON */ | |
| --on-soft:#909f83; | |
| --radius:0.75rem; | |
| --maxw:1080px; | |
| } | |
| *{box-sizing:border-box} | |
| html,body{margin:0} | |
| body{ | |
| background:var(--bg); color:var(--ink); | |
| font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif; | |
| -webkit-font-smoothing:antialiased; line-height:1.6; | |
| } | |
| .wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px} | |
| a{color:inherit} | |
| /* ── top bar ── */ | |
| .topbar{border-bottom:1px solid var(--border)} | |
| .topbar .wrap{display:flex; align-items:center; justify-content:space-between; height:64px} | |
| .brand{display:flex; align-items:center; gap:10px; font-weight:700; letter-spacing:-.01em; text-decoration:none} | |
| .brand .dot{width:22px;height:22px;border-radius:6px;background:var(--ink);display:inline-block} | |
| .topnav a{font-size:14px; font-weight:600; color:var(--muted); text-decoration:none} | |
| .topnav a:hover{color:var(--ink)} | |
| /* ── hero ── */ | |
| .hero{padding:56px 0 8px; text-align:center} | |
| .eyebrow{ | |
| font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; | |
| color:var(--muted); display:inline-flex; gap:10px; align-items:center; | |
| } | |
| .eyebrow .pip{width:6px;height:6px;border-radius:50%;background:var(--on)} | |
| h1{ | |
| font-size:clamp(30px,5.2vw,52px); line-height:1.04; letter-spacing:-.03em; | |
| font-weight:800; margin:.5em auto .3em; max-width:16ch; text-wrap:balance; | |
| } | |
| .lede{max-width:60ch; margin:0 auto; color:#4b524c; font-size:clamp(16px,2vw,18px)} | |
| /* ── comparison slider ── */ | |
| .stage{margin:34px 0 10px} | |
| .compare{ | |
| position:relative; width:100%; aspect-ratio:1186/1426; max-height:76vh; | |
| border-radius:var(--radius); overflow:hidden; user-select:none; touch-action:none; | |
| box-shadow:0 24px 60px -24px rgba(37,43,39,.35); border:1px solid var(--border); | |
| background:#ddd; | |
| } | |
| .compare img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; pointer-events:none} | |
| .compare .top{clip-path:inset(0 0 0 50%)} /* ON revealed on the right */ | |
| .tag{ | |
| position:absolute; top:14px; z-index:4; font-size:12px; font-weight:800; letter-spacing:.04em; | |
| padding:6px 12px; border-radius:999px; color:#fff; text-transform:uppercase; | |
| box-shadow:0 4px 14px rgba(0,0,0,.18); | |
| } | |
| .tag.left{left:14px; background:var(--off)} | |
| .tag.right{right:14px; background:var(--on)} | |
| .handle{ | |
| position:absolute; top:0; bottom:0; width:2px; left:50%; z-index:3; | |
| background:rgba(255,255,255,.9); transform:translateX(-1px); box-shadow:0 0 0 1px rgba(0,0,0,.12); | |
| } | |
| .grip{ | |
| position:absolute; top:50%; left:50%; z-index:5; width:44px; height:44px; transform:translate(-50%,-50%); | |
| border-radius:50%; background:#fff; box-shadow:0 6px 18px rgba(0,0,0,.28); | |
| display:grid; place-items:center; cursor:ew-resize; | |
| } | |
| .grip svg{width:22px;height:22px;color:var(--ink)} | |
| .range{position:absolute; inset:0; z-index:6; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize} | |
| .range:focus-visible + .grip{outline:3px solid var(--on); outline-offset:3px} | |
| .hint{margin-top:12px; text-align:center; font-size:13px; color:var(--muted)} | |
| /* ── stats ── */ | |
| .stats{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:30px 0 8px} | |
| .stat{background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:20px 18px} | |
| .stat .n{font-size:30px; font-weight:800; letter-spacing:-.02em; font-variant-numeric:tabular-nums} | |
| .stat .n .u{font-size:15px; font-weight:700; color:var(--muted); margin-left:2px} | |
| .stat .l{font-size:12.5px; color:var(--muted); margin-top:4px; letter-spacing:.02em} | |
| .stat.hl .n{color:var(--on)} | |
| /* ── prose ── */ | |
| section.block{padding:40px 0; border-top:1px solid var(--border)} | |
| .block h2{font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:700; margin:0 0 16px} | |
| .cols{display:grid; grid-template-columns:1fr 1fr; gap:32px} | |
| .cols p{margin:0 0 14px; max-width:62ch} | |
| .cols p:last-child{margin-bottom:0} | |
| strong{font-weight:700} | |
| .k{color:var(--off); font-weight:700} | |
| .g{color:var(--on); font-weight:700} | |
| .methods{display:flex; flex-wrap:wrap; gap:8px; margin-top:6px} | |
| .chip{font-size:12.5px; font-weight:600; padding:6px 11px; border-radius:999px; background:var(--secondary); color:#3f453f; border:1px solid var(--border)} | |
| .chip.active{background:var(--ink); color:#fff; border-color:var(--ink)} | |
| /* ── video ── */ | |
| .video{position:relative; aspect-ratio:16/9; border-radius:var(--radius); overflow:hidden; border:1px solid var(--border); box-shadow:0 20px 44px -22px rgba(37,43,39,.3)} | |
| .video iframe{position:absolute; inset:0; width:100%; height:100%; border:0} | |
| /* ── cta ── */ | |
| .cta{background:var(--ink); color:#eef0ea; border-radius:calc(var(--radius) + 4px); padding:38px 32px; text-align:center; margin:20px 0 8px} | |
| .cta h3{font-size:clamp(21px,3vw,28px); letter-spacing:-.02em; margin:0 0 8px; font-weight:800; color:#fff; text-wrap:balance} | |
| .cta p{margin:0 auto 20px; color:#b9c1b3; max-width:52ch} | |
| .btn{display:inline-block; background:var(--on-soft); color:#1b201c; font-weight:700; text-decoration:none; padding:12px 22px; border-radius:999px; font-size:15px} | |
| .btn:hover{background:#a2b096} | |
| /* ── footer ── */ | |
| footer{border-top:1px solid var(--border); margin-top:8px} | |
| footer .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 24px; flex-wrap:wrap} | |
| footer .muted{color:var(--muted); font-size:13px} | |
| footer a{color:var(--muted); text-decoration:none; font-size:13px; font-weight:600} | |
| footer a:hover{color:var(--ink)} | |
| @media (max-width:720px){ | |
| .stats{grid-template-columns:1fr 1fr} | |
| .cols{grid-template-columns:1fr; gap:14px} | |
| .stat:last-child{grid-column:1/-1} | |
| } | |
| @media (prefers-reduced-motion:reduce){*{scroll-behavior:auto}} | |
| /* ── site header/footer (static replica) ── */ | |
| .site-head{position:sticky;top:0;z-index:20;backdrop-filter:saturate(160%) blur(12px);background:rgba(249,247,242,.8);border-bottom:1px solid var(--border)} | |
| .head-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap} | |
| .brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)} | |
| .brand .logo{width:44px;height:44px;object-fit:contain} | |
| .wm{display:flex;flex-direction:column;font-weight:800;letter-spacing:-.01em;line-height:1.05;font-size:19px} | |
| .wm small{font-weight:600;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:3px} | |
| .wm small b{color:var(--on);font-weight:700} | |
| .socials{display:flex;align-items:center;gap:8px;flex-wrap:wrap} | |
| .soc{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;color:var(--muted);transition:color .2s,background .2s} | |
| .soc svg{width:17px;height:17px} | |
| .soc:hover{color:var(--ink);background:rgba(37,43,39,.06)} | |
| .book{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:#fff;text-decoration:none;font-weight:700;font-size:13.5px;padding:9px 16px;border-radius:999px;margin-left:6px} | |
| .book:hover{background:#333b35} | |
| .book .pulse{width:7px;height:7px;border-radius:50%;background:var(--on-soft);box-shadow:0 0 0 0 rgba(144,159,131,.7);animation:pl 2s infinite} | |
| @keyframes pl{0%{box-shadow:0 0 0 0 rgba(144,159,131,.6)}70%{box-shadow:0 0 0 7px rgba(144,159,131,0)}100%{box-shadow:0 0 0 0 rgba(144,159,131,0)}} | |
| .site-foot{border-top:1px solid var(--border);margin-top:8px} | |
| .foot-in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;flex-wrap:wrap} | |
| .foot-links{display:flex;gap:20px;flex-wrap:wrap} | |
| .foot-links a{color:var(--muted);text-decoration:none;font-size:13.5px;font-weight:600} | |
| .foot-links a:hover{color:var(--ink)} | |
| .site-foot .muted{color:var(--muted);font-size:13px} | |
| @media (max-width:760px){.wm small{display:none}.book span.pulse{display:none}} | |
| </style> | |
| </head> | |
| <body> | |
| <header class="site-head"><div class="wrap head-in"> | |
| <a class="brand" href="https://forenly.ai/"> | |
| <img class="logo" src="https://forenly.ai/assets/images/branding/logo.svg" alt="" width="44" height="44"/> | |
| <span class="wm">Forenly AI<small>The <b>Skill</b> Layer for Humanoids</small></span> | |
| </a> | |
| <nav class="socials"> | |
| <a class="soc" href="https://www.linkedin.com/company/forenlyai" target="_blank" rel="noopener" aria-label="LinkedIn" title="LinkedIn"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M4.98 3.5C4.98 4.88 3.87 6 2.5 6S0 4.88 0 3.5 1.12 1 2.5 1 4.98 2.12 4.98 3.5zM.5 8h4V24h-4V8zm7.5 0h3.8v2.2h.05c.53-1 1.83-2.2 3.77-2.2 4.03 0 4.78 2.65 4.78 6.1V24h-4v-7.1c0-1.7-.03-3.9-2.38-3.9-2.38 0-2.75 1.86-2.75 3.78V24h-4V8z"/></svg></a> | |
| <a class="soc" href="https://www.instagram.com/forenly.ai/" target="_blank" rel="noopener" aria-label="Instagram" title="Instagram"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 2.2c3.2 0 3.58.01 4.85.07 1.17.05 1.8.25 2.23.41.56.22.96.48 1.38.9.42.42.68.82.9 1.38.16.42.36 1.06.41 2.23.06 1.27.07 1.65.07 4.85s-.01 3.58-.07 4.85c-.05 1.17-.25 1.8-.41 2.23-.22.56-.48.96-.9 1.38-.42.42-.82.68-1.38.9-.42.16-1.06.36-2.23.41-1.27.06-1.65.07-4.85.07s-3.58-.01-4.85-.07c-1.17-.05-1.8-.25-2.23-.41-.56-.22-.96-.48-1.38-.9-.42-.42-.68-.82-.9-1.38-.16-.42-.36-1.06-.41-2.23C2.21 15.58 2.2 15.2 2.2 12s.01-3.58.07-4.85c.05-1.17.25-1.8.41-2.23.22-.56.48-.96.9-1.38.42-.42.82-.68 1.38-.9.42-.16 1.06-.36 2.23-.41C8.42 2.21 8.8 2.2 12 2.2zm0 1.8c-3.15 0-3.5.01-4.74.07-.9.04-1.38.19-1.71.32-.43.17-.74.37-1.06.69-.32.32-.52.63-.69 1.06-.13.33-.28.81-.32 1.71C3.21 8.5 3.2 8.85 3.2 12s.01 3.5.07 4.74c.04.9.19 1.38.32 1.71.17.43.37.74.69 1.06.32.32.63.52 1.06.69.33.13.81.28 1.71.32 1.24.06 1.59.07 4.74.07s3.5-.01 4.74-.07c.9-.04 1.38-.19 1.71-.32.43-.17.74-.37 1.06-.69.32-.32.52-.63.69-1.06.13-.33.28-.81.32-1.71.06-1.24.07-1.59.07-4.74s-.01-3.5-.07-4.74c-.04-.9-.19-1.38-.32-1.71a2.86 2.86 0 0 0-.69-1.06 2.86 2.86 0 0 0-1.06-.69c-.33-.13-.81-.28-1.71-.32C15.5 4.01 15.15 4 12 4zm0 3.06A4.94 4.94 0 1 1 7.06 12 4.94 4.94 0 0 1 12 7.06zm0 1.8A3.14 3.14 0 1 0 15.14 12 3.14 3.14 0 0 0 12 8.86zm5.16-2.96a1.15 1.15 0 1 1-1.15 1.15 1.15 1.15 0 0 1 1.15-1.15z"/></svg></a> | |
| <a class="soc" href="https://www.youtube.com/channel/UCjdf3i4G8sftGz8Q-R1Dj5g" target="_blank" rel="noopener" aria-label="YouTube" title="YouTube"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M23.5 6.2a3 3 0 0 0-2.1-2.1C19.5 3.6 12 3.6 12 3.6s-7.5 0-9.4.5A3 3 0 0 0 .5 6.2 31 31 0 0 0 0 12a31 31 0 0 0 .5 5.8 3 3 0 0 0 2.1 2.1c1.9.5 9.4.5 9.4.5s7.5 0 9.4-.5a3 3 0 0 0 2.1-2.1A31 31 0 0 0 24 12a31 31 0 0 0-.5-5.8zM9.6 15.6V8.4l6.2 3.6-6.2 3.6z"/></svg></a> | |
| <a class="soc" href="https://www.facebook.com/profile.php?id=61585362298504" target="_blank" rel="noopener" aria-label="Facebook" title="Facebook"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M24 12a12 12 0 1 0-13.9 11.9v-8.4H7.1V12h3V9.4c0-3 1.8-4.6 4.5-4.6 1.3 0 2.6.23 2.6.23v2.9h-1.5c-1.5 0-1.9.91-1.9 1.85V12h3.3l-.53 3.5h-2.77v8.4A12 12 0 0 0 24 12z"/></svg></a> | |
| <a class="soc" href="https://www.tiktok.com/@forenlyai" target="_blank" rel="noopener" aria-label="TikTok" title="TikTok"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M16.6 5.82a4.28 4.28 0 0 1-1.05-2.82h-3.3v13.05a2.59 2.59 0 1 1-2.59-2.59c.27 0 .53.04.78.12v-3.35a5.94 5.94 0 0 0-.78-.05A5.94 5.94 0 1 0 15.6 16.2V9.4a7.56 7.56 0 0 0 4.4 1.4V7.5a4.28 4.28 0 0 1-3.4-1.68z"/></svg></a> | |
| <a class="soc" href="https://x.com/forenlyai" target="_blank" rel="noopener" aria-label="X" title="X"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg></a> | |
| <a class="soc" href="https://bsky.app/profile/forenlyai.bsky.social" target="_blank" rel="noopener" aria-label="Bluesky" title="Bluesky"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></svg></a> | |
| <a class="soc" href="https://github.com/ForenlyAI" target="_blank" rel="noopener" aria-label="GitHub" title="GitHub"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a> | |
| <a class="soc" href="https://huggingface.co/ForenlyAI" target="_blank" rel="noopener" aria-label="Hugging Face" title="Hugging Face"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M12.025 1.13c-5.77 0-10.449 4.647-10.449 10.378 0 1.112.178 2.181.503 3.185.064-.222.203-.444.416-.577a.96.96 0 0 1 .524-.15c.293 0 .584.124.84.284.278.173.48.408.71.694.226.282.458.611.684.951v-.014c.017-.324.106-.622.264-.874s.403-.487.762-.543c.3-.047.596.06.787.203s.31.313.4.467c.15.257.212.468.233.542.01.026.653 1.552 1.657 2.54.616.605 1.01 1.223 1.082 1.912.055.537-.096 1.059-.38 1.572.637.121 1.294.187 1.967.187.657 0 1.298-.063 1.921-.178-.287-.517-.44-1.041-.384-1.581.07-.69.465-1.307 1.081-1.913 1.004-.987 1.647-2.513 1.657-2.539.021-.074.083-.285.233-.542.09-.154.208-.323.4-.467a1.08 1.08 0 0 1 .787-.203c.359.056.604.29.762.543s.247.55.265.874v.015c.225-.34.457-.67.683-.952.23-.286.432-.52.71-.694.257-.16.547-.284.84-.285a.97.97 0 0 1 .524.151c.228.143.373.388.43.625l.006.04a10.3 10.3 0 0 0 .534-3.273c0-5.731-4.678-10.378-10.449-10.378M8.327 6.583a1.5 1.5 0 0 1 .713.174 1.487 1.487 0 0 1 .617 2.013c-.183.343-.762-.214-1.102-.094-.38.134-.532.914-.917.71a1.487 1.487 0 0 1 .69-2.803m7.486 0a1.487 1.487 0 0 1 .689 2.803c-.385.204-.536-.576-.916-.71-.34-.12-.92.437-1.103.094a1.487 1.487 0 0 1 .617-2.013 1.5 1.5 0 0 1 .713-.174m-10.68 1.55a.96.96 0 1 1 0 1.921.96.96 0 0 1 0-1.92m13.838 0a.96.96 0 1 1 0 1.92.96.96 0 0 1 0-1.92M8.489 11.458c.588.01 1.965 1.157 3.572 1.164 1.607-.007 2.984-1.155 3.572-1.164.196-.003.305.12.305.454 0 .886-.424 2.328-1.563 3.202-.22-.756-1.396-1.366-1.63-1.32q-.011.001-.02.006l-.044.026-.01.008-.03.024q-.018.017-.035.036l-.032.04a1 1 0 0 0-.058.09l-.014.025q-.049.088-.11.19a1 1 0 0 1-.083.116 1.2 1.2 0 0 1-.173.18q-.035.029-.075.058a1.3 1.3 0 0 1-.251-.243 1 1 0 0 1-.076-.107c-.124-.193-.177-.363-.337-.444-.034-.016-.104-.008-.2.022q-.094.03-.216.087-.06.028-.125.063l-.13.074q-.067.04-.136.086a3 3 0 0 0-.135.096 3 3 0 0 0-.26.219 2 2 0 0 0-.12.121 2 2 0 0 0-.106.128l-.002.002a2 2 0 0 0-.09.132l-.001.001a1.2 1.2 0 0 0-.105.212q-.013.036-.024.073c-1.139-.875-1.563-2.317-1.563-3.203 0-.334.109-.457.305-.454m.836 10.354c.824-1.19.766-2.082-.365-3.194-1.13-1.112-1.789-2.738-1.789-2.738s-.246-.945-.806-.858-.97 1.499.202 2.362c1.173.864-.233 1.45-.685.64-.45-.812-1.683-2.896-2.322-3.295s-1.089-.175-.938.647 2.822 2.813 2.562 3.244-1.176-.506-1.176-.506-2.866-2.567-3.49-1.898.473 1.23 2.037 2.16c1.564.932 1.686 1.178 1.464 1.53s-3.675-2.511-4-1.297c-.323 1.214 3.524 1.567 3.287 2.405-.238.839-2.71-1.587-3.216-.642-.506.946 3.49 2.056 3.522 2.064 1.29.33 4.568 1.028 5.713-.624m5.349 0c-.824-1.19-.766-2.082.365-3.194 1.13-1.112 1.789-2.738 1.789-2.738s.246-.945.806-.858.97 1.499-.202 2.362c-1.173.864.233 1.45.685.64.451-.812 1.683-2.896 2.322-3.295s1.089-.175.938.647-2.822 2.813-2.562 3.244 1.176-.506 1.176-.506 2.866-2.567 3.49-1.898-.473 1.23-2.037 2.16c-1.564.932-1.686 1.178-1.464 1.53s3.675-2.511 4-1.297c.323 1.214-3.524 1.567-3.287 2.405.238.839 2.71-1.587 3.216-.642.506.946-3.49 2.056-3.522 2.064-1.29.33-4.568 1.028-5.713-.624"/></svg></a> | |
| <a class="soc" href="https://wa.me/905075135234" target="_blank" rel="noopener" aria-label="WhatsApp" title="WhatsApp"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M12.04 2C6.58 2 2.13 6.45 2.13 11.91c0 1.75.46 3.45 1.32 4.95L2 22l5.25-1.38c1.45.79 3.08 1.21 4.79 1.21h.01c5.46 0 9.91-4.45 9.91-9.91 0-2.65-1.03-5.14-2.9-7.01A9.82 9.82 0 0 0 12.04 2zm0 1.8c2.16 0 4.19.84 5.72 2.37a8.06 8.06 0 0 1 2.37 5.72c0 4.46-3.63 8.09-8.1 8.09-1.52 0-3.01-.41-4.3-1.19l-.31-.18-3.12.82.83-3.04-.2-.32a8.04 8.04 0 0 1-1.24-4.28c0-4.46 3.63-8.09 8.1-8.09zm-2.6 4.31c-.18-.4-.36-.41-.53-.41l-.45-.01c-.16 0-.41.06-.63.29-.22.23-.83.81-.83 1.98s.85 2.3.97 2.46c.12.16 1.66 2.66 4.09 3.63 2.02.8 2.43.64 2.87.6.44-.04 1.42-.58 1.62-1.14.2-.56.2-1.04.14-1.14-.06-.1-.22-.16-.46-.28-.24-.12-1.42-.7-1.64-.78-.22-.08-.38-.12-.54.12-.16.24-.62.78-.76.94-.14.16-.28.18-.52.06-.24-.12-1.01-.37-1.93-1.19-.71-.64-1.19-1.42-1.33-1.66-.14-.24-.01-.37.11-.49.11-.11.24-.28.36-.42.12-.14.16-.24.24-.4.08-.16.04-.3-.02-.42-.06-.12-.54-1.32-.74-1.81z"/></svg></a> | |
| <a class="soc" href="https://discord.gg/47ymtwtq4g" target="_blank" rel="noopener" aria-label="Discord" title="Discord"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M20.317 4.369a19.79 19.79 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.249a18.27 18.27 0 0 0-5.487 0 12.6 12.6 0 0 0-.617-1.25.077.077 0 0 0-.079-.036A19.74 19.74 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.1 13.1 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.291.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.061 0a.074.074 0 0 1 .078.009c.12.099.246.198.373.292a.077.077 0 0 1-.006.127 12.3 12.3 0 0 1-1.873.891.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.84 19.84 0 0 0 6.002-3.03.077.077 0 0 0 .032-.055c.5-5.177-.838-9.674-3.549-13.66a.06.06 0 0 0-.031-.028zM8.02 15.331c-1.182 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z"/></svg></a> | |
| <a class="soc" href="https://whop.com/forenly-ai-42e3/" target="_blank" rel="noopener" aria-label="Whop" title="Whop"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M2.4 4.5h3.5l1.95 10.3L10.25 4.5h3.5l2.4 10.3L18.1 4.5h3.5l-3.55 15h-3.6l-2.2-9-2.2 9h-3.6z"/></svg></a> | |
| <a class="book" href="https://calendar.app.google/xE954t3aqX8ZzJDm8" target="_blank" rel="noopener"><span class="pulse"></span>Book a Meeting</a> | |
| </nav> | |
| </div></header> | |
| <div class="wrap"> | |
| <header class="hero"> | |
| <div class="eyebrow"><span class="pip"></span>Forenly Lab · Study 01 · Scene→Sim</div> | |
| <h1>PPISP on a real 3-camera capture</h1> | |
| <p class="lede">NVIDIA just shipped PPISP. We put it through a clean ablation inside our Scene→Sim pipeline — same capture, same 30k iterations, one toggle. Drag to see the difference.</p> | |
| </header> | |
| <div class="stage"> | |
| <div class="compare" id="compare"> | |
| <img class="base" src="ppisp-off.jpg" alt="Reconstruction with PPISP off — hazy, washed-out blur" /> | |
| <img class="top" src="ppisp-on.jpg" alt="Reconstruction with PPISP on — sharp and colour-correct" /> | |
| <span class="tag left">PPISP off</span> | |
| <span class="tag right">PPISP on</span> | |
| <div class="handle" id="handle"></div> | |
| <div class="grip" id="grip" aria-hidden="true"> | |
| <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M9 6l-5 6 5 6M15 6l5 6-5 6"/></svg> | |
| </div> | |
| <input class="range" id="range" type="range" min="0" max="100" value="50" | |
| aria-label="Reveal PPISP on versus off" /> | |
| </div> | |
| <p class="hint">Drag the handle — or focus it and use ← / → — to wipe between off and on.</p> | |
| </div> | |
| <div class="stats"> | |
| <div class="stat hl"><div class="n">+9.5<span class="u">dB PSNR</span></div><div class="l">Reconstruction fidelity, on → off</div></div> | |
| <div class="stat"><div class="n">30k<span class="u">iters</span></div><div class="l">Identical training budget, both runs</div></div> | |
| <div class="stat"><div class="n">3<span class="u">cameras</span></div><div class="l">Real multi-view capture, one scene</div></div> | |
| </div> | |
| <section class="block"> | |
| <h2>What you're looking at</h2> | |
| <div class="cols"> | |
| <div> | |
| <p><strong>PPISP</strong> is NVIDIA's method for the photometric artifacts that wreck radiance-field and Gaussian-splatting reconstructions — the lighting and colour drift that turns a clean multi-camera capture into mush. It slots on top of existing pipelines and works across 3DGS, 3DGUT and NeRFs.</p> | |
| <p>We ran a single controlled ablation: the <em>same</em> capture and the <em>same</em> 30,000 training iterations, changing one thing — PPISP off versus on.</p> | |
| </div> | |
| <div> | |
| <p><span class="k">Off</span> → the scene collapses into a hazy, washed-out haze; the sculpture and water dissolve.</p> | |
| <p><span class="g">On</span> → edges hold, colour stays true, and the reconstruction lands <strong>+9.5 dB PSNR</strong> higher — a large, plainly visible jump.</p> | |
| <p>Reconstruction methods benchmarked in this line of work:</p> | |
| <div class="methods"> | |
| <span class="chip active">PPISP</span><span class="chip">3DGRUT</span><span class="chip">2DGS</span><span class="chip">GOF</span> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <section class="block"> | |
| <h2>Why it matters for Forenly</h2> | |
| <div class="cols"> | |
| <div> | |
| <p>Our <strong>Scene→Sim</strong> pipeline turns real multi-camera captures into simulation-ready 3D scenes — the digital twins where humanoid robots learn to walk, navigate and manipulate before anything runs on hardware.</p> | |
| </div> | |
| <div> | |
| <p>In that pipeline, reconstruction fidelity <em>is</em> the training ground. A blurry scene is a broken one: geometry the robot can't trust and textures the policy can't read. So every dB of reconstruction quality is a better place to learn a skill — which is exactly why we test methods like PPISP the moment they land.</p> | |
| </div> | |
| </div> | |
| </section> | |
| <section class="block"> | |
| <h2>Watch the toggle</h2> | |
| <div class="video"> | |
| <iframe src="https://www.youtube-nocookie.com/embed/dETMEVHzBLM" title="PPISP on a Real 3-Camera Capture — OFF vs ON" loading="lazy" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> | |
| </div> | |
| </section> | |
| <div class="cta"> | |
| <h3>The Skill Layer for humanoid robots</h3> | |
| <p>Forenly AI turns real scenes into simulation where humanoids learn their skills — then transfers them onto the machine.</p> | |
| <a class="btn" href="https://forenly.ai/">Explore Forenly AI</a> | |
| </div> | |
| </div> | |
| <footer class="site-foot"><div class="wrap foot-in"> | |
| <nav class="foot-links"> | |
| <a href="https://www.linkedin.com/company/forenly-ai-platform/" target="_blank" rel="noopener">About</a> | |
| <a href="https://www.linkedin.com/in/bahadir-ciloglu/" target="_blank" rel="noopener">Founder</a> | |
| <a href="https://forenly.ai/lab-study/ppisp">Lab</a> | |
| <a href="https://forenly.ai/privacy/" target="_blank" rel="noopener">Privacy</a> | |
| <a href="https://forenly.ai/terms/" target="_blank" rel="noopener">Terms</a> | |
| </nav> | |
| <span class="muted">© Forenly AI — The Skill Layer for Humanoids</span> | |
| </div></footer> | |
| <script> | |
| (function(){ | |
| var compare=document.getElementById('compare'); | |
| var top=compare.querySelector('.top'); | |
| var handle=document.getElementById('handle'); | |
| var grip=document.getElementById('grip'); | |
| var range=document.getElementById('range'); | |
| function set(v){ | |
| v=Math.max(0,Math.min(100,v)); | |
| top.style.clipPath='inset(0 0 0 '+v+'%)'; | |
| handle.style.left=v+'%'; | |
| grip.style.left=v+'%'; | |
| range.value=v; | |
| } | |
| range.addEventListener('input',function(){set(+range.value)}); | |
| set(50); | |
| })(); | |
| </script> | |
| </body> | |
| </html> | |