Mesh-Native Tokenisation: Retrofitting Foundation Models to Unstructured Data
Organizations: University of Cambridge
Abstract
Physics foundation models are an increasingly popular approach for building versatile emulators for spatiotemporal systems. They require tokenisation layers that lift physical field data into a latent representation suitable for dynamic processing. A typical choice for this layer is a convolutional encoder, which lifts field information in a locality-aware way and can be trained very efficiently. However, this choice cannot be applied to a large class of scientific computing problems where data are represented on unstructured meshes, for example simulations on domains with curved boundaries. Such data typically require graph neural network architectures, which are more expensive to train and, in the form currently used, encode information differently from their CNN counterparts, thus limiting the portability of physics emulators between these data regimes. In this work we introduce Mesh-Native Convolution (MNC), a locality-aware tokenisation layer that encodes unstructured mesh-based data in a way that is analogous to CNNs. This approach leads to models that can be trained once on mesh data and then deployed to arbitrary unstructured meshes, even if these are irregular, with minimal retraining. We show that this tokenisation approach can be used to retrofit grid-pretrained foundation models efficiently on unstructured meshes and provide theoretical results to confirm the consistency of this approach with classical CNN encoders. We demonstrate the favourable performance of this retrofitting approach, which in many cases reaches acceptable accuracy even in zero-shot deployment, and outperforms existing baselines after only a few epochs of fine-tuning, thus providing an efficient bridge between the two data regimes.
Figures & tables
| Overtone+MNC | GINO | LNO | Transolver++ | MeshGraphNets | |
| Next-step VRMSE | |||||
| TRL2D | |||||
| Active matter | |||||
| Shear flow | |||||
| 10-step rollout VRMSE | |||||
| TRL2D |
| Overtone+MNC | GINO | LNO | Transolver++ | MeshGraphNets | ||
|---|---|---|---|---|---|---|
| Next-step VRMSE | ||||||
| TRL2D | pretrained | |||||
| scratch | ||||||
| Active matter | pretrained | |||||
| scratch | ||||||
| Shear flow | pretrained | |||||
| Next-step VRMSE | 10-step rollout VRMSE | |
|---|---|---|
| Walrus+MNC, pre-trained, fine-tuned | ||
| Walrus+MNC, pre-trained, zero-shot | ||
| Walrus+MNC, random init, fine-tuned | ||
| MeshGraphNets, trained on cylinder flow | ||
| Transolver++, trained on cylinder flow | ||
| GINO, trained on cylinder flow |
Appendix figures & tables19 assets
Supplementary material from the paper’s appendix.
Appendix
| Dataset | Domain / resolution | Fields | Trajectories | Steps | Nodes | Edges |
|---|---|---|---|---|---|---|
| TRL2D | grid, | 72/9/9 | 101 | |||
| Shear flow | grid, periodic | tracer, | 896/112/112 | 200 | ||
| Active matter | grid, periodic | (11 ch.) | 175/24/26 | 81 | ||
| Cylinder flow | unstructured channel | 1000/100/100 | 600 | - |
| Model | Implementation | Configuration | Parameters |
|---|---|---|---|
| MNC retrofit ( Mukhopadhyay et al., 2026 ) | Overtone-family patch modulator | 12 space-time blocks, width 384, 6 heads; patch 16 (two , stride-4 stages) | 26,301,955 (same) |
| GINO ( Li et al., 2023c ) | neuraloperator 2.0.0, GINO_Poisson2d reference | FNO width 64, 4 layers, modes; latent lattice of 64 cells on the short axis; GNO radius 1.5 cells | 5,099,036 (5,122,381) |
| LNO ( Wang and Wang, 2024 ) | official code | width 640, 8 blocks, 512 latent modes, 8 heads | 29,901,316 (29,932,683) |
| Transolver++ ( Luo et al., 2025 ) | official code | 8 layers, width 256, 8 heads, 32 slices, MLP ratio 1 | 2,303,308 (2,326,611) |
| MeshGraphNets ( Pfaff et al., 2021 ) | PyTorch re-implementation | 15 message-passing steps, latent 128; 3-hidden-layer MLPs with LayerNorm | 2,879,748 (2,886,027) |
| Setting | Value |
|---|---|
| Optimiser | AdamW, , weight decay , gradient-norm clip 5 |
| Learning rate | for every architecture and stage |
| Grid pretraining | 50,000 updates at batch 16; 500 warm-up updates, cosine decay to |
| Mesh training (retrofit and scratch) | 20,000 updates at batch 8; 100 warm-up updates, constant rate |
| Seeds | three per mesh-training arm; retrofits start from the seed-0 source |
| Context / target | six frames / field increment |
| Tokeniser | TRL2D | Shear flow | Cylinder flow |
|---|---|---|---|
| CNN (grid) | — | ||
| MNC (ours) | |||
| GINO | |||
| LNO (32 modes) |
| Tokeniser | TRL2D | Shear flow |
|---|---|---|
| LNO (32 modes) | ||
| LNO (latent parity) | ||
| MNC (ours) |
| Tokeniser | TRL2D | Shear flow | Cylinder flow |
|---|---|---|---|
| CNN (grid) | 0.55 0.04 | 0.61 0.03 | — |
| MNC (ours) | 3.28 0.19 | 3.46 0.10 | 5.80 0.18 |
| GINO | 1.67 0.02 | 3.89 0.09 | 1.32 0.05 |
| LNO (32 modes) | 1.85 0.00 | 4.45 0.01 | 0.81 0.02 |
| Tokeniser | scratch | TRL2D | Shear flow | TRL2D Shear | |
|---|---|---|---|---|---|
| MNC (ours) | 0 | 1.116 0.083 | 1.086 0.161 | 0.999 0.413 | 0.556 0.034 |
| 25 | 0.042 0.001 | 0.039 0.000 | 0.039 0.002 | 0.037 0.002 | |
| 50 | 0.035 0.001 | 0.031 0.001 | 0.031 0.001 | 0.030 0.001 | |
| 100 | 0.026 0.000 | 0.024 0.001 | 0.025 0.001 | 0.023 0.000 | |
| GINO | 0 | 0.993 0.034 | 0.576 0.013 | 0.528 0.008 | 0.547 0.008 |
| 25 | 0.373 0.024 | 0.312 0.014 | 0.362 0.050 | 0.318 0.017 |