Files
boc/aamos-ai-site/vims/index.html
T

239 lines
12 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>VIMS API — Visual Infrastructure Monitoring | AAMOS</title>
<meta name="description" content="AI-powered visual infrastructure monitoring API. Submit images, detect changes, classify risk — before problems become incidents.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--navy: #0A2540; --blue: #635BFF; --blue-light: #7B74FF;
--gray-50: #F8FAFC; --gray-100: #F1F5F9; --gray-200: #E2E8F0;
--gray-400: #94A3B8; --gray-600: #475569; --gray-800: #1E293B; --white: #FFFFFF;
--font: 'Inter', system-ui, -apple-system, sans-serif;
}
body { font-family: var(--font); background: var(--white); color: var(--gray-800); line-height: 1.6; }
a { color: inherit; text-decoration: none; }
nav {
position: sticky; top: 0; z-index: 100;
background: rgba(255,255,255,0.95); backdrop-filter: blur(8px);
border-bottom: 1px solid var(--gray-200);
padding: 0 24px; height: 60px;
display: flex; align-items: center; justify-content: space-between;
}
.nav-logo { font-size: 18px; font-weight: 700; color: var(--navy); }
.nav-logo span { color: var(--blue); }
.nav-back { font-size: 14px; color: var(--gray-600); display: flex; align-items: center; gap: 6px; }
.btn-nav { background: var(--navy); color: var(--white); padding: 8px 16px; border-radius: 8px; font-weight: 600; font-size: 14px; }
.hero {
background: linear-gradient(135deg, var(--navy) 0%, #1a3a60 100%);
color: var(--white); padding: 72px 24px 64px; text-align: center;
}
.hero-badge {
display: inline-block; background: rgba(99,91,255,0.25); color: #a5b4fc;
border: 1px solid rgba(99,91,255,0.4); border-radius: 100px;
padding: 4px 14px; font-size: 12px; font-weight: 600;
letter-spacing: 0.05em; text-transform: uppercase; margin-bottom: 20px;
}
.hero h1 { font-size: clamp(28px, 5vw, 46px); font-weight: 700; letter-spacing: -1px; line-height: 1.1; margin-bottom: 16px; }
.hero p { font-size: 17px; color: rgba(255,255,255,0.75); max-width: 500px; margin: 0 auto 32px; }
.btn-primary { background: var(--blue); color: var(--white); padding: 14px 28px; border-radius: 10px; font-size: 15px; font-weight: 600; display: inline-block; transition: background 0.15s; }
.btn-primary:hover { background: var(--blue-light); }
.content { max-width: 860px; margin: 0 auto; padding: 64px 24px; }
.block { margin-bottom: 60px; }
.block-label { font-size: 12px; font-weight: 700; color: var(--blue); letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 12px; }
.block h2 { font-size: clamp(22px, 3.5vw, 30px); font-weight: 700; letter-spacing: -0.5px; color: var(--navy); margin-bottom: 24px; }
.feature-list { display: grid; gap: 16px; }
.feature-item { display: flex; gap: 16px; align-items: flex-start; padding: 20px; background: var(--gray-50); border-radius: 12px; border: 1px solid var(--gray-200); }
.feature-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--blue); margin-top: 7px; flex-shrink: 0; }
.feature-item h4 { font-size: 15px; font-weight: 600; color: var(--navy); margin-bottom: 4px; }
.feature-item p { font-size: 14px; color: var(--gray-600); }
.code-block {
background: var(--navy); border-radius: 14px; padding: 24px;
font-family: 'SF Mono', 'Fira Code', monospace; font-size: 13px;
line-height: 1.75; color: rgba(255,255,255,0.85); overflow-x: auto;
}
.code-block .kw { color: #a5b4fc; }
.code-block .str { color: #86efac; }
.code-block .cm { color: rgba(255,255,255,0.4); }
.code-block .num { color: #fcd34d; }
.code-tabs { display: flex; gap: 8px; margin-bottom: 16px; }
.tab { font-size: 12px; font-weight: 600; padding: 6px 12px; border-radius: 6px; background: rgba(255,255,255,0.1); color: rgba(255,255,255,0.6); cursor: pointer; }
.tab.active { background: var(--blue); color: white; }
.pricing-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.price-card {
border: 1px solid var(--gray-200); border-radius: 16px; padding: 28px 24px;
display: flex; flex-direction: column;
}
.price-card.featured { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(99,91,255,0.1); }
.price-tier { font-size: 13px; font-weight: 700; color: var(--blue); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 8px; }
.price-amount { font-size: 32px; font-weight: 700; color: var(--navy); letter-spacing: -1px; }
.price-amount span { font-size: 15px; font-weight: 500; color: var(--gray-400); }
.price-desc { font-size: 13px; color: var(--gray-400); margin-top: 4px; margin-bottom: 20px; }
.price-features { list-style: none; display: flex; flex-direction: column; gap: 10px; flex: 1; margin-bottom: 24px; }
.price-features li { font-size: 14px; color: var(--gray-600); display: flex; align-items: center; gap: 8px; }
.price-features li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); flex-shrink: 0; }
.btn-outline { border: 1px solid var(--gray-200); border-radius: 8px; padding: 10px 16px; font-size: 14px; font-weight: 600; color: var(--navy); text-align: center; display: block; transition: border-color 0.15s, background 0.15s; }
.btn-outline:hover { border-color: var(--blue); background: rgba(99,91,255,0.05); }
.btn-filled { background: var(--blue); border-radius: 8px; padding: 10px 16px; font-size: 14px; font-weight: 600; color: white; text-align: center; display: block; }
.cta-bottom { background: var(--navy); color: var(--white); padding: 64px 24px; text-align: center; }
.cta-bottom h2 { font-size: clamp(22px, 4vw, 32px); font-weight: 700; letter-spacing: -0.5px; margin-bottom: 14px; }
.cta-bottom p { color: rgba(255,255,255,0.7); font-size: 16px; margin-bottom: 28px; max-width: 400px; margin-left: auto; margin-right: auto; }
footer { border-top: 1px solid var(--gray-200); padding: 24px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; font-size: 13px; color: var(--gray-400); }
footer a { color: var(--gray-400); }
.footer-links { display: flex; gap: 20px; }
</style>
</head>
<body>
<nav>
<a href="/" class="nav-logo">A<span>AMOS</span></a>
<a href="/" class="nav-back">← All products</a>
<a href="#" class="btn-nav">Get API key</a>
</nav>
<section class="hero">
<div class="hero-badge">Vision AI</div>
<h1>VIMS API</h1>
<p>Visual intelligence for infrastructure. Detect changes before they become problems.</p>
<a href="#" class="btn-primary">Get API key — free tier included</a>
</section>
<div class="content">
<div class="block">
<div class="block-label">What it does</div>
<h2>AI-powered change detection for physical infrastructure.</h2>
<div class="feature-list">
<div class="feature-item">
<div class="feature-dot"></div>
<div>
<h4>Baseline per object</h4>
<p>Submit images of any structure — bridge, facade, utility pole. VIMS builds a visual baseline per object ID and tracks it over time.</p>
</div>
</div>
<div class="feature-item">
<div class="feature-dot"></div>
<div>
<h4>Change detection</h4>
<p>Every new submission is compared against the object's baseline. Pixel-level and semantic changes are detected and scored.</p>
</div>
</div>
<div class="feature-item">
<div class="feature-dot"></div>
<div>
<h4>Risk classification</h4>
<p>Changes are classified by severity — low, medium, high, critical — with structured metadata for downstream alerting and ticketing.</p>
</div>
</div>
<div class="feature-item">
<div class="feature-dot"></div>
<div>
<h4>AI object detection</h4>
<p>Identify specific defects: cracks, corrosion, water damage, vegetation intrusion, structural deformation.</p>
</div>
</div>
</div>
</div>
<div class="block">
<div class="block-label">API example</div>
<h2>One call. Structured intelligence back.</h2>
<div class="code-block">
<span class="cm"># Submit an image for analysis</span><br>
<span class="kw">curl</span> -X POST https://api.aamos.ai/v1/vims/analyze \<br>
&nbsp;&nbsp;-H <span class="str">"Authorization: Bearer ak_live_xxxx"</span> \<br>
&nbsp;&nbsp;-H <span class="str">"Content-Type: multipart/form-data"</span> \<br>
&nbsp;&nbsp;-F <span class="str">"image=@bridge_north.jpg"</span> \<br>
&nbsp;&nbsp;-F <span class="str">"object_id=bridge-e4-north"</span> \<br>
&nbsp;&nbsp;-F <span class="str">"lat=59.3293"</span> \<br>
&nbsp;&nbsp;-F <span class="str">"lng=18.0686"</span><br><br>
<span class="cm"># Response</span><br>
{<br>
&nbsp;&nbsp;<span class="str">"object_id"</span>: <span class="str">"bridge-e4-north"</span>,<br>
&nbsp;&nbsp;<span class="str">"analysis_id"</span>: <span class="str">"an_1a2b3c4d"</span>,<br>
&nbsp;&nbsp;<span class="str">"change_detected"</span>: <span class="kw">true</span>,<br>
&nbsp;&nbsp;<span class="str">"change_score"</span>: <span class="num">0.82</span>,<br>
&nbsp;&nbsp;<span class="str">"risk_level"</span>: <span class="str">"high"</span>,<br>
&nbsp;&nbsp;<span class="str">"detections"</span>: [<br>
&nbsp;&nbsp;&nbsp;&nbsp;{ <span class="str">"type"</span>: <span class="str">"crack"</span>, <span class="str">"confidence"</span>: <span class="num">0.94</span>, <span class="str">"bbox"</span>: [...] }<br>
&nbsp;&nbsp;],<br>
&nbsp;&nbsp;<span class="str">"baseline_updated"</span>: <span class="kw">false</span><br>
}
</div>
</div>
<div class="block">
<div class="block-label">Pricing</div>
<h2>Start free. Scale as you need.</h2>
<div class="pricing-grid">
<div class="price-card">
<div class="price-tier">Free</div>
<div class="price-amount">$0 <span>/mo</span></div>
<div class="price-desc">100 API calls per month</div>
<ul class="price-features">
<li>100 image analyses / month</li>
<li>Change detection</li>
<li>Risk classification</li>
<li>Community support</li>
</ul>
<a href="#" class="btn-outline">Get started</a>
</div>
<div class="price-card featured">
<div class="price-tier">Starter</div>
<div class="price-amount">$99 <span>/mo</span></div>
<div class="price-desc">10,000 API calls per month</div>
<ul class="price-features">
<li>10,000 image analyses / month</li>
<li>Baseline management</li>
<li>Webhook alerts</li>
<li>Email support</li>
<li>99.5% SLA</li>
</ul>
<a href="#" class="btn-filled">Get started</a>
</div>
<div class="price-card">
<div class="price-tier">Pro</div>
<div class="price-amount">$499 <span>/mo</span></div>
<div class="price-desc">100,000 API calls per month</div>
<ul class="price-features">
<li>100,000 image analyses / month</li>
<li>Custom object models</li>
<li>Priority support</li>
<li>99.9% SLA</li>
<li>Audit logs</li>
</ul>
<a href="#" class="btn-outline">Get started</a>
</div>
</div>
</div>
</div>
<section class="cta-bottom">
<h2>Ready to integrate VIMS?</h2>
<p>Start with the free tier. No credit card required.</p>
<a href="#" class="btn-primary">Get API key</a>
</section>
<footer>
<span>© 2026 AAMOS / Landvex AB</span>
<div class="footer-links">
<a href="#">Privacy</a>
<a href="#">Terms</a>
<a href="/">Home</a>
</div>
</footer>
</body>
</html>