This is the official implementation of X-Field (NeurIPS 2025 Spotlight).
If you find this repository useful, please give it a ⭐ and consider citing our paper!
# Create conda environment
conda env create --file environment.yml
conda activate xfield
# Install custom CUDA rasterization kernels
pip install xfield/submodules/xfield-rasterization
pip install xfield/submodules/simple-knn
# Install TIGRE for data generation and initialization
wget https://github.com/CERN/TIGRE/archive/refs/tags/v2.3.zip
unzip v2.3.zip
pip install TIGRE-2.3/Python --no-build-isolationpython train.py -s <data.pickle>Training outputs (checkpoints, logs, rendered images) are saved to output/<timestamp>/.
Evaluate 2D projection rendering and compute metrics (PSNR, SSIM):
python test.py -m <model_path> -s <data.pickle>Results are saved to <model_path>/test/iter_<N>/.
Generate a 360-degree rotating visualization:
python render360.py -m <model_path> -p <point_cloud.ply>Output video saved to <model_path>/360/.
Reconstruct 3D CT volume from rendered projections:
python recon_ct.py --data <data.pickle> --path <test_output_path> --method fdkAvailable CT reconstruction methods
| Method | Description |
|---|---|
fdk |
Feldkamp-Davis-Kress (default) |
sart |
Simultaneous Algebraic Reconstruction |
ossart |
Ordered Subset SART |
cgls |
Conjugate Gradient Least Squares |
asd_pocs |
ASD-POCS with TV regularization |
os_asd_pocs |
Ordered Subset ASD-POCS |
You can download the datasets (synthetic and real) used in our paper:
Dataset Structure
data/
├── 0_foot_cone.pickle # Foot CT scan (cone-beam)
├── 0_head_cone.pickle # Head CT scan (cone-beam)
├── 0_chest_cone.pickle # Chest CT scan (cone-beam)
├── 2_teapot_cone.pickle # Teapot synthetic (cone-beam)
└── ...
Each .pickle file contains:
- X-ray projections
- Scanner geometry configuration
- Ground truth CT volume (for evaluation)
Initialize Gaussian point cloud from CT reconstruction. This step is optional but can improve convergence.
python init_gaussians.py --data <data.pickle> --output <init.npy> --recon_method fdkAvailable initialization methods
| Method | Description |
|---|---|
random |
Random point sampling |
fdk |
FDK algorithm (default) |
cgls |
Conjugate Gradient Least Squares |
sart |
Simultaneous Algebraic Reconstruction |
hybrid_cgls_sart_tv |
Hybrid Initialization |
If you find X-Field useful for your research, please cite:
@inproceedings{wangx,
title={X-Field: A Physically Informed Representation for 3D X-ray Reconstruction},
author={Wang, Feiran and Tao, Jiachen and Wu, Junyi and Wang, Haoxuan and Duan, Bin and Wang, Kai and Yang, Zongxin and Yan, Yan},
booktitle={The Thirty-ninth Annual Conference on Neural Information Processing Systems}
}
@article{wang2025x,
title={X-Field: A Physically Grounded Representation for 3D X-ray Reconstruction},
author={Wang, Feiran and Tao, Jiachen and Wu, Junyi and Wang, Haoxuan and Duan, Bin and Wang, Kai and Yang, Zongxin and Yan, Yan},
journal={arXiv preprint arXiv:2503.08596},
year={2025}
}We gratefully acknowledge 3DGS, X-Gaussian, and R²-Gaussian, providing valuable references for this implementation.

