{
  "schema": "semiagora.particle-monte-carlo-feature-topography-metric-contract.v1",
  "version": "2026-08-27-v106",
  "experimentId": "SA-PROC-FEATURE-PMC-007",
  "executionMode": "original_precomputed_browser_replay_only",
  "roundDigits": 9,
  "sweep": {
    "rows": 6144,
    "configurations": 384,
    "physicalConfigurations": 192,
    "progressStates": 16,
    "axes": {
      "progress_state": 16,
      "process_mode": 2,
      "trench_aspect_ratio_state": 3,
      "source_angular_state": 2,
      "incident_species_state": 2,
      "surface_interaction_state": 2,
      "reflection_reemission_state": 2,
      "secondary_transport_state": 2,
      "evidence_posture": 2
    },
    "rowOrder": [
      "process_mode",
      "trench_aspect_ratio_state",
      "source_angular_state",
      "incident_species_state",
      "surface_interaction_state",
      "reflection_reemission_state",
      "secondary_transport_state",
      "evidence_posture",
      "progress_state"
    ],
    "fastestChangingAxis": "progress_state",
    "sampling": "Complete 16 x 2 x 3 x 2 x 2 x 2 x 2 x 2 x 2 Cartesian product in declared array order. Physics is simulated once for each of 192 physical configurations, then paired across two evidence postures without changing geometry, seed, or transport outputs."
  },
  "geometry": {
    "representation": "Two-dimensional row-major integer occupancy grid with open vacuum cells and four solid material states.",
    "widthCells": 40,
    "heightCells": 34,
    "surfaceRow": 8,
    "maskTopRow": 4,
    "maskThicknessCells": 4,
    "nominalFeatureDepthCells": 12,
    "materialCodes": {
      "vacuum": 0,
      "substrate": 1,
      "hardMask": 2,
      "primaryDeposit": 3,
      "secondaryRedeposit": 4
    },
    "etchInitialState": "Rows at and below surfaceRow are substrate. Hard-mask cells occupy maskTopRow through surfaceRow minus one outside the centered opening. The opening width is set by the aspect-ratio state.",
    "depositionInitialState": "Rows at and below surfaceRow are substrate, then a centered rectangular cavity from surfaceRow through surfaceRow plus nominalFeatureDepthCells minus one is cleared to vacuum.",
    "boundaryConditions": "Top, left, right, and bottom are open escape boundaries. The grid is not periodic. Hard-mask cells cannot be removed.",
    "profileEncoding": "Row-major run-length encoding as materialCode x runLength tokens separated by semicolons, plus SHA-256 of the uncompressed row-major material-code string.",
    "limitations": "The grid has no sub-cell curvature, continuous level set, mesh, surface diffusion, chemistry coverage field, electric field, chamber solution, energy distribution, physical unit, or calibrated material property."
  },
  "randomContract": {
    "algorithm": "xorshift32",
    "baseSeed": 2779096485,
    "seedInput": "experimentId|physical_configuration_key|baseSeed",
    "seedHash": "32-bit FNV-1a over UTF-8 bytes with Math.imul, followed by one nonzero guard value.",
    "uniformMapping": "Unsigned xorshift32 state divided by 4294967296.",
    "evidencePairing": "evidence_posture is excluded from the physical configuration key and therefore cannot alter any transport or geometry output.",
    "repeatabilityGate": "Every same-seed replay must be byte-identical at every progress state. Alternate-seed final geometry must differ for at least 80 percent of sampled nonzero-progress physical configurations while all conservation ledgers still close."
  },
  "axisDefinitions": {
    "progressStates": [
      { "id": "p00", "index": 0, "batchCount": 0, "normalizedProgress": 0.0 },
      { "id": "p01", "index": 1, "batchCount": 1, "normalizedProgress": 0.066666667 },
      { "id": "p02", "index": 2, "batchCount": 2, "normalizedProgress": 0.133333333 },
      { "id": "p03", "index": 3, "batchCount": 3, "normalizedProgress": 0.2 },
      { "id": "p04", "index": 4, "batchCount": 4, "normalizedProgress": 0.266666667 },
      { "id": "p05", "index": 5, "batchCount": 5, "normalizedProgress": 0.333333333 },
      { "id": "p06", "index": 6, "batchCount": 6, "normalizedProgress": 0.4 },
      { "id": "p07", "index": 7, "batchCount": 7, "normalizedProgress": 0.466666667 },
      { "id": "p08", "index": 8, "batchCount": 8, "normalizedProgress": 0.533333333 },
      { "id": "p09", "index": 9, "batchCount": 9, "normalizedProgress": 0.6 },
      { "id": "p10", "index": 10, "batchCount": 10, "normalizedProgress": 0.666666667 },
      { "id": "p11", "index": 11, "batchCount": 11, "normalizedProgress": 0.733333333 },
      { "id": "p12", "index": 12, "batchCount": 12, "normalizedProgress": 0.8 },
      { "id": "p13", "index": 13, "batchCount": 13, "normalizedProgress": 0.866666667 },
      { "id": "p14", "index": 14, "batchCount": 14, "normalizedProgress": 0.933333333 },
      { "id": "p15", "index": 15, "batchCount": 15, "normalizedProgress": 1.0 }
    ],
    "processModes": [
      {
        "id": "directional-rie-etch",
        "label": "Directional RIE etch teaching mode",
        "neutralPrimaryCarriesMaterial": 0,
        "ionPrimaryCarriesMaterial": 0
      },
      {
        "id": "sputter-trench-deposition",
        "label": "Sputter trench deposition teaching mode",
        "neutralPrimaryCarriesMaterial": 1,
        "ionPrimaryCarriesMaterial": 0
      }
    ],
    "trenchAspectRatioStates": [
      { "id": "ar-1", "nominalAspectRatio": 1.0, "openingWidthCells": 12 },
      { "id": "ar-2", "nominalAspectRatio": 2.0, "openingWidthCells": 6 },
      { "id": "ar-4", "nominalAspectRatio": 4.0, "openingWidthCells": 3 }
    ],
    "sourceAngularStates": [
      {
        "id": "angular-collimated",
        "directionSet": [
          { "dx": -1, "dy": 5, "weight": 1 },
          { "dx": 0, "dy": 5, "weight": 6 },
          { "dx": 1, "dy": 5, "weight": 1 }
        ]
      },
      {
        "id": "angular-spread",
        "directionSet": [
          { "dx": -2, "dy": 4, "weight": 1 },
          { "dx": -1, "dy": 4, "weight": 2 },
          { "dx": 0, "dy": 4, "weight": 2 },
          { "dx": 1, "dy": 4, "weight": 2 },
          { "dx": 2, "dy": 4, "weight": 1 }
        ]
      }
    ],
    "incidentSpeciesStates": [
      { "id": "species-ion-rich", "ionWeight": 6, "neutralWeight": 2 },
      { "id": "species-neutral-rich", "ionWeight": 2, "neutralWeight": 6 }
    ],
    "surfaceInteractionStates": [
      {
        "id": "surface-reactive-high",
        "reactionScale": 1.0,
        "primaryDepositionStick": 0.78,
        "secondaryRedepositionStick": 0.68
      },
      {
        "id": "surface-reactive-low",
        "reactionScale": 0.62,
        "primaryDepositionStick": 0.42,
        "secondaryRedepositionStick": 0.38
      }
    ],
    "reflectionReemissionStates": [
      {
        "id": "reflection-damped",
        "nonReactionReflectProbability": 0.18,
        "diffuseFraction": 0.25,
        "maxBounces": 1
      },
      {
        "id": "reflection-reemission-active",
        "nonReactionReflectProbability": 0.62,
        "diffuseFraction": 0.75,
        "maxBounces": 3
      }
    ],
    "secondaryTransportStates": [
      { "id": "secondary-suppressed", "spawnProbabilityPerIonRemoval": 0.12 },
      { "id": "secondary-enabled", "spawnProbabilityPerIonRemoval": 0.55 }
    ],
    "evidencePostures": [
      { "id": "assumption-only", "scoreBonus": 0, "replacementSlot": 0 },
      { "id": "owned-profile-slot-ready", "scoreBonus": 10, "replacementSlot": 1 }
    ]
  },
  "transportConstants": {
    "primaryParticlesPerBatch": 48,
    "rayStepCells": 0.25,
    "maxRaySteps": 520,
    "launchMarginCells": 3,
    "ionEtchBase": 0.35,
    "ionEtchAlignmentGain": 0.55,
    "neutralEtchBase": 0.3,
    "neutralEtchGrazingGain": 0.25,
    "primaryDepositBase": 0.55,
    "primaryDepositAlignmentGain": 0.45,
    "ionResputterScale": 0.32,
    "ionResputterBase": 0.35,
    "ionResputterAlignmentGain": 0.65,
    "secondaryStickBase": 0.65,
    "secondaryStickAlignmentGain": 0.35,
    "probabilityCap": 0.95,
    "bottomStarvationProgressFloor": 0.4,
    "bottomStarvationFluxThreshold": 0.08,
    "lateralUndercutReviewCells": 2,
    "readinessScoreBase": 10,
    "readinessConservationBonus": 15,
    "readinessRepeatabilityBonus": 10,
    "readinessSourceRightsBonus": 5,
    "readinessScoreCap": 50
  },
  "particleStateContract": {
    "primarySpecies": [
      "ion",
      "neutral"
    ],
    "secondarySpecies": [
      "sputtered-fragment"
    ],
    "entityFields": [
      "origin",
      "species",
      "x",
      "y",
      "dx",
      "dy",
      "bounce_count",
      "carries_material_cell"
    ],
    "terminationStates": [
      "boundary_escape",
      "surface_nonstick_escape",
      "chemical_etch",
      "ion_sputter",
      "primary_deposition_stick",
      "secondary_redeposition_stick",
      "absorbed_no_geometry_change",
      "step_cutoff"
    ],
    "entityLedger": "entities_created = primary_particles_launched + secondary_entities_created = all eight termination-state counts.",
    "removedMaterialLedger": "removed_cells = volatile_chemical_removals + immediate_sputter_outflow_cells + secondary_entities_created.",
    "secondaryMaterialLedger": "secondary_entities_created = secondary_redeposited_cells + secondary_material_outflow_cells.",
    "gridMassLedger": "final_solid_cells = initial_solid_cells + primary_deposited_cells + secondary_redeposited_cells - removed_cells."
  },
  "interactionEquations": [
    "normal_alignment = clamp(-(dx * normal_x + dy * normal_y) / (abs(dx) + abs(dy)), 0, 1)",
    "rie_ion_remove_probability = min(probability_cap, reaction_scale * (ion_etch_base + ion_etch_alignment_gain * normal_alignment))",
    "rie_neutral_remove_probability = min(probability_cap, reaction_scale * (neutral_etch_base + neutral_etch_grazing_gain * (1 - normal_alignment)))",
    "pvd_neutral_stick_probability = min(probability_cap, primary_deposition_stick * (primary_deposit_base + primary_deposit_alignment_gain * normal_alignment))",
    "pvd_ion_resputter_probability = min(probability_cap, reaction_scale * ion_resputter_scale * (ion_resputter_base + ion_resputter_alignment_gain * normal_alignment))",
    "secondary_redeposit_probability = min(probability_cap, secondary_redeposition_stick * (secondary_stick_base + secondary_stick_alignment_gain * normal_alignment))"
  ],
  "metricDefinitions": {
    "normalized_progress": "Batch index divided by 15; not time, dose, fluence, throughput, or process duration.",
    "etch_mean_depth_cells": "Mean first-solid displacement below the initial exposed surface across the original opening; a grid count, not a physical depth.",
    "deposition_fill_fraction_proxy": "Fraction of initially open cavity cells that are solid at the current state; not density, volume fraction, film thickness, or void metrology.",
    "bottom_flux_fraction_proxy": "Cumulative bottom-zone collisions divided by all classified surface collisions.",
    "sidewall_flux_fraction_proxy": "Cumulative sidewall-zone collisions divided by all classified surface collisions.",
    "lateral_undercut_cells": "Maximum contiguous void extension beyond the original opening below the initial surface, measured in grid cells.",
    "sidewall_roughness_proxy": "Coefficient of variation of first-solid depths across opening columns, guarded at zero mean.",
    "accessible_void_fraction_proxy": "Flood-fill-accessible cavity void cells divided by initial cavity cells.",
    "profile_advance_proxy": "Etch mean-depth fraction of nominal feature depth for RIE or deposition fill fraction for PVD.",
    "redeposition_fraction_proxy": "Secondary redeposition cells divided by secondary entities created, guarded at zero.",
    "escape_fraction_proxy": "Boundary, surface-nonstick, and cutoff terminations divided by all entity terminations.",
    "geometry_sha256": "Hash of the exact integer occupancy grid at one progress state.",
    "evidence_readiness_score": "Bounded evidence-planning score capped at 50; not accuracy, confidence, technology readiness, production fitness, or signoff."
  },
  "decisionGates": [
    "invalid-conservation",
    "hold-owned-profile-evidence",
    "review-pinch-off-or-bottom-starvation",
    "review-undercut",
    "replacement-evidence-ready-synthetic",
    "teaching-baseline-only"
  ],
  "zeroBoundaryFields": [
    "external_numeric_values",
    "copied_source_results",
    "copied_profile_points",
    "copied_source_equations",
    "physical_length_values",
    "physical_time_values",
    "physical_flux_values",
    "physical_energy_values",
    "physical_angle_values",
    "calibrated_sticking_coefficients",
    "calibrated_sputter_yields",
    "chamber_pressure_values",
    "gas_flow_values",
    "source_power_values",
    "wafer_bias_values",
    "measured_profile_rows",
    "sem_tem_image_pixels",
    "viennaps_output_rows",
    "sentaurus_topography_runs",
    "named_tool_equivalence_claims",
    "vendor_model_outputs",
    "equipment_control_actions",
    "recipe_recommendations",
    "lot_disposition_actions",
    "process_signoff_actions",
    "live_server_runs"
  ],
  "replacementEvidenceRequired": [
    "owned initial and final profile geometry with coordinate and segmentation lineage",
    "owned particle or flux distribution evidence with species and uncertainty",
    "owned material-specific sticking, reaction, reflection, sputter, and redeposition evidence",
    "versioned grid-convergence, particle-count-convergence, and alternate-seed studies",
    "owned chamber-state and wafer-location context",
    "owned CD, depth, sidewall, film, void, and roughness metrology with Gauge R&R",
    "independent process, integration, metrology, yield, safety, and rights review"
  ],
  "interpretation": "This packet is an original deterministic stochastic teaching model. It compares mechanisms only within its own dimensionless occupancy-grid contract. It is not ViennaPS, Sentaurus Topography, a chamber model, a calibrated profile predictor, a process recipe, or replacement evidence."
}
