Papers › Shape: A Self-Supervised 3D Geometry Foundation Model for Industrial CAD Analysis

Shape: A Self-Supervised 3D Geometry Foundation Model for Industrial CAD Analysis

19 Apr 2026arXiv:2604.22826added by Syntology

Bayangmbe Mounmo, Sam Chien, Mile Mitrovic

Title, abstract, authors and date from arXiv's metadata (CC0); this paper is not in the Papers with Code archive (frozen 2025-07-28).

Industrial CAD workflows require robust, generalizable 3D geometric representations supporting accuracy and explainability. We introduce Shape, a self-supervised foundation model converting surface meshes into dense per-token embeddings. Shape combines a structured 3D latent grid, a multi-scale geometry-aware tokenizer (MAGNO) with cross-attention, and a transformer processor using grouped-query attention and RMSNorm. A learned reconstruction prior enables per-region attribution for explainable predictions. Pretraining uses masked-token reconstruction of normalized geometry statistics and multi-resolution contrastive consistency. The 10.9M-parameter backbone is pretrained on 61,052 CAD meshes from Thingi10K, MFCAD, and Fusion360. On a held-out split of 2,983 meshes, Shape achieves reconstruction R2 = 0.729 and 98.1% top-1 retrieval under the Wang-Isola protocol, with near-zero reconstruction train/val gap (contrastive scores use a larger evaluation pool). A 2x2 ablation on loss type and target-space normalization shows per-dimension normalization is critical: without it, performance collapses (R2 < 0.14, top-1 < 88%); with it, both losses succeed (R2 > 0.70, top-1 > 96%). Smooth-L1 offers secondary stability. Code, embeddings, and an interactive demo are released at https://github.com/simd-ai/shape.

PaperPDFCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2604.22826")

Code

Syntology Ran 43 of 56 code samples harvested from 1 repository linked to this paper; 13 have no recorded run. Of those that ran: 2 ran · our draft was wrong; 1 ran · fixture could not drive it; 40 ran with no contract checked.

By repository: found in paper text by Syntology: 56 samples from 1 repository, 43 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

simd-ai/shape found in paper text by Syntology report

Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

56 samples harvested; 43 ran; 0 honoured the contract we drafted; 13 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

2ran · our draft was wrong
1ran · fixture could not drive it
40ran
13unverified

Licence: 0 of the 56 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from simd-ai/shape. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

AGNOConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · d160adedda25517f · report
AGNOCrossAttention simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 4f4c78f7c76051f8 · report
AbsolutePositionalEmbedding simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 07d213e3cb9a2f42 · report
AttentionPooling simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · ff9afc61fb306bc7 · report
CaptionHead simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic fingerprinted Apache-2.0 (permissive) · a339279d6d4417b8 · report
CaptionHeadConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · dc76e36362b23d8e · report
ContrastiveLossConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · ca68e53a968d5371 · report
DataConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 463edc8ee218629c · report
GeometryEmbeddingHead simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 418e110d16e3ba85 · report
HeadsConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 105d3a2d222be9f7 · report
InpaintingLossConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · eb7bd17e640df8ac · report
InputConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · acd2d96ee6b26840 · report
LatentGridConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 215b97208d20f17b · report
LossConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 76188612bc7a1830 · report
LossWeightsConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 92031e3491c94a86 · report
MaskedTokenLossConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 725603e8e5ba9408 · report
OptimizerConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 23393fb573b18a66 · report
PartHeadConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 26cb5cc717421c56 · report
PartRegionHead simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic fingerprinted Apache-2.0 (permissive) · 0afa30e9334b9184 · report
Patchify3D simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 7432b1c66a23dc4d · report
PointNetGeoEmbed simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · b23cf17cf813e5e0 · report
PrimitiveHeadConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 7658b9f68d359870 · report
PrimitiveTopologyHead simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 4b111da8b10d3443 · report
ProcessorConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · c344140ed8fd30df · report
RMSNorm simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: invariant Apache-2.0 (permissive) · 7b2150d02885a569 · report
ReconTargetNormConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 0d456fb95c7c109f · report
ReductionHeadConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · f4c5dcf458c56262 · report
RegressionLossConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 16825ac1ef618e68 · report
RotaryPositionalEmbedding3D simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 058ecb051f9b2a69 · report
StatisticalGeoEmbed simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 61931e0f16bbaa2d · report
SupervisedLossConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 633d008720b4f0aa · report
SymmetryHead simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic fingerprinted Apache-2.0 (permissive) · 8cfffaee6f7c2cdb · report
SymmetryHeadConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · fbfaef57a31bfb63 · report
SyntheticLabelConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · e7c6518818e7cdff · report
TextAlignLossConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · b380afe83d3c5b91 · report
TokenizerConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · ead9afd4f32ed334 · report
TopologyReductionHead simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic fingerprinted Apache-2.0 (permissive) · a4bb268dbb694437 · report
TrainConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 017212f0bb2b0884 · report
Unpatchify3D simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · f9bf7649f3c73d8a · report
WandbConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 608edf322601f63e · report
_radius_search_native simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · our draft was wrong fingerprinted Apache-2.0 (permissive) · d0ab9fe65ddc34d7 · report
build_norm simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 1e8414eff8669ce6 · report
neighbor_search simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology ran · fixture could not drive it Apache-2.0 (permissive) · fc93b970d75d0498 · report
DatasetSourceConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 51e44312087daf7c · report
GAOTBackbone simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 2a31dffe86ec7a4b · report
GeoEmbedConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 3bc047171b1d9787 · report
GroupedQueryAttention simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 2f0b3c7754090b3f · report
MAGNOEncoder simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 383d064886cd4d9d · report
MAGNOLayer simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 70a9b007b8559a17 · report
NeighborConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 37f3cd919babe1e2 · report
ShapeConfig simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology unverified Apache-2.0 (permissive) · fe3ac79e1c8b9f47 · report
TransformerBlock simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 59d28bdee2ad39aa · report
TransformerProcessor simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology unverified Apache-2.0 (permissive) · da2b5dd019674e42 · report
_knn_search_torch_cluster simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 2f1cdef3a9fe1099 · report
_radius_search_torch_cluster simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 42bed68bf190ba14 · report
build_geo_embed simd-ai/shape/shape_foundation/models/gaot_backbone.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 00bf0b98342759be · report

Results from the paper

The Papers with Code archive ends with its 2025-07-28 snapshot. This paper's arXiv identifier, 2604.22826, was issued in April 2026, after that date, so the archive has no leaderboard rows for it.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections