about · benchmarks

Why a Lagrangian kernel exists, and what it compares against.

The case for one kernel over fifty special-purpose engines, plus the regression-suite shape: which reference engine each Lagra domain is checked against, how many scenes, and what the cross-domain coupling actually buys you.

The engine, in seven figures

Lifted from the paper (Lagra: A differentiable physics kernel for verifiable domain operations) — the same diagrams, with shorter captions for the web.

Pipeline: .lagra source → Lagrangian Graph → Action Kernel → Solver → Verifier, with PASS feeding the next step and FAIL halting the run.
Fig 1 The Lagrangian-graph pipeline. A scene compiles, once, into a typed Lagrangian Graph. Every step the Action Kernel walks its active edges, the Solver advances state, the Verifier gates the result. Same substrate for the 1000-block rigid stack, the dam-break fluid, and the DNA helix — only the active edges differ.
Six representative variants of the LagrangianNode sum type: HarmonicBond, Coulomb, LennardJones, Yukawa, ContactFloor, UniformAcceleration.
Fig 2 The vocabulary Kind of LagrangianNode variants. Six representative cases of the closed sum type the engine ships with — the full enumeration is roughly two dozen, covering harmonic bonds, Coulomb, Lennard-Jones, Yukawa, contact-floor, and global terms like uniform acceleration. Each variant declares its arity, parameter set, scalar Lagrangian density, and physical units.
Anatomy of a LagrangianGraph: four particles connected by HarmonicBond, Coulomb, LennardJones, ContactFloor, and a global UniformAcceleration term.
Fig 3 Anatomy of a LagrangianGraph. Four particles, six interaction terms drawn from the closed sum type. The Lagrangian is the sum across all edges — adding or removing a term means editing the graph, never the kernel. Interventions (user drag, agent tool call) enter through a typed channel and consolidate into the graph each step.
One timestep as a data-flow diagram: Lagrangian Graph plus State flow into the Action Kernel, which emits Forces. Forces plus state flow into the Solver, which emits the next state.
Fig 4 One timestep as a data-flow diagram. Inputs (left): the static Lagrangian Graph plus the current per-particle State (q, q̇). The Action Kernel is a single function that walks the active edges and emits a generalized-force vector. The Solver consumes those forces and produces the next state. Both functions are side-effect-free with respect to anything outside this diagram.
The action kernel exploded: a single for-loop over graph.active_nodes that dispatches accumulate(state, forces) to HarmonicBond, Coulomb, LennardJones, ContactFloor, etc.
Fig 5 The action kernel, exploded. The single loop that turns the Lagrangian Graph's active edges plus per-particle State into a shared Forces buffer. Every node-type variant implements the same signature (state, forces) → (); adding a new physics term means adding an accumulate, never editing the loop.
Verifier triangle: a proposition, a witness, and a checker, shown side by side for a Lagra @expect declaration and a Lean theorem.
Fig 6 Verifier triangle, side by side with its Lean analogue. A scene's @expect clauses play the role of Lean propositions; the kernel emits a numeric witness; a small, audited checker decides PASS in both cases. Same structural shape, different trust event — Lagra discharges a numerical obligation contingent on tolerance and integrator stability; Lean discharges a deductive one.
Verifiability by derivation: the same Lagrangian flows down two independent branches — engine simulation yields measured frequency, Euler-Lagrange analysis yields closed-form frequency — and they agree.
Fig 7 Verifiability by derivation. The same Lagrangian flows down two independent branches: the engine evolves it forward in time to get a measured trajectory frequency; classical analysis applies Euler-Lagrange to get the closed-form result. The two estimates agree to integrator error — proof that the engine recovers the declared physics, not just some physics.

→ full paper: action-kernel/main.pdf · LaTeX source in paper/action-kernel/main.tex

Why we have fifty physics engines

The engine on the landing page would be three separate codebases anywhere else. Rigid bodies live in PhysX or Bullet. Molecular dynamics lives in LAMMPS or GROMACS. RNA folding lives in ViennaRNA or Rosetta. Fluids live in OpenFOAM or LiquidFun. None of them compose.

The split isn't accidental — it's the structure each tool optimised against. PhysX's contact solver assumes a contact graph, not pairwise potentials over 10⁵ particles. LAMMPS's neighbour list assumes short-cutoff non-bonded forces, not deformable continua. ViennaRNA's dynamic-programming kernel doesn't accept a force field at all. Each engine made a different cut for a different audience, and the cuts don't line up.

So adding fluids to MuJoCo means reimplementing fluids. Adding EM coupling to an RNA scene means rewriting ViennaRNA. Adding deformables to a PhysX game means swapping engines mid-pipeline. The cross-domain tax — porting, validating, re-tuning — usually exceeds the cost of the physics itself.

A Lagrangian doesn't care which subset you pick. HarmonicBond and LennardJones and QcdCoulomb are the same kind of node in the same kind of graph, evaluated by the same kernel. Choosing which terms run for a given scene becomes a scene-level declaration — not a tooling decision. The live 1000-block stack on the landing page runs on the same evaluator the LJ fluid and the pendulum chain run on. That's the whole pitch.

See the live 1000-block stack at index.html#demos — same evaluator, same scene file. uses newtonian.classical_mechanics.avbd; render "rigid_body".

Subsystems as units of compute

.lagra files describe nodes in the graph. Like Lean for proofs, each file is a self-contained unit the compiler can check, optimise, and compose. Coarse-graining is a node choice, not an engine choice.

The scene below is the harmonic-oscillator demo from the landing page — verbatim, no shortened-for-the-website magic. Two particles, one bond, one declared invariant, one solver block:

scene solver_walkthrough_oscillator {
    uses newtonian.classical_mechanics
    description "Two-bead harmonic oscillator. Only the harmonic bond contributes nonzero force."
    wasm true                                // flag for the landing-page bundle

    entity { type: ball_small, position: [-1.35, 0, 0], mass: 1.0, size: 0.35 }
    entity { type: ball_small, position: [ 1.35, 0, 0], mass: 1.0, size: 0.35 }

    bond harmonic [0, 1] { k: 2.0, r0: 2.0, damping: 0.04 }
    @expect momentum_conservation                  // CI gate
    solver { dt: 0.002, steps_per_frame: 12 }
}

The compiler checks before the kernel runs. Conservation invariants are derived from the active graph and inserted as runtime assertions — if the first step would violate them, the scene doesn't compile. Entity catalogs enforce scientific references: entity ball_small {…} in configs/entities/classical.lagra carries the citation alongside the mass, size, and color, and custom entities go through LagraDef validation against those catalogs.

Each node also owns its own optimisation hints. Pairwise terms can request a cell list; bonded terms can request a neighbour list; whole subgraphs can target a GPU compute pass. The planner reads the hints and composes the dispatch — the kernel's shape is fixed but the dispatch is per-scene.

Qualitative recovery — Lagra reproduces LAMMPS liquid structure

Five independent trajectories per engine on a 256-particle Lennard-Jones liquid at ρ*=0.80, T*=1.5, run from identical Maxwell-Boltzmann initial conditions with the same dt = 0.005τLJ. Both engines run symplectic integrators (Lagra: discrete-action variational; LAMMPS: velocity-Verlet). The radial distribution function — the canonical liquid-structure observable — matches across the full r range.

g(r) overlay: Lagra vs LAMMPS, 5 seeds each
Radial distribution function g(r) averaged over 5 independent trajectories × 100 frames per trajectory. Shaded bands are ± standard error of the mean across seeds. The two curves overlap within the SEM at every r.
g(r) first-peak height
Lagra 2.793 ± 0.009 · LAMMPS 2.785 ± 0.015 · +0.27%
g(r) RMSD (r > 0.8σ)
0.00670 · max |diff| 0.0245
energy drift
Lagra 1.09e-03 · LAMMPS 9.83e-04 · ratio 1.10×
<E>/N
Lagra -4.1048 · LAMMPS -4.1081 ± 0.000140
throughput (honest)
Lagra 6,808 steps/s · LAMMPS is faster — speed parity is not the claim.

Pipeline: benchmarks/qualitative_recovery/scripts/{generate_initial_conditions, run_lagra, analyze_rdf, compare_lj}.py. Raw outputs and aggregated JSON in the same directory.

Per-scene benchmarks · molecular dynamics (LAMMPS)

22 scenes from the LAMMPS regression suite. Each row plays the actual engine output side by side — Lagra on the left, LAMMPS on the right, both at the same scene parameters. Note: the per-scene drift numbers below use the legacy bench scenes (ε=0.001 reduced-LJ units) rather than the aligned ε=1.0 set above; they're reported as raw drift, not as a parity claim. The aligned LJ result is the headline.

lj_2particle

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
2
energy drift
Lagra 9.10e-02 · LAMMPS 1.19e-02 · ratio 7.63×
throughput
Lagra 2,447,473 steps/s · LAMMPS 4,058,580 steps/s · Lagra/LAMMPS = 0.60×

lj_8_cube

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
8
energy drift
Lagra 1.68e-04 · LAMMPS 3.01e-02 · ratio 0.01×
throughput
Lagra 706,551 steps/s · LAMMPS 1,905,639 steps/s · Lagra/LAMMPS = 0.37×

lj_64_fcc

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
64
energy drift
Lagra 8.10e-03 · LAMMPS 3.68e-03 · ratio 2.20×
throughput
Lagra 62,856 steps/s · LAMMPS 50,221 steps/s · Lagra/LAMMPS = 1.25×

lj_256_liquid

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
256
energy drift
Lagra 5.67e-03 · LAMMPS 2.21e-03 · ratio 2.57×
throughput
Lagra 13,000 steps/s · LAMMPS 18,657 steps/s · Lagra/LAMMPS = 0.70×

harmonic_dimer

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
2
energy drift
Lagra 3.03e-03 · LAMMPS 4.25e-04 · ratio 7.12×
throughput
Lagra 2,410,851 steps/s · LAMMPS 3,976,010 steps/s · Lagra/LAMMPS = 0.61×

harmonic_chain_5

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
5
energy drift
Lagra 0.00e+00 · LAMMPS 1.27e-03
throughput
Lagra 974,275 steps/s · LAMMPS 2,480,569 steps/s · Lagra/LAMMPS = 0.39×

coulomb_2ion

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
2
energy drift
Lagra 5.75e-02 · LAMMPS 0.00e+00
throughput
Lagra 2,410,201 steps/s · LAMMPS 3,472,825 steps/s · Lagra/LAMMPS = 0.69×

gravity_2body

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPS doesn't support Newtonian gravity as a pair_style
LAMMPSvelocity-Verlet · fix nve
particles
2

lj_864_liquid

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
864
energy drift
Lagra 9.08e-03 · LAMMPS 1.86e-03 · ratio 4.89×
throughput
Lagra 2,884 steps/s · LAMMPS 5,337 steps/s · Lagra/LAMMPS = 0.54×

polymer_100_collapse

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
100
energy drift
Lagra 1.98e-03 · LAMMPS 1.83e-02 · ratio 0.11×
throughput
Lagra 55,311 steps/s · LAMMPS 119,775 steps/s · Lagra/LAMMPS = 0.46×

binary_lj_glass

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
250
energy drift
Lagra 1.88e-01 · LAMMPS 2.21e-03 · ratio 85.38×
throughput
Lagra 11,124 steps/s · LAMMPS 16,848 steps/s · Lagra/LAMMPS = 0.66×

crystal_melting_256

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
125
energy drift
Lagra 4.48e+00 · LAMMPS 2.21e-03 · ratio 2032.97×
throughput
Lagra 18,334 steps/s · LAMMPS 17,626 steps/s · Lagra/LAMMPS = 1.04×

lj_crystallization

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
256
energy drift
Lagra 2.70e-02 · LAMMPS 2.21e-03 · ratio 12.25×
throughput
Lagra 11,091 steps/s · LAMMPS 18,222 steps/s · Lagra/LAMMPS = 0.61×

spce_water_64

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
192
energy drift
Lagra 2.51e+01 · LAMMPS 6.25e-02 · ratio 401.50×
throughput
Lagra 18,908 steps/s · LAMMPS 154,999 steps/s · Lagra/LAMMPS = 0.12×

coulomb_explosion_100

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
150
energy drift
Lagra 6.16e-05 · LAMMPS 6.11e-02 · ratio 0.00×
throughput
Lagra 16,015 steps/s · LAMMPS 436,190 steps/s · Lagra/LAMMPS = 0.04×

polymer_chain_50_lj

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
50
energy drift
Lagra 5.24e-04 · LAMMPS 2.26e-02 · ratio 0.02×
throughput
Lagra 111,022 steps/s · LAMMPS 402,288 steps/s · Lagra/LAMMPS = 0.28×

lj_4000_liquid

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
4000
energy drift
Lagra 1.34e+06 · LAMMPS 1.83e-03 · ratio 733685991.50×
throughput
Lagra 741 steps/s · LAMMPS 903 steps/s · Lagra/LAMMPS = 0.82×

spinodal_decomposition

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
300
energy drift
Lagra 8.75e-01 · LAMMPS 1.82e-03 · ratio 481.28×
throughput
Lagra 9,188 steps/s · LAMMPS 8,491 steps/s · Lagra/LAMMPS = 1.08×

shock_wave

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
250
energy drift
Lagra 4.75e-03 · LAMMPS 1.82e-03 · ratio 2.61×
throughput
Lagra 14,514 steps/s · LAMMPS 8,354 steps/s · Lagra/LAMMPS = 1.74×

rayleigh_taylor

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
300
energy drift
Lagra 3.78e-01 · LAMMPS 1.82e-03 · ratio 208.19×
throughput
Lagra 8,570 steps/s · LAMMPS 7,969 steps/s · Lagra/LAMMPS = 1.08×

debye_screening

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
161
energy drift
Lagra 1.16e+00 · LAMMPS 6.25e-02 · ratio 18.52×
throughput
Lagra 10,778 steps/s · LAMMPS 146,972 steps/s · Lagra/LAMMPS = 0.07×

penning_trap_100

MD · LAMMPS reference
Lagradiscrete-action symplectic
LAMMPSvelocity-Verlet · fix nve
particles
100
energy drift
Lagra 1.26e-03 · LAMMPS 6.11e-02 · ratio 0.02×
throughput
Lagra 1,021 steps/s · LAMMPS 415,633 steps/s · Lagra/LAMMPS = 0.00×

Per-scene benchmarks · RNA folding (ViennaRNA)

24 scenes from the ViennaRNA benchmark set. Vienna predicts a secondary structure via dynamic programming on the Turner-2004 free-energy table; Lagra simulates the same nucleotide system as MD with first-principles charged-base potentials. Outputs are not directly comparable (structure-prediction vs trajectory); each card shows what each engine produces. Vienna's own predictions are parameter-sensitive — the dangles sweep shows how much.

hp_gcgcaaagcgc

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram · ground truth
length
11 nt
ground truth
((((...))))
Vienna (d=2)
((((...)))) · MFE -3.8 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.0 kcal/mol
Lagra MD
159,662 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

hp_gggaaaccc

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram · ground truth
length
9 nt
ground truth
(((...)))
Vienna (d=2)
(((...))) · MFE -1.2 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.0 kcal/mol
Lagra MD
248,230 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

hp_ggggaaaacccc

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram · ground truth
length
12 nt
ground truth
((((....))))
Vienna (d=2)
((((....)))) · MFE -5.4 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.0 kcal/mol
Lagra MD
145,531 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

hp_ccccuuuugggg

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram · ground truth
length
12 nt
ground truth
((((....))))
Vienna (d=2)
((((....)))) · MFE -6.4 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.0 kcal/mol
Lagra MD
145,563 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

hp_au_only

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram · ground truth
length
10 nt
ground truth
..........
Vienna (d=2)
.......... · MFE 0.0 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.0 kcal/mol
Lagra MD
200,958 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

duplex_gcgc

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram · ground truth
length
4 nt
ground truth
(())
Vienna (d=2)
.... · MFE 0.0 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.0 kcal/mol
Lagra MD
664,676 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

duplex_ggcc

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram · ground truth
length
4 nt
ground truth
(())
Vienna (d=2)
.... · MFE 0.0 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.0 kcal/mol
Lagra MD
820,266 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

polyA_20

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram · ground truth
length
20 nt
ground truth
....................
Vienna (d=2)
.................... · MFE 0.0 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.0 kcal/mol
Lagra MD
48,776 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

iloop_gc_2x2

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram · ground truth
length
10 nt
ground truth
((..(..)))
Vienna (d=2)
(((....))) · MFE -2.6 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.0 kcal/mol
Lagra MD
192,333 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

bulge_gc_1nt

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram · ground truth
length
11 nt
ground truth
(((....))).
Vienna (d=2)
((((...)))) · MFE -4.6 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.0 kcal/mol
Lagra MD
146,670 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

