# Cubic-Group Averaged 3D Convolution

- ID: 1975
- Canonical URL: https://synthcore.org/idea/1975/cubic-group-averaged-3d-convolution
- API JSON: https://synthcore.org/api/idea/1975.json
- API Markdown: https://synthcore.org/api/idea/1975.md
- Verification status: failed_benchmark
- Source: [arXiv:2608.08137](https://arxiv.org/abs/2608.08137)
- Category: architecture
- Solves: accuracy, sample-efficiency, scalability
- ML areas: cnn, training, data-augmentation, world-model
- Math tags: group-theory, geometry, linear-algebra
- Ratings: usefulness 8/10; difficulty 4/10; novelty 5/10

## Idea description

Constrain the first convolutional layer, or every convolutional layer, by averaging each kernel over the 48 rotations and reflections of the cubic point group. A scalar 3D field then receives exactly the same prediction after any lattice rotation or reflection, eliminating the need to learn equivalent crystallographic orientations from separate examples.

## Mathematical statement

Let G=O_h be the 48-element cubic point group, let K:Z^3 to R^(C_out times C_in) be an unconstrained convolution kernel, and let g u denote the lattice coordinate obtained by applying g in G to offset u. Define the group-averaged kernel K_eq(u)=|G|^(-1) sum over g in G of K(g u). For a scalar input field x and output y(r)=sum over u of K_eq(u)x(r+u), the output is invariant under simultaneous cubic transformation of the input coordinates: y[g x](r)=y[x](g^(-1)r), where (g x)(r)=x(g^(-1)r). For feature channels carrying nontrivial representations, replace the simple average by the projector P_R=|G|^(-1) sum over g in G of D_R(g) tensor T_g, where D_R(g) is the channel representation and T_g permutes kernel offsets.

## Key formulas

- $$K_{\mathrm{eq}}(\mathbf{u})=\frac{1}{|G|}\sum_{g\in O_h}K(g\mathbf{u}),\qquad |O_h|=48.$$
- $$y(\mathbf{r})=\sum_{\mathbf{u}\in\mathcal{N}}K_{\mathrm{eq}}(\mathbf{u})x(\mathbf{r}+\mathbf{u}),\qquad y[gx](\mathbf{r})=y[x](g^{-1}\mathbf{r}).$$
- $$P_R=\frac{1}{48}\sum_{g\in O_h}D_R(g)\otimes T_g,\qquad P_R^2=P_R.$$

## Implementation notes

Integrate this at the first 3D convolution of a dense CNN, U-Net, neural operator, or lattice world model. For a scalar-density baseline, store one learnable kernel K with offsets in a cubic neighborhood and construct K_eq on every forward pass by applying the 48 integer coordinate permutations and sign flips, summing, and dividing by 48; use ordinary pointwise nonlinearities afterward. For a stronger version, use representation-valued channels: classify channels as scalar, vector, or tensor types, apply the projector P_R to the tensor formed from channel indices and spatial offsets, and use only equivariant linear maps between types. Pseudocode is: sample x; for each offset u set K_eq[u]=mean(K[g(u)] for g in G); y=conv(x,K_eq); y=activation(y). The group action, orbit list, and averaging rule are taken directly from the paper; the only empirical quantities are the learned kernel weights and validation error. First run a cheap synthetic test on 32^3 voxel fields generated from randomly rotated anisotropic Gaussian blobs or cubic obstacle patterns. Compare an unconstrained CNN, a six-orientation augmentation baseline, and the averaged CNN at equal parameter count and training examples. Measure equivariance error E_eq=mean_g ||f(gx)-g f(x)||_2/||f(x)||_2 and prediction error. The quantitative prediction is E_eq at numerical precision, typically below 1e-6 in float32 apart from boundary effects, while the unconstrained model has nonzero error; with only one-sixth to one-twelfth of the orientation coverage, the equivariant model should retain the augmented baseline's accuracy within 10 percent. On lattice-fluid data, compare wall profiles and anisotropic pair correlations separately by crystallographic direction.

## Verification

- Status: failed_benchmark
- Mechanism evidence: yes
- Mechanism confirmed: no
- Practical verdict: inconclusive
- Verdict: Built a readable NumPy/PyTorch MVP for cubic-group kernel averaging over all 48 signed coordinate permutations. The mechanism manifested: projection idempotence and within-orbit spread were both 6.66e-16, averaged-convolution equivariance errors were 2.5e-16–1.25e-15 across the sweep, and unconstrained error increased from 0.027 at asymmetry 0.01 to 35.02 at 10. The orbit-count prediction also matched the measured values (radii 0–3: 1, 4, 10, 20); the tiny classifier tied the baseline at 1.0 accuracy, so no accuracy win was demonstrated.

### Mechanism check

- Verdict: Built a readable NumPy/PyTorch MVP for cubic-group kernel averaging over all 48 signed coordinate permutations. The mechanism manifested: projection idempotence and within-orbit spread were both 6.66e-16, averaged-convolution equivariance errors were 2.5e-16–1.25e-15 across the sweep, and unconstrained error increased from 0.027 at asymmetry 0.01 to 35.02 at 10. The orbit-count prediction also matched the measured values (radii 0–3: 1, 4, 10, 20); the tiny classifier tied the baseline at 1.0 accuracy, so no accuracy win was demonstrated.
- Confidence: 8/10
- Limitations: Only scalar channels and a single averaged first-layer-style convolution were implemented. Representation-valued projectors, six-orientation augmentation, non-periodic boundaries, larger datasets, speed/FLOP measurements, and crystallographic or lattice-fluid benchmarks were not tested. The tiny classifier saturated, so tied accuracy does not establish a sample-efficiency gain.

### Practical benchmark

- Paired seeds: 8
- Baseline mean: 0
- Idea mean: 0
- p-value: 0.25325
- Paired wins: 3/8
- Benchmark verdict: no significant win

## Artifacts

- [bench_report.json](https://synthcore.org/code/737/bench_report.json)
- [cubic_track.py](https://synthcore.org/code/737/cubic_track.py)
- [experiment.py](https://synthcore.org/code/737/experiment.py)
- [report.md](https://synthcore.org/code/737/report.md)
- [report_bench_2026-09-01T021212.md](https://synthcore.org/code/737/report_bench_2026-09-01T021212.md)
- [results.json](https://synthcore.org/code/737/results.json)
- [stage2_bench.py](https://synthcore.org/code/737/stage2_bench.py)
- [Download all files as ZIP](https://synthcore.org/download/737)

## Disclaimer

AI-generated research hypothesis, automatically tested. Not peer-reviewed.
