Align-VAE: Aligning Attention and Geometry in VecSet VAEs for 3D Reconstruction
Organizations: The Hong Kong University of Science and Technology · Tencent Hunyuan
Abstract
Set-based variational autoencoders (VecSet VAEs) represent 3D shapes as compact sets of latent tokens. Although each token originates from a query at a sampled surface location, whether these latents truly align with geometry remains unclear. We investigate this alignment and identify four issues: (i) attention-sink-like tokens that attract queries from across the shape; (ii) spatially periodic repetitions in decoder attention responses; (iii) mismatched normal information in encoder and decoder query features; and (iv) missing supervision of the intrinsic relation between signed distance fields and surface normals. To address these issues, we introduce Align-VAE with four corresponding modifications: (i) a shared bank of learnable decoder tokens provides a workspace for global computation; (ii) distance-biased cross-attention guides retrieval toward nearby predicted spatial anchors; (iii) normal-free encoder queries align the two stages' access to normal information while retaining normals in the encoder keys and values; and (iv) a screened Poisson-inspired regularizer supervises surface values and normal-direction derivatives. These changes align latent retrieval and field prediction with geometry without enlarging the per-shape code. On the ABO dataset, Align-VAE reduces Chamfer distance by 26.6% compared to the standard VecSet VAE.
Figures & tables
| Method | Tokens | Objaverse | ABO | In-the-wild | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| CD | F1@ | F1@ | CD | F1@ | F1@ | CD | F1@ | F1@ | ||
| 0.01 | 0.001 | 0.01 | 0.001 | 0.01 | 0.001 | |||||
| Dora | 4096 | 5.208 | 98.90 | 21.15 | 5.052 | 98.49 | 22.31 | 4.317 | 99.97 | 24.03 |
| HY3D-2.1 | 4096 | 6.593 | 97.72 | 24.56 | 6.295 | 98.28 | 25.01 | 11.947 | 94.92 | 25.52 |
| VecSet VAE † | 4096 | 4.797 | 98.97 | 28.93 | 5.143 | 98.74 | 26.32 | 3.017 | 99.83 | 44.33 |
| VecSet VAE † | 8192 | 3.773 | 99.62 | 34.57 | 3.927 | 99.54 | 34.53 | 2.479 | 99.95 | 52.91 |
| Method | Tokens | Level 1 | Level 2 | Level 3 | Level 4 | Overall | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| CD | F1 | CD | F1 | CD | F1 | CD | F1 | CD | F1 | ||
| Dora | 4096 | 3.927 | 13.57 | 4.089 | 21.41 | 3.932 | 30.19 | 4.083 | 26.25 | 4.008 | 22.85 |
| HY3D-2.1 | 4096 | 99.117 | 11.78 | 66.173 | 17.04 | 58.317 | 15.15 | 13.855 | 24.43 | 59.365 | 17.10 |
| VecSet VAE † | 4096 | 2.683 | 69.97 | 2.132 | 62.24 | 3.030 | 49.40 | 5.761 | 33.77 | 3.402 | 53.84 |
| VecSet VAE † | 8192 | 2.547 | 74.21 | 2.053 | 64.00 | 2.732 | 52.65 | 11.883 | 36.61 | 4.804 | 56.87 |
| LATTICE † | 4096 | 2.990 | 64.18 | 2.937 | 55.14 | 3.557 | 46.29 | 4.792 | 29.23 | 3.569 | 48.71 |
| Variant | Component | Metric | ||||||
| Bank | Distance | Normal-free | Normal | CD | [email protected] | S-F | ||
| bias | queries | supervision | ||||||
| A0 | 3.723 | 35.15 | 97.30 | 12.83 | ||||
| A1 | 2.960 | 42.70 | 98.30 | 11.92 | ||||
| A2 | 2.809 | 45.99 | 98.44 | 11.61 | ||||
| A3 | 2.723 | 46.71 | 99.11 | 10.82 | ||||
| Variant | Local selection | Local mass | Bank mass | Response corr. | Normal error |
|---|---|---|---|---|---|
| (%) | (%) | (%) | (deg) | ||
| A0 | 0.076 | 3.05 | 0.00 | 0.392 | 12.83 |
| A1 | 0.063 | 13.80 | 31.19 | 0.344 | 11.92 |
| A2 | 0.043 | 9.77 | 54.27 | 0.052 | 11.61 |
| A3 | 100.000 | 53.82 | 53.17 | 0.034 | 10.82 |
| A4 | 100.000 | 46.73 | 48.69 | 0.031 | 14.48 |
Appendix figures & tables13 assets
Supplementary material from the paper’s appendix.
Appendix
| Parameter | Meaning | Setting | Experiments |
|---|---|---|---|
| Decoder bank size | 256 | A1–A4, Full | |
| Reference bandwidth | 0.097 | A2–A4, Full | |
| Reference token count | 4096; 8192 | A2–A4; Full | |
| Final prior strength | 1 | A2–A4, Full | |
| Prior schedule | Delay, then ramp | 10k, then 5k | A2–A4, Full |
| Anchor loss weight | 0.1 | A2–A4, Full |
| Metric | Symbol | Meaning | Unit |
|---|---|---|---|
| Local selection | Queries selecting one of 64 neighbors | Fraction | |
| Local mass | Attention on 64 nearest inputs | Fraction | |
| Most-selected input | — | Largest share of queries selecting one input | Fraction |
| Token mass | Conditional share of a shape token | Fraction | |
| Top-1% share | Mass on the top 1% of shape tokens | Fraction | |
| Mass entropy | Evenness of shape-token use | Unitless |
| Statistic | Volume queries | Input-surface queries |
|---|---|---|
| 19.50 [18.48, 20.61] | 9.83 [9.32, 10.39] | |
| 0.875 [0.871, 0.878] | 0.960 [0.959, 0.962] | |
| 0.953 [0.937, 0.969] | 0.304 [0.288, 0.319] | |
| 1.030 [1.001, 1.061] | 0.393 [0.370, 0.418] | |
| Uniform reference for | 1.244 [1.224, 1.266] | 0.764 [0.726, 0.804] |
| (mass weighted) | 0.893 [0.882, 0.905] | 0.354 [0.338, 0.371] |
| Surface mass rank | Lines through FPS origin | Lines through volume peak |
|---|---|---|
| 1 | 0.493 [0.456, 0.531] | 0.475 [0.434, 0.515] |
| 10 | 0.548 [0.524, 0.575] | 0.518 [0.491, 0.547] |
| 4097 (median) | 0.292 [0.268, 0.315] | 0.274 [0.250, 0.296] |
| Model | Tokens | CD | [email protected] | S-CD | [email protected] |
|---|---|---|---|---|---|
| A0: VecSet | 4096 | 3.723 | 35.15 | 3.049 | 97.30 |
| A1: + LB | 4096 | 2.960 | 42.70 | 2.803 | 98.30 |
| A2: + DB | 4096 | 2.809 | 45.99 | 2.759 | 98.44 |
| A3: + PQ | 4096 | 2.723 | 46.71 | 2.480 | 99.11 |
| A4: + NS | 4096 | 2.526 | 49.12 | 2.281 | 99.50 |
| Model | Tokens | KiB | Mem. | Encode | Decode | KV | Query |
| A0: VecSet | 4096 | 512 | 3.754 | 1273.9 | 53.96 | 0.466 | 2.189 |
| A1: + LB | 4096 | 512 | 3.755 | 1276.5 | 56.33 | 0.484 | 2.254 |
| A2: + DB | 4096 | 512 | 3.755 | 1275.3 | 56.34 | 0.495 | 2.146 |
| A3: + PQ | 4096 | 512 | 3.755 | 1275.6 | 56.46 | 0.494 | 2.148 |
| A4: + NS | 4096 | 512 | 3.755 | 1275.5 | 56.49 | 0.497 | 2.175 |
| VecSet VAE † | 4096 | 512 | 2.319 | 649.7 | 53.99 | 0.465 | 3.806 |
| Comparison | CD | [email protected] | |
|---|---|---|---|
| A0 A1 | -0.763 [-0.958, -0.455] | 7.55 [4.83, 9.47] | -0.91 [-1.02, -0.81] |
| A1 A2 | -0.150 [-0.408, 0.055] | 3.29 [0.02, 5.76] | -0.31 [-0.35, -0.27] |
| A2 A3 | -0.087 [-0.331, 0.107] | 0.72 [-2.11, 3.53] | -0.80 [-0.89, -0.71] |
| A3 A4 | -0.196 [-0.409, -0.007] | 2.42 [0.24, 5.63] | 3.66 [3.26, 4.07] |
| Model | Probe | ||||||
|---|---|---|---|---|---|---|---|
| A0 | Surface | 1.95 | 0.995 | 0.00 | 0.205 | 0.217 | 0.343 |
| A0 | Volume | 5.00 | 0.985 | 0.00 | 0.874 | 1.197 | 0.921 |
| A1 | Surface | 2.66 | 0.992 | 31.19 | 0.175 | 0.320 | 0.450 |
| A1 | Volume | 3.18 | 0.986 | 38.43 | 0.834 | 0.900 | 0.926 |
| A2 | Surface | 2.46 | 0.990 | 54.27 | 0.035 | 0.028 | 0.041 |
| A2 | Volume | 2.00 | 0.996 | 97.04 | 0.079 | 0.085 | 0.098 |
| Model | Query normals | Local selection | Local mass | CD |
|---|---|---|---|---|
| A0 | Clean | 0.076 | 3.05 | 4.037 |
| A0 | Zeroed | 0.052 | 3.04 | 16.414 |
| A0 | Perturbed | 0.078 | 3.05 | 4.382 |
| A0 | Random flips | 0.076 | 2.98 | 5.759 |
| A2 | Clean | 0.043 | 9.77 | 3.026 |
| A2 | Zeroed | 0.043 | 9.87 | 3.747 |
| Model | Angular error | High-curvature error | CD | [email protected] |
|---|---|---|---|---|
| A0: VecSet | 12.83 | 21.01 | 3.723 | 97.30 |
| A1: + LB | 11.92 | 19.09 | 2.960 | 98.30 |
| A2: + DB | 11.61 | 18.50 | 2.809 | 98.44 |
| A3: + PQ | 10.82 | 16.84 | 2.723 | 99.11 |
| A4: + NS | 14.48 | 18.14 | 2.526 | 99.50 |
Variational Autoencoders
Variational autoencoders are probabilistic encoder–decoder models for learning latent representations, generating data, and estimating uncertainty.
See all 209 papers