Every model is trained for 500,000 steps with the same data and then runs the same test scene. This page shows which changes still give a usable solver at inference, and which do not.
Still open: the model without iteration (in training).
Scene dlayers_00396 (layered dress on a moving body), 4,040 solver steps. DAT is on with dynamic collision detection. “5 it · 15 mm” means 5 network iterations per step and a 15 mm collision query radius. Every model runs on the same PyTorch network path. Each line in a cell is one run.
The three criteria of the paper, recorded at every time step of the rollout on dlayers_00396 (4,040 steps, DAT on, 15 mm): the objective G after K iterations, the gradient norm ‖∇XG‖2 over the free vertices, and the gradient norm after K iterations divided by the gradient norm at the start of the step. The recorder is the one of the code base (experiments/ablation_statistics/run.py), changed only to accept a sewn scene. Both gradients use the final contact set of the step. Each metric has its mean and its median over the steps. A run counts as failed when any value becomes non-finite, as in the summary script of the code base. Green is 30 % or more below the baseline, red is 50 % or more above; G has no colour.
| Model | G | ‖∇XG‖2 | ‖∇XG(K)‖2 / ‖∇XG(0)‖2 | |||
|---|---|---|---|---|---|---|
| mean | median | mean | median | mean | median | |
Baseline (width 96)width_96 | 5.048 | 4.934 | 5.60 | 0.96 | 0.179 | 0.123 |
| Normalization × scale | ||||||
Per-node normalizationnorm_node_scale_global | 5.034 | 4.937 | 5.02 | 1.19 | 0.174 | 0.127 |
Per-node scalescale_per_node_scale | failed non-finite at step 50 of 4,040 | |||||
Both per nodenorm_node_scale_node | failed non-finite at step 107 of 4,040 | |||||
Baseline + magnitudenetwork_inputs_w_gradient_magnitude | 4.290 | 4.174 | 10.17 | 3.77 | 0.118 | 0.063 |
Per-node normalization + magnitudemag_norm_node_scale_global | 5.372 | 5.000 | 17.93 | 1.02 | 0.201 | 0.133 |
Per-node scale + magnitudemag_norm_global_scale_node | failed non-finite at step 48 of 4,040 | |||||
Both per node + magnitudemag_norm_node_scale_node | failed non-finite at step 100 of 4,040 | |||||
| Per-node scale with ring context | ||||||
1-ring contextscale_per_node_ring1 | failed non-finite at step 100 of 4,040 | |||||
2-ring contextscale_per_node_ring2 | failed non-finite at step 151 of 4,040 | |||||
4-ring contextscale_per_node_ring4 | failed non-finite at step 118 of 4,040 | |||||
8-ring contextscale_per_node_ring8 | failed non-finite at step 158 of 4,040 | |||||
16-ring contextscale_per_node_ring16 | failed non-finite at step 203 of 4,040 | |||||
32-ring contextscale_per_node_ring32 | failed non-finite at step 418 of 4,040 | |||||
| Width | ||||||
Width 16width_16 | failed non-finite at step 3,370 of 4,040 | |||||
Width 24width_24 | failed non-finite at step 421 of 4,040 | |||||
Width 32width_32 | failed non-finite at step 419 of 4,040 | |||||
Width 64width_64 | 4.747 | 4.310 | 14.73 | 8.81 | 0.167 | 0.125 |
Width 128width_128 | 5.033 | 4.889 | 5.90 | 1.14 | 0.203 | 0.145 |
Width 192width_192 | 5.014 | 4.868 | 5.68 | 1.15 | 0.180 | 0.127 |
Width 256width_256 | 5.184 | 5.358 | 6.41 | 1.06 | 0.194 | 0.127 |
| Step scale | ||||||
Per-iteration scalescale_per_iteration_scale | 5.252 | 4.933 | 20.69 | 5.64 | 0.246 | 0.146 |
No scalescale_wo_scale | 5.191 | 5.268 | 11.96 | 3.92 | 0.189 | 0.098 |
| Inputs | ||||||
No current gradientnetwork_inputs_wo_current_gradients | 9.602 | 7.772 | 100 | 79.88 | 0.716 | 0.721 |
No previous gradientnetwork_inputs_wo_previous_gradients | 5.366 | 4.747 | 25.59 | 14.10 | 0.326 | 0.234 |
No gradientsnetwork_inputs_wo_gradients | 3496 | 225 | 4249 | 755 | 1.000 | 1.000 |
No last updatenetwork_inputs_wo_displacements | 5.642 | 5.298 | 26.46 | 13.62 | 0.366 | 0.359 |
Last update / RMSnetwork_inputs_RMS_displacements | failed non-finite at step 252 of 4,040 | |||||
| Context window | ||||||
Depth 3context_window_context_window_3 | 5.025 | 4.920 | 4.82 | 1.00 | 0.213 | 0.162 |
Depth 5context_window_context_windows_5 | 5.032 | 4.930 | 4.38 | 0.86 | 0.204 | 0.159 |
| Model | G | ‖∇XG‖2 | ‖∇XG(K)‖2 / ‖∇XG(0)‖2 | |||
|---|---|---|---|---|---|---|
| mean | median | mean | median | mean | median | |
Baseline (width 96)width_96 | 5.021 | 4.917 | 1.17 | 0.19 | 0.060 | 0.037 |
| Normalization × scale | ||||||
Per-node normalizationnorm_node_scale_global | 5.034 | 4.925 | 1.29 | 0.16 | 0.049 | 0.034 |
Per-node scalescale_per_node_scale | failed non-finite at step 29 of 4,040 | |||||
Both per nodenorm_node_scale_node | failed non-finite at step 65 of 4,040 | |||||
Baseline + magnitudenetwork_inputs_w_gradient_magnitude | 5.022 | 4.913 | 1.71 | 0.25 | 0.075 | 0.048 |
Per-node normalization + magnitudemag_norm_node_scale_global | 5.029 | 4.928 | 1.10 | 0.21 | 0.059 | 0.039 |
Per-node scale + magnitudemag_norm_global_scale_node | failed non-finite at step 32 of 4,040 | |||||
Both per node + magnitudemag_norm_node_scale_node | failed non-finite at step 39 of 4,040 | |||||
| Per-node scale with ring context | ||||||
1-ring contextscale_per_node_ring1 | failed non-finite at step 53 of 4,040 | |||||
2-ring contextscale_per_node_ring2 | failed non-finite at step 78 of 4,040 | |||||
4-ring contextscale_per_node_ring4 | failed non-finite at step 68 of 4,040 | |||||
8-ring contextscale_per_node_ring8 | failed non-finite at step 80 of 4,040 | |||||
16-ring contextscale_per_node_ring16 | failed non-finite at step 115 of 4,040 | |||||
32-ring contextscale_per_node_ring32 | failed non-finite at step 242 of 4,040 | |||||
| Width | ||||||
Width 16width_16 | 4.797 | 4.848 | 4.50 | 0.47 | 0.084 | 0.051 |
Width 24width_24 | 5.027 | 5.034 | 6.75 | 0.44 | 0.125 | 0.071 |
Width 32width_32 | 5.018 | 4.873 | 3.91 | 0.29 | 0.110 | 0.052 |
Width 64width_64 | 5.011 | 4.913 | 2.20 | 0.27 | 0.081 | 0.044 |
Width 128width_128 | 5.028 | 4.927 | 1.69 | 0.19 | 0.057 | 0.036 |
Width 192width_192 | 5.022 | 4.916 | 1.37 | 0.20 | 0.051 | 0.034 |
Width 256width_256 | 5.018 | 4.912 | 1.50 | 0.18 | 0.056 | 0.034 |
| Step scale | ||||||
Per-iteration scalescale_per_iteration_scale | 4.928 | 4.936 | 7.86 | 2.61 | 0.246 | 0.082 |
No scalescale_wo_scale | 5.053 | 4.941 | 5.48 | 0.74 | 0.128 | 0.052 |
| Inputs | ||||||
No current gradientnetwork_inputs_wo_current_gradients | failed non-finite at step 58 of 4,040 | |||||
No previous gradientnetwork_inputs_wo_previous_gradients | 5.010 | 4.983 | 5.20 | 0.59 | 0.128 | 0.056 |
No gradientsnetwork_inputs_wo_gradients | 3504 | 237 | 4298 | 811 | 1.000 | 1.000 |
No last updatenetwork_inputs_wo_displacements | 5.160 | 5.198 | 7.68 | 1.72 | 0.181 | 0.132 |
Last update / RMSnetwork_inputs_RMS_displacements | failed non-finite at step 273 of 4,040 | |||||
| Context window | ||||||
Depth 3context_window_context_window_3 | 5.018 | 4.915 | 0.84 | 0.14 | 0.038 | 0.024 |
Depth 5context_window_context_windows_5 | 5.017 | 4.915 | 0.54 | 0.13 | 0.034 | 0.021 |
| Model | G | ‖∇XG‖2 | ‖∇XG(K)‖2 / ‖∇XG(0)‖2 | |||
|---|---|---|---|---|---|---|
| mean | median | mean | median | mean | median | |
Baseline (width 96)width_96 | 5.022 | 4.918 | 0.52 | 0.01 | 0.007 | 0.002 |
| Normalization × scale | ||||||
Per-node normalizationnorm_node_scale_global | 5.022 | 4.918 | 0.29 | 0.02 | 0.006 | 0.003 |
Per-node scalescale_per_node_scale | failed non-finite at step 10 of 4,040 | |||||
Both per nodenorm_node_scale_node | failed non-finite at step 41 of 4,040 | |||||
Baseline + magnitudenetwork_inputs_w_gradient_magnitude | 5.024 | 4.918 | 0.84 | 0.01 | 0.008 | 0.003 |
Per-node normalization + magnitudemag_norm_node_scale_global | 5.026 | 4.919 | 0.15 | 0.02 | 0.006 | 0.003 |
Per-node scale + magnitudemag_norm_global_scale_node | failed non-finite at step 14 of 4,040 | |||||
Both per node + magnitudemag_norm_node_scale_node | failed non-finite at step 29 of 4,040 | |||||
| Per-node scale with ring context | ||||||
1-ring contextscale_per_node_ring1 | failed non-finite at step 17 of 4,040 | |||||
2-ring contextscale_per_node_ring2 | failed non-finite at step 26 of 4,040 | |||||
4-ring contextscale_per_node_ring4 | failed non-finite at step 21 of 4,040 | |||||
8-ring contextscale_per_node_ring8 | failed non-finite at step 33 of 4,040 | |||||
16-ring contextscale_per_node_ring16 | failed non-finite at step 51 of 4,040 | |||||
32-ring contextscale_per_node_ring32 | failed non-finite at step 82 of 4,040 | |||||
| Width | ||||||
Width 16width_16 | 5.004 | 4.913 | 1.36 | 0.04 | 0.021 | 0.006 |
Width 24width_24 | 5.022 | 4.917 | 0.56 | 0.02 | 0.012 | 0.004 |
Width 32width_32 | 5.024 | 4.917 | 0.31 | 0.02 | 0.010 | 0.004 |
Width 64width_64 | 5.022 | 4.917 | 0.76 | 0.02 | 0.008 | 0.003 |
Width 128width_128 | 5.024 | 4.919 | 0.65 | 0.01 | 0.007 | 0.002 |
Width 192width_192 | 5.022 | 4.918 | 0.16 | 0.01 | 0.004 | 0.002 |
Width 256width_256 | 5.023 | 4.919 | 0.44 | 0.01 | 0.005 | 0.001 |
| Step scale | ||||||
Per-iteration scalescale_per_iteration_scale | 5.044 | 5.032 | 6.09 | 1.01 | 0.241 | 0.031 |
No scalescale_wo_scale | 5.001 | 4.816 | 1.56 | 0.38 | 0.089 | 0.045 |
| Inputs | ||||||
No current gradientnetwork_inputs_wo_current_gradients | failed non-finite at step 702 of 4,040 | |||||
No previous gradientnetwork_inputs_wo_previous_gradients | 4.919 | 4.777 | 0.84 | 0.03 | 0.034 | 0.005 |
No gradientsnetwork_inputs_wo_gradients | 3504 | 237 | 4298 | 811 | 1.000 | 1.000 |
No last updatenetwork_inputs_wo_displacements | 5.023 | 5.016 | 2.19 | 0.17 | 0.068 | 0.021 |
Last update / RMSnetwork_inputs_RMS_displacements | failed non-finite at step 856 of 4,040 | |||||
| Context window | ||||||
Depth 3context_window_context_window_3 | 5.021 | 4.918 | 0.38 | 0.01 | 0.005 | 0.002 |
Depth 5context_window_context_windows_5 | 5.022 | 4.918 | 0.16 | 0.01 | 0.004 | 0.001 |
The direct test of the code base (experiments/checkpoints/checkpoint_progress.py). Every model solves the same 300 saved states, each one time step, with fresh optimizer history. The states come from two motions of the repository's test split, simulated by the baseline at 60 iterations. Numbers are in percent; lower is better. “5 it”, “10 it”, “30 it”: share of the energy decrease that is still missing, median over the states. 100 % of the decrease is what the baseline reaches after 60 iterations on the same state. A value above 100 means the energy went up. “resid.”: gradient norm after 10 iterations relative to the start. “failed”: share of states with a non-finite result. Green is clearly better than the baseline, red is clearly worse. Two limits. The optimizer starts cold in every state (step scale 1e-4, no history), so the 5-iteration column mostly shows how fast a model finds its step size; in a rollout the history carries over. The trainings used all motions (split: all), so this is a like-for-like loss on fixed states, not a held-out test.
| Model | Without DAT (as in training) | With DAT | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 5 it | 10 it | 30 it | resid. 10 it | failed | 5 it | 10 it | 30 it | resid. 10 it | failed | |
Baseline (width 96)width_96 | 31.1 | 6.0 | 0.0 | 63.2 | 0 | 14.0 | 3.8 | 0.0 | 24.8 | 0 |
| Normalization × scale | ||||||||||
Per-node normalizationnorm_node_scale_global | 65.9 | 10.3 | 0.1 | 62.0 | 0 | 28.8 | 7.0 | 0.0 | 23.2 | 0 |
Per-node scalescale_per_node_scale | >999 | 230 | 0.4 | 97.9 | 0 | 440 | 37.9 | 0.1 | 31.8 | 0 |
Both per nodenorm_node_scale_node | 510 | 44.4 | 0.1 | 74.6 | 0 | 134 | 13.4 | 0.0 | 24.7 | 0 |
Baseline + magnitudenetwork_inputs_w_gradient_magnitude | 11.8 | 2.7 | 0.1 | 59.5 | 0 | 8.8 | 2.6 | 0.0 | 27.7 | 0 |
Per-node normalization + magnitudemag_norm_node_scale_global | 6.2 | 1.0 | 0.0 | 41.3 | 0 | 6.1 | 1.1 | 0.0 | 19.4 | 0 |
Per-node scale + magnitudemag_norm_global_scale_node | 12.8 | 1.9 | 0.3 | 54.1 | 0 | 10.4 | 1.9 | 0.1 | 24.4 | 0 |
Both per node + magnitudemag_norm_node_scale_node | 106 | 6.9 | 0.2 | 64.7 | 0 | 34.9 | 3.8 | 0.1 | 23.9 | 0 |
| Per-node scale with ring context | ||||||||||
1-ring contextscale_per_node_ring1 | 313 | 34.0 | 0.0 | 75.1 | 0 | 110 | 9.7 | 0.1 | 28.4 | 0 |
2-ring contextscale_per_node_ring2 | 225 | 13.8 | 0.1 | 76.1 | 0 | 58.6 | 5.5 | 0.1 | 30.2 | 0 |
4-ring contextscale_per_node_ring4 | 124 | 13.6 | 0.1 | 81.7 | 0 | 40.0 | 5.1 | 0.0 | 28.2 | 0 |
8-ring contextscale_per_node_ring8 | 127 | 9.0 | 0.0 | 73.5 | 0 | 44.8 | 4.3 | 0.0 | 27.0 | 0 |
16-ring contextscale_per_node_ring16 | 70.4 | 4.9 | 0.0 | 74.4 | 0 | 22.1 | 2.3 | 0.0 | 25.4 | 0 |
32-ring contextscale_per_node_ring32 | 53.1 | 4.7 | 0.0 | 67.0 | 0 | 22.3 | 3.1 | 0.0 | 25.6 | 0 |
| Width | ||||||||||
Width 16width_16 | 41.0 | 4.8 | 0.5 | 67.4 | 0 | 21.9 | 5.5 | 0.2 | 26.3 | 0 |
Width 24width_24 | 28.7 | 2.8 | 0.2 | 68.7 | 0 | 13.6 | 2.8 | 0.1 | 23.9 | 0 |
Width 32width_32 | 23.7 | 3.0 | 0.0 | 73.1 | 0 | 14.8 | 2.5 | 0.0 | 27.4 | 0 |
Width 64width_64 | 33.0 | 4.1 | 0.1 | 67.5 | 0 | 14.5 | 3.4 | 0.0 | 25.8 | 0 |
Width 128width_128 | 31.9 | 2.4 | 0.0 | 57.1 | 0 | 14.2 | 2.1 | 0.0 | 24.4 | 0 |
Width 192width_192 | 31.5 | 2.3 | 0.0 | 66.8 | 0 | 13.1 | 2.2 | 0.0 | 24.4 | 0 |
Width 256width_256 | 22.7 | 2.0 | 0.0 | 62.4 | 0 | 11.7 | 1.8 | 0.0 | 24.7 | 0 |
| Step scale | ||||||||||
Per-iteration scalescale_per_iteration_scale | 147 | 7.8 | 0.1 | 95.8 | 0 | 20.7 | 3.9 | 0.0 | 28.6 | 0 |
No scalescale_wo_scale | >999 | 200 | 5.0 | 138 | 0 | 72.7 | 11.9 | 2.1 | 34.6 | 0 |
| Inputs | ||||||||||
No current gradientnetwork_inputs_wo_current_gradients | 93.5 | 18.1 | 5.2 | 84.0 | 0 | 51.5 | 19.7 | 5.5 | 52.8 | 0 |
No previous gradientnetwork_inputs_wo_previous_gradients | 11.1 | 1.8 | 0.5 | 51.7 | 0 | 15.7 | 2.7 | 0.1 | 24.7 | 0 |
No gradientsnetwork_inputs_wo_gradients | 126 | 126 | 126 | 108 | 0 | 108 | 108 | 108 | 101 | 0 |
No last updatenetwork_inputs_wo_displacements | 208 | 29.3 | 0.8 | 87.9 | 0 | 24.1 | 8.4 | 0.6 | 28.2 | 0 |
Last update / RMSnetwork_inputs_RMS_displacements | 87.9 | 9.9 | 0.0 | 93.5 | 0 | 24.8 | 3.3 | 0.0 | 33.4 | 0 |
| Context window | ||||||||||
Depth 3context_window_context_window_3 | 21.7 | 2.4 | 0.0 | 59.9 | 0 | 10.5 | 1.1 | 0.0 | 24.1 | 0 |
Depth 5context_window_context_windows_5 | 21.9 | 1.3 | 0.1 | 59.5 | 0 | 12.3 | 1.4 | 0.0 | 21.8 | 0 |
Gradient normalization: the gradient input is divided by the RMS of the whole mesh (global) or by the size of the gradient of that vertex (per node). Step scale: one learned scale per axis for the whole mesh (global) or one per vertex (per node). Magnitude input: log10 of the divisor as one more input channel.
width_96scale_per_node_scalenorm_node_scale_globalnorm_node_scale_nodenetwork_inputs_w_gradient_magnitudemag_norm_global_scale_nodemag_norm_node_scale_globalmag_norm_node_scale_node| Variant | 5 it · 15 mm edgedepthdist. | 10 it · 15 mm edgedepthdist. | 5 it · 7 mm edgedepthdist. | 30 it · 15 mm edgedepthdist. |
|---|---|---|---|---|
Baselinewidth_96 | OK6.110.311 / 49 OK2.71.810 / 32 | OK1.97.46 / 11 | OK4.11.215 / 47 | OK1.95.73 / 5 |
Per-node normalizationnorm_node_scale_global | OK4.72.911 / 26 OK4.21.610 / 21 | OK2.25.95 / 5 | OK4.02.617 / 123 | OK1.96.83 / 4 |
Per-node scalescale_per_node_scale | NaN · step 60 NaN · step 60 | NaN · step 60 | NaN · step 60 | NaN · step 60 |
Both per nodenorm_node_scale_node | NaN · step 120 NaN · step 120 | NaN · step 60 | NaN · step 120 | NaN · step 60 |
Baseline + magnitudenetwork_inputs_w_gradient_magnitude | far off7.931.7116 / 202 far off9.210.3109 / 255 | OK1.95.17 / 10 | NaN · step 4040 | – |
Per-node normalization + magnitudemag_norm_node_scale_global | OK7.810.813 / 61 OK7.16.513 / 50 | OK2.63.36 / 10 | OK7.84.322 / 42 | – |
Per-node scale + magnitudemag_norm_global_scale_node | NaN · step 60 NaN · step 60 | NaN · step 60 | NaN · step 60 | – |
Both per node + magnitudemag_norm_node_scale_node | NaN · step 120 NaN · step 120 | NaN · step 60 | NaN · step 120 | – |
The scale head of a vertex reads the mean of its k-ring neighbourhood (network.scale_context_rings). “cut s” means solver.truncated_scale: true: at inference the per-vertex scale follows the DAT cut. All these models were trained without DAT.
| Variant | 5 it · 15 mm | 5 it · 15 mm · cut s | 10 it · 15 mm | 10 it · 15 mm · cut s | 5 it · 7 mm | 5 it · 7 mm · cut s | 30 it · 15 mm | 30 it · 15 mm · cut s |
|---|---|---|---|---|---|---|---|---|
Per-node scaleno neighbourhoodscale_per_node_scale | NaN · step 60 NaN · step 60 | broken · step 120 broken · step 120 | NaN · step 60 | broken · step 120 | NaN · step 60 | broken · step 120 | NaN · step 60 | broken · step 60 |
1-ring contextscale_per_node_ring1 | NaN · step 120 NaN · step 120 | broken · step 180 broken · step 120 | NaN · step 60 | broken · step 120 | NaN · step 120 | broken · step 120 | NaN · step 60 | broken · step 60 |
2-ring contextscale_per_node_ring2 | NaN · step 180 NaN · step 180 | broken · step 360 broken · step 180 | NaN · step 120 | broken · step 240 | NaN · step 180 | broken · step 300 | NaN · step 60 | broken · step 60 |
4-ring contextscale_per_node_ring4 | NaN · step 180 NaN · step 180 | broken · step 300 broken · step 180 | NaN · step 120 | broken · step 120 | NaN · step 180 | broken · step 180 | NaN · step 60 | broken · step 60 |
8-ring contextscale_per_node_ring8 | NaN · step 180 NaN · step 180 | broken · step 180 broken · step 180 | NaN · step 120 | broken · step 120 | NaN · step 180 | broken · step 240 | NaN · step 60 | broken · step 120 |
16-ring contextscale_per_node_ring16 | broken · step 240 NaN · step 240 | broken · step 240 broken · step 240 | NaN · step 120 | broken · step 120 | NaN · step 240 | broken · step 240 | NaN · step 60 | broken · step 120 |
32-ring contextscale_per_node_ring32 | broken · step 300 NaN · step 300 | broken · step 300 broken · step 360 | NaN · step 300 | broken · step 240 | broken · step 360 | broken · step 300 | NaN · step 120 | broken · step 120 |
| Variant | 5 it · no DAT edgedepthdist. | 30 it · no DAT edgedepthdist. |
|---|---|---|
Baselinewidth_96 | OK4.62.427 / 69 | OK2.04.18 / 18 |
Per-node normalizationnorm_node_scale_global | OK3.74.116 / 31 | OK1.95.58 / 18 |
Per-node scalescale_per_node_scale | NaN · step 60 | NaN · step 60 |
Both per nodenorm_node_scale_node | broken · step 180 | broken · step 120 |
Same network and training, only the latent width changes. Width 96 is the main configuration.
| Variant | 5 it · 15 mm edgedepthdist. | 10 it · 15 mm edgedepthdist. | 5 it · 7 mm edgedepthdist. | 30 it · 15 mm edgedepthdist. |
|---|---|---|---|---|
Width 16width_16 | far off12.614.1156 / 179 far off10.97.6165 / 164 | OK5.23.326 / 40 | far off8.817.7137 / 157 | – |
Width 24width_24 | NaN · step 420 NaN · step 480 NaN · step 480 | OK4.63.538 / 114 | NaN · step 1200 | – |
Width 32width_32 | broken · step 240 broken · step 360 | OK3.01.311 / 51 | broken · step 240 | – |
Width 64width_64 | lost4.31.5250 / 5.2 m lost4.21.3230 / 7.5 m | OK1.94.88 / 14 | lost8.21.488 / 7.1 m | – |
Width 96baselinewidth_96 | OK6.110.311 / 49 OK2.71.810 / 32 | OK1.97.46 / 11 | OK4.11.215 / 47 | OK1.95.73 / 5 |
Width 128width_128 | OK6.04.513 / 44 OK9.016.115 / 54 | OK1.95.87 / 9 | OK7.011.414 / 48 | – |
Width 192width_192 | OK4.13.48 / 34 OK6.07.88 / 39 | OK1.96.04 / 8 | OK5.95.311 / 53 | OK1.95.73 / 4 |
Width 256width_256 | OK6.55.017 / 46 OK5.311.717 / 43 | OK1.95.010 / 14 | OK8.111.918 / 53 | – |
The scale ablations of ablations/2026_11.md.
| Variant | 5 it · 15 mm edgedepthdist. | 10 it · 15 mm edgedepthdist. | 5 it · 7 mm edgedepthdist. | 30 it · 15 mm edgedepthdist. |
|---|---|---|---|---|
Global scalebaselinewidth_96 | OK6.110.311 / 49 OK2.71.810 / 32 | OK1.97.46 / 11 | OK4.11.215 / 47 | OK1.95.73 / 5 |
Per-iteration scalescale_per_iteration_scale | far off7.16.5100 / 167 far off8.425.7119 / 181 | OK5.42.523 / 80 | far off9.511.250 / 163 | – |
Per-node scalescale_per_node_scale | NaN · step 60 NaN · step 60 | NaN · step 60 | NaN · step 60 | NaN · step 60 |
No scalescale_wo_scale | OK5.34.738 / 76 broken · step 2160 | OK4.64.931 / 56 | OK7.27.138 / 106 | – |
No iterationno scale, 1 iteration per stepscale_wo_iteration | training step 423,400 of 500,000 | |||
One input removed or changed at a time.
| Variant | 5 it · 15 mm edgedepthdist. | 10 it · 15 mm edgedepthdist. | 5 it · 7 mm edgedepthdist. | 30 it · 15 mm edgedepthdist. |
|---|---|---|---|---|
All inputsbaselinewidth_96 | OK6.110.311 / 49 OK2.71.810 / 32 | OK1.97.46 / 11 | OK4.11.215 / 47 | OK1.95.73 / 5 |
No current gradientnetwork_inputs_wo_current_gradients | NaN · step 2220 NaN · step 2160 | NaN · step 120 | NaN · step 1320 | – |
No previous gradientnetwork_inputs_wo_previous_gradients | lost7.019.1180 / 8.7 m NaN · step 3900 | OK4.26.623 / 68 | far off5.35.8164 / 242 | – |
No gradientscurrent and previous removednetwork_inputs_wo_gradients | broken · step 2220 | broken · step 2400 | – | – |
No last updatenetwork_inputs_wo_displacements | broken · step 1740 OK11.423.629 / 90 | OK6.03.312 / 34 | broken · step 1200 | – |
Last update / RMSinstead of / step scalenetwork_inputs_RMS_displacements | NaN · step 360 NaN · step 180 | NaN · step 2340 | OK4.214.515 / 78 | – |
+ gradient magnitudenetwork_inputs_w_gradient_magnitude | far off7.931.7116 / 202 far off9.210.3109 / 255 | OK1.95.17 / 10 | NaN · step 4040 | – |
Number of message-passing rounds per iteration.
| Variant | 5 it · 15 mm edgedepthdist. | 10 it · 15 mm edgedepthdist. | 5 it · 7 mm edgedepthdist. | 30 it · 15 mm edgedepthdist. |
|---|---|---|---|---|
Depth 1baselinewidth_96 | OK6.110.311 / 49 OK2.71.810 / 32 | OK1.97.46 / 11 | OK4.11.215 / 47 | OK1.95.73 / 5 |
Depth 3shared weightscontext_window_context_window_3 | OK3.817.711 / 71 OK4.54.512 / 42 | OK2.28.04 / 5 | OK3.11.719 / 42 | – |
Depth 5shared weightscontext_window_context_windows_5 | OK3.90.89 / 20 OK4.81.89 / 21 | OK2.15.03 / 6 | OK5.40.512 / 33 | OK2.46.33 / 4 |
Loss: median over the last 50,000 steps of the logged loss (energy after the update; the samples change, so small differences mean nothing). Restarts: how often the training pool started a new episode. Each run sees the same data, so more restarts than the baseline mean that more rollouts were cut short.
| Run | State | Loss | Restarts per 1,000 steps | vs. baseline |
|---|---|---|---|---|
width_16 | done | 0.58 | 37 | 1.0× |
width_24 | done | 0.51 | 36 | 1.0× |
width_32 | done | 0.46 | 36 | 1.0× |
width_64 | done | 0.43 | 36 | 1.0× |
width_96 | done | 0.23 | 36 | 1.0× |
width_128 | done | 0.22 | 36 | 1.0× |
width_192 | done | 0.31 | 36 | 1.0× |
width_256 | done | 0.31 | 36 | 1.0× |
norm_node_scale_global | done | 0.20 | 36 | 1.0× |
scale_per_node_scale | done | 1.73 | 100 | 2.8× |
norm_node_scale_node | done | 1.72 | 68 | 1.9× |
network_inputs_w_gradient_magnitude | done | 0.44 | 36 | 1.0× |
mag_norm_node_scale_global | done | 0.23 | 35 | 1.0× |
mag_norm_global_scale_node | done | 1.55 | 94 | 2.6× |
mag_norm_node_scale_node | done | 0.87 | 60 | 1.7× |
scale_per_node_ring1 | done | 0.88 | 64 | 1.8× |
scale_per_node_ring2 | done | 0.81 | 52 | 1.5× |
scale_per_node_ring4 | done | 0.62 | 50 | 1.4× |
scale_per_node_ring8 | done | 0.42 | 41 | 1.1× |
scale_per_node_ring16 | done | 0.21 | 37 | 1.0× |
scale_per_node_ring32 | done | 0.26 | 36 | 1.0× |
scale_per_iteration_scale | done | 0.35 | 36 | 1.0× |
scale_wo_scale | done | 0.41 | 36 | 1.0× |
scale_wo_iteration | training 85 % | 3.47 | 743 | 20.7× |
network_inputs_wo_current_gradients | done | 1.09 | 39 | 1.1× |
network_inputs_wo_previous_gradients | done | 0.35 | 35 | 1.0× |
network_inputs_wo_gradients | done | 109.43 | 258 | 7.2× |
network_inputs_wo_displacements | done | 0.56 | 37 | 1.0× |
network_inputs_RMS_displacements | done | 0.39 | 36 | 1.0× |
context_window_context_window_3 | done | 0.38 | 36 | 1.0× |
context_window_context_windows_5 | done | 0.28 | 36 | 1.0× |