How swc-17/sparsedrivev2 works
SparseDriveV2 is an end-to-end autonomous-driving planner evaluated on NAVSIM. Its main workflow turns sensor and scene history into model features, scores candidate trajectories, selects a plan, and evaluates driving metrics. The repository also contains NAVSIM-v1 compatibility, metric caching, traffic-agent simulation, and visualization. Edges are limited to relationships shown in the README or SOURCE INDEX; several model-internal connections are dashed because their source was not sampled.
Main entry points: pdm_score.py PDMS evaluation · pdm_score_v2.py SparseDrive scorer · metric_cache.py Metric cache · sparsedrive_model.py Scoring model
Components 31
Scene Data
- Sensor scenes
- Scene dataclasses
navsim/common/dataclasses.py - Scene enums
navsim/common/enums.py - Scenario builder
navsim/planning/scenario_builder/navsim_scenario.py - Scenario conversion
navsim/planning/scenario_builder/navsim_scenario_utils.py - Scene dataloader
navsim/common/dataloader.py - NAVSIM-v1 types
navsim/navsim_v1/common/dataclasses.py - NAVSIM-v1 scenarios
navsim/navsim_v1/planning/scenario_builder/navsim_scenario.py
Planning Model
- Model features
navsim/agents/sparsedrive/sparsedrive_features.py - SparseDrive agent
navsim/agents/sparsedrive/sparsedrive_agent.py - Scoring model
navsim/agents/sparsedrive/sparsedrive_model.py - Vision backbone
navsim/agents/sparsedrive/sparsedrive_backbone.py - Aggregation ops
navsim/agents/sparsedrive/ops/deformable_aggregation.py - Trajectory vocabulary
navsim/agents/sparsedrive
Simulation Scoring
- Metric cache
navsim/planning/metric_caching/metric_cache.py - PDM observation
navsim/planning/simulation/planner/pdm_planner/observation/pdm_observation.py - Drivable map
navsim/planning/simulation/planner/pdm_planner/observation/pdm_occupancy_map.py - Trajectory simulator
navsim/planning/simulation/planner/pdm_planner/simulation/pdm_simulator.py - State representation
navsim/planning/simulation/planner/pdm_planner/utils/pdm_array_representation.py - Planner state enums
navsim/planning/simulation/planner/pdm_planner/utils/pdm_enums.py - PDM scorer
navsim/planning/simulation/planner/pdm_planner/scoring/pdm_scorer.py - Traffic policies
navsim/traffic_agents_policies/abstract_traffic_agents_policy.py - IDM agents
navsim/planning/simulation/observation/navsim_idm/navsim_idm_agent_manager.py - NAVSIM-v1 observation
navsim/navsim_v1/planning/simulation/planner/pdm_planner/observation/pdm_observation.py
Evaluation Tools
- NAVSIM-v1 cache
navsim/navsim_v1/planning/metric_caching/metric_cache_processor.py - Cache processor
navsim/planning/metric_caching/metric_cache_processor.py - PDMS evaluation
navsim/evaluate/pdm_score.py - SparseDrive scorer
navsim/agents/sparsedrive/scorer/pdm_score_v2.py - Scene visualization
navsim/visualization/bev.py
Other components
- Planner user
- Driving metrics
Connections 35
- Planner user → Sensor scenes: provides scenes
- Sensor scenes → Scene dataloader: loads records
- Scene dataloader → Scene dataclasses: builds inputs
navsim/common/dataloader.py - Scenario builder → Scene dataclasses: uses types
navsim/planning/scenario_builder/navsim_scenario.py - Scenario builder → Scenario conversion: uses conversions
navsim/planning/scenario_builder/navsim_scenario.py - Scenario conversion → Scene dataclasses: converts records
navsim/planning/scenario_builder/navsim_scenario_utils.py - Model features → Scene dataclasses: consumes types
navsim/agents/sparsedrive/sparsedrive_features.py - Model features → Scenario conversion: uses geometry
navsim/agents/sparsedrive/sparsedrive_features.py - Model features → Scoring model: feeds model
- Scoring model → Vision backbone: encodes images
- Scoring model → Aggregation ops: aggregates features
- Scoring model → Trajectory vocabulary: scores candidates
- Trajectory vocabulary → SparseDrive agent: selects plan
- SparseDrive agent → Planner user: returns plan
- Cache processor → Scenario builder: uses scenarios
navsim/planning/metric_caching/metric_cache_processor.py - Cache processor → Metric cache: builds cache
navsim/planning/metric_caching/metric_cache_processor.py - Metric cache → PDM observation: stores observation
navsim/planning/metric_caching/metric_cache.py - Metric cache → Drivable map: stores map
navsim/planning/metric_caching/metric_cache.py - Trajectory simulator → State representation: uses arrays
navsim/planning/simulation/planner/pdm_planner/simulation/pdm_simulator.py - PDMS evaluation → Metric cache: reads cache
navsim/evaluate/pdm_score.py - PDMS evaluation → Trajectory simulator: simulates proposals
navsim/evaluate/pdm_score.py - PDMS evaluation → PDM scorer: scores proposals
navsim/evaluate/pdm_score.py - PDMS evaluation → Traffic policies: uses policy
navsim/evaluate/pdm_score.py - SparseDrive scorer → Metric cache: reads cache
navsim/agents/sparsedrive/scorer/pdm_score_v2.py - SparseDrive scorer → Trajectory simulator: simulates proposals
navsim/agents/sparsedrive/scorer/pdm_score_v2.py - SparseDrive scorer → PDM scorer: scores proposals
navsim/agents/sparsedrive/scorer/pdm_score_v2.py - SparseDrive scorer → Traffic policies: uses policy
navsim/agents/sparsedrive/scorer/pdm_score_v2.py - PDM scorer → Planner state enums: uses indices
navsim/planning/simulation/planner/pdm_planner/scoring/pdm_scorer.py - IDM agents → Traffic policies: implements policy
- NAVSIM-v1 scenarios → NAVSIM-v1 types: uses types
navsim/navsim_v1/planning/scenario_builder/navsim_scenario.py - NAVSIM-v1 cache → NAVSIM-v1 observation: uses observation
navsim/navsim_v1/planning/metric_caching/metric_cache_processor.py - NAVSIM-v1 cache → NAVSIM-v1 scenarios: uses scenarios
navsim/navsim_v1/planning/metric_caching/metric_cache_processor.py - PDMS evaluation → Driving metrics: produces metrics
- SparseDrive scorer → Driving metrics: produces metrics
- Scene visualization → Scenario conversion: uses conversions
navsim/visualization/bev.py