two_hairpins_30nt

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram
length
30 nt
ground truth
Vienna (d=2)
(((...))).((((((((....)))))))) · MFE -12.3 kcal/mol
dangles sweep
2 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 1.4 kcal/mol
Lagra MD
22,460 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

multiloop_3way

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram
length
41 nt
ground truth
Vienna (d=2)
(((.((((((.(((((((....)))))))...))))))))) · MFE -23.9 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.0 kcal/mol
Lagra MD
11,877 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

trna_anticodon_17nt

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram · ground truth
length
17 nt
ground truth
(((((.......)))))
Vienna (d=2)
.....((((....)))) · MFE -4.7 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.3 kcal/mol
Lagra MD
62,827 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

rnaseP_domain

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram
length
30 nt
ground truth
Vienna (d=2)
(((((((((......))))..))))).... · MFE -8.8 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 1.7 kcal/mol
Lagra MD
20,146 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

gc_rich_50nt

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram
length
50 nt
ground truth
Vienna (d=2)
.(((((((((...((((((((((.....))))))))))...))))))))) · MFE -43.8 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.2 kcal/mol
Lagra MD
7,143 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

au_rich_50nt

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram
length
51 nt
ground truth
Vienna (d=2)
........(((..((((((....))))))..)))................. · MFE -1.7 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.8 kcal/mol
Lagra MD
6,922 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

5s_rRNA

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram
length
120 nt
ground truth
Vienna (d=2)
((((((((((((((...)))).(((...))).((((((((((...((.((...(((..((...))..)))...)))).))))))))))..(((.(((....))))))..)))))))))). · MFE -50.9 kcal/mol
dangles sweep
4 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 6.4 kcal/mol
Lagra MD
1,206 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

tRNA_phe

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram
length
76 nt
ground truth
Vienna (d=2)
(((((((..((((........)))).(((((.......))))).....(((((.......)))))))))))).... · MFE -22.4 kcal/mol
dangles sweep
2 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 3.3 kcal/mol
Lagra MD
2,538 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

SRP_100nt

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram
length
105 nt
ground truth
Vienna (d=2)
((((.((((....))))..))))((.(((((.(((((((.....((((..((((..((((........))))..)))).)))).....))))))).))))).)). · MFE -34.4 kcal/mol
dangles sweep
2 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 2.0 kcal/mol
Lagra MD
1,680 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

RNaseP_150nt

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram
length
145 nt
ground truth
Vienna (d=2)
(((((((((......))))..))))).(((((..(((((...)))))..)))))..((((...((((((....)))))).......))))...((((.((.((((((((((....)))))).)))).)).))))........... · MFE -51.3 kcal/mol
dangles sweep
2 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 4.7 kcal/mol
Lagra MD
736 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

pseudoknot_simple

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram · ground truth
length
18 nt
ground truth
[[[(((...]]]...)))
Vienna (d=2)
(((....)))........ · MFE -3.3 kcal/mol
dangles sweep
2 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.5 kcal/mol
Lagra MD
58,856 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

pseudoknot_tmRNA

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram
length
30 nt
ground truth
Vienna (d=2)
((((((....(((....)))..))).))). · MFE -7.2 kcal/mol
dangles sweep
1 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 0.1 kcal/mol
Lagra MD
21,312 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

16S_fragment_200nt

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram
length
203 nt
ground truth
Vienna (d=2)
.......((.((((((((........)))))))).))...(((((.((((..((((((.(.(((..((.((.((((((((((....))))))).))).....)).))..))).)..)).)))).))))...)))))(((((...(.((.((.((((((....)))))).))...)).)....))))).....((......)). · MFE -50.9 kcal/mol
dangles sweep
4 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 4.7 kcal/mol
Lagra MD
465 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

group_I_intron_250nt

RNA · ViennaRNA reference
Lagrafirst-principles MD · force arrows on
ViennaRNA predicted secondary structure (d=2)
ViennaRNAViennaRNA MFE — dot-bracket arc diagram
length
252 nt
ground truth
Vienna (d=2)
..(((((((...(((((((....((((.((((((((.(((((((((....))))))))).(((((....))))).)))).....))))))))...)))))))..)).)))))....((((...(((((((((...)))))))))..))))(((..((((.(((((..((((.....(((((((.....)))))))....)))))))))......(((((....)))))............)))))))..... · MFE -80.1 kcal/mol
dangles sweep
3 distinct structure(s) across dangles {0,1,2,3}; ΔMFE max = 8.9 kcal/mol
Lagra MD
322 steps/s (first-principles dynamics; structure prediction via long-time MD is future work)

