Skip to main content

Binding constants (BIND)

Physics needs numbers that don't change: the gravitational constant, the speed of light, Planck's constant. Step 2 of the pipeline binds those — the NIST CODATA 2018 fundamental constants — to the operators selected in Step 1, before any computation happens. The source is a single table in shared/api-core/src/lib/nistConstants.ts, so every node binds the same value for the same constant, every time. That shared table is half of why two nodes that never talk can still agree on a result.

The table

The constants are the CODATA 2018 recommended values, verbatim:

ConstantSymbolValueUnit
Planck constanth6.62607015 × 10⁻³⁴J·s
Reduced Planckħ1.054571817 × 10⁻³⁴J·s
Speed of lightc299 792 458m/s
Gravitational constantG6.67430 × 10⁻¹¹m³·kg⁻¹·s⁻²
Boltzmann constantk_B1.380649 × 10⁻²³J/K
Avogadro constantN_A6.02214076 × 10²³mol⁻¹
Elementary chargee1.602176634 × 10⁻¹⁹C
Vacuum permittivityε₀8.8541878128 × 10⁻¹²F/m
Vacuum permeabilityμ₀1.25663706212 × 10⁻⁶H/m
Stefan–Boltzmannσ5.670374419 × 10⁻⁸W·m⁻²·K⁻⁴
Molar gas constantR8.314462618J·mol⁻¹·K⁻¹
Fine-structure constantα7.2973525693 × 10⁻³

Plus the particle masses (m_e = 9.1093837015 × 10⁻³¹ kg, m_p = 1.67262192369 × 10⁻²⁷ kg, m_n, m_u) and the atomic-scale references (Bohr radius a₀ = 5.29177210903 × 10⁻¹¹ m, Hartree energy E_h, classical electron radius r_e).

The framework's own clock constants — f_H, τ, α_K — are imported into the same table from zeq-kernel-constants.ts, so a solver that needs both NIST physics and the HulyaPulse reads them from one place.

Binding by domain group

A relativity compute does not need the Stefan–Boltzmann constant; a thermodynamics compute does not need the gravitational constant. bindConstants(domainGroup) binds only the subset a group needs:

Domain groupConstants bound (beyond the clock trio)
Core Physicsh, ħ, c, G, k_B, e, ε₀, μ₀, m_e, m_p, σ, R, N_A
Extended Physicsh, ħ, c, G, k_B, σ, R, m_e
Applied Sciencesk_B, R, N_A, e, ε₀, σ
Industryk_B, R, N_A
Frontierh, ħ, c, G, k_B, α, φ

Every group also carries the three kernel constants (f_H, τ, α_K). The BIND step records the CODATA release ("CODATA 2018"), the domain group, and the list of constants it bound — so the result's transcript names exactly which numbers went into the physics.

Why binding from a fixed table matters

Two consequences:

  1. Reproducibility. Because the constant values are fixed and shared, the recompute path can re-derive a result bit-for-bit on any node. If G were read from configuration or a live feed, two nodes could disagree on the Schwarzschild radius of the same star. They can't — G is 6.67430 × 10⁻¹¹ everywhere.
  2. Auditability. The bound constants are part of the result transcript. A reviewer can confirm that a relativity answer used the CODATA c and G, not some adjusted values.

The CODATA release is pinned deliberately. When CODATA publishes a new adjustment, moving to it is a versioned change to the table — not a silent drift — so old results stay reproducible against the release they were computed under.

Fixed constants, bound from one table, named in every transcript.