Software measurement standards · ISO 25178 · ISO 21920 · ISO 16610

Analytic validation

Every parameter and surface operation is checked against analytic soft gauges: synthetic surfaces with known, closed-form answers. The specification is language-neutral: it is run against the JavaScript engine of this website, and any other implementation can be measured with the same yardstick.

Overview

Runs the live engine against the specification in a background thread (about 10 s).

Method

Soft gauges

A soft gauge (ISO 5436-2 / ISO 25178-7 "type F" software measurement standard) is a reference data set with known results. Here every gauge is a closed-form surface (planes, sinusoids, oblique Fourier series, egg-crates, triangle and pyramid fields, steps, spherical and cylindrical forms, Gaussian bumps, pocket arrays) or a prescribed height distribution (a piecewise-linear, sinusoidal or cubic material-ratio curve laid out as a ramp, in raster or in reordered form, including the softgauge families of Blateyron and Breton). The gauges are generated, not stored: spec.json holds each recipe, and every implementation builds the surface itself, then checks it against fingerprints (point count, mean, RMS, extremes, probe heights) before any case runs. A mismatch in the gauge can therefore never be mistaken for an error in a parameter.

Related work

The idea of judging software against mathematically defined surfaces instead of reference software goes back to the work of Todhunter et al. on mathematical reference standards for parameter calculation, filtration and form removal [1-5]. Blateyron and Breton formalised it for material-ratio parameters as mathematical softgauges with mathematical true values and published two families of Abbott curves [6], which are included here in full. Several other gauges follow Todhunter et al.: the cubic material-ratio curve and its reordered layouts [2], the parametric planes for Sdr [3], the Fourier-series surfaces for Gaussian filtering [1,4] and total least-squares form removal [5]. Their references are defined on the continuous surface, and the sampling error is estimated by extrapolating over resolutions. Here the gauges are laid out so that the reference also holds for the sampled grid, so implementations are judged at floating-point precision and the sampling error is reported exactly.

  1. L. Todhunter, R. Leach, S. Lawes, F. Blateyron, and P. Harris, “Development of mathematical reference standards for the validation of surface texture parameter calculation software,” J. Phys.: Conf. Ser., vol. 1065, Art. no. 082004, 2018, doi: 10.1088/1742-6596/1065/8/082004.
  2. L. Todhunter, R. Leach, S. Lawes, P. Harris, and F. Blateyron, “Mathematical approach to the validation of functional surface texture parameter software,” Surf. Topogr.: Metrol. Prop., vol. 7, no. 1, Art. no. 015020, 2019, doi: 10.1088/2051-672X/ab07ca.
  3. L. Todhunter, R. Leach, S. Lawes, P. Harris, and F. Blateyron, “Mathematical approach to the validation of field surface texture parameter software,” Surf. Topogr.: Metrol. Prop., vol. 8, no. 1, Art. no. 015010, 2020, doi: 10.1088/2051-672X/ab7367.
  4. L. Todhunter, R. Leach, and F. Blateyron, “Mathematical approach to the validation of surface texture filtration software,” Surf. Topogr.: Metrol. Prop., vol. 8, no. 4, Art. no. 045017, 2020, doi: 10.1088/2051-672X/abc0fb.
  5. L. Todhunter, R. Leach, and F. Blateyron, “Mathematical approach to the validation of form removal surface texture software,” Surf. Topogr.: Metrol. Prop., vol. 8, no. 4, Art. no. 045019, 2020, doi: 10.1088/2051-672X/abc737.
  6. F. Blateyron and S. Breton, “Mathematical softgauges for material ratio parameters,” Surf. Topogr.: Metrol. Prop., vol. 12, no. 3, Art. no. 035036, 2024, doi: 10.1088/2051-672X/ad6f2e.

Reference values

Each case states the reference value and its formula. Gauges are designed so that the sampled gauge also has a closed-form answer wherever possible: whole numbers of periods make height moments exact; kinks placed on grid lines make every finite difference exact; a cosine centred on the grid with whole periods is exactly orthogonal to every polynomial of degree ≤ 3, so levelling must return it unchanged; Gaussian bumps sampled finer than their width make Riemann sums exact to round-off. When the sampled value differs from the continuous one (for example Sa = (2A/P)·cot(π/P) instead of 2A/π), both are given: the implementation is judged against the sampled value with a floating-point tolerance, and the difference to the continuous value is reported as sampling error. That error is a property of the grid, not of the software.

Tolerances

Every tolerance is derived and its basis is stated next to the result: floating-point round-off for exact cases; the truncation of the Gaussian kernel at ±4σ for filter transmission (|ΔT| ≤ 1.3·10⁻⁴); the implementation's material-ratio resolution (classes of 0.01 %) propagated through the local slope of the curve for functional and volume parameters; the finite-field bias of the unbiased ACF estimator and the spline interpolation error for Sal and Str; half a caliper step for edge-based geometry fits. No tolerance is tuned to make a result pass.

Judging

A case passes if |value − reference| ≤ tolabs + tolrel·|reference|. Cases whose quantity is mathematically undefined (Str of a one-dimensional texture) pass only if the implementation reports it as undefined. Features an implementation does not offer are listed as not implemented, never as failures.

Gauges

All gauges of the specification. Previews are rendered in your browser from the same recipe the implementations use (heights mapped from low to high; profiles drawn as lines).

Results

Click a row for the formula, the sampled reference, the tolerance and its basis.

Sampling convergence

The difference between the sampled and the continuous gauge shrinks as the number of samples per period P grows. For all four quantities the closed forms give second-order convergence, so the relative sampling error falls by a factor of four per doubling of P. This is a property of the measurement grid. The implementations are judged against the sampled values (table below), so these curves show what any correct implementation measures.

Relative sampling error vs. samples per period
|sampled − continuous| / continuous, log–log