# All simulated bearing-localization trials

Run `python reproduce.py` with numpy. This standalone export adapts the existing published generator without changing its random sequence, geometry, estimator or calculations. No figures are regenerated. Original Site files remain unchanged.

`trials.csv` contains all9,000 valid rows: spread_deg, trial_id (1..1000), x_m, y_m and error_m. True position is(0,0), so error_m is the Euclidean position error. The same trial identifier denotes the same four generated Gaussian errors across each of nine geometry settings; these are paired settings, not9,000 mutually independent noise vectors. Settings:5,10,20,30,45,60,90,120,160 degrees angular spread, four exact landmarks100m from truth,0.1degree Gaussian bearing-error standard deviation, known global heading. Seed27092026 creates a single1000-by4 standard-normal array before any model runs.

The estimator minimizes unweighted squared perpendicular distances to infinite bearing lines; it is not angular maximum likelihood. Exact map and heading, no outliers or common bias. A determinant threshold1e-12 identifies singular systems; none fail in the exported nine settings. The trial IDs preserve original draw indices, not a renumbering after arbitrary deletion.

`summary.csv` reconstructs all nine stored summaries. `reference-study.json` is an unchanged numeric study snapshot. All stored numeric fields match exactly in the recorded runtime (maximum absolute difference0; assertion tolerance1e-12). The95th percentile is a percentile of simulated error, not a confidence bound. Existing zero-noise recovery, exactly aligned singularity and factor-two range-scaling checks pass. `validation.json` records runtime versions and source hashes. No physical localization accuracy or empirical validation is established by this reproducible mathematical export.
