CoolFace
Datasetpublic

Alvin16/SpaceSense-Bench

SpaceSense-Bench: Multi-Modal Spacecraft Perception and Pose Estimation Dataset Project Page | Paper | Toolkit & Code SpaceSense-Bench is a high-fidelity simulation-based multi-modal (RGB, Depth, LiDAR Point Cloud) dataset for spacecraft component-level semantic understanding, containing 136 satellite models with synchronized multi-modal data. Update (2026-05-19). Following issue #5, the pose_ground_truth.csv for all 136 spacecraft has been regenerated to fix a frame-timing… See the full description on the dataset page: https://huggingface.co/datasets/Alvin16/SpaceSense-Bench.

sourceHugging Facecc-by-nc-4.0updated 4mo agoView on Hugging Face
5likes1kdownloads
Dataset Card

SpaceSense-Bench: Multi-Modal Spacecraft Perception and Pose Estimation Dataset

**Project Page** | **Paper** | **Toolkit & Code**

SpaceSense-Bench is a high-fidelity simulation-based multi-modal (RGB, Depth, LiDAR Point Cloud) dataset for spacecraft component-level semantic understanding, containing 136 satellite models with synchronized multi-modal data.

Update (2026-05-19). Following issue #5, the pose_ground_truth.csv for all 136 spacecraft has been regenerated to fix a frame-timing misalignment with the rendered sensor data. The RGB / depth / segmentation / lidar files themselves are unchanged. All raw/<sat>.tar.gz archives have been re-uploaded with the corrected pose CSVs. Thanks to @zstar239 for the original report.

teaser

Dataset Overview

ItemDetail
Satellite Models136 (sourced from NASA/ESA 3D models)
Data ModalitiesRGB, Depth, Semantic Segmentation, LiDAR Point Cloud, 6-DoF Pose
Image Resolution1024 x 1024
Camera FOV50 degrees
Semantic Classes7 (mainbody, solarpanel, dishantenna, omniantenna, payload, thruster, adapter_ring)
Simulation PlatformUnreal Engine 5.2.0 + AirSim 1.8.1

Sample Usage

The SpaceSense-Toolkit provides tools for converting raw data to standard formats and visualizing the results.

Installation

bash
pip install -r requirements.txt

Conversion and Visualization

bash
# Visualize the raw data
python SpaceSense-Toolkit/visualize/raw_data_web_visualizer.py --raw-data data_example

# Convert to Semantic-KITTI (3D segmentation)
python SpaceSense-Toolkit/convert/airsim_to_semantickitti.py --raw-data data_example --output output/semantickitti --satellite-json SpaceSense-Toolkit/configs/satellite_descriptions.json

# Convert to MMSegmentation (2D segmentation)
python SpaceSense-Toolkit/convert/airsim_to_mmseg.py --raw-data data_example --output output/mmseg

# Convert to YOLO (Object detection)
python SpaceSense-Toolkit/convert/airsim_to_yolo.py --raw-data data_example --output output/yolo

Data Modalities

ModalityFormatUnit / RangeDescription
RGBPNG (1024x1024)8-bit colorScene rendering from cam0
DepthNPZ (compressed)int32, millimeters (depth key); background = 10,000 mPer-pixel metric depth exported from AirSim DepthPerspective
Semantic SegmentationPNG (1024x1024, RGB color mask)color-coded part labelsComponent-level segmentation mask; toolkit maps colors to 7 semantic classes
LiDAR Point CloudASC (x,y,z per line)meters, 3 decimal placesSparse 3D point cloud
6-DoF PoseCSVmeters + Hamilton quaternion (w,x,y,z)Target-spacecraft pose in camera frame, plus service/camera pose in world frame

Coordinate System & Units

ItemConvention
Camera FrameX-forward, Y-right, Z-down (FRD, right-handed)
World FrameAirSim NED, target spacecraft fixed at origin
QuaternionHamilton convention: w + xi + yj + zk
Euler AnglesZYX intrinsic (Yaw-Pitch-Roll)
Positionmeters (m), 6 decimal places
Depth Mapmillimeters (mm), stored as compressed .npz; deep-space background = 10,000 m
LiDARmeters (m), .asc format (x,y,z), 3 decimal places
TimestampYYYYMMDDHHMMSSmmm

Sensor Configuration

Camera (cam0)

  • Resolution: 1024 x 1024
  • FOV: 50 degrees
  • Image types captured: RGB (Scene, type 0), Segmentation (type 5), Depth (DepthPerspective, type 2)
  • TargetGamma: 1.0
  • Mounting offset: 1 m in front of the service spacecraft body origin

LiDAR

  • Range: 300 m
  • Channels: 256
  • Vertical FOV: -20 to +20 degrees
  • Horizontal FOV: -20 to +20 degrees
  • Data frame: SensorLocalFrame

Data Split (Zero-shot / OOD)

The training and validation sets contain completely non-overlapping satellite models, so validation performance reflects zero-shot generalization to unseen spacecraft.

SplitSatellitesRule
Train117All satellites excluding val and excluded
Test14Every 10th by index: seq 00, 10, 20, ..., 130
Validation5Seq 131-135, reserved for future testing

Data Organization

Each .tar.gz file in the raw/ folder contains data for one satellite. The toolkit expects trajectory folders containing image/, seg/, depth/, lidar/, and pose_ground_truth.csv.

Typical layout:

text
<satellite_name>/ or <timestamp>_<satellite_name>/
├── approach_front/
│   ├── image/              # RGB images (.png)
│   ├── depth/              # Depth maps (.npz, int32, mm, key = depth)
│   ├── seg/                # Semantic masks (.png, RGB color encoding)
│   ├── lidar/              # Point clouds (.asc)
│   └── pose_ground_truth.csv
├── approach_back/
├── orbit_xy/
└── ...

Some HuggingFace exports may contain one additional nesting level:

text
<satellite_name>/
└── <satellite_name>/
    ├── approach_front/
    ├── approach_back/
    ├── orbit_xy/
    └── ...

Semantic Class Definitions

Class IDNameDescription
0backgroundDeep space background
1main_bodySpacecraft main body / bus
2solar_panelSolar panels / solar arrays
3dish_antennaDish / parabolic antennas
4omni_antennaOmnidirectional antennas / booms
5payloadScientific instruments / payloads
6thrusterThrusters / propulsion systems
7adapter_ringLaunch adapter rings

License

This dataset is released under the CC-BY-NC-4.0 license. Non-commercial use only.

Citation

bibtex
@article{SpaceSense-Bench,
	title={SpaceSense-Bench: A Large-Scale Multi-Modal Benchmark for Spacecraft Perception and Pose Estimation},
	author={Aodi Wu, Jianhong Zuo, Zeyuan Zhao, Xubo Luo, Ruisuo Wang, Xue Wan},
	year={2026},
	url={https://arxiv.org/abs/2603.09320}
}