atomic Devlog #1: foundation is done, the atom has a spine
i just kick started a new project called atomic, and the aim is kinda crazy: a quantum-mechanical atom model that never quietly lies about its physics. every number that crosses a module boundary carries a record of how it was computed and how far it can be trusted, with tiers going from EXACT (closed-form) all the way to COUNTERFACTUAL (deliberately altered physics, computed rigorously). i’ve got the whole thing mapped out as a 15-phase plan. today was all about Phase 0: the foundation. no physics yet, just the spine everything else will stand on.
Change 1: environment setup (this fought me)
my machine had no conda, no pip, no uv, nothing. just bare python 3.14. i almost gave up and then found out python ships with ensurepip, so i bootstrapped a venv with python3 -m venv .venv and pip-installed numpy, scipy, pytest and ruff into it. worked first try after that. lesson learned: check ensurepip before panicking.
Change 2: the provenance spine + constants + mesh
i scaffolded the actual package: provenance.py (the fidelity tiers plus the Quantity and Field types that carry them), constants.py (CODATA values with a counterfactual-universe hook for the future What-If lab, where you’ll be able to mess with constants like e and watch what breaks), and numerics/mesh.py (uniform + exponential radial meshes with a ghost-node fix at the inner wall, since an exponential mesh can’t reach the origin). getting the discretization right now means every solver later stands on solid ground.
Change 3: evidence-style tests, all green
i wrote 34 tests and they all pass in 0.2 seconds. they’re written as evidence, not coverage: solver checks against the exact hydrogen ground state, mesh guards that refuse bad inputs, constants checked against published CODATA values. the idea is that if i ever break the physics, CI screams at me immediately.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.