File size: 3,231 Bytes
0252a95
 
5ecb934
 
 
 
ad526ce
5ecb934
 
ad526ce
0252a95
5ecb934
ad526ce
5ecb934
ad526ce
5ecb934
ad526ce
5ecb934
ad526ce
5ecb934
ad526ce
 
 
5ecb934
ad526ce
5ecb934
ad526ce
 
 
 
 
 
5ecb934
ad526ce
 
5ecb934
ad526ce
 
 
 
 
 
 
 
 
 
 
5ecb934
 
ad526ce
 
5ecb934
ad526ce
 
5ecb934
 
ad526ce
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
---
license: mit
tags:
- 3d-gaussian-splatting
- novel-view-synthesis
- pose-free
- feed-forward
datasets:
- re10k
pipeline_tag: image-to-3d
---

# EvenSplat: Compact Pose-Free Feed-Forward 3D Gaussian Splatting

**Kyoosuk Hwang · Junyoung Kwon** · Seoul National University of Science and Technology · Capstone Design 2026

[Code](https://github.com/junyoung6215/EvenSplat) · [Method](https://github.com/junyoung6215/EvenSplat/blob/main/docs/METHOD.md) · [Reproduce](https://github.com/junyoung6215/EvenSplat/blob/main/docs/REPRODUCE.md)

![Ground truth, the unpruned base and EvenSplat with 75, 50 and 25% of the Gaussians](https://raw.githubusercontent.com/junyoung6215/EvenSplat/main/docs/figures/hero_qualitative.jpg)

**EvenSplat** renders novel views from **two unposed images** using **25 to 75% of the per-pixel Gaussians**
that [NoPoSplat](https://github.com/cvg/NoPoSplat) predicts. It keeps the same fraction of Gaussians in every
2 × 2 pixel cell, drops low-reliability Gaussians first, and is fine-tuned with that pruning in the loop.

## Checkpoints

| File | Gaussians kept | #Gaussians | PSNR ↑ | SSIM ↑ | LPIPS ↓ |
| --- | :-: | :-: | :-: | :-: | :-: |
| [`retention_r25_re10k.ckpt`](https://huggingface.co/kyoosuk/EvenSplat/blob/main/retention_r25_re10k.ckpt) | 25% | 33K | 24.62 | 0.817 | 0.184 |
| [`retention_r50_re10k.ckpt`](https://huggingface.co/kyoosuk/EvenSplat/blob/main/retention_r50_re10k.ckpt) | 50% | 66K | 25.01 | 0.829 | 0.169 |
| [`retention_r75_re10k.ckpt`](https://huggingface.co/kyoosuk/EvenSplat/blob/main/retention_r75_re10k.ckpt) | 75% | 98K | 25.26 | 0.837 | 0.161 |
| NoPoSplat (reported) | 100% | 131K | 25.03 | 0.838 | 0.160 |

RealEstate10K full test set (5,590 evaluable scenes), 256 × 256, two context views, pose alignment on.
At 50%, peak render memory drops from 167 MB to 87 MB.

<img src="https://raw.githubusercontent.com/junyoung6215/EvenSplat/main/docs/figures/psnr_vs_gaussians.png" alt="PSNR against the number of Gaussians for EvenSplat and comparison methods" width="60%">

Each file holds model weights only (no optimizer state), about 2.45 GB. They are for evaluation; to fine-tune
again, start from the base checkpoint
[`kyoosuk/noposplat-olp-rel-re10k`](https://huggingface.co/kyoosuk/noposplat-olp-rel-re10k)
(`epoch_1-step_75000.ckpt`). Every model was fine-tuned from it for 10K steps at its own ratio: 2 × 2 cells,
r threshold 0.35, batch 1 × 4 accumulation, lr 2e-5.

## Usage

Set up the environment and data as in the [repository README](https://github.com/junyoung6215/EvenSplat#requirements), then:

```bash
hf download kyoosuk/EvenSplat retention_r50_re10k.ckpt --local-dir checkpoints

python scripts/run_retention.py --config my_settings.yaml eval-grid --split full \
  --checkpoint checkpoints/retention_r50_re10k.ckpt \
  --baselines none --scores r_filter --ratios 0.5 --run-id ours_r50 --execute
```

Use the `--ratios` value that matches the file (0.25, 0.5 or 0.75).

## Acknowledgements

Built on [NoPoSplat](https://github.com/cvg/NoPoSplat), and in turn on
[pixelSplat](https://github.com/dcharatan/pixelsplat), [DUSt3R](https://github.com/naver/dust3r) and
[CroCo](https://github.com/naver/croco). Released under the MIT License.