FlyMark: Training-Free Invisible Watermarking of 3D Gaussian Splatting via a Fruit Fly Connectome
Organizations: Department of Computer Science, Hong Kong Baptist University · Department of Electrical Engineering, City University of Hong Kong
Abstract
A trained 3D Gaussian Splatting (3DGS) scene ships as a portable parameter array that can be copied, pruned, requantized, or repackaged outside its training pipeline, so ownership evidence is most useful when it lives in the released parameters and remains checkable long after the embedding tooling is gone. Existing 3DGS watermarks typically tie embedding or extraction to scene optimization, a learned decoder, or rendered views, so the evidence survives only as long as a second trained artifact does. FlyMark instead writes a keyed message into the parameters a 3DGS file already stores. Its carrier directions are derived from the photoreceptors of a published connectome, a citable versioned artifact that fixes the geometry exhaustively and leaves nothing to tune per scene. A virtual observer reads cone-wise apparent luminance along a scene-normalized orbit from stored centers, colors, and opacities; a keyed dithered quantization-index-modulation code replicates each message bit across these observations; and one sparse bounded least-squares solve realizes the targets through achromatic shifts of existing degree-zero colors under a hard per-channel linear-RGB bound. All geometry and higher-order appearance parameters are preserved bit-identically, and extraction needs only cone queries, rounding, and majority voting. Under a model-domain threat model on synthetic and real scenes, FlyMark attains high clean bit accuracy and visual fidelity while cleanly separating matched from wrong keys.
Figures & tables
| Method | Cells | Bit acc. | PSNR | SSIM | LPIPS |
|---|---|---|---|---|---|
| FlyMark | 30 | 99.27 | 44.21 | 0.993 | 0.0021 |
| RandomCone-QIM | 30 | 95.94 | 43.36 | 0.991 | 0.0026 |
| SpatialHash-QIM | 30 | 83.12 | 44.41 | 0.991 | 0.0022 |
| GaussianMarker | 30 | 98.75 | 30.11 | 0.954 | 0.0411 |
| 3D-GSW | 30 | 86.67 | 32.59 | 0.970 | 0.0266 |
| GuardSplat | 24 | 62.11 | 41.06 | 0.996 | 0.0025 |
| Role | Cells | Bit acc. | PSNR | LPIPS |
|---|---|---|---|---|
| Development | 6 | 100.00 | 43.82 | 0.0015 |
| Validation | 6 | 98.96 | 48.48 | 0.0003 |
| Held-out | 12 | 98.96 | 45.20 | 0.0021 |
| External real | 27 | 96.64 | 38.02 | 0.0045 |
| Method | Injection | DC noise | fp16 | Quant. | Opacity noise | Opacity prune | Position noise | Random prune | Reorder | SH trunc. | Macro |
|---|---|---|---|---|---|---|---|---|---|---|---|
| FlyMark | 0.793 | 0.992 | 0.983 | 0.992 | 0.974 | 0.733 | 0.767 | 0.767 | 0.993 | 0.993 | 0.899 |
| RandomCone-QIM | 0.801 | 0.960 | 0.954 | 0.960 | 0.934 | 0.696 | 0.771 | 0.760 | 0.959 | 0.959 | 0.875 |
| SpatialHash-QIM | 0.539 | 0.827 | 0.718 | 0.837 | 0.814 | 0.544 | 0.535 | 0.609 | 0.831 | 0.831 | 0.709 |
| Variant | Clean bit acc. | Recomputed | Attacked bit acc. | PSNR (dB) |
|---|---|---|---|---|
| Full method | 100.00 | 99.22 | 68.91 | 46.02 |
| One orbit stop | 89.06 | 89.84 | 62.50 | 50.13 |
| No keyed dither | 91.41 | 89.84 | 66.41 | 46.29 |
| No scene-body gate | 99.22 | 99.22 | 68.75 | 45.83 |
| Differential cone pairs | 96.09 | 96.09 | 86.56 | 50.14 |
| Gamut only; no 0.02 bound | 100.00 | 100.00 | 78.44 | 30.62 |
| Method | Embed median (s) | Extract/test (s) | Peak RSS (GiB) | Params | Decoder MB |
|---|---|---|---|---|---|
| FlyMark | 72.23 | 2.90 | 0.65 | 0 | 0.00 |
| GaussianMarker | 218.57 | 13.20 | 13.00 | 291,456 | 5.74 |
| 3D-GSW | 1400.66 | 12.21 | 8.85 | 281,952 | 1.18 |
| GuardSplat | 226.46 | 13.59 | 1.94 | 205,344 | 1.22 |
Appendix figures & tables14 assets
Supplementary material from the paper’s appendix.
Appendix
| Dataset | Role | Scenes | Count | Cells |
|---|---|---|---|---|
| NeRF Synthetic | Development | Lego, Chair | 2 | 6 |
| NeRF Synthetic | Validation | Ficus, Materials | 2 | 6 |
| NeRF Synthetic | Held-out test | Drums, Hotdog, Mic, Ship | 4 | 12 |
| Mip-NeRF 360 | External real test | All nine scenes | 9 | 27 |
| Quantity | Value |
|---|---|
| Message length | 32 bits |
| Source carrier | 3,335 MaleCNS photoreceptors |
| Distinct directions | 825 after exact UV collapse |
| Orbit stops | 24 |
| Orbit radius / elevation / phase | / / |
| Scene center / radius | bounding-box midpoint / 95th-percentile distance |
| Method | Selected cells | Missing cells | Bit acc. |
|---|---|---|---|
| FlyMark | 30 | 0 | 97.19 |
| RandomCone-QIM | 30 | 0 | 98.02 |
| SpatialHash-QIM | 20 | 10 | 82.97 |
| GaussianMarker | 0 | 30 | — |
| 3D-GSW | 10 | 20 | 100.00 |
| GuardSplat | 1 | 19 | 56.25 |
| Attack | Severity | Scenes/cells | Bit acc. | Mean GT drop (dB) |
|---|---|---|---|---|
| Purification by opacity | 0.1 | 3 | 63.54 | 1.35 |
| Purification by opacity | 0.3 | 3 | 50.00 | 2.78 |
| Purification by opacity | 0.5 | 3 | 46.88 | 6.47 |
| Purification by scale | 0.1 | 3 | 70.83 | 1.30 |
| Purification by scale | 0.3 | 3 | 59.38 | 1.73 |
| Purification by scale | 0.5 | 3 | 57.29 | 3.63 |
| Attacker bound | Cells | Owner bit acc. | Attacker bit acc. | Final/base PSNR |
|---|---|---|---|---|
| 0.005 | 9 | 100.00 | 59.72 | 40.47 |
| 0.010 | 9 | 100.00 | 78.12 | 40.11 |
| 0.020 | 9 | 95.49 | 100.00 | 38.10 |
| Copies | Decoded key | Cells | Bit acc. | Colluded/base PSNR |
|---|---|---|---|---|
| 2 | non-member | 9 | 46.88 | 42.03 |
| 2 | member | 18 | 93.92 | 42.03 |
| 3 | member | 9 | 79.17 | 42.76 |
| Scene | Views | PSNR | SSIM | LPIPS |
|---|---|---|---|---|
| Bonsai | 37 | 38.74 | 0.988 | 0.0060 |
| Garden | 37 | 42.73 | 0.995 | 0.0015 |
| Chair | 134 | 44.35 | 0.998 | 0.0015 |
| Drums | 134 | 39.94 | 0.991 | 0.0028 |
| Ficus | 158 | 50.84 | 0.999 | 0.0002 |
| Hotdog | 126 | 42.32 | 0.994 | 0.0039 |
| Lattice | Mean NN angle | Cone radius | Covered cap | P95 nearest angle |
|---|---|---|---|---|
| FlyMark | 1.037 ∘ | 0.532 ∘ | 24.80% | 8.105 ∘ |
| Fibonacci | 1.770 ∘ | 0.881 ∘ | 70.41% | 1.101 ∘ |
| Regular hex | 1.631 ∘ | 0.812 ∘ | 58.97% | 1.434 ∘ |
| Random cone | 1.664 ∘ | 0.819 ∘ | 58.72% | 1.201 ∘ |
| Setting | Bit acc. | Recomputed | PSNR (dB) | LPIPS |
|---|---|---|---|---|
| Reference: , , | 100.00 | 99.22 | 46.02 | 0.0009 |
| Message length = 16 | 100.00 | 100.00 | 46.05 | 0.0009 |
| Message length = 64 | 96.48 | 96.48 | 46.32 | 0.0009 |
| 70.31 | 70.31 | 58.39 | 0.0000 | |
| 87.50 | 88.28 | 52.47 | 0.0002 | |
| 100.00 | 100.00 | 40.28 | 0.0032 |
| Condition | Bit accuracy (%) | 95% CI (%) |
|---|---|---|
| Marked PNG | 99.95 | 99.88 to 100.00 |
| Unmarked, matched key | 49.15 | 48.43 to 49.85 |
| Marked, wrong candidate key | 50.50 | 50.37 to 50.63 |