| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>FORGE // Edge Robotics AI</title> |
| <link href="https://fonts.googleapis.com/css2?family=Oswald:wght@300;400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> |
| <style> |
| :root { |
| --orange: #FF3B00; |
| --black: #050505; |
| --offwhite: #f3f3f3; |
| --dark: #0A0A0A; |
| --mid: #1A1A1A; |
| --green: #00CC66; |
| --blue: #0066FF; |
| } |
| * { margin: 0; padding: 0; box-sizing: border-box; } |
| body { font-family: 'JetBrains Mono', monospace; background: var(--black); color: var(--offwhite); overflow-x: hidden; } |
| h1,h2,h3,.label { font-family: 'Oswald', sans-serif; text-transform: uppercase; font-weight: 700; } |
| |
| |
| .hero { |
| min-height: 100vh; |
| display: flex; |
| flex-direction: column; |
| justify-content: center; |
| align-items: center; |
| text-align: center; |
| position: relative; |
| padding: 2rem; |
| } |
| .hero::before { |
| content: ''; |
| position: absolute; |
| top: 0; left: 0; right: 0; bottom: 0; |
| background: |
| repeating-linear-gradient(0deg, transparent, transparent 49px, rgba(255,59,0,0.03) 50px), |
| repeating-linear-gradient(90deg, transparent, transparent 49px, rgba(255,59,0,0.03) 50px); |
| pointer-events: none; |
| } |
| .hero::after { |
| content: ''; |
| position: absolute; |
| top: 50%; left: 50%; |
| width: 800px; height: 800px; |
| transform: translate(-50%, -50%); |
| background: radial-gradient(circle, rgba(255,59,0,0.06) 0%, transparent 70%); |
| pointer-events: none; |
| } |
| .hero-badge { |
| font-family: 'Oswald', sans-serif; |
| font-weight: 300; |
| font-size: 0.85rem; |
| letter-spacing: 8px; |
| color: var(--orange); |
| text-transform: uppercase; |
| border: 1px solid rgba(255,59,0,0.3); |
| padding: 0.5rem 2rem; |
| margin-bottom: 2rem; |
| position: relative; |
| z-index: 1; |
| } |
| .hero h1 { |
| font-size: 8rem; |
| letter-spacing: 20px; |
| line-height: 0.9; |
| position: relative; |
| z-index: 1; |
| } |
| .hero h1 span { color: var(--orange); } |
| .hero-tagline { |
| font-family: 'Oswald', sans-serif; |
| font-weight: 300; |
| font-size: 1.6rem; |
| letter-spacing: 6px; |
| color: #666; |
| margin-top: 1.5rem; |
| position: relative; |
| z-index: 1; |
| } |
| .hero-equation { |
| font-size: 1.1rem; |
| color: #555; |
| margin-top: 2.5rem; |
| position: relative; |
| z-index: 1; |
| } |
| .hero-equation span { color: var(--orange); font-weight: 700; } |
| .scroll-cue { |
| position: absolute; |
| bottom: 2rem; |
| font-size: 0.7rem; |
| letter-spacing: 4px; |
| color: #333; |
| text-transform: uppercase; |
| animation: pulse 2s ease-in-out infinite; |
| } |
| @keyframes pulse { 0%,100% { opacity: 0.3; } 50% { opacity: 1; } } |
| |
| |
| .impact { |
| display: grid; |
| grid-template-columns: repeat(4, 1fr); |
| border-top: 6px solid var(--orange); |
| border-bottom: 6px solid var(--orange); |
| } |
| .impact-item { |
| text-align: center; |
| padding: 3rem 1rem; |
| border-right: 1px solid #222; |
| position: relative; |
| } |
| .impact-item:last-child { border-right: none; } |
| .impact-num { |
| font-family: 'Oswald', sans-serif; |
| font-size: 4.5rem; |
| font-weight: 700; |
| color: var(--orange); |
| line-height: 1; |
| } |
| .impact-unit { |
| font-family: 'Oswald', sans-serif; |
| font-size: 1.5rem; |
| font-weight: 300; |
| color: var(--orange); |
| } |
| .impact-label { |
| font-size: 0.65rem; |
| letter-spacing: 3px; |
| color: #666; |
| text-transform: uppercase; |
| margin-top: 0.5rem; |
| } |
| |
| |
| .section { |
| padding: 5rem 3rem; |
| max-width: 1200px; |
| margin: 0 auto; |
| } |
| .section-label { |
| font-family: 'Oswald', sans-serif; |
| font-weight: 300; |
| font-size: 0.75rem; |
| letter-spacing: 6px; |
| color: var(--orange); |
| text-transform: uppercase; |
| margin-bottom: 0.5rem; |
| } |
| .section-title { |
| font-size: 2.5rem; |
| letter-spacing: 6px; |
| color: var(--offwhite); |
| margin-bottom: 2rem; |
| } |
| |
| |
| .arch-flow { |
| display: flex; |
| align-items: stretch; |
| gap: 0; |
| margin: 3rem 0; |
| } |
| .arch-block { |
| flex: 1; |
| background: var(--mid); |
| border: 2px solid #2A2A2A; |
| padding: 2rem 1.5rem; |
| text-align: center; |
| position: relative; |
| } |
| .arch-block.active { border-color: var(--orange); } |
| .arch-block .block-icon { |
| font-size: 2rem; |
| margin-bottom: 0.5rem; |
| } |
| .arch-block .block-name { |
| font-family: 'Oswald', sans-serif; |
| font-size: 1rem; |
| letter-spacing: 2px; |
| color: var(--orange); |
| text-transform: uppercase; |
| } |
| .arch-block .block-detail { |
| font-size: 0.7rem; |
| color: #888; |
| margin-top: 0.5rem; |
| } |
| .arch-block .block-params { |
| font-family: 'Oswald', sans-serif; |
| font-size: 1.5rem; |
| color: var(--offwhite); |
| margin-top: 0.8rem; |
| } |
| .arch-arrow { |
| display: flex; |
| align-items: center; |
| font-size: 1.5rem; |
| color: var(--orange); |
| padding: 0 0.3rem; |
| } |
| |
| |
| .vs-container { |
| display: grid; |
| grid-template-columns: 1fr 80px 1fr; |
| gap: 0; |
| align-items: stretch; |
| margin: 3rem 0; |
| } |
| .vs-card { |
| background: var(--mid); |
| border: 2px solid #2A2A2A; |
| padding: 3rem 2rem; |
| } |
| .vs-card.winner { border-color: var(--green); } |
| .vs-card .card-label { |
| font-family: 'Oswald', sans-serif; |
| font-size: 0.7rem; |
| letter-spacing: 4px; |
| text-transform: uppercase; |
| margin-bottom: 1.5rem; |
| } |
| .vs-card .card-label.old { color: #555; } |
| .vs-card .card-label.new { color: var(--green); } |
| .vs-metric { |
| display: flex; |
| justify-content: space-between; |
| align-items: baseline; |
| padding: 0.8rem 0; |
| border-bottom: 1px solid #222; |
| } |
| .vs-metric .metric-name { font-size: 0.75rem; color: #888; } |
| .vs-metric .metric-val { font-family: 'Oswald', sans-serif; font-size: 1.4rem; } |
| .vs-metric .metric-val.dim { color: #555; } |
| .vs-metric .metric-val.bright { color: var(--green); } |
| .vs-divider { |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| font-family: 'Oswald', sans-serif; |
| font-size: 2rem; |
| color: var(--orange); |
| background: var(--dark); |
| border-top: 2px solid #2A2A2A; |
| border-bottom: 2px solid #2A2A2A; |
| } |
| |
| |
| .results-grid { |
| display: grid; |
| grid-template-columns: repeat(3, 1fr); |
| gap: 2rem; |
| margin: 3rem 0; |
| } |
| .result-card { |
| background: var(--mid); |
| border: 2px solid #2A2A2A; |
| padding: 2rem; |
| border-left: 4px solid var(--orange); |
| } |
| .result-card .rc-title { |
| font-family: 'Oswald', sans-serif; |
| font-size: 0.8rem; |
| letter-spacing: 3px; |
| color: var(--orange); |
| text-transform: uppercase; |
| margin-bottom: 1rem; |
| } |
| .result-card .rc-num { |
| font-family: 'Oswald', sans-serif; |
| font-size: 3rem; |
| font-weight: 700; |
| color: var(--offwhite); |
| line-height: 1; |
| } |
| .result-card .rc-sub { |
| font-size: 0.7rem; |
| color: #666; |
| margin-top: 0.5rem; |
| } |
| |
| |
| .config-box { |
| background: var(--mid); |
| border: 2px solid var(--orange); |
| padding: 2rem; |
| margin: 3rem 0; |
| display: grid; |
| grid-template-columns: 1fr 1fr; |
| gap: 2rem; |
| } |
| .config-box .config-header { |
| grid-column: 1 / -1; |
| font-family: 'Oswald', sans-serif; |
| font-size: 1.2rem; |
| letter-spacing: 4px; |
| color: var(--orange); |
| } |
| .config-row { |
| display: flex; |
| justify-content: space-between; |
| padding: 0.5rem 0; |
| border-bottom: 1px solid #222; |
| font-size: 0.8rem; |
| } |
| .config-row .ck { color: #888; } |
| .config-row .cv { color: var(--offwhite); font-weight: 700; } |
| |
| |
| .teacher-grid { |
| display: grid; |
| grid-template-columns: repeat(5, 1fr); |
| gap: 1rem; |
| margin: 2rem 0; |
| } |
| .teacher-card { |
| background: var(--mid); |
| border: 1px solid #2A2A2A; |
| padding: 1.5rem 1rem; |
| text-align: center; |
| } |
| .teacher-card .tc-name { |
| font-family: 'Oswald', sans-serif; |
| font-size: 0.85rem; |
| color: var(--orange); |
| letter-spacing: 1px; |
| } |
| .teacher-card .tc-params { |
| font-family: 'Oswald', sans-serif; |
| font-size: 1.5rem; |
| color: var(--offwhite); |
| margin: 0.5rem 0; |
| } |
| .teacher-card .tc-type { font-size: 0.65rem; color: #666; } |
| |
| |
| .cta { |
| text-align: center; |
| padding: 5rem 2rem; |
| border-top: 6px solid var(--orange); |
| background: linear-gradient(180deg, var(--mid) 0%, var(--black) 100%); |
| } |
| .cta h2 { |
| font-size: 2.5rem; |
| letter-spacing: 8px; |
| margin-bottom: 1rem; |
| } |
| .cta h2 span { color: var(--orange); } |
| .cta-sub { |
| font-size: 0.85rem; |
| color: #666; |
| max-width: 600px; |
| margin: 0 auto 2rem; |
| } |
| .cta-links { |
| display: flex; |
| justify-content: center; |
| gap: 2rem; |
| } |
| .cta-link { |
| font-family: 'Oswald', sans-serif; |
| font-size: 0.9rem; |
| letter-spacing: 3px; |
| text-transform: uppercase; |
| color: var(--offwhite); |
| text-decoration: none; |
| padding: 1rem 2.5rem; |
| border: 2px solid var(--orange); |
| transition: all 0.2s; |
| } |
| .cta-link:hover { background: var(--orange); color: var(--black); } |
| .cta-link.primary { background: var(--orange); color: var(--black); } |
| .cta-link.primary:hover { background: var(--offwhite); border-color: var(--offwhite); } |
| |
| |
| .footer { |
| text-align: center; |
| padding: 2rem; |
| font-size: 0.65rem; |
| color: #333; |
| letter-spacing: 2px; |
| } |
| .footer span { color: var(--orange); } |
| |
| @media (max-width: 900px) { |
| .hero h1 { font-size: 4rem; letter-spacing: 10px; } |
| .impact { grid-template-columns: repeat(2, 1fr); } |
| .arch-flow { flex-direction: column; } |
| .arch-arrow { transform: rotate(90deg); justify-content: center; padding: 0.5rem; } |
| .vs-container { grid-template-columns: 1fr; } |
| .results-grid { grid-template-columns: 1fr; } |
| .config-box { grid-template-columns: 1fr; } |
| .teacher-grid { grid-template-columns: repeat(2, 1fr); } |
| .cta-links { flex-direction: column; align-items: center; } |
| } |
| </style> |
| </head> |
| <body> |
|
|
| |
| <div class="hero"> |
| <div class="hero-badge">Robot Flow Labs // ANIMA Stack</div> |
| <h1><span>FOR</span>GE</h1> |
| <div class="hero-tagline">Fast Optimized Robot Generation Engine</div> |
| <div class="hero-equation"> |
| <span>7B</span> teacher → <span><1B</span> student → <span>14.1 fps</span> on edge GPU |
| </div> |
| <div class="scroll-cue">↓ scroll ↓</div> |
| </div> |
|
|
| |
| <div class="impact"> |
| <div class="impact-item"> |
| <div class="impact-num">9<span class="impact-unit">x</span></div> |
| <div class="impact-label">Model Compression</div> |
| </div> |
| <div class="impact-item"> |
| <div class="impact-num">14.1</div> |
| <div class="impact-label">FPS on NVIDIA L4 (FP16)</div> |
| </div> |
| <div class="impact-item"> |
| <div class="impact-num">28<span class="impact-unit">x</span></div> |
| <div class="impact-label">Faster Than Teacher</div> |
| </div> |
| <div class="impact-item"> |
| <div class="impact-num"><600<span class="impact-unit">MB</span></div> |
| <div class="impact-label">INT4 Deploy Size</div> |
| </div> |
| </div> |
|
|
| |
| <div class="section"> |
| <div class="section-label">The Problem</div> |
| <h2 class="section-title">VLAs Are Too Big for Robots</h2> |
| <p style="color:#888;font-size:0.85rem;max-width:800px;margin-bottom:2rem;"> |
| Vision-Language-Action models (OpenVLA, RT-2, Pi0) achieve state-of-the-art robot manipulation |
| — but at 7B+ parameters, they run at 0.5 fps. Robots need 10+ fps for real-time control. |
| FORGE solves this with automated knowledge distillation. |
| </p> |
|
|
| <div class="vs-container"> |
| <div class="vs-card"> |
| <div class="card-label old">Before // OpenVLA-7B</div> |
| <div class="vs-metric"><span class="metric-name">Parameters</span><span class="metric-val dim">7,000M</span></div> |
| <div class="vs-metric"><span class="metric-name">Throughput</span><span class="metric-val dim">~0.5 fps</span></div> |
| <div class="vs-metric"><span class="metric-name">Latency</span><span class="metric-val dim">~2,000 ms</span></div> |
| <div class="vs-metric"><span class="metric-name">Model Size</span><span class="metric-val dim">~13 GB</span></div> |
| <div class="vs-metric"><span class="metric-name">Edge Deploy</span><span class="metric-val dim">No</span></div> |
| </div> |
| <div class="vs-divider">vs</div> |
| <div class="vs-card winner"> |
| <div class="card-label new">After // FORGE-Nano</div> |
| <div class="vs-metric"><span class="metric-name">Parameters</span><span class="metric-val bright">774M</span></div> |
| <div class="vs-metric"><span class="metric-name">Throughput</span><span class="metric-val bright">14.1 fps</span></div> |
| <div class="vs-metric"><span class="metric-name">Latency</span><span class="metric-val bright">71 ms</span></div> |
| <div class="vs-metric"><span class="metric-name">Model Size</span><span class="metric-val bright"><600 MB</span></div> |
| <div class="vs-metric"><span class="metric-name">Edge Deploy</span><span class="metric-val bright">Jetson + Apple Silicon</span></div> |
| </div> |
| </div> |
| </div> |
|
|
| |
| <div class="section"> |
| <div class="section-label">Architecture</div> |
| <h2 class="section-title">4-Stage Distillation Pipeline</h2> |
| <div class="arch-flow"> |
| <div class="arch-block active"> |
| <div class="block-icon">👁</div> |
| <div class="block-name">SigLIP-SO400M</div> |
| <div class="block-detail">Vision Encoder (frozen)</div> |
| <div class="block-params">472M</div> |
| </div> |
| <div class="arch-arrow">→</div> |
| <div class="arch-block active"> |
| <div class="block-icon">🌐</div> |
| <div class="block-name">Bridge Attention</div> |
| <div class="block-detail">64 queries, 4 layers</div> |
| <div class="block-params">40M</div> |
| </div> |
| <div class="arch-arrow">→</div> |
| <div class="arch-block active"> |
| <div class="block-icon">🧠</div> |
| <div class="block-name">Qwen2.5-0.5B</div> |
| <div class="block-detail">LoRA rank=64</div> |
| <div class="block-params">494M</div> |
| </div> |
| <div class="arch-arrow">→</div> |
| <div class="arch-block active"> |
| <div class="block-icon">🎯</div> |
| <div class="block-name">Flow Head</div> |
| <div class="block-detail">1-step inference</div> |
| <div class="block-params">1.7M</div> |
| </div> |
| </div> |
| <div style="text-align:center;font-size:0.8rem;color:#666;"> |
| Total: <span style="color:var(--orange);font-weight:700;">967.9M</span> params → |
| Pruned: <span style="color:var(--green);font-weight:700;">774.1M</span> params → |
| INT4: <span style="color:var(--green);font-weight:700;"><600 MB</span> |
| </div> |
| </div> |
|
|
| |
| <div class="section"> |
| <div class="section-label">GPU Benchmarks // 4x NVIDIA L4</div> |
| <h2 class="section-title">Measured Performance</h2> |
|
|
| <div class="results-grid"> |
| <div class="result-card"> |
| <div class="rc-title">Best Speed</div> |
| <div class="rc-num">14.1 fps</div> |
| <div class="rc-sub">Flow + LoRA-64 + 60% prune, FP16</div> |
| </div> |
| <div class="result-card"> |
| <div class="rc-title">Best Training</div> |
| <div class="rc-num">92.3%</div> |
| <div class="rc-sub">Loss reduction in 30 steps</div> |
| </div> |
| <div class="result-card"> |
| <div class="rc-title">Most Compressed</div> |
| <div class="rc-num">739M</div> |
| <div class="rc-sub">50% pruned, functional model</div> |
| </div> |
| <div class="result-card"> |
| <div class="rc-title">Multi-GPU</div> |
| <div class="rc-num">33.6 fps</div> |
| <div class="rc-sub">Single GPU, batch=32, FP16</div> |
| </div> |
| <div class="result-card"> |
| <div class="rc-title">Multi-Teacher</div> |
| <div class="rc-num">5</div> |
| <div class="rc-sub">Teachers with learned routing</div> |
| </div> |
| <div class="result-card"> |
| <div class="rc-title">Test Suite</div> |
| <div class="rc-num">524</div> |
| <div class="rc-sub">Tests passing, 0 failures</div> |
| </div> |
| </div> |
|
|
| |
| <div class="config-box"> |
| <div class="config-header">Recommended Production Config</div> |
| <div> |
| <div class="config-row"><span class="ck">variant</span><span class="cv">nano</span></div> |
| <div class="config-row"><span class="ck">action_head</span><span class="cv">flow</span></div> |
| <div class="config-row"><span class="ck">lora_rank</span><span class="cv">64</span></div> |
| <div class="config-row"><span class="ck">prune_ratio</span><span class="cv">0.60</span></div> |
| </div> |
| <div> |
| <div class="config-row"><span class="ck">params</span><span class="cv">774.1M</span></div> |
| <div class="config-row"><span class="ck">fps (FP16)</span><span class="cv">14.1</span></div> |
| <div class="config-row"><span class="ck">deploy_size</span><span class="cv"><600 MB</span></div> |
| <div class="config-row"><span class="ck">target</span><span class="cv">Jetson + Apple Silicon</span></div> |
| </div> |
| </div> |
| </div> |
|
|
| |
| <div class="section"> |
| <div class="section-label">Compatibility</div> |
| <h2 class="section-title">Any Teacher, Any Robot</h2> |
| <div class="teacher-grid"> |
| <div class="teacher-card"> |
| <div class="tc-name">OpenVLA-7B</div> |
| <div class="tc-params">7.6B</div> |
| <div class="tc-type">Token-AR // H=1</div> |
| </div> |
| <div class="teacher-card"> |
| <div class="tc-name">RDT2-FM</div> |
| <div class="tc-params">1.2B</div> |
| <div class="tc-type">Diffusion // H=8</div> |
| </div> |
| <div class="teacher-card"> |
| <div class="tc-name">SmolVLA</div> |
| <div class="tc-params">0.5B</div> |
| <div class="tc-type">Parallel // H=1</div> |
| </div> |
| <div class="teacher-card"> |
| <div class="tc-name">BitVLA</div> |
| <div class="tc-params">5.9B</div> |
| <div class="tc-type">Quantized // H=1</div> |
| </div> |
| <div class="teacher-card"> |
| <div class="tc-name">Pi0</div> |
| <div class="tc-params">3.0B</div> |
| <div class="tc-type">Flow // H=4</div> |
| </div> |
| </div> |
| <div style="text-align:center;margin-top:1rem;"> |
| <span style="font-size:0.75rem;color:#666;">Robots: </span> |
| <span style="font-size:0.8rem;color:var(--orange);">Franka</span> |
| <span style="font-size:0.75rem;color:#444;"> // </span> |
| <span style="font-size:0.8rem;color:var(--orange);">ALOHA</span> |
| <span style="font-size:0.75rem;color:#444;"> // </span> |
| <span style="font-size:0.8rem;color:var(--orange);">xArm</span> |
| <span style="font-size:0.75rem;color:#444;"> // </span> |
| <span style="font-size:0.8rem;color:var(--orange);">UR5e</span> |
| <span style="font-size:0.75rem;color:#444;"> // </span> |
| <span style="font-size:0.8rem;color:#888;">+ any 6-14 DoF arm</span> |
| </div> |
| </div> |
|
|
| |
| <div class="cta"> |
| <h2><span>FORGE</span> is Open Source</h2> |
| <div class="cta-sub"> |
| Part of the ANIMA agentic robotics stack. Apache 2.0 licensed. |
| Built for production deployment on edge hardware. |
| </div> |
| <div class="cta-links"> |
| <a href="https://github.com/RobotFlow-Labs/anima-forge-distillation-pipeline" class="cta-link primary">GitHub</a> |
| <a href="https://huggingface.co/robotflowlabs/FORGE-Nano-Benchmark" class="cta-link">HuggingFace</a> |
| <a href="https://robotflowlabs.com" class="cta-link">Robot Flow Labs</a> |
| </div> |
| </div> |
|
|
| <div class="footer"> |
| FORGE v2 // <span>All metrics measured on real NVIDIA L4 hardware</span> // March 2026 // Robot Flow Labs |
| </div> |
|
|
| </body> |
| </html> |
|
|