gs_final, 10000 iterations) with 12000 iterations and a gaussian cap of 100,000 — the only change of the quality experiment that passed its review. Other changes (frame selection, water and motion-blur models, white balance, lossless crops) did not. The two turntables play in sync (same orbit and timing).
| metric | v1 gs_final | v2 gs_v2 | change |
|---|---|---|---|
| iterations | 10000 | 12000 | |
| gaussians | 24,126 | 25,218 | x1.05 |
| training time (optimisation) | 65 min | 77 min | |
| held-out frames (within 0.3 s of a training frame) | 40 (3) | 40 (3) | |
| LPIPS on the fish (lower = closer to the photo) | 0.1571 | 0.1554 | -0.0018 |
| PSNR full crop (dB) | 26.73 | 26.79 | +0.06 |
| PSNR on the fish mask (dB) | 21.81 | 21.88 | +0.07 |
| sharpness ratio render / photo, grain-robust (1 = as sharp as the photo) | 0.761 | 0.784 | x1.03 |
| sharpness ratio, raw | 0.673 | 0.693 | x1.03 |
| sharp match (photo detail reproduced in place) | 0.722 | 0.728 | +0.007 |
| IoU with the SAM mask | 0.847 | 0.847 | +0.000 |
Verdict: same (within noise). LPIPS -0.0018, grain-robust sharpness x1.03 (sharper). Differences below 0.0034 LPIPS or x1.12 sharpness are within the run-to-run noise of training.
Held-out frames: fixed per fish (work/quality_exp/<fish>/heldout.json), evaluated identically for both models (test-time fit of pose, colour and bending with the gaussians frozen). Both models were trained on all frames of the same data set, so held-out frames near a training frame favour both equally; this is a like-for-like comparison of the two recipes, not a generalisation test.
Family: Pomacentridae 99%, Pomacanthidae 0%, Labridae 0% · agreement across crops 100% · 64 crops · bioclip-2.5 (hf-hub:imageomics/bioclip-2.5-vith14, open_clip, zero-shot)

| window | 48:00 – 58:00 |
| visits | 28: 48:09-48:12, 51:26-51:28, 51:57-51:59, 52:04-52:10, 52:15-52:18, 52:21-52:25, 52:30-52:38, 52:46-53:04, 53:08-53:11, 53:13-53:24, 53:26-53:31, 53:41-53:45, 53:53-53:55, 54:03-54:04, 54:13-54:16, 54:33-54:40, 54:44-54:47, 55:03-55:10, 55:32-55:35, 55:40-55:42, 55:58-56:02, 56:07-56:08, 56:27-56:28, 56:41-56:42, 57:14-57:16, 57:27-57:29, 57:33-57:35, 57:45-57:49 |
| frames (10 fps) detected / kept | 928 / 910 |
| valid poses (10 fps) | 883 |
| frames with background plate | 866 |
| median size | 123.0 px |
| 30 fps frames / valid poses | 739 / 600 |
| method | 4D GS, fins + bending + tail (30 fps) |
| model shown | v2 (gs_v2, quality experiment rollout) |
| iterations | 12000 |
| gaussians | 25218 |
| training time | 77 min |
| trainer validation PSNR full / masked | 28.0 / 21.1 dB |
| trainer validation IoU vs SAM mask | 0.883 |
| near-fish band PSNR (fins) | 29.8 dB |
| production status | done; gs_final = copy of fish3_hf/gs_fins_4d (10000 iters, not retrained) |
| visual note (curation) | Chromis dimidiata (chocolate-dip chromis), likely |






point_cloud.ply (canonical 3D gaussians) · poses_refined.json · model.pt (incl. per-frame 4D params) · species.json · previous version v1: gs_final point_cloud.ply