dere-cbai
Add collaborative perception interface
cff4a03
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>🤖 Open Multi-Agent Collaborative Perception, Prediction, and Planning</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
background: linear-gradient(135deg, #070707 0%, #20033d 100%);
min-height: 100vh;
color: #333;
}
.container {
max-width: 1400px;
margin: 0 auto;
padding: 20px;
}
.header {
text-align: center;
margin-bottom: 40px;
color: white;
}
.header h1 {
font-size: 3rem;
font-weight: 700;
margin-bottom: 10px;
text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.header p {
font-size: 1.2rem;
opacity: 0.9;
margin-bottom: 20px;
}
.stats-bar {
display: flex;
justify-content: center;
gap: 30px;
margin: 20px 0;
flex-wrap: wrap;
}
.stat-badge {
background: rgba(255,255,255,0.2);
padding: 10px 20px;
border-radius: 25px;
color: white;
font-weight: bold;
text-align: center;
}
.stat-number {
font-size: 1.5rem;
display: block;
}
.main-sections {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 30px;
margin-bottom: 40px;
}
.section-card {
background: rgba(255,255,255,0.95);
border-radius: 20px;
padding: 40px;
cursor: pointer;
transition: all 0.3s ease;
text-align: center;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
position: relative;
overflow: hidden;
}
.section-card::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
transition: left 0.5s ease;
}
.section-card:hover::before {
left: 100%;
}
.section-card:hover {
transform: translateY(-10px);
box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}
.section-icon {
font-size: 4rem;
margin-bottom: 20px;
color: #667eea;
}
.perception-card .section-icon { color: #FF6B6B; }
.tracking-card .section-icon { color: #4ECDC4; }
.prediction-card .section-icon { color: #45B7D1; }
.datasets-card .section-icon { color: #96CEB4; }
.methods-card .section-icon { color: #FECA57; }
.conferences-card .section-icon { color: #A55EEA; }
.section-card h2 {
font-size: 1.8rem;
margin-bottom: 15px;
color: #333;
}
.section-card p {
color: #666;
font-size: 1rem;
line-height: 1.6;
margin-bottom: 20px;
}
.stats {
display: flex;
justify-content: space-around;
margin-top: 20px;
}
.stat {
text-align: center;
}
.stat-number {
font-size: 1.3rem;
font-weight: bold;
color: #667eea;
}
.stat-label {
font-size: 0.8rem;
color: #666;
}
.content-panel {
display: none;
background: rgba(255,255,255,0.95);
border-radius: 20px;
padding: 30px;
margin-top: 20px;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}
.content-panel.active {
display: block;
animation: slideIn 0.3s ease;
}
@keyframes slideIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
.panel-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 30px;
padding-bottom: 15px;
border-bottom: 2px solid #eee;
}
.panel-title {
font-size: 2rem;
color: #333;
}
.close-btn {
background: #ff4757;
color: white;
border: none;
border-radius: 50%;
width: 40px;
height: 40px;
cursor: pointer;
font-size: 1.2rem;
transition: all 0.3s ease;
}
.close-btn:hover {
background: #ff3838;
transform: scale(1.1);
}
.papers-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
gap: 20px;
margin-bottom: 30px;
}
.paper-item {
background: #f8f9fa;
border-radius: 15px;
padding: 20px;
border-left: 4px solid #667eea;
transition: all 0.3s ease;
}
.paper-item:hover {
transform: translateX(5px);
background: #e3f2fd;
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.paper-venue {
background: #667eea;
color: white;
padding: 4px 12px;
border-radius: 15px;
font-size: 0.8rem;
font-weight: bold;
display: inline-block;
margin-bottom: 10px;
}
.paper-title {
font-size: 1.1rem;
font-weight: 600;
color: #333;
margin-bottom: 8px;
}
.paper-description {
color: #666;
font-size: 0.9rem;
line-height: 1.4;
margin-bottom: 15px;
}
.paper-links {
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.link-btn {
background: linear-gradient(45deg, #667eea, #764ba2);
color: white;
border: none;
padding: 6px 12px;
border-radius: 15px;
cursor: pointer;
font-size: 0.8rem;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 5px;
transition: all 0.3s ease;
}
.link-btn:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4);
}
.link-btn.code { background: linear-gradient(45deg, #4ECDC4, #44A08D); }
.link-btn.project { background: linear-gradient(45deg, #FF6B6B, #ee5a52); }
.search-container {
margin-bottom: 30px;
}
.search-box {
width: 100%;
max-width: 500px;
margin: 0 auto;
display: block;
padding: 15px 20px;
border: none;
border-radius: 25px;
font-size: 1rem;
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
outline: none;
}
.filter-buttons {
display: flex;
justify-content: center;
gap: 10px;
margin: 20px 0;
flex-wrap: wrap;
}
.filter-btn {
background: rgba(255,255,255,0.9);
border: 2px solid #667eea;
color: #667eea;
padding: 8px 16px;
border-radius: 20px;
cursor: pointer;
transition: all 0.3s ease;
}
.filter-btn.active,
.filter-btn:hover {
background: #667eea;
color: white;
}
.back-to-top {
position: fixed;
bottom: 30px;
right: 30px;
background: #667eea;
color: white;
border: none;
border-radius: 50%;
width: 50px;
height: 50px;
cursor: pointer;
font-size: 1.2rem;
box-shadow: 0 5px 15px rgba(0,0,0,0.2);
transition: all 0.3s ease;
opacity: 0;
visibility: hidden;
}
.back-to-top.visible {
opacity: 1;
visibility: visible;
}
.back-to-top:hover {
transform: translateY(-3px);
background: #5a67d8;
}
@media (max-width: 768px) {
.main-sections {
grid-template-columns: 1fr;
gap: 20px;
}
.header h1 {
font-size: 2rem;
}
.papers-grid {
grid-template-columns: 1fr;
}
.section-card {
padding: 30px 20px;
}
.stats-bar {
gap: 15px;
}
.stat-badge {
padding: 8px 15px;
font-size: 0.9rem;
}
}
.dataset-table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
background: white;
border-radius: 10px;
overflow: hidden;
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.dataset-table th,
.dataset-table td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid #eee;
}
.dataset-table th {
background: #667eea;
color: white;
font-weight: 600;
}
.dataset-table tr:hover {
background: #f8f9fa;
}
.tag {
background: #e3f2fd;
color: #1976d2;
padding: 2px 8px;
border-radius: 10px;
font-size: 0.8rem;
margin: 2px;
display: inline-block;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1><i class="fas fa-robot"></i> Awesome Multi-Agent Collaborative Perception</h1>
<p>Explore cutting-edge resources for Multi-Agent Collaborative Perception, Prediction, and Planning</p>
<div class="stats-bar">
<div class="stat-badge">
<span class="stat-number">200+</span>
<span>Papers</span>
</div>
<div class="stat-badge">
<span class="stat-number">25+</span>
<span>Datasets</span>
</div>
<div class="stat-badge">
<span class="stat-number">50+</span>
<span>Code Repos</span>
</div>
<div class="stat-badge">
<span class="stat-number">2025</span>
<span>Updated</span>
</div>
</div>
</div>
<div class="main-sections">
<div class="section-card perception-card" onclick="showContent('perception')">
<div class="section-icon">
<i class="fas fa-eye"></i>
</div>
<h2>🔍 Perception</h2>
<p>Multi-agent collaborative sensing, 3D object detection, semantic segmentation, and sensor fusion techniques for enhanced environmental understanding.</p>
<div class="stats">
<div class="stat">
<div class="stat-number">80+</div>
<div class="stat-label">Papers</div>
</div>
<div class="stat">
<div class="stat-number">V2X</div>
<div class="stat-label">Focus</div>
</div>
<div class="stat">
<div class="stat-number">15+</div>
<div class="stat-label">Venues</div>
</div>
</div>
</div>
<div class="section-card tracking-card" onclick="showContent('tracking')">
<div class="section-icon">
<i class="fas fa-route"></i>
</div>
<h2>📍 Tracking</h2>
<p>Multi-object tracking, collaborative state estimation, uncertainty quantification, and temporal consistency across multiple agents.</p>
<div class="stats">
<div class="stat">
<div class="stat-number">15+</div>
<div class="stat-label">Methods</div>
</div>
<div class="stat">
<div class="stat-number">MOT</div>
<div class="stat-label">Focus</div>
</div>
<div class="stat">
<div class="stat-number">5+</div>
<div class="stat-label">Datasets</div>
</div>
</div>
</div>
<div class="section-card prediction-card" onclick="showContent('prediction')">
<div class="section-icon">
<i class="fas fa-chart-line"></i>
</div>
<h2>🔮 Prediction</h2>
<p>Trajectory forecasting, motion prediction, behavior understanding, and cooperative planning for autonomous systems.</p>
<div class="stats">
<div class="stat">
<div class="stat-number">25+</div>
<div class="stat-label">Papers</div>
</div>
<div class="stat">
<div class="stat-number">GNN</div>
<div class="stat-label">Core Tech</div>
</div>
<div class="stat">
<div class="stat-number">E2E</div>
<div class="stat-label">Systems</div>
</div>
</div>
</div>
<div class="section-card datasets-card" onclick="showContent('datasets')">
<div class="section-icon">
<i class="fas fa-database"></i>
</div>
<h2>📊 Datasets</h2>
<p>Real-world and simulated datasets for collaborative perception research, including benchmarks and evaluation protocols.</p>
<div class="stats">
<div class="stat">
<div class="stat-number">25+</div>
<div class="stat-label">Datasets</div>
</div>
<div class="stat">
<div class="stat-number">Real</div>
<div class="stat-label">& Sim</div>
</div>
<div class="stat">
<div class="stat-number">3D</div>
<div class="stat-label">Labels</div>
</div>
</div>
</div>
<div class="section-card methods-card" onclick="showContent('methods')">
<div class="section-icon">
<i class="fas fa-cogs"></i>
</div>
<h2>⚙️ Methods</h2>
<p>Communication strategies, fusion techniques, robustness approaches, and learning paradigms for multi-agent systems.</p>
<div class="stats">
<div class="stat">
<div class="stat-number">60+</div>
<div class="stat-label">Methods</div>
</div>
<div class="stat">
<div class="stat-number">Comm</div>
<div class="stat-label">Efficient</div>
</div>
<div class="stat">
<div class="stat-number">Robust</div>
<div class="stat-label">Defense</div>
</div>
</div>
</div>
<div class="section-card conferences-card" onclick="showContent('conferences')">
<div class="section-icon">
<i class="fas fa-university"></i>
</div>
<h2>🏛️ Conferences</h2>
<p>Top-tier venues, workshops, and publication trends in collaborative perception and multi-agent systems research.</p>
<div class="stats">
<div class="stat">
<div class="stat-number">10+</div>
<div class="stat-label">Venues</div>
</div>
<div class="stat">
<div class="stat-number">2025</div>
<div class="stat-label">Latest</div>
</div>
<div class="stat">
<div class="stat-number">Trend</div>
<div class="stat-label">Analysis</div>
</div>
</div>
</div>
</div>
<!-- Content Panels -->
<div id="perceptionPanel" class="content-panel">
<div class="panel-header">
<h2 class="panel-title"><i class="fas fa-eye"></i> Collaborative Perception</h2>
<button class="close-btn" onclick="hideContent()">
<i class="fas fa-times"></i>
</button>
</div>
<div class="search-container">
<input type="text" class="search-box" placeholder="Search perception papers..." onkeyup="filterPapers('perception')">
</div>
<div class="filter-buttons">
<button class="filter-btn active" onclick="filterByVenue('perception', 'all')">All</button>
<button class="filter-btn" onclick="filterByVenue('perception', 'CVPR 2025')">CVPR 2025</button>
<button class="filter-btn" onclick="filterByVenue('perception', 'ICLR 2025')">ICLR 2025</button>
<button class="filter-btn" onclick="filterByVenue('perception', 'AAAI 2025')">AAAI 2025</button>
<button class="filter-btn" onclick="filterByVenue('perception', 'NeurIPS')">NeurIPS</button>
</div>
<div id="perceptionPapers" class="papers-grid">
<!-- Papers will be populated by JavaScript -->
</div>
</div>
<div id="trackingPanel" class="content-panel">
<div class="panel-header">
<h2 class="panel-title"><i class="fas fa-route"></i> Collaborative Tracking</h2>
<button class="close-btn" onclick="hideContent()">
<i class="fas fa-times"></i>
</button>
</div>
<div class="search-container">
<input type="text" class="search-box" placeholder="Search tracking papers..." onkeyup="filterPapers('tracking')">
</div>
<div id="trackingPapers" class="papers-grid">
<!-- Papers will be populated by JavaScript -->
</div>
</div>
<div id="predictionPanel" class="content-panel">
<div class="panel-header">
<h2 class="panel-title"><i class="fas fa-chart-line"></i> Collaborative Prediction</h2>
<button class="close-btn" onclick="hideContent()">
<i class="fas fa-times"></i>
</button>
</div>
<div class="search-container">
<input type="text" class="search-box" placeholder="Search prediction papers..." onkeyup="filterPapers('prediction')">
</div>
<div id="predictionPapers" class="papers-grid">
<!-- Papers will be populated by JavaScript -->
</div>
</div>
<div id="datasetsPanel" class="content-panel">
<div class="panel-header">
<h2 class="panel-title"><i class="fas fa-database"></i> Datasets & Benchmarks</h2>
<button class="close-btn" onclick="hideContent()">
<i class="fas fa-times"></i>
</button>
</div>
<div class="search-container">
<input type="text" class="search-box" placeholder="Search datasets..." onkeyup="filterDatasets()">
</div>
<div class="filter-buttons">
<button class="filter-btn active" onclick="filterDatasetType('all')">All</button>
<button class="filter-btn" onclick="filterDatasetType('real')">Real-World</button>
<button class="filter-btn" onclick="filterDatasetType('simulation')">Simulation</button>
<button class="filter-btn" onclick="filterDatasetType('v2x')">V2X</button>
</div>
<table class="dataset-table" id="datasetsTable">
<thead>
<tr>
<th>Dataset</th>
<th>Year</th>
<th>Type</th>
<th>Agents</th>
<th>Size</th>
<th>Features</th>
<th>Access</th>
</tr>
</thead>
<tbody>
<!-- Dataset rows will be populated by JavaScript -->
</tbody>
</table>
</div>
<div id="methodsPanel" class="content-panel">
<div class="panel-header">
<h2 class="panel-title"><i class="fas fa-cogs"></i> Methods & Techniques</h2>
<button class="close-btn" onclick="hideContent()">
<i class="fas fa-times"></i>
</button>
</div>
<div class="search-container">
<input type="text" class="search-box" placeholder="Search methods..." onkeyup="filterPapers('methods')">
</div>
<div class="filter-buttons">
<button class="filter-btn active" onclick="filterMethodType('all')">All</button>
<button class="filter-btn" onclick="filterMethodType('communication')">Communication</button>
<button class="filter-btn" onclick="filterMethodType('robustness')">Robustness</button>
<button class="filter-btn" onclick="filterMethodType('learning')">Learning</button>
</div>
<div id="methodsPapers" class="papers-grid">
<!-- Methods will be populated by JavaScript -->
</div>
</div>
<div id="conferencesPanel" class="content-panel">
<div class="panel-header">
<h2 class="panel-title"><i class="fas fa-university"></i> Conferences & Venues</h2>
<button class="close-btn" onclick="hideContent()">
<i class="fas fa-times"></i>
</button>
</div>
<div id="conferencesContent">
<!-- Conference content will be populated by JavaScript -->
</div>
</div>
</div>
<button class="back-to-top" id="backToTop" onclick="scrollToTop()">
<i class="fas fa-arrow-up"></i>
</button>
<script>
// Sample data - in a real implementation, this would come from your data sources
const perceptionPapers = [
{
title: "CoSDH: Communication-Efficient Collaborative Perception via Supply-Demand Awareness",
venue: "CVPR 2025",
description: "Novel approach for efficient collaborative perception using supply-demand awareness and intermediate-late hybridization.",
paper: "https://arxiv.org/abs/2503.03430",
code: "https://github.com/Xu2729/CoSDH",
project: null
},
{
title: "V2X-R: Cooperative LiDAR-4D Radar Fusion for 3D Object Detection",
venue: "CVPR 2025",
description: "Cooperative fusion of LiDAR and 4D radar sensors for enhanced 3D object detection with denoising diffusion.",
paper: "https://arxiv.org/abs/2411.08402",
code: "https://github.com/ylwhxht/V2X-R",
project: null
},
{
title: "STAMP: Scalable Task- And Model-Agnostic Collaborative Perception",
venue: "ICLR 2025",
description: "Framework for scalable collaborative perception that is both task and model agnostic.",
paper: "https://openreview.net/forum?id=8NdNniulYE",
code: "https://github.com/taco-group/STAMP",
project: null
},
{
title: "Where2comm: Efficient Collaborative Perception via Spatial Confidence Maps",
venue: "NeurIPS 2022",
description: "Groundbreaking work on efficient collaborative perception using spatial confidence maps for selective communication.",
paper: "https://openreview.net/forum?id=dLL4KXzKUpS",
code: "https://github.com/MediaBrain-SJTU/where2comm",
project: null
},
{
title: "CoBEVFlow: Robust Asynchronous Collaborative 3D Detection via Bird's Eye View Flow",
venue: "NeurIPS 2023",
description: "Handles temporal asynchrony in collaborative perception using bird's eye view flow.",
paper: "https://openreview.net/forum?id=UHIDdtxmVS",
code: "https://github.com/MediaBrain-SJTU/CoBEVFlow",
project: null
},
{
title: "UniV2X: End-to-End Autonomous Driving through V2X Cooperation",
venue: "AAAI 2025",
description: "Complete end-to-end system for autonomous driving with V2X cooperation.",
paper: "https://arxiv.org/abs/2404.00717",
code: "https://github.com/AIR-THU/UniV2X",
project: null
}
];
const trackingPapers = [
{
title: "MOT-CUP: Multi-Object Tracking with Conformal Uncertainty Propagation",
venue: "Preprint",
description: "Collaborative multi-object tracking with conformal uncertainty propagation for robust state estimation.",
paper: "https://arxiv.org/abs/2303.14346",
code: "https://github.com/susanbao/mot_cup",
project: null
},
{
title: "DMSTrack: Probabilistic 3D Multi-Object Cooperative Tracking",
venue: "ICRA 2024",
description: "Probabilistic approach for 3D multi-object cooperative tracking using differentiable multi-sensor Kalman filter.",
paper: "https://arxiv.org/abs/2309.14655",
code: "https://github.com/eddyhkchiu/DMSTrack",
project: null
},
{
title: "CoDynTrust: Robust Asynchronous Collaborative Perception via Dynamic Feature Trust",
venue: "ICRA 2025",
description: "Dynamic feature trust modulus for robust asynchronous collaborative perception.",
paper: "https://arxiv.org/abs/2502.08169",
code: "https://github.com/CrazyShout/CoDynTrust",
project: null
}
];
const predictionPapers = [
{
title: "V2X-Graph: Learning Cooperative Trajectory Representations",
venue: "NeurIPS 2024",
description: "Graph neural networks for learning cooperative trajectory representations in multi-agent systems.",
paper: "https://arxiv.org/abs/2311.00371",
code: "https://github.com/AIR-THU/V2X-Graph",
project: null
},
{
title: "Co-MTP: Cooperative Trajectory Prediction Framework",
venue: "ICRA 2025",
description: "Multi-temporal fusion framework for cooperative trajectory prediction in autonomous driving.",
paper: "https://arxiv.org/abs/2502.16589",
code: "https://github.com/xiaomiaozhang/Co-MTP",
project: null
},
{
title: "V2XPnP: Vehicle-to-Everything Spatio-Temporal Fusion",
venue: "Preprint",
description: "Spatio-temporal fusion approach for multi-agent perception and prediction in V2X systems.",
paper: "https://arxiv.org/abs/2412.01812",
code: "https://github.com/Zewei-Zhou/V2XPnP",
project: null
}
];
const datasets = [
{
name: "DAIR-V2X",
year: "2022",
type: "real",
agents: "V2I",
size: "71K frames",
features: ["3D boxes", "Multi-modal", "Infrastructure"],
link: "https://github.com/AIR-THU/DAIR-V2X"
},
{
name: "V2V4Real",
year: "2023",
type: "real",
agents: "V2V",
size: "20K frames",
features: ["3D boxes", "Real V2V", "Highway"],
link: "https://github.com/ucla-mobility/V2V4Real"
},
{
name: "TUMTraf-V2X",
year: "2024",
type: "real",
agents: "V2X",
size: "2K sequences",
features: ["Dense labels", "Cooperative", "Urban"],
link: "https://github.com/tum-traffic-dataset/tum-traffic-dataset-dev-kit"
},
{
name: "OPV2V",
year: "2022",
type: "simulation",
agents: "V2V",
size: "Large-scale",
features: ["CARLA", "Multi-agent", "Benchmark"],
link: "https://github.com/DerrickXuNu/OpenCOOD"
},
{
name: "V2X-Sim",
year: "2021",
type: "simulation",
agents: "Multi",
size: "Scalable",
features: ["Multi-agent", "Collaborative", "Synthetic"],
link: "https://github.com/ai4ce/V2X-Sim"
}
];
const methodsPapers = [
{
title: "ACCO: Is Discretization Fusion All You Need?",
venue: "Preprint",
description: "Investigation of discretization fusion techniques for collaborative perception efficiency.",
paper: "https://arxiv.org/abs/2503.13946",
code: "https://github.com/sidiangongyuan/ACCO",
project: null,
category: "communication"
},
{
title: "CP-Guard: Malicious Agent Detection and Defense",
venue: "AAAI 2025",
description: "Comprehensive framework for detecting and defending against malicious agents in collaborative perception.",
paper: "https://arxiv.org/abs/2412.12000",
code: null,
project: null,
category: "robustness"
},
{
title: "HEAL: Extensible Framework for Heterogeneous Collaborative Perception",
venue: "ICLR 2024",
description: "Open framework for heterogeneous collaborative perception with extensive customization options.",
paper: "https://openreview.net/forum?id=KkrDUGIASk",
code: "https://github.com/yifanlu0227/HEAL",
project: null,
category: "learning"
}
];
function showContent(section) {
// Hide all panels
document.querySelectorAll('.content-panel').forEach(panel => {
panel.classList.remove('active');
});
// Show selected panel
document.getElementById(section + 'Panel').classList.add('active');
// Populate content based on section
if (section === 'perception') {
populatePapers('perceptionPapers', perceptionPapers);
} else if (section === 'tracking') {
populatePapers('trackingPapers', trackingPapers);
} else if (section === 'prediction') {
populatePapers('predictionPapers', predictionPapers);
} else if (section === 'datasets') {
populateDatasets();
} else if (section === 'methods') {
populatePapers('methodsPapers', methodsPapers);
} else if (section === 'conferences') {
populateConferences();
}
// Smooth scroll to panel
setTimeout(() => {
document.querySelector('.content-panel.active').scrollIntoView({
behavior: 'smooth',
block: 'start'
});
}, 100);
}
function hideContent() {
document.querySelectorAll('.content-panel').forEach(panel => {
panel.classList.remove('active');
});
// Scroll back to top
window.scrollTo({ top: 0, behavior: 'smooth' });
}
function populatePapers(containerId, papers) {
const container = document.getElementById(containerId);
let html = '';
papers.forEach(paper => {
html += `
<div class="paper-item" data-venue="${paper.venue}">
<div class="paper-venue">${paper.venue}</div>
<div class="paper-title">${paper.title}</div>
<div class="paper-description">${paper.description}</div>
<div class="paper-links">
<a href="${paper.paper}" class="link-btn" target="_blank">
<i class="fas fa-file-alt"></i> Paper
</a>
${paper.code ? `<a href="${paper.code}" class="link-btn code" target="_blank">
<i class="fas fa-code"></i> Code
</a>` : ''}
${paper.project ? `<a href="${paper.project}" class="link-btn project" target="_blank">
<i class="fas fa-globe"></i> Project
</a>` : ''}
</div>
</div>
`;
});
container.innerHTML = html;
}
function populateDatasets() {
const tbody = document.querySelector('#datasetsTable tbody');
let html = '';
datasets.forEach(dataset => {
const featureTags = dataset.features.map(feature =>
`<span class="tag">${feature}</span>`
).join('');
html += `
<tr data-type="${dataset.type}" data-agents="${dataset.agents.toLowerCase()}">
<td><strong>${dataset.name}</strong></td>
<td>${dataset.year}</td>
<td>${dataset.type === 'real' ? '🌍 Real' : '🎮 Simulation'}</td>
<td>${dataset.agents}</td>
<td>${dataset.size}</td>
<td>${featureTags}</td>
<td><a href="${dataset.link}" class="link-btn" target="_blank">
<i class="fas fa-download"></i> Access
</a></td>
</tr>
`;
});
tbody.innerHTML = html;
}
function populateConferences() {
const container = document.getElementById('conferencesContent');
container.innerHTML = `
<div class="papers-grid">
<div class="paper-item">
<div class="paper-venue">CVPR 2025</div>
<div class="paper-title">Computer Vision and Pattern Recognition</div>
<div class="paper-description">5+ collaborative perception papers accepted. Focus on end-to-end systems and robustness.</div>
<div class="paper-links">
<a href="#" class="link-btn">
<i class="fas fa-external-link-alt"></i> Conference
</a>
</div>
</div>
<div class="paper-item">
<div class="paper-venue">ICLR 2025</div>
<div class="paper-title">International Conference on Learning Representations</div>
<div class="paper-description">3+ papers accepted. Focus on learning representations and scalability frameworks.</div>
<div class="paper-links">
<a href="#" class="link-btn">
<i class="fas fa-external-link-alt"></i> Conference
</a>
</div>
</div>
<div class="paper-item">
<div class="paper-venue">ICRA 2025</div>
<div class="paper-title">International Conference on Robotics and Automation</div>
<div class="paper-description">Robotics-focused collaborative perception. Applications in autonomous driving and UAV swarms.</div>
<div class="paper-links">
<a href="#" class="link-btn">
<i class="fas fa-external-link-alt"></i> Conference
</a>
</div>
</div>
<div class="paper-item">
<div class="paper-venue">NeurIPS 2024</div>
<div class="paper-title">Neural Information Processing Systems</div>
<div class="paper-description">Premier venue for machine learning research with strong collaborative perception track record.</div>
<div class="paper-links">
<a href="#" class="link-btn">
<i class="fas fa-external-link-alt"></i> Conference
</a>
</div>
</div>
</div>
`;
}
function filterByVenue(section, venue) {
const buttons = document.querySelectorAll(`#${section}Panel .filter-btn`);
buttons.forEach(btn => btn.classList.remove('active'));
event.target.classList.add('active');
const papers = document.querySelectorAll(`#${section}Papers .paper-item`);
papers.forEach(paper => {
if (venue === 'all' || paper.dataset.venue === venue) {
paper.style.display = 'block';
} else {
paper.style.display = 'none';
}
});
}
function filterDatasetType(type) {
const buttons = document.querySelectorAll('#datasetsPanel .filter-btn');
buttons.forEach(btn => btn.classList.remove('active'));
event.target.classList.add('active');
const rows = document.querySelectorAll('#datasetsTable tbody tr');
rows.forEach(row => {
if (type === 'all' ||
row.dataset.type === type ||
(type === 'v2x' && row.dataset.agents.includes('v'))) {
row.style.display = 'table-row';
} else {
row.style.display = 'none';
}
});
}
function filterMethodType(type) {
const buttons = document.querySelectorAll('#methodsPanel .filter-btn');
buttons.forEach(btn => btn.classList.remove('active'));
event.target.classList.add('active');
// This would filter methods based on category
// Implementation depends on how you structure method data
}
function filterPapers(section) {
const searchTerm = event.target.value.toLowerCase();
const papers = document.querySelectorAll(`#${section}Papers .paper-item`);
papers.forEach(paper => {
const title = paper.querySelector('.paper-title').textContent.toLowerCase();
const description = paper.querySelector('.paper-description').textContent.toLowerCase();
if (title.includes(searchTerm) || description.includes(searchTerm)) {
paper.style.display = 'block';
} else {
paper.style.display = 'none';
}
});
}
function filterDatasets() {
const searchTerm = event.target.value.toLowerCase();
const rows = document.querySelectorAll('#datasetsTable tbody tr');
rows.forEach(row => {
const text = row.textContent.toLowerCase();
if (text.includes(searchTerm)) {
row.style.display = 'table-row';
} else {
row.style.display = 'none';
}
});
}
function scrollToTop() {
window.scrollTo({ top: 0, behavior: 'smooth' });
}
// Show/hide back to top button
window.addEventListener('scroll', function() {
const backToTop = document.getElementById('backToTop');
if (window.pageYOffset > 300) {
backToTop.classList.add('visible');
} else {
backToTop.classList.remove('visible');
}
});
// Initialize the page
document.addEventListener('DOMContentLoaded', function() {
// Any initialization code here
});
</script>
</body>
</html>