Showing source for: https://www.stereostitch.com/index.html
Duration: 0.167212s
Server: cloudflare
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>StereoStitch â Image & Video Stitching Experts</title>
<meta name="description" content="The world leader in real-time live image and video stitching. StereoStitch merges multiple camera feeds into seamless 360°, stereoscopic 3D and panoramic views â live, at 30â60fps, from Nvidia GPUs to embedded devices.">
<style>
:root{
color-scheme:dark;
/* Palette derived from the StereoStitch logo: teal-blue, cyan, red */
--bg:#06181f;
--bg-2:#0a242e;
--panel:#0e2c37;
--panel-2:#113441;
--line:#1d4655;
--ink:#eaf6f9;
--muted:#9fc0c9;
--muted-2:#6d909a;
--teal:#1e7b9b;
--cyan:#58c1d8;
--red:#d82539;
--accent:#58c1d8;
--accent-grad:linear-gradient(120deg,#1e7b9b,#58c1d8);
--red-grad:linear-gradient(120deg,#d82539,#ef4a5c);
--radius:16px;
--maxw:1140px;
--font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--font);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.eyebrow{display:inline-block;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin-bottom:18px}
h1,h2,h3{line-height:1.15;font-weight:700;letter-spacing:-.02em}
h2{font-size:clamp(28px,4vw,42px);margin-bottom:18px}
h3{font-size:20px}
p{color:var(--muted)}
.lead{font-size:clamp(17px,2vw,20px);color:var(--muted)}
/* image fallback wrapper: branded gradient shows if the photo can't load */
.imgfill{background:var(--accent-grad);position:relative;overflow:hidden}
.imgfill img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* NAV */
header{position:sticky;top:0;z-index:50;background:rgba(6,24,31,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:70px}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;letter-spacing:-.01em}
.logo img{height:30px;width:auto}
.logo .fallback{display:none}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{color:var(--muted);font-size:15px;font-weight:500;transition:color .2s}
.nav-links a:hover{color:var(--ink)}
.btn{display:inline-block;font-weight:600;font-size:15px;border-radius:10px;padding:11px 20px;cursor:pointer;transition:transform .15s,box-shadow .2s,opacity .2s;border:1px solid transparent}
.btn-primary{background:var(--red-grad);color:#fff;box-shadow:0 6px 22px rgba(216,37,57,.32)}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 30px rgba(216,37,57,.42)}
.btn-ghost{border-color:var(--line);color:var(--ink);background:transparent}
.btn-ghost:hover{border-color:var(--cyan);color:var(--cyan)}
.nav-cta{display:flex;gap:12px;align-items:center}
.menu-toggle{display:none;background:none;border:0;color:var(--ink);font-size:26px;cursor:pointer}
/* HERO */
.hero{padding:92px 0 84px;overflow:hidden}
.hero-grid{position:absolute;inset:0;z-index:0;opacity:.5;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:46px 46px;mask-image:radial-gradient(ellipse 80% 60% at 72% 0%,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 80% 60% at 72% 0%,#000 30%,transparent 75%)}
.hero-glow{position:absolute;top:-120px;right:-80px;width:560px;height:560px;z-index:0;background:radial-gradient(circle,rgba(88,193,216,.20),transparent 60%);filter:blur(20px)}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center}
.hero h1{font-size:clamp(34px,5.2vw,58px);margin-bottom:22px}
.hero h1 .hl{background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{max-width:540px;margin-bottom:32px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.trust{margin-top:36px;display:flex;flex-wrap:wrap;gap:8px 20px;color:var(--muted-2);font-size:13px;font-weight:500}
.trust span{display:inline-flex;align-items:center;gap:7px}
.trust span:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--cyan)}
.hero-visual{position:relative;width:100%;max-width:440px;margin-left:auto;aspect-ratio:1/1.02;border-radius:20px;border:1px solid var(--line);box-shadow:0 30px 70px rgba(0,0,0,.5);overflow:hidden}
.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(6,24,31,.55));pointer-events:none}
.hero-badge{position:absolute;z-index:3;bottom:16px;left:16px;background:rgba(6,24,31,.72);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:12.5px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:8px}
.hero-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px rgba(88,193,216,.18)}
/* sections */
.sec{padding:84px 0;position:relative}
.sec-head{max-width:700px;margin-bottom:48px}
.sec-head.center{margin:0 auto 50px;text-align:center}
.band{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
/* WHAT WE DO */
.problem-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.problem-list{display:flex;flex-direction:column;gap:15px}
.problem-list .row{display:flex;gap:14px;align-items:flex-start}
.problem-list .ic{flex:none;width:28px;height:28px;border-radius:8px;background:var(--panel);border:1px solid var(--line);display:grid;place-items:center;color:var(--cyan);font-weight:700}
.problem-list strong{color:var(--ink);font-weight:600}
/* CARDS (capabilities, services) */
.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:28px 26px;transition:transform .18s,border-color .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);border-color:var(--teal);box-shadow:0 18px 44px rgba(0,0,0,.4)}
.card .ic{width:46px;height:46px;border-radius:11px;background:var(--panel-2);border:1px solid var(--line);display:grid;place-items:center;margin-bottom:18px}
.card .ic svg{width:23px;height:23px;stroke:var(--cyan);fill:none;stroke-width:1.7}
.card h3{margin-bottom:9px}
.card p{font-size:14.5px}
/* PRODUCTS */
.prod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.stores{display:flex;gap:10px;flex-wrap:wrap}
.stores a{font-size:13px;font-weight:600;color:var(--cyan);border:1px solid var(--line);border-radius:8px;padding:8px 12px;transition:border-color .2s,color .2s}
.stores a:hover{border-color:var(--cyan);color:#fff}
.prod{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .18s,border-color .2s}
.prod:hover{transform:translateY(-3px);border-color:var(--teal)}
.prod .top{height:160px;border-bottom:1px solid var(--line)}
.prod .top .tag{position:absolute;bottom:12px;left:14px;z-index:2;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(6,24,31,.6);padding:4px 10px;border-radius:7px;backdrop-filter:blur(4px)}
.prod .top.vrkit-top{position:relative;background:#fff;display:flex;align-items:center;justify-content:center;padding:10px 14px}
.prod .top.vrkit-top:after{display:none}
.prod .top.vrkit-top svg{width:100%;height:100%}
.prod .top:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(6,24,31,.5))}
.prod .body{padding:24px;display:flex;flex-direction:column;flex:1}
.prod h3{margin-bottom:8px}
.prod p{font-size:14.5px;margin-bottom:20px;flex:1}
.prod .plink{font-size:14px;font-weight:600;color:var(--cyan);display:inline-flex;align-items:center;gap:7px;transition:gap .15s}
.prod .plink:hover{gap:11px}
/* SEGMENTS */
.seg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.card.seg{padding:0;overflow:hidden;display:flex;flex-direction:column}
.seg .thumb{height:160px;border-bottom:1px solid var(--line)}
.seg .thumb:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(6,24,31,.45))}
.seg .pad{padding:24px 24px 26px}
.seg h3{font-size:18px;margin-bottom:14px;min-height:46px}
.seg-list{list-style:none;display:flex;flex-direction:column;gap:12px}
.seg-list li{font-size:14px;color:var(--muted);padding-left:16px;position:relative;line-height:1.55}
.seg-list li:before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--cyan)}
.seg-list strong{color:var(--ink);font-weight:600}
/* APP / MARKETS GRID */
.app-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.app{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:border-color .2s,transform .18s;display:flex;flex-direction:column}
.app:hover{border-color:var(--teal);transform:translateY(-2px)}
.app .thumb{height:150px;border-bottom:1px solid var(--line)}
.app .thumb:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(6,24,31,.45))}
.app .thumb.video:after{display:none}
.app .thumb iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* pyramid layout for applications: 1 featured / 2 / 3 */
.app-pyramid{display:flex;flex-wrap:wrap;gap:18px}
.app-pyramid>.app{flex:0 0 calc(33.333% - 12px)}
.app-pyramid>.app:nth-child(4){order:1;flex:0 0 100%;flex-direction:row}
.app-pyramid>.app:nth-child(5){order:2;flex:0 0 calc(50% - 9px)}
.app-pyramid>.app:nth-child(6){order:3;flex:0 0 calc(50% - 9px)}
.app-pyramid>.app:nth-child(1){order:4}
.app-pyramid>.app:nth-child(2){order:5}
.app-pyramid>.app:nth-child(3){order:6}
.app-pyramid>.app:nth-child(4) .thumb{flex:0 0 58%;height:300px;border-bottom:none;border-right:1px solid var(--line)}
.app-pyramid>.app:nth-child(4) .pad{flex:1;display:flex;flex-direction:column;justify-content:center}
.app .pad{padding:22px 22px 24px}
.app .ic{width:40px;height:40px;border-radius:10px;background:var(--panel-2);border:1px solid var(--line);display:grid;place-items:center;margin-bottom:15px}
.app .ic svg{width:21px;height:21px;stroke:var(--cyan);fill:none;stroke-width:1.7}
.app h3{font-size:17px;margin-bottom:7px}
.app p{font-size:14px}
/* PROCESS */
.proc{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.step{position:relative;padding-top:30px}
.step .n{position:absolute;top:0;left:0;font-size:13px;font-weight:700;color:var(--cyan);letter-spacing:.05em}
.step:before{content:"";position:absolute;top:6px;left:34px;right:-8px;height:1px;background:var(--line)}
.proc .step:last-child:before{display:none}
.step .dot{position:absolute;top:1px;left:24px;width:11px;height:11px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px rgba(88,193,216,.16)}
.step h3{font-size:16px;margin:6px 0 7px}
.step p{font-size:13.5px}
/* WHY STEREOSTITCH */
.why-sub{text-align:center;color:var(--muted-2);font-size:12.5px;text-transform:uppercase;letter-spacing:.16em;font-weight:700;margin-top:42px;margin-bottom:2px}
.problem-list.why-strengths{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px 34px;max-width:920px;margin:16px auto 0;text-align:left}
/* TEAM */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.member{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:28px}
.member .avatar{width:72px;height:72px;border-radius:14px;margin-bottom:18px;border:1px solid var(--line)}
.member h3{font-size:18px;margin-bottom:3px}
.member .role{color:var(--cyan);font-size:13.5px;font-weight:600;margin-bottom:14px}
.member p{font-size:13.5px}
/* CTA */
.cta{padding:88px 0}
.cta-box{position:relative;background:linear-gradient(135deg,#0d3340,#0a2630);border:1px solid var(--line);border-radius:24px;padding:58px 48px;overflow:hidden}
.cta-box:before{content:"";position:absolute;top:-100px;right:-60px;width:400px;height:400px;background:radial-gradient(circle,rgba(88,193,216,.18),transparent 60%);filter:blur(10px)}
.cta-box:after{content:"";position:absolute;bottom:-120px;left:-60px;width:360px;height:360px;background:radial-gradient(circle,rgba(216,37,57,.14),transparent 60%);filter:blur(10px)}
.cta-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.cta h2{margin-bottom:14px}
.form{display:flex;flex-direction:column;gap:14px}
.frow{display:flex;gap:14px}
.frow .field{flex:1}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:6px}
.field input,.field textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 14px;color:var(--ink);font-family:inherit;font-size:14.5px;transition:border-color .2s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--cyan)}
.field textarea{resize:vertical;min-height:84px}
.form-note{font-size:13px;color:var(--muted-2)}
/* FOOTER */
footer{border-top:1px solid var(--line);background:var(--bg-2);padding:46px 0 34px}
.foot{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:flex-start}
.foot .col{max-width:300px}
.foot .col img{height:28px;margin-bottom:12px}
.foot p{font-size:13.5px}
.foot-links{display:flex;gap:40px;flex-wrap:wrap}
.foot-links .g h4{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);margin-bottom:12px;font-weight:700}
.foot-links .g a{display:block;color:var(--muted);font-size:14px;margin-bottom:9px;transition:color .2s}
.foot-links .g a:hover{color:var(--cyan)}
.foot-bottom{border-top:1px solid var(--line);margin-top:38px;padding-top:22px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:var(--muted-2);font-size:13px}
@media(max-width:900px){
.hero .wrap,.problem-grid,.cta-grid{grid-template-columns:1fr}
.hero-visual{margin:8px auto 0;max-width:380px}
.cap-grid,.prod-grid,.app-grid,.team-grid,.seg-grid{grid-template-columns:1fr 1fr}
.app-pyramid>.app,.app-pyramid>.app:nth-child(4),.app-pyramid>.app:nth-child(5),.app-pyramid>.app:nth-child(6){flex:0 0 100%;order:0;flex-direction:column}
.app-pyramid>.app:nth-child(4) .thumb{flex:auto;height:200px;border-right:none;border-bottom:1px solid var(--line)}
.seg h3{min-height:0}
.proc{grid-template-columns:1fr 1fr}
.step:before{display:none}
.nav-links{display:none}
.menu-toggle{display:block}
.nav-links.open{display:flex;position:absolute;top:70px;left:0;right:0;flex-direction:column;background:var(--bg-2);border-bottom:1px solid var(--line);padding:18px 24px;gap:16px}
}
@media(max-width:600px){
.cap-grid,.prod-grid,.app-grid,.team-grid,.seg-grid,.proc{grid-template-columns:1fr}
.frow{flex-direction:column}
.cta-box{padding:36px 24px}
.hero{padding:56px 0 52px}
.sec{padding:58px 0}
.nav-cta .btn-ghost{display:none}
}
</style>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
</head>
<body>
<header>
<div class="wrap nav">
<a href="#top" class="logo">
<img src="assets/img/logo.png" alt="StereoStitch" onerror="this.style.display='none';this.nextElementSibling.style.display='inline'">
<span class="fallback">StereoStitch</span>
</a>
<nav class="nav-links" id="navlinks">
<a href="#whatwedo">What we do</a>
<a href="#markets">Markets</a>
<a href="#products">Products</a>
<a href="#services">Services</a>
<a href="#process">How we work</a>
<a href="#why">Why us</a>
<a href="#team">Team</a>
</nav>
<div class="nav-cta">
<a href="#contact" class="btn btn-primary">Contact us</a>
<button class="menu-toggle" id="menuToggle" aria-label="Menu">â¡</button>
</div>
</div>
</header>
<a id="top"></a>
<!-- HERO -->
<section class="hero">
<div class="hero-grid"></div>
<div class="hero-glow"></div>
<div class="wrap">
<div>
<span class="eyebrow">Who we are</span>
<h1>The world leader in <span class="hl">live</span> image & video stitching.</h1>
<p class="lead">StereoStitch merges feeds from multiple cameras into seamless 360°, stereoscopic 3D and panoramic views â in real time, at over 30â60fps, from high-end Nvidia GPUs down to mobile and embedded devices. When live stitching is the hard part of your problem, we're who you call.</p>
<div class="hero-actions">
<a href="#contact" class="btn btn-primary">Set up an initial conversation</a>
<a href="#whatwedo" class="btn btn-ghost">See what we do</a>
</div>
<div class="trust">
<span>Live 8K · 30â60fps</span>
<span>Nvidia to embedded</span>
<span>Sports · Industrial · Defence · Healthcare · VR</span>
</div>
</div>
<div class="hero-visual imgfill">
<img src="assets/img/hero.jpg" alt="StereoStitch real-time stitching" onerror="this.style.display='none'">
<div class="hero-badge"><span class="dot"></span>Seamless 360° · stitched live</div>
</div>
</div>
</section>
<!-- WHAT WE DO -->
<section class="band" id="whatwedo">
<div class="wrap sec">
<div class="problem-grid">
<div>
<span class="eyebrow">What StereoStitch does</span>
<h2>Specialist software for real-time image and video stitching.</h2>
<p class="lead">StereoStitch is a software engineering company that seamlessly stitches multiple images and video feeds into immersive, real-time 360°, stereoscopic 3D and panoramic views. Plenty of tools stitch two clean photos in a quiet room; far fewer survive moving subjects, mixed lighting, fisheye distortion, tight latency budgets and constrained hardware â all at once, and live. That gap is exactly where we live.</p>
</div>
<div class="problem-list">
<div class="row"><span class="ic">âº</span><div><strong>3D & 360° stitching</strong> â combines footage from multiple cameras or lenses into seamless panoramic, VR and spherical experiences.</div></div>
<div class="row"><span class="ic">âº</span><div><strong>Stereoscopic vision</strong> â aligns overlapping visuals to replicate human eyesight, generating genuine 3D depth and realism.</div></div>
<div class="row"><span class="ic">âº</span><div><strong>Real-time processing</strong> â over 30â60fps with minimal latency, usable for live broadcast, AR/VR platforms and robotics.</div></div>
<div class="row"><span class="ic">âº</span><div><strong>Versatility</strong> â embedded directly into phones, drones and cameras, or run on high-end desktop GPUs.</div></div>
<div class="row"><span class="ic">âº</span><div><strong>Linear & flat-surface stitching</strong> â transposes relatively flat surfaces into accurate, exploitable data.</div></div>
</div>
</div>
</div>
</section>
<!-- CAPABILITIES -->
<section class="sec" id="capabilities">
<div class="wrap">
<div class="sec-head">
<span class="eyebrow">Core capabilities</span>
<h2>Deep expertise across the full stitching pipeline</h2>
<p class="lead">Five areas where our proprietary algorithms consistently outperform off-the-shelf approaches â engineered to run in real time, on whatever silicon you're targeting.</p>
</div>
<div class="cap-grid">
<div class="card"><div class="ic"><svg viewBox="0 0 24 24"><rect x="3" y="3" width="8" height="8" rx="1"/><rect x="13" y="3" width="8" height="8" rx="1"/><rect x="3" y="13" width="8" height="8" rx="1"/><rect x="13" y="13" width="8" height="8" rx="1"/></svg></div><h3>High-resolution stitching</h3><p>Multiple images or video feeds fused into seamless panoramic or 360° output with no visible seams â up to 8K 30fps live, from cameras like KanDao Obsidian, Z-Cam and Insta360 Pro/Titan.</p></div>
<div class="card"><div class="ic"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3M5 5l2 2M17 17l2 2M19 5l-2 2M7 17l-2 2"/></svg></div><h3>High dynamic range (HDR)</h3><p>Exposure balanced across scenes with mixed lighting so detail survives in both highlights and shadows â the photo-realistic fidelity spatial computing platforms demand.</p></div>
<div class="card"><div class="ic"><svg viewBox="0 0 24 24"><path d="M3 12c3-6 15-6 18 0M3 12c3 6 15 6 18 0"/><circle cx="12" cy="12" r="2.5"/></svg></div><h3>Distortion correction</h3><p>Real-time de-warping of fisheye and wide-angle feeds â expanding fields of view while keeping geometry accurate enough for measurement, navigation and HUD overlays.</p></div>
<div class="card"><div class="ic"><svg viewBox="0 0 24 24"><circle cx="8" cy="12" r="4"/><circle cx="16" cy="12" r="4"/></svg></div><h3>Stereo & depth</h3><p>Stitching that mimics human binocular vision, adding genuine depth and realism â critical for VR immersion and for robotics that need spatial understanding, not just a flat image.</p></div>
<div class="card"><div class="ic"><svg viewBox="0 0 24 24"><path d="M13 2L4 14h6l-1 8 9-12h-6z"/></svg></div><h3>Real-time GPU optimisation</h3><p>Computationally heavy stitching delivered live â 30fps+ with minimal latency. Tuned across high-end Nvidia (e.g. 3090 stadium rigs) down to mobile and embedded targets.</p></div>
<div class="card"><div class="ic"><svg viewBox="0 0 24 24"><rect x="4" y="4" width="16" height="16" rx="2"/><path d="M9 4v16M4 9h5M15 4v16M15 15h5"/></svg></div><h3>Cross-platform delivery</h3><p>Technology-agnostic by design. We ship to Apple Vision Pro, HoloLens, Meta Quest Pro, HTC Vive and custom hardware â plus mobile SDKs for iOS and Android.</p></div>
</div>
</div>
</section>
<!-- MARKETS -->
<section class="sec band" id="markets">
<div class="wrap">
<div class="sec-head">
<span class="eyebrow">Markets & segments</span>
<h2>Core capabilities, applied across industries</h2>
<p class="lead">StereoStitch is a specialized, real-time image and video stitching software that merges feeds from multiple cameras into seamless 360°, stereoscopic 3D and panoramic views â highly optimized for hardware like Nvidia GPUs. Those capabilities translate into practical use cases across five broad segments.</p>
</div>
<div class="seg-grid">
<div class="card seg">
<div class="thumb imgfill"><img src="assets/img/market_vr.jpg" alt="Virtual reality & immersive media" onerror="this.style.display='none'"></div>
<div class="pad">
<h3>Virtual Reality & Immersive Media</h3>
<ul class="seg-list">
<li><strong>3D 360° video</strong> â highly realistic 3D and 360° videos for immersive entertainment, watchable on VR headsets with a natural sense of depth.</li>
<li><strong>Spatial computing</strong> â feeds stitched 3D stereoscopic imagery directly into headsets such as Apple Vision Pro, Meta Quest and Microsoft HoloLens.</li>
</ul>
</div>
</div>
<div class="card seg">
<div class="thumb imgfill"><img src="assets/img/market_live.jpg" alt="Live streaming & broadcasting" onerror="this.style.display='none'"></div>
<div class="pad">
<h3>Live Streaming & Broadcasting</h3>
<ul class="seg-list">
<li><strong>Live events</strong> â producers live-stitch 360° feeds in real time (30â60fps) on-set, ideal for broadcasting live sports, concerts and public gatherings.</li>
<li><strong>Real-time monitoring</strong> â multiple remote camera feeds stitched and viewed live.</li>
</ul>
</div>
</div>
<div class="card seg">
<div class="thumb imgfill"><img src="assets/img/market_robotics.jpg" alt="Robotics & remote operations" onerror="this.style.display='none'"></div>
<div class="pad">
<h3>Robotics & Remote Operations</h3>
<ul class="seg-list">
<li><strong>Remote navigation</strong> â multi-camera feeds combined into one immersive, seamless view to navigate drones or ground robots in hazardous or inaccessible environments.</li>
<li><strong>Field monitoring</strong> â comprehensive spatial awareness for military, defence and industrial inspection.</li>
</ul>
</div>
</div>
<div class="card seg">
<div class="thumb imgfill"><img src="assets/img/market_architecture.jpg" alt="Digital environments â gaming & architecture" onerror="this.style.display='none'"></div>
<div class="pad">
<h3>Digital Environments (Gaming & Architecture)</h3>
<ul class="seg-list">
<li><strong>Photo-realistic likeness</strong> â the spatial algorithms to transpose physical surroundings into interactive 360° displays for video games, digital design and real-estate showcases.</li>
</ul>
</div>
</div>
<div class="card seg">
<div class="thumb imgfill"><img src="assets/img/market_linear.jpg" alt="Linear & flat-surface stitching" onerror="this.style.display='none'"></div>
<div class="pad">
<h3>Linear & Flat-Surface Stitching</h3>
<ul class="seg-list">
<li><strong>Mapping and scanning</strong> â "linear stitching" that transposes relatively flat physical surfaces into accurate, exploitable data, pictures or videos.</li>
</ul>
</div>
</div>
</div>
</div>
</section>
<!-- PRODUCTS -->
<section class="sec" id="products">
<div class="wrap">
<div class="sec-head">
<span class="eyebrow">Off-the-shelf solutions</span>
<h2>Proven building blocks you can start from</h2>
<p class="lead">Four ready-to-deploy products â use them as-is, or as the fast-track foundation for a tailored build.</p>
</div>
<div class="prod-grid">
<div class="prod">
<div class="top imgfill"><img src="assets/img/product_linear.jpg" alt="StereoStitch Linear" onerror="this.style.display='none'"><span class="tag">Linear</span></div>
<div class="body"><h3>StereoStitch Linear</h3><p>Linear stitching that transposes any relatively flat surface into exploitable data, images or video. Ideal for robotic shelf and inventory management where accuracy across a long plane matters.</p><a class="plink" href="StereoStitch-Linear.pdf" target="_blank" rel="noopener">Download product sheet â</a></div>
</div>
<div class="prod">
<div class="top imgfill"><img src="assets/img/product_live.jpg" alt="StereoStitch Live 360" onerror="this.style.display='none'"><span class="tag">360 / Live</span></div>
<div class="body"><h3>StereoStitch Live</h3><p>Stitches images and video into smooth, interactive 360° displays of any physical space. Includes a mobile SDK for building 360° capture apps on iOS and Android â the engine behind the award-winning DMD Panorama app.</p><a class="plink" href="StereoStitch-Live.pdf" target="_blank" rel="noopener">Download product sheet â</a></div>
</div>
<div class="prod">
<div class="top imgfill"><img src="assets/img/product_stereo.jpg" alt="StereoStitch Stereo" onerror="this.style.display='none'"><span class="tag">Stereo</span></div>
<div class="body"><h3>StereoStitch Stereo</h3><p>Stitches inputs the way human eyesight works, adding depth and realism to imagery. Built for VR immersion and high-accuracy robotics that depend on a true sense of space.</p><a class="plink" href="StereoStitch-Stereo.pdf" target="_blank" rel="noopener">Download product sheet â</a></div>
</div>
<div class="prod">
<div class="top vrkit-top"><span class="tag">VR Kit</span>
<svg viewBox="0 0 480 190" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="TheVRkit â the lens, the rotator and the glasses">
<g fill="none" stroke="#15171a" stroke-width="4" stroke-linecap="round" stroke-linejoin="round">
<polyline points="22,118 22,168 150,168"/>
<polyline points="330,40 458,40 458,66"/>
</g>
<text x="394" y="32" text-anchor="middle" font-family="Arial,Helvetica,sans-serif" font-size="20" font-weight="800" fill="#15171a" letter-spacing="1">THE KIT</text>
<g>
<rect x="52" y="60" width="42" height="34" rx="4" fill="#2bb8d6" stroke="#15171a" stroke-width="3"/>
<line x1="59" y1="69" x2="87" y2="69" stroke="#fff" stroke-width="3" stroke-linecap="round"/>
<line x1="59" y1="77" x2="87" y2="77" stroke="#fff" stroke-width="3" stroke-linecap="round"/>
<line x1="59" y1="85" x2="78" y2="85" stroke="#fff" stroke-width="3" stroke-linecap="round"/>
<circle cx="86" cy="104" r="27" fill="#fff" stroke="#15171a" stroke-width="6"/>
<circle cx="86" cy="104" r="17" fill="#fff" stroke="#f5831f" stroke-width="5"/>
<line x1="106" y1="124" x2="122" y2="140" stroke="#15171a" stroke-width="8" stroke-linecap="round"/>
<text x="86" y="158" text-anchor="middle" font-family="Arial,Helvetica,sans-serif" font-size="15" fill="#15171a">the lens</text>
</g>
<g>
<rect x="205" y="78" width="56" height="52" fill="#2bb8d6"/>
<line x1="205" y1="78" x2="205" y2="130" stroke="#15171a" stroke-width="3"/>
<line x1="261" y1="78" x2="261" y2="130" stroke="#15171a" stroke-width="3"/>
<ellipse cx="233" cy="130" rx="28" ry="9" fill="#2bb8d6" stroke="#15171a" stroke-width="3"/>
<ellipse cx="233" cy="78" rx="28" ry="10" fill="#f5831f" stroke="#15171a" stroke-width="3"/>
<text x="233" y="158" text-anchor="middle" font-family="Arial,Helvetica,sans-serif" font-size="15" fill="#15171a">the rotator</text>
</g>
<g>
<path d="M357 86 h86 a8 8 0 0 1 8 8 v34 a8 8 0 0 1 -8 8 h-30 l-9 9 -9 -9 h-38 a8 8 0 0 1 -8 -8 v-34 a8 8 0 0 1 8 -8 z" fill="#2bb8d6" stroke="#15171a" stroke-width="4"/>
<path d="M438 86 h5 a8 8 0 0 1 8 8 v34 a8 8 0 0 1 -8 8 h-5 z" fill="#f5831f"/>
<circle cx="382" cy="110" r="11" fill="#fff" stroke="#15171a" stroke-width="4"/>
<circle cx="416" cy="110" r="11" fill="#fff" stroke="#15171a" stroke-width="4"/>
<text x="404" y="166" text-anchor="middle" font-family="Arial,Helvetica,sans-serif" font-size="15" fill="#15171a">the glasses</text>
</g>
</svg>
</div>
<div class="body"><h3>TheVRkit</h3><p>A clip-on fisheye plus real-time de-warp and a "follow-me" feature gives a 180° immersive field of view â and can turn a viewer's phone into a stereo VR headset. An accessible entry point for content creators and new markets.</p>
<div class="stores">
<a href="https://apps.apple.com/us/app/thevrkit/id1139219796" target="_blank" rel="noopener">App Store</a>
<a href="https://play.google.com/store/apps/details?id=com.dermandar.thevrkit&hl=en_AU" target="_blank" rel="noopener">Google Play</a>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- SERVICES -->
<section class="sec band" id="services">
<div class="wrap">
<div class="sec-head">
<span class="eyebrow">Associated services</span>
<h2>More than software â the expertise to make it work</h2>
<p class="lead">Our products are only half the value. The other half is the engineering services that get a stitch performing in your environment, on your hardware.</p>
</div>
<div class="cap-grid">
<div class="card"><div class="ic"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="3"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3M5 5l2 2M17 17l2 2M19 5l-2 2M7 17l-2 2"/></svg></div><h3>Calibration</h3><p>Precise multi-camera calibration â the unglamorous, decisive step that separates a clean seamless stitch from a ghosted, misaligned one.</p></div>
<div class="card"><div class="ic"><svg viewBox="0 0 24 24"><path d="M14 7l3 3-9 9-3 1 1-3z"/><path d="M3 21h18"/></svg></div><h3>Implementation services</h3><p>We integrate our engines into your hardware and pipeline, tune for your latency and resolution targets, and remove the bottlenecks before they reach production.</p></div>
<div class="card"><div class="ic"><svg viewBox="0 0 24 24"><path d="M21 15a2 2 0 01-2 2H8l-5 4V5a2 2 0 012-2h14a2 2 0 012 2z"/></svg></div><h3>Consulting</h3><p>Stuck scoping a stitching project? We bring deep, specialised expertise to feasibility, architecture and technology selection so you commit with confidence.</p></div>
<div class="card"><div class="ic"><svg viewBox="0 0 24 24"><path d="M3 7h18M3 12h18M3 17h18"/><circle cx="7" cy="7" r="1.4"/><circle cx="13" cy="12" r="1.4"/><circle cx="9" cy="17" r="1.4"/></svg></div><h3>Ancillaries</h3><p>Assessment, end-to-end, of your image treatment process, including encoding/decoding, GPU, etcâ¦</p></div>
</div>
</div>
</section>
<!-- APPLICATIONS -->
<section class="sec" id="applications">
<div class="wrap">
<div class="sec-head center">
<span class="eyebrow">Applications & use cases</span>
<h2>Where our stitching ends up</h2>
<p class="lead">The same core technology, adapted to very different problems by clients across industries.</p>
</div>
<div class="app-pyramid">
<div class="app"><div class="thumb imgfill"><img src="assets/img/app_tryons.jpg" alt="Virtual try-ons" onerror="this.style.display='none'"></div><div class="pad"><h3>Virtual try-ons</h3><p>Realistic 3D representation of products on a customer's body or face in AR/VR â boosting confidence, cutting returns and deepening engagement.</p></div></div>
<div class="app"><div class="thumb imgfill"><img src="assets/img/app_tours.jpg" alt="Virtual 360 property tour" onerror="this.style.display='none'"></div><div class="pad"><h3>Virtual 360° property tours</h3><p>Cost-effective PropTech tours deployed across real-estate networks, tourism and culture â a smartphone plus our 185° wide-angle kit replaces a $1000+ 360 camera at a fraction of the cost.</p></div></div>
<div class="app"><div class="thumb imgfill"><img src="assets/img/app_security.jpg" alt="CCTV analytics" onerror="this.style.display='none'"></div><div class="pad"><h3>CCTV & security analytics</h3><p>Stitched, wide-coverage feeds that feed object detection, license-plate and crowd analysis, perimeter protection and video analytics for the security sector.</p></div></div>
<div class="app"><div class="thumb video imgfill"><iframe src="https://www.youtube-nocookie.com/embed/IBv5L2udEsc" title="Ascend Aerials â End Result" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div><div class="pad"><h3>Wide-angle situational awareness</h3><p>A wider effective field of view so operators see more of the environment â invaluable in surveillance, automotive safety and autonomous-vehicle navigation.</p></div></div>
<div class="app"><div class="thumb imgfill"><img src="assets/img/app_remote_robot.jpg" alt="Remote robot and vehicle operations" onerror="this.style.display='none'"></div><div class="pad"><h3>Remote robot & vehicle operations</h3><p>High-resolution stitched feeds let drones and UGVs operate in inaccessible or dangerous environments â inspecting sewers, power lines and assets humans can't easily reach.</p></div></div>
<div class="app"><div class="thumb imgfill"><img src="assets/img/app_inventory.jpg" alt="Robotic inventory management" onerror="this.style.display='none'"></div><div class="pad"><h3>Robotic inventory management</h3><p>Drones and robotic arms that scan, count and reconcile stock â improving accuracy, cutting labour cost and feeding cleaner data back into retail operations.</p></div></div>
</div>
</div>
</section>
<!-- SHOWCASE -->
<section class="sec band">
<div class="wrap">
<div class="sec-head">
<span class="eyebrow">In the field</span>
<h2>A few problems clients brought us</h2>
<p class="lead">Bespoke stitching challenges, solved against real hardware and real deadlines.</p>
</div>
<div class="app-grid">
<div class="app"><div class="pad"><h3>Under-vehicle inspection</h3><p>A speed bump fitted with six upward-facing cameras; we built the stitching that turns six feeds into one comprehensive image of a vehicle's underside.</p></div></div>
<div class="app"><div class="pad"><h3>Intelligent motorbike helmet</h3><p>Two rear cameras stitched into a single virtual rear-view mirror, projected as a transparent Head-Up Display in the visor.</p></div></div>
<div class="app"><div class="pad"><h3>Real-time VR for film directors</h3><p>Licensed to a French director of technical short films and to professional VR studios in Los Angeles, where live stitched stereo drives the headset view on set.</p></div></div>
<div class="app"><div class="pad"><h3>8K live stadium capture</h3><p>Four Insta360 Titan cameras, one in each corner, stitched live to an 8K 30fps stream on an Nvidia 3090 â broadcast-grade, in real time.</p></div></div>
<div class="app"><div class="pad"><h3>Robotic shelf management</h3><p>StereoStitch Linear running on in-store robots, stitching live feeds into clean shelf data to streamline inventory management.</p></div></div>
<div class="app"><div class="pad"><h3>Spatial computing content</h3><p>As panoramic views become the norm, AR/VR platforms need uncannily realistic content. The highest-quality stitching is what makes that realism possible.</p></div></div>
</div>
</div>
</section>
<!-- PROCESS -->
<section class="sec" id="process">
<div class="wrap">
<div class="sec-head">
<span class="eyebrow">How we work</span>
<h2>A project house, end to end</h2>
<p class="lead">Engage us at any stage â or all of them. We plug into your team where the stitching problem is hardest.</p>
</div>
<div class="proc">
<div class="step"><span class="n">01</span><span class="dot"></span><h3>Feasibility</h3><p>We apply our image and video processing expertise to sharpen the assessment of what you actually need.</p></div>
<div class="step"><span class="n">02</span><span class="dot"></span><h3>Prototyping</h3><p>Fast-track prototypes using off-the-shelf engines or tailor-made builds, so you see exactly what you're getting.</p></div>
<div class="step"><span class="n">03</span><span class="dot"></span><h3>Integration</h3><p>Seamless integration into your stack â we find the bottlenecks and remove them before they bite.</p></div>
<div class="step"><span class="n">04</span><span class="dot"></span><h3>Deployment</h3><p>Performance tested and monitored against specific KPIs, with data-collection tooling built in.</p></div>
<div class="step"><span class="n">05</span><span class="dot"></span><h3>Maintenance</h3><p>Ongoing upgrades and updates that keep the solution sustainable and ready to scale.</p></div>
</div>
</div>
</section>
<!-- WHY STEREOSTITCH -->
<section class="sec band" id="why">
<div class="wrap">
<div class="sec-head center">
<span class="eyebrow">Why StereoStitch</span>
<h2>Built for live â where others can't follow</h2>
<p class="lead">Most stitching tools work after the shoot, on single photos, or only with one brand of camera. We engineered ours for the hardest case: seamless, high-resolution, stereoscopic stitching in real time. That focus is what makes us the world leader in live stitching.</p>
</div>
<div class="cap-grid">
<div class="card"><div class="ic"><svg viewBox="0 0 24 24"><path d="M13 2L4 14h6l-1 8 9-12h-6z"/></svg></div><h3>Beyond real-time alternatives</h3><p>Other live engines tend to be embedded-only and lower-resolution. We deliver seamless 8K at 30â60fps across the full range â embedded boards to high-end NVIDIA GPUs â with live stereoscopic depth, as a finished solution rather than a raw developer kit.</p></div>
<div class="card"><div class="ic"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></svg></div><h3>Beyond post-production</h3><p>The best-known stitchers work after the shoot, with long renders before anyone sees the result. We stitch live, on set, at 30â60fps â ready to broadcast or stream the moment it happens.</p></div>
<div class="card"><div class="ic"><svg viewBox="0 0 24 24"><rect x="3" y="4" width="18" height="16" rx="2"/><circle cx="9" cy="10" r="2"/><path d="M3 17l5-4 4 3 3-2 6 5"/></svg></div><h3>Beyond photo stitchers</h3><p>Panorama tools stitch single still images. We handle full-motion video in real time, with HDR, distortion correction and parallax compensation built into one engine.</p></div>
</div>
<div class="why-sub">And under the hood</div>
<div class="problem-list why-strengths">
<div class="row"><span class="ic">â</span><div><strong>Real-time at scale</strong> â seamless 8K at 30â60fps, proven live in stadiums on a single high-end GPU.</div></div>
<div class="row"><span class="ic">â</span><div><strong>Live stereoscopic depth</strong> â human-like 3D realism, not just a flat panorama â rare in real time.</div></div>
<div class="row"><span class="ic">â</span><div><strong>One engine, full pipeline</strong> â high-resolution stitching, HDR, distortion correction, parallax and colour correction together.</div></div>
<div class="row"><span class="ic">â</span><div><strong>Embedded to high-end</strong> â the same technology from compact embedded devices up to top-tier NVIDIA GPUs.</div></div>
<div class="row"><span class="ic">â</span><div><strong>Delivered as a solution</strong> â a specialist project house from feasibility to maintenance, plus iOS & Android SDKs.</div></div>
</div>
</div>
</section>
<!-- TEAM -->
<section class="sec" id="team">
<div class="wrap">
<div class="sec-head center">
<span class="eyebrow">Our team</span>
<h2>The people behind the algorithms</h2>
</div>
<div class="team-grid">
<div class="member">
<div class="avatar imgfill"><img src="assets/img/team_patrick.jpg" alt="Patrick Kedemos" onerror="this.style.display='none'"></div>
<h3>Patrick Kedemos</h3><div class="role">Chief Executive Officer</div>
<p>CEO and major shareholder. Founder and MD of corporate advisory firm Avanguard Capital, board member, and lecturer at UWA and the Australian Institute of Management. Speaks seven languages; has worked across eight countries and Fortune 500 groups including Air Liquide and Wesfarmers. MSc from NEOMA, INSEAD MBA.</p>
</div>
<div class="member">
<div class="avatar imgfill"><img src="assets/img/team_elie.jpg" alt="Elie-Grégoire Khoury" onerror="this.style.display='none'"></div>
<h3>Elie-Grégoire Khoury</h3><div class="role">Chief Technology Officer</div>
<p>Internationally recognised expert in real-time image and video processing and stitching. Built game engines, panorama software and real-estate virtual tours; former Renault R&D engineer and Ubisoft global engine lead. Founder of 360-imaging pioneer Dermandar. Engineering degree from Ãcole Centrale Paris; French Agrégation in Mathematics.</p>
</div>
<div class="member">
<div class="avatar imgfill"><img src="assets/img/team_nicolas.jpg" alt="Nicolas Souchaud" onerror="this.style.display='none'"></div>
<h3>Nicolas Souchaud</h3><div class="role">Chief Revenue Officer</div>
<p>A record of driving revenue growth and market share across regions and industries. Speaks four languages; has worked across Europe, Latin America and APAC. Career spans Schneider Electric, Westfield (Scentre Group) and the TKH Group. Engineering degree from Ãcole des Mines; INSEAD MBA.</p>
</div>
</div>
</div>
</section>
<!-- CONTACT -->
<section class="cta" id="contact">
<div class="wrap">
<div class="cta-box">
<div class="cta-grid">
<div>
<span class="eyebrow">Set up a call</span>
<h2>Hit a stitching wall? Let's talk.</h2>
<p class="lead">Leave your details and a short note on what you're trying to achieve â we'll come to the conversation already prepared.</p>
<p class="form-note" style="margin-top:20px">Or email us directly at <a href="/cdn-cgi/l/email-protection#96f5f9f8e2f7f5e2d6e5e2f3e4f3f9e5e2ffe2f5feb8f5f9fb" style="color:var(--cyan);font-weight:600"><span class="__cf_email__" data-cfemail="54373b3a203537201427203126313b27203d20373c7a373b39">[email protected]</span></a><br>133 New Bridge Rd, #08-01, Singapore 059413</p>
</div>
<form class="form" id="contactForm" action="contact.php" method="POST">
<input type="text" name="website" tabindex="-1" autocomplete="off" style="display:none">
<div class="frow">
<div class="field"><label for="first_name">First name *</label><input id="first_name" name="first_name" type="text" required></div>
<div class="field"><label for="last_name">Last name</label><input id="last_name" name="last_name" type="text"></div>
</div>
<div class="field"><label for="email">Email *</label><input id="email" name="email" type="email" required></div>
<div class="field"><label for="phone">Phone number</label><input id="phone" name="phone" type="tel"></div>
<div class="field"><label for="message">What are you trying to stitch?</label><textarea id="message" name="message" placeholder="A sentence or two on your application and where you're stuck."></textarea></div>
<div class="cf-turnstile" data-sitekey="0x4AAAAAADvISGde9TJZNmCh"></div>
<button class="btn btn-primary" type="submit">Contact us for a meeting</button>
<p class="form-note" id="formStatus">We typically reply within one business day.</p>
</form>
</div>
</div>
</div>
</section>
<!-- FOOTER -->
<footer>
<div class="wrap">
<div class="foot">
<div class="col">
<img src="assets/img/logo.png" alt="StereoStitch" onerror="this.style.display='none'">
<p>Specialist software engineering for advanced real-time image and video stitching, HDR, distortion correction and computer vision.</p>
</div>
<div class="foot-links">
<div class="g"><h4>Solutions</h4><a href="#products">StereoStitch Linear</a><a href="#products">StereoStitch Live</a><a href="#products">StereoStitch Stereo</a><a href="#products">TheVRkit</a></div>
<div class="g"><h4>Company</h4><a href="#capabilities">Capabilities</a><a href="#markets">Markets</a><a href="#team">Team</a></div>
<div class="g"><h4>Get in touch</h4><a href="#contact">Talk to an engineer</a><a href="/cdn-cgi/l/email-protection#ceada1a0baafadba8ebdbaabbcaba1bdbaa7baada6e0ada1a3"><span class="__cf_email__" data-cfemail="c7a4a8a9b3a6a4b387b4b3a2b5a2a8b4b3aeb3a4afe9a4a8aa">[email protected]</span></a></div>
</div>
</div>
<div class="foot-bottom">
<span>© 2026 StereoStitch. All rights reserved.</span>
<span>133 New Bridge Rd, #08-01, Singapore 059413</span>
</div>
</div>
</footer>
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
var t=document.getElementById('menuToggle'),n=document.getElementById('navlinks');
t&&t.addEventListener('click',function(){n.classList.toggle('open');});
n&&n.querySelectorAll('a').forEach(function(a){a.addEventListener('click',function(){n.classList.remove('open');});});
var contactForm=document.getElementById('contactForm');
var formStatus=document.getElementById('formStatus');
contactForm&&contactForm.addEventListener('submit',function(e){
e.preventDefault();
var btn=contactForm.querySelector('button[type="submit"]');
formStatus.textContent='Sending...';
btn.disabled=true;
fetch(contactForm.action,{method:'POST',body:new FormData(contactForm),headers:{'Accept':'application/json'}})
.then(function(r){return r.json().catch(function(){return {};}).then(function(j){if(!r.ok||!j.ok)throw new Error(j.message||'Could not send message.');return j;});})
.then(function(){
contactForm.reset();
formStatus.textContent='Thanks, your message has been sent.';
})
.catch(function(err){
formStatus.textContent=err.message;
})
.finally(function(){btn.disabled=false;});
});
</script>
</body>
</html>
| # |
Url |
Url |
Source |
Date |
| 1 |
https://www.stereostitch.com/index… |
|
2026-10-16 19:48:02 |
| 2 |
https://gblwheelbritecleaner09641.… |
|
2026-10-16 19:48:02 |
| 3 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:48:02 |
| 4 |
https://verva.com/?from=twaingpt |
|
2026-10-16 19:48:02 |
| 5 |
https://sortlandslk.no/ |
|
2026-10-16 19:48:01 |
| 6 |
https://www.texarkanatwins.com/&%2… |
|
2026-10-16 19:48:01 |
| 7 |
https://www.diggerslist.com/660441… |
|
2026-10-16 19:48:00 |
| 8 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:48:00 |
| 9 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:47:59 |
| 10 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:47:58 |
| 11 |
https://auth.mediacorp.sg/u/login?… |
|
2026-10-16 19:47:57 |
| 12 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:47:56 |
| 13 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:47:55 |
| 14 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:47:55 |
| 15 |
https://www.texarkanatwins.com/%25… |
|
2026-10-16 19:47:53 |
| 16 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:47:53 |
| 17 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:47:53 |
| 18 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:47:52 |
| 19 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-16 19:47:52 |
| 20 |
https://m.vk.com/video146719324_45… |
|
2026-10-16 19:47:51 |