josiecerrell/can-it-ford-speed-surface
Can It Ford: a (vehicle speed x flow velocity) load surface Hydrodynamic load on a passenger-car hull in a flooded roadway, measured as a function of two speeds kept as separate axes: the vehicle's speed over the ground, and the flow speed across the roadway. Status: PROVISIONAL, and deliberately not frozen This is a snapshot of an ensemble that is still being generated. A larger batch is running on the cluster at the time of writing and will add seeds and at… See the full description on the dataset page: https://huggingface.co/datasets/josiecerrell/can-it-ford-speed-surface.
<!-- The configs block above is load-bearing, do not delete it. Without it the Hub auto-loader globs all four CSVs into ONE config, they have different schemas (35, 10, 7 and 4 columns), and the build fails with DatasetGenerationCastError: "All the data files must have the same columns, but at some point there are 35 new columns". The viewer then goes dark and the PREVIEW silently falls back to the smallest file, so a reader sees a 5-row summary table where the 368-row surface should be. Declaring one config per file is the fix. -->
Can It Ford: a (vehicle speed x flow velocity) load surface
Hydrodynamic load on a passenger-car hull in a flooded roadway, measured as a function of two speeds kept as separate axes: the vehicle's speed over the ground, and the flow speed across the roadway.
Status: PROVISIONAL, and deliberately not frozen
This is a snapshot of an ensemble that is still being generated. A larger batch is running on the cluster at the time of writing and will add seeds and at least one finer grid. Every figure below is reproducible from the pinned source recorded at the bottom of this card, and the counts will grow.
Nothing here is a placeholder: the numbers are measured, not estimated. But if you are comparing against a later version of this dataset and the ensemble sizes differ, the later one is the better one.
Read this before you read a number
The vehicle is PRESCRIBED, not free. It is a rigid signed-distance-field collider moved along a path. It cannot slide, tip, float or be swept away, because those degrees of freedom are exactly what the scene removes.
No FORD or NO-FORD verdict is derivable from this dataset. It reports a LOAD. Whether that load moves a real vehicle depends on tyre-road friction, suspension and wheel state, none of which are in this scene. See Limitations.
Torque in the source is about the collider centre, not the centre of gravity, and is not carried into this table for that reason.
Why this dataset exists
A 105-paper literature search commissioned for this question found that vehicle-wading studies "reduce stability to failure thresholds (e.g., depth or depth x velocity), not a continuous safe-speed surface resolving vehicle speed independently from current velocity". This dataset is that surface.
That characterisation of the literature is a secondary-source claim. The papers were not read for this card, and the sentence above is quoted from the search's own summary.
The result, in one comparison
If a single relative speed determined the load, then two runs sharing v_rel_mag_ms would carry the same force. They do not.
Across nine ways of splitting one fixed relative speed, the load spans S = (max - min) / mean of 0.76 to 1.28, and S grows with speed: 1 m/s -> S=0.76, 2 m/s -> S=0.97, 3 m/s -> S=1.07, 4.5 m/s -> S=1.12, 6 m/s -> S=1.28.
Three spreads, and they are not the same size
Conflating them is the easiest way to misread this dataset.
Error bars drawn from seed scatter would be invisible and would imply the other two spreads do not exist.
A ratio quoted without its window is not weak, it is unfalsifiable
An earlier version of the source write-up reported this pair as 2.3x from the transient window f20-60. That figure has since been WITHDRAWN by its own author and marked in place rather than deleted, so the error stays visible.
The pair recomputed in every arm that holds both cells:
The transient arm discards 20 frames. This project's own settle audit found all 25 local runs need more than 8 discarded, minimum 29, median 48, so a 20-frame discard leaves a window that is still transient by the project's own criterion. The settled arms are the defensible ones.
The inversion is not one arm's opinion. It holds at 0.909 with one seed, 0.912 with five seeds at a different boundary-condition rate, and 0.851 on a finer grid, so it survives a change of seed, of BC rate, and of resolution. Per-cell seed spread is under 0.34 percent.
What this does NOT touch. The non-interchangeability result never rested on this pair, and the pair was always the weakest way to state it: the two cells differ in both variables and in \|vrel\|. The iso-\|vrel\| arcs hold relative speed exactly fixed and vary only the split, and that is where the result actually lives.
Reproducibility record
The same literature search reports that the field does not supply particle/grid counts, GPU model, wall time per simulated second, multi-GPU scaling or a runnable case in one place. So they are in one place here.
Particle counts, dx and depth-in-cells are measured from the shipped table itself. The timings are from the source write-up.
Peak observed GPU memory across the whole session was 4,069 MiB of 97,871 MiB. Memory was never the binding constraint, and it is more useful to say so than to imply the card is reporting a limit that was approached.
- GPU: NVIDIA GH200 120GB, driver 590.48.01, 97,871 MiB, TACC Vista, partition
gh. ONE card. Single GPU, not multi-GPU. - Engine: warpmpm on NVIDIA Warp 1.15.0. NOT Genesis.
- Rigid body: Yaris hull as an SDF collider at
--sdf-res 32.
Two qualifications, both from the source write-up: the water particle count varies with the seed (41,636 to 41,649), and every timing was measured with up to four concurrent jobs sharing the one card, so each is an upper bound rather than a dedicated-card benchmark.
Limitations, without which the data overstates itself
- Prescribed body. Stated above. This is the big one.
- No wheels, no suspension, no rolling degree of freedom. The hull is a solidified particle cloud. Converting a load into a movement verdict needs a tyre-road coefficient that this scene does not contain, and the published values span a wide range across different conditions that must not be merged:
Nihei et al 2025, "Full-scale experimental assessment of passenger vehicle stability in flooding flow", 10.1016/j.rineng.2025.107189. Title and standing checked against the Crossref record rather than assumed from a resolving link. It carries an erratum, 10.1016/j.rineng.2025.107527 (2025-10-01), which has not been read for this card; the figures above are from the original article. Not retracted. The same paper reports CD = 1.38 +/- 0.18 and that muR decays to about 40 percent of its initial maximum, so a criterion built on peak mu_R is unconservative.
Sliding friction and rolling resistance are different physical quantities; the span from 0.0242 to 0.78 is a factor of 32 across conditions, not a disagreement about one number. This project's own register records that quoting 0.30 as "the wet-road value" is refuted, and that Nihei's muR decays to about 40 percent of its initial maximum, so a criterion built on peak muR is unconservative.
- Three hulls appear in the source table and they are not interchangeable. The canonical Yaris hull carries 327,212 vertices (655,308 faces), against Silverado meshes of 2,108 and 48,706 vertices, a ratio of 155x. The
hullcolumn separates them. Note the naming is misleading: the file called "yaris_coarse" has far more vertices than the mesh called Silverado "fine". - Resolution is characterised, not converged. An ngrid=96 surface (2 seeds per cell) differs from the five-seed ngrid=64 surface by -19.5 to +40.6 percent across 20 cells (median 5.0). The g96 seed spread is 0.026 to 0.515 percent, so the grid effect is far larger than the seed noise at either resolution. No grid-converged claim should be read off this dataset: two grids cannot establish convergence, and this project's own record shows the displacement measure is non-monotone under refinement.
- `fz_settle_over_analytic_diagnostic` is a diagnostic, not a validation. It sits near 2.05 for the Yaris rows. Do not read it as a buoyancy check.
- Depth is fixed at 0.3 m in every row. This is a two-speed surface, not a three-parameter one.
Files
load_surface.csv, 368 records, one per run.surface_cells.csv, the 20-cell settled surface with per-cell mean, standard deviation and seed count.iso_vrel_arcs.csv, the split spread at each measured \|v_rel\|.window_comparison.csv, the same cells in both measurement windows.
Column notes
v_car_ms is the vehicle's speed over the ground along its own long axis. v_water_ms is the flow speed across the roadway, broadside to the vehicle. Both are ground-frame. v_rel_angle_deg_from_broadside is 0 when the relative velocity is purely broadside. force_horiz_mag_N is the magnitude of the time-mean horizontal reaction force, and equals hypot(force_mean_x_N, force_mean_y_N) to machine precision (verified on all 368 rows, worst relative mismatch 2.1e-16). family and family_role identify which experiment a row belongs to; do not pool families without reading family_note.
Provenance
Built from git blob 7eee079a7085c98e140ca61ea708ebb70003d71e (data/r9_speed_surface.tsv at commit 159bf7d in the development repository), pinned by content so it can be re-resolved.
No image, texture, HDRI or mesh is included: asset licence provenance for this project is unresolved, and the build refuses those paths rather than warning.
