ZeqEvolve — molecular dynamics
ZeqEvolve promotes the framework's browser Nano-Zeqond Evolver
to a real server endpoint. It runs deterministic molecular dynamics:
velocity-Verlet (2nd-order symplectic) integration of a Lennard-Jones system
(NM19 F=ma) with optional harmonic bonds (NM30 ½k(r−r₀)²), in the
NVE ensemble — total energy and total momentum conserved.
It is a new, independent pipeline. /api/zeq/compute, /solve and
/multibody are untouched. ZeqEvolve rides the same 7-step wizard and seals the
same ZEQ envelope + ZEQOND receipt
as every other compute — reachable from the API, the zeq_evolve MCP tool, the
evolve CLI verb, contracts and any state machine.
The conservation is the proof. An NVE integrator has no closed form to be a percentage away from; its reality check is that energy must not drift. The returned
energyDriftPct = |E(t)−E₀|/|E₀|·100feeds the ≤0.1% metric gate — a run that fails to conserve does not seal. Same one tolerance as/solveand/multibody.
Deterministic by construction
The browser Evolver seeds itself with Math.random() — fine for a live demo,
fatal for a reproducible proof. ZeqEvolve draws every random number from a
seeded PRNG, so identical inputs reproduce an identical trajectory and
therefore an identical zeqProof. Omit seed and it is derived deterministically
from the inputs; pass one to pin a run.
Presets
| preset | system | N | ρ | T₀ | bonds |
|---|---|---|---|---|---|
lj-liquid | Lennard-Jones liquid | 120 | 0.78 | 1.0 | — |
lj-gas | Lennard-Jones gas | 80 | 0.15 | 1.8 | — |
crystal | Crystal → melt | 144 | 1.05 | 0.35 | — |
polymer | Bonded polymer chains | 100 | 0.45 | 0.9 | ✓ |
Reduced LJ units throughout (m = ε = σ = k_B = 1); map to a real species at the
UI layer (e.g. argon: σ = 3.405 Å, ε/k_B = 119.8 K, τ = 2.156 ps).
Call it
POST /api/zeq/evolve
Authorization: Bearer zeq_ak_…
{ "preset": "crystal", "N": 144, "steps": 4000, "seed": 42 }
Response (abridged):
{
"ok": true, "protocol": "ZeqEvolve",
"value": -168.55, "unit": "ε",
"preset": "crystal", "N": 144, "steps": 4000,
"ensemble": "NVE (energy + momentum conserved)",
"integrator": "velocity-Verlet (2nd-order symplectic), KO42 dt-modulated",
"energyDriftPct": 0.0064, "energyDriftBoundPct": 0.1,
"E0": -168.568, "energy": -168.557,
"temperature": 0.533, "pressure": 20.156, "momentum": 3.9e-14,
"series": [ { "step": 100, "E": -168.56, "T": 0.53, "driftPct": 0.002 }, … ],
"zeqProof": "…",
"zeqond_receipt": { "state_fields": { "temperature_field": 0.533, "internal_energy_field": -168.557, "momentum_density": 3.9e-14, "pressure_field": 20.156 }, "fields_present": ["temperature_field","internal_energy_field","momentum_density","pressure_field"], "verification": "HMAC_ZeqProof_Active" },
"zeqond_averaged": { "standard_physics_value": -168.557, "unit": "ε", "averaging_window_s": 0.777000777 }
}
The ZEQOND receipt carries four real fields the MD
run actually produced — temperature, internal energy, momentum density and the
virial pressure — every one measured, none fabricated. series carries the
energy/temperature/drift trace for a game-loop or plotting.
Inputs
preset · N (2–2000) · rho · T0 · steps (10–200000) · dtSim (default
0.003, VV-stable) · eps · sig · rc (·σ, default 2.5) · kBond · r0Bond ·
seed · sample (series points, 2–500).
MCP and CLI
# MCP
zeq_evolve { "preset": "polymer", "steps": 3000 }
# CLI
evolve preset=lj-liquid steps=2000
evolve '{"preset":"crystal","N":144,"steps":4000}'
Both surface the conservation drift, the fields, and the sealed envelope link — the same object the envelope and detail pages render.
Why it matters
Real, conserved molecular dynamics with a cryptographic receipt is the primitive materials, soft-matter and computational-biology sandboxes need: a run you can reproduce bit-for-bit, verify was conserved, and address by proof. ZeqEvolve is the first of the new structure-preserving pipelines; the least-action high-order integrator (ZeqAction) follows.
Read next
- The ZEQOND_RECEIPT — the fields ZeqEvolve fills.
- The Nano-Zeqond Evolver — the verified browser engine this ports.
- Solvers — the RK4
/solveand/multibodypaths.