Per-scene benchmarks · protein dynamics (Rosetta)

20 scenes from the Rosetta benchmark set. Rosetta scores a single input pose with the REF2015 statistical energy function; Lagra runs MD on the same structure with physical force terms. Per-residue score reconstruction from Lagra's force-graph (the comparable apples-to-apples metric) is future work.

alanine_dipeptide

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
— · 2 residues
Rosetta REF2015
not scored
Lagra MD
159,179 steps/s (score reconstruction via Lagra force terms is future work)

chignolin_1UAO

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
1UAO · 10 residues
Rosetta REF2015
7,286,685.3 REU
Lagra MD
79,296 steps/s (score reconstruction via Lagra force terms is future work)

trp_cage_1L2Y

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
1L2Y · 20 residues
Rosetta REF2015
70,355,253.2 REU
Lagra MD
38,881 steps/s (score reconstruction via Lagra force terms is future work)

villin_headpiece

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
1VII · 36 residues
Rosetta REF2015
518.7 REU
Lagra MD
20,309 steps/s (score reconstruction via Lagra force terms is future work)

bba5

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
1T8J · 23 residues
Rosetta REF2015
716.1 REU
Lagra MD
170,382 steps/s (score reconstruction via Lagra force terms is future work)

protein_g_b1

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
1PGB · 56 residues
Rosetta REF2015
11.0 REU
Lagra MD
56,876 steps/s (score reconstruction via Lagra force terms is future work)

ubiquitin

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
1UBQ · 76 residues
Rosetta REF2015
32.7 REU
Lagra MD
41,586 steps/s (score reconstruction via Lagra force terms is future work)

lysozyme

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
1AKI · 129 residues
Rosetta REF2015
13.4 REU
Lagra MD
22,325 steps/s (score reconstruction via Lagra force terms is future work)

barnase

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
1A2P · 110 residues
Rosetta REF2015
-367.5 REU
Lagra MD
7,476 steps/s (score reconstruction via Lagra force terms is future work)

SH3_domain

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
1SHG · 57 residues
Rosetta REF2015
136.6 REU
Lagra MD
13,528 steps/s (score reconstruction via Lagra force terms is future work)

WW_domain

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
1PIN · 34 residues
Rosetta REF2015
969.3 REU
Lagra MD
24,818 steps/s (score reconstruction via Lagra force terms is future work)

homeodomain

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
1ENH · 54 residues
Rosetta REF2015
18.7 REU
Lagra MD
15,036 steps/s (score reconstruction via Lagra force terms is future work)

casp12_T0886

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
— · ? residues
Rosetta REF2015
not scored
Lagra MD
355,907 steps/s (score reconstruction via Lagra force terms is future work)

casp13_T0950

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
— · ? residues
Rosetta REF2015
not scored
Lagra MD
1,249 steps/s (score reconstruction via Lagra force terms is future work)

casp14_T1049

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
— · ? residues
Rosetta REF2015
not scored
Lagra MD
22,289 steps/s (score reconstruction via Lagra force terms is future work)

casp14_orf3a

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
— · ? residues
Rosetta REF2015
not scored
Lagra MD
6,303 steps/s (score reconstruction via Lagra force terms is future work)

insulin_dimer

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
4INS · 81 residues
Rosetta REF2015
79.9 REU
Lagra MD
10,648 steps/s (score reconstruction via Lagra force terms is future work)

GFP

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
1EMA · 238 residues
Rosetta REF2015
174.8 REU
Lagra MD
3,577 steps/s (score reconstruction via Lagra force terms is future work)

myoglobin

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
1MBN · 153 residues
Rosetta REF2015
not scored
Lagra MD
4,714 steps/s (score reconstruction via Lagra force terms is future work)

DHFR

Protein · Rosetta reference
Lagrafirst-principles MD trajectory
Rosetta-scored protein structure
RosettaREF2015 single-point score
PDB / residues
1RX2 · 159 residues
Rosetta REF2015
not scored
Lagra MD
5,642 steps/s (score reconstruction via Lagra force terms is future work)