File size: 10,593 Bytes
81a3cde
e6bc55f
81a3cde
 
 
33e6d3f
81a3cde
33e6d3f
 
 
22cfde9
81a3cde
 
22cfde9
 
81a3cde
 
 
009ba6f
81a3cde
b584a01
 
 
 
 
 
68fa5fc
 
 
 
81a3cde
 
 
009ba6f
81a3cde
 
009ba6f
81a3cde
b584a01
 
 
 
 
 
 
 
 
81a3cde
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
009ba6f
81a3cde
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
009ba6f
81a3cde
 
 
 
 
 
 
 
009ba6f
81a3cde
 
 
 
 
 
 
 
 
009ba6f
81a3cde
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3055219
 
e6bc55f
 
 
 
3055219
 
 
 
81a3cde
 
 
 
 
009ba6f
 
5f8071b
81a3cde
5f8071b
 
 
 
 
 
81a3cde
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
<!doctype html>
<html lang="en" data-theme="light">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <title>Delta-V: Technical note, prototype 3</title>
    <link rel="icon" href="logo.svg" />
    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap" />
    <link rel="stylesheet" href="app.css?v=redesign-33" />
  </head>
  <body>
    <div id="site-loading" role="progressbar" aria-label="Loading" hidden></div>
    <script src="loading.js?v=redesign-33"></script>
    <main class="technical-page">
      <a href="/#about">← Back to Delta-V</a>
      <p class="eyebrow">TECHNICAL NOTE · 11 SEPTEMBER 2026 · PROTOTYPE 3</p>
      <h1>What the original model demo tests</h1>
      <p>
        Delta-V is a system for learned engineering surrogates built one
        physical-domain lane at a time; fluid dynamics is lane 1 and the only
        lane served today. Within that lane it compares one neural next-step
        prediction with the recorded next snapshot, and offers a separate
        table-based estimator of overall fluid outcomes. The six original
        examples show training-data behavior.
        Three additional official-test clips (rollout-test- IDs) provide f0–f10
        references for autoregressive playback. A separate six-window
        official-test check is reported below; broad generalization and a
        learned-adapter advantage are not established.
      </p>
      <h2>Model and artifacts</h2>
      <p>
        The original demo uses the epoch 59 model from
        <a
          href="https://huggingface.co/datasets/KrishMalik/deltav-fluid/tree/7bf3f989dcfab6d0f43ea482ab8f26ddbdec3752"
          >the published checkpoint revision</a
        >. The checkpoint was trained across turbulent radiative layer 2D,
        Rayleigh–Bénard convection and shear flow, with turbulent radiative
        layer as the primary set and the other two as joint co-training sets.
        Training used bounded slices of The Well at prototype budget, not the
        full trajectory sets; this training scale, rather than the
        architecture, is the main limit on current accuracy and rollout
        horizon. The FNO uses 32 × 32 spectral modes and 128 hidden channels.
        The live epoch is shown on the Model page. Runtime artifact downloads
        are pinned to the linked revision, so the served weights cannot change
        under the deployment without a code change.
      </p>
      <h2>Inputs, outputs and preprocessing</h2>
      <p>
        Four consecutive snapshots are mapped to density/buoyancy/tracer (the
        shared scalar channel), pressure, horizontal velocity and vertical
        velocity. Per-system means and standard deviations normalize each
        channel as (x − mean)/(std + 10⁻⁶). Bilinear resampling with
        align_corners=False produces 256 × 256 fields. The model receives
        [batch,16,256,256] and produces [batch,4,256,256]. Outputs are
        denormalized using the same statistics.
      </p>
      <p>
        These are fixed data mappings, not learned adapters. Native grids are
        128 × 384 for radiative cooling, 512 × 128 for convection and 256 × 512
        for shear flow. Displays preserve each physical domain’s aspect ratio
        and use simulation code units.
      </p>
      <h2>Measured quantities</h2>
      <ul>
        <li>
          <strong>Relative L2:</strong> ‖prediction − reference‖₂ /
          ‖reference‖₂. Undefined for a zero-norm reference.
        </li>
        <li>
          <strong>RMSE:</strong> square root of mean squared error, in the
          field’s code units.
        </li>
        <li>
          <strong>SSIM:</strong> scikit-image structural_similarity with the
          reference’s maximum minus minimum as data_range and library defaults
          (7 × 7 window). Undefined for constant reference fields.
        </li>
      </ul>
      <p>
        All scores use floating-point fields before quantization and a reference
        resampled to the model grid. The self-imposed v1 policy is strictly
        relative L2 &lt;15% for scalar and pressure; velocities have no
        quantitative target. SSIM is an image-structure measure and does not
        establish physical conservation. See the
        <a href="/#about">24-row measured results table</a> and
        <a href="/quality">machine-readable scores</a>.
      </p>
      <h2>Data provenance and time</h2>
      <p>
        Six bundled windows, two per served system, contain four input snapshots
        and one next-step reference. They come from training slices.
        The sample catalogue records window IDs, dial values, start
        indices, times and shapes. These bundled files lack complete original
        trajectory identifiers and are not used as the new test set. Moving a
        time control shows recorded snapshots; it is not a model rollout. Moving
        parameter sliders estimates aggregate outcomes from tables and does not
        change the field’s initial condition.
      </p>
      <h2>Transport, caching and timing</h2>
      <p>
        Predictions are computed once during startup and cached. The display
        endpoints send lossless grayscale PNG atlases of the same quantized
        8-bit values previously transported in NumPy arrays; the browser
        reconstructs the channel arrays before applying the established color
        maps. Full-precision quality scores accompany the images. Binary
        <code>/samples/{id}</code> and <code>/samples/{id}/predict</code> remain
        available. <code>POST /predict/field</code> returns floating-point
        predictions for correctly formatted inputs.
      </p>
      <p>
        The Settings page separates server startup, browser readiness, first
        comparison including sample load, and repeat cache retrieval. Original
        model computation is labeled separately. Timing varies by network and
        hardware; a 200 ms network response is not guaranteed.
      </p>
      <h2 id="evaluation">Held-out evaluation and fourth-system protocol</h2>
      <p>
        <strong>Notebook audit:</strong> the supplied training export reads only
        the official training split. Its joint-model validation uses
        a seeded random split of sliding windows, so neighboring windows from
        one trajectory can appear in both sets. Normalization is estimated
        before that split. The old validation loss is not trajectory-held-out.
        New tooling assigns whole trajectories before training and rejects
        overlap and validation/test data in normalization.
      </p>
      <p>
        <strong>Small official-test check:</strong> six predeclared windows, two
        source files per system, from the official test split. Each uses trajectory 0,
        four input snapshots and the fifth as reference. The selected starts are
        40 (radiative), 100 (convection), and 60 (shear). No training or tuning
        used these results. The checkpoint-to-notebook lineage is
        owner-supplied, not cryptographically established. This limited check
        does not replace a new fixed train/validation/test training run.
        <a href="heldout-results.json"
          >All scores, source revisions, identifiers and hashes</a
        >
        are published, including failed targets. See <a href="/#about">About</a>
        for the readable table.
      </p>
      <p>
        The evaluation tooling groups all windows from the same source
        trajectory, rejects overlap between train/validation/test, verifies
        local file hashes, and requires explicit checkpoint-exposure records
        before accepting held-out evaluation. Hold the test set fixed, select
        checkpoints using validation only, and report all four channels by
        trajectory and system. Test results must not guide tuning.
      </p>
      <p>
        The fourth research system is <code>euler_multi_quadrants_openBC</code>.
        Its source includes density, energy, pressure and momentum components;
        the fixed preprocessing derives velocities from momentum/density.
        Compare scratch training, full fine-tuning and a frozen backbone with
        learned 1 × 1 input/output projections. Use nested training fractions
        1%, 5%, 10%, 25%, 50%, 100%, identical splits and validation budgets,
        and report trainable parameters, wall time and per-channel errors. The
        supplied notebook excludes Euler from joint training, but includes a
        scratch-versus-full-fine-tuning experiment on fresh models. The owner
        subsequently supplied the converged 30-epoch two-arm result: losses
        0.0089 versus 0.0107, with a reported 16.3% lower final training loss
        for the pretrained start. These training measurements are not live API
        results. On real OpenFOAM data (October 2026) a pretrained start gave no
        help over training from scratch, so pretraining is on the roadmap.
        Only one gamma value was represented instead of four intended, due to a
        selection bug. No fine-tuned checkpoints were saved. See the
        <a href="/#probe">Generalization probe</a> for provenance and
        limitations. The new learned-adapter arm has 292 trainable real
        parameters; the three-arm runner is implemented but has not been run.
        Target normalization is fitted only on each training fraction,
        identically for all arms. Complete exposure records remain required for
        that experiment.
      </p>
      <h2>Inspect the results</h2>
      <p>Open the <a href="/#simulator">original model demo</a> to select a sample and compare its prediction with the recorded solver field. For the study workflow, visit <a href="/#evidence">Research</a>.</p>
      <h2>Anonymous usage counts</h2>
      <p>
        Event tracking stores only aggregate counts of fixed event names, with
        no user/session identifiers or arrays; it respects browser privacy
        signals and the Settings opt-out. Counts are public, can include
        automated traffic, and reset on restart. They cannot measure unique
        users or a person-level funnel. The host may independently retain
        access logs.
      </p>
    </main>
  </body>
</html>