article = "https://physicslibrary.org/encyclopedia/CoulombsLaw.html"
article_id = 60
julia_version = "1.10.12"
reference_generator = "julia --startup-file=no --project=. coulomb-lab.jl"
reference_method = "256-bit BigFloat field sums and independent pair-force direction/magnitude evaluation"
browser_method = "unsoftened analytic Coulomb superposition, exact pairwise reaction assignment; SI units"
renderer = "D3 7.9.0, Lucide 0.468.0 and ODEX 2.0.4 bundled offline"
constant = "k=1/(4*pi*epsilon0), epsilon0=8.8541878188e-12 F/m, rounded 2022 CODATA central value"
constant_source = "https://physics.nist.gov/cuu/pdf/wall_2022.pdf"
scope = "two to six prescribed stationary point charges in vacuum; 2D slice of a 3D inverse-square electric field; no mechanical trajectory, conductor or radiation model"
units = "source/test charges entered in microcoulombs, coordinates in meters; internal/reference/export calculations in SI"
self_force = "source i excluded from its own external field; pair forces are equal and opposite"
probe = "virtual test charge is not a source; Ftest=qtest*E; changing it never changes the field"
singularities = "no softening; singular field at a nonzero source; 0.30 m minimum source separation; 0.12 m display exclusion disks with probe values withheld"
field_lines = "ODEX Gragg-Bulirsch-Stoer, dr/ds=+/-E/abs(E); s is arclength, not time; negative backward traces reversed for physical arrow direction"
tracing = "absolute/relative tolerance 2e-6, maximum step 0.045 m, maximum length 18 m, up to 1600 steps; stop at source masks, view boundary or relative field-null threshold"
seeding = "illustrative signed-source seeds with a bounded global budget; skip duplicate negative-to-positive reverse connections; not a calibrated 3D flux-density diagram"
force_arrows = "one common adaptive linear force scale per configuration, quantitative 40 CSS-pixel reference bar; pair and net arrows share that scale"
field_arrows = "direction only, including probe E and virtual test force; field magnitude reported numerically and by fixed log shading 1e2 to 1e6 N/C"
interaction = "pointer or numeric source/probe positioning, optional 0.1 m snap, no automatic charge motion; live arrows replace lines while dragging"
inverse_square = "two-charge sweep holds charge values fixed, 0.3 to at least 5 m, extending to the present separation when needed; logarithmic force axis"
reference_cases = 10
reference_sources = 28
reference_forces = 28
reference_fields = 1440
configurations_csv_sha256 = "d694e37cbe06cfe45fd4e9a319b1d6ba614f08eced26be94958aafa27795fd33"
forces_csv_sha256 = "e4e149fcdc395f7caeb534ac08804bd5d355a853565f2fc9b0509cdc1d7dd555"
fields_csv_sha256 = "6a89b7537aea9dc7a07e7242d677aba76d48d6256de995e41bd328ceeec7d870"
coulomb_lab_jl_sha256 = "c1d5353f211373d5e3b50d80b9807e5b418231564b9fed5632232c6d3e18e349"
model_js_sha256 = "84d00a0e62a4bc460830b306d8b0d2b40a1694b611cbc6a3d9af431a5977680d"
lines_js_sha256 = "781adff10a01a605850baf1f6830f29fb12497510cac4e6dd93c8fc2e85b47d1"
Manifest_toml_sha256 = "db6f41f5f03f102ae06a33a9bac6e57708033a3e297fec30b08da750224783c3"
pnpm_lock_yaml_sha256 = "2b8be56a46a3c59bf20b2175838a17164fbc509342df5249811db040ee4775d1"
viewer_sha256 = "c58de97ab628febfb849cd1e7bea206bb434046a5fb26042602a69cc80bb9a34"
