Skip to main content

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₀|·100 feeds the ≤0.1% metric gate — a run that fails to conserve does not seal. Same one tolerance as /solve and /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

presetsystemNρT₀bonds
lj-liquidLennard-Jones liquid1200.781.0
lj-gasLennard-Jones gas800.151.8
crystalCrystal → melt1441.050.35
polymerBonded polymer chains1000.450.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.