{
  "schema": "physrun.validation-manifest/1",
  "workbench": "EM-MAGNETOSTATIC",
  "sceneVersion": "physrun.em-magnetostatic/1",
  "scientificModelVersion": "em-magnetostatic/0.1.0",
  "scientificSpecificationPath": "docs/EM-MAGNETOSTATIC-scientific-spec-v1.md",
  "constantsSet": "CODATA-2022",
  "credibility": {
    "currentLabel": "Preview",
    "target": "separate T2 claims for vacuum analytic and 2D linear material models",
    "reason": "The kernel, WASM parity, browser, sharing, reproducible-report, and per-scene three-mesh/three-domain study gates are automated. The finite-domain material model still lacks accepted benchmark-wide convergence thresholds, interface, reciprocity, and independent-solver evidence; no T2 or T3 badge is asserted."
  },
  "models": [
    {
      "id": "biot-savart-3d-slice",
      "claim": "Prescribed three-dimensional vacuum current sources and magnetic dipoles evaluated on the declared world z=0 observation plane while retaining all three vector components",
      "numericBackend": "closed-form infinite-wire and dipole fields, stable complete-elliptic-integral circular-loop fields, controlled closed-path integration, and direct Rust f64 instruments",
      "boundaryModel": "analytic unbounded vacuum",
      "currentCredibility": "Preview"
    },
    {
      "id": "vector-potential-2d-extruded",
      "claim": "Finite rectangular translation-invariant two-dimensional Az boundary-value problem with prescribed Jz and piecewise-constant linear isotropic relative permeability",
      "numericBackend": "P1 triangular H1 finite elements with symmetric-Gauss-Seidel-preconditioned conjugate gradients in Rust f64",
      "boundaryModel": "finite magnetic-insulation truncation (Az constant), not infinity",
      "currentCredibility": "Preview"
    },
    {
      "id": "classical-test-particle-3d",
      "claim": "Non-relativistic three-dimensional test-particle motion in the directly evaluated vacuum magnetic field with no electric field or back reaction",
      "numericBackend": "three-dimensional Boris rotation in Rust f64 with declared domain, step, and relativistic-speed termination",
      "display": "x-y projection unless the trajectory is proved invariant in the observation plane",
      "currentCredibility": "Preview"
    }
  ],
  "wasmArtifact": {
    "path": "/wasm/em-magnetostatics.wasm",
    "abiVersion": 1,
    "precision": "f64",
    "bytes": 126706,
    "sha256": "bf9b028df60348bc36624362d91dd81fe42c2fc061b6c7084009dc1f0d15037f"
  },
  "evidenceGates": [
    {
      "id": "native-kernel-vv",
      "command": "cargo test -p phys-constants -p em-magnetostatics",
      "status": "automated",
      "covers": [
        "CODATA-2022 constant identity and uncertainty metadata",
        "infinite-wire magnitude, right-handed orientation, current reversal, and superposition",
        "circular-loop center and axis formulas",
        "general circular-loop complete elliptic integrals compared with an independent high-order Gauss reference",
        "fail-closed source exclusions and retained out-of-plane field components",
        "magnetic-dipole inverse-cube far field",
        "oriented Ampere-disk signed current and one-loop topology",
        "uniform-field flux and closed-sphere zero-flux diagnostics",
        "genuine versus projected planar trace classification",
        "uniform-field Boris orbit speed preservation and relativistic-limit failure",
        "constant Az, manufactured FEM convergence, discrete Ampere and boundary-flux diagnostics",
        "high-permeability solve behavior and direct element-curl probes"
      ]
    },
    {
      "id": "native-wasm-parity-and-abi",
      "command": "node scripts/verify-em-magnetostatic-wasm.mjs",
      "status": "automated",
      "covers": [
        "optimized wasm32 artifact and manifest contract",
        "ABI export surface and exact CODATA mu0 identity",
        "native/WASM f64 parity for analytic grids and direct probes",
        "native/WASM parity for Ampere circulation, magnetic flux, Boris trajectories, and resumable FEM",
        "hostile counts, invalid pointers, malformed source records, stale handles, and finite-input failure behavior"
      ]
    },
    {
      "id": "scene-report-and-compiler-tests",
      "command": "pnpm --filter @phys/web test",
      "status": "automated",
      "covers": [
        "strict versioned scenes, hostile-state rejection, and share-state round trips",
        "all eight official experiment contracts",
        "stable packed-source ABI and finite-solenoid or Helmholtz expansion",
        "source-weighted live-preview budgets and uniform-field particle-orbit oracles",
        "FEM material and current-density rasterization",
        "versioned notebook restoration, final-result-only evidence recording, reference uncertainty, solution-verification provenance, report JSON, and measurement CSV provenance"
      ]
    },
    {
      "id": "supported-browser-acceptance",
      "command": "pnpm test:magnetostatics",
      "status": "automated",
      "covers": [
        "Chromium, Firefox, and WebKit",
        "all eight official experiments and quantitative field oracles",
        "production CSP, application/wasm MIME, and Dedicated Worker execution",
        "interactive performance budgets for analytic and FEM presets",
        "live final-model field-line recomputation before drag release and final-quality recomputation after release",
        "functional source tools, direct instruments, continuum-versus-Boris particle oracles, Analyze evidence, three-mesh and three-domain studies, and honest FEM boundary disclosures",
        "field CSV, evidence JSON, scene sharing and reload",
        "landing and laboratory catalog links",
        "desktop canvas paint and 390 px mobile overflow acceptance"
      ]
    }
  ],
  "releasePolicy": {
    "unconvergedIsRecordableEvidence": false,
    "previewIsRecordableEvidence": false,
    "silentSingularitySoftening": false,
    "silentModelSubstitution": false,
    "finiteBoundaryMayBeCalledInfinity": false,
    "renderGridMayFeedQuantitativeInstruments": false,
    "canonicalPrecision": "f64",
    "claimsAreModelScoped": true
  },
  "openEvidence": {
    "vacuumAnalyticT2": [
      "External physics-review sign-off on the published kernel and measurement acceptance limits",
      "Public accessibility and classroom-device performance distributions"
    ],
    "linearMaterialT2": [
      "Published acceptance thresholds and benchmark-wide results for the implemented three-level mesh studies",
      "Published acceptance thresholds and benchmark-wide results for the implemented three-size exterior-domain studies",
      "Material-interface jump-condition benchmark suite",
      "Independent computational-electromagnetics solver comparison",
      "Multi-coil flux-linkage, inductance reciprocity, and nonnegative-energy gates"
    ],
    "particleModel": [
      "Three-time-step phase and drift convergence studies",
      "Nonuniform-field magnetic-moment and long-time behavior studies"
    ],
    "T3ValidatedObservables": [
      "Traceable coil geometry, current, Hall-probe calibration, pose, active-volume, ambient-field, and combined-uncertainty data",
      "Published raw measurements and analysis scripts for explicitly bounded observables"
    ]
  }
}
