Simulating systems — running your system and tuning it live
The third stage. You pressed Initialize in the Builder and the system is now running. Structure is fixed (press Back to Builder to change it), but its behaviour — speeds, temperatures, energies, and how you reach in and disturb it — is yours to tune while it evolves. This chapter starts with the control panel that’s shared by every model, then covers each model’s own live parameters and interaction tools.
The control panel
Once you Initialize, the Builder card becomes the Simulation control panel — the right-hand panel that holds every control for the running system, organised into icon tabs along its bottom edge:
| Tab | Holds |
|---|---|
| Simulation (gauge) | Opens first. The System summary at its top (name, lattice size, coordination number, # of systems), then the model’s live dynamics — the bulk of this chapter. |
| Compute (chip icon) | The Compute status card (engine ON/OFF, workers, cell lists) with its observable toggles — read-only, set in the Builder. |
| Types & Rules (definition-list icon) | The model’s structure definitions, read-only: the header’s Back to Builder takes you there to change them (colours stay tunable here — display, not physics). |
| Machine Learning (network) | The learning layer — the cluster graph today (ensembles). |
| Export (tray) | The current system as JSON, ready to copy — see Saving & sharing. |
Hover a tab to see which sections it contains; empty tabs hide themselves. Sections collapse by clicking their amber headers. Under the tab icons sits the live gfx / sim frame-rate readout: gfx is the display's rendering rate, sim is how many simulation rounds actually complete per second — decoupled on purpose, so a heavy ensemble can render at 120 fps while stepping at 10 rounds/s (and a paused simulation honestly reads sim 0).
Display settings live elsewhere by design: everything about how the active view is drawn (colours, trails, glow, axes) sits in the floating View Settings window (the tune icon), and its tools (paint brushes, the phase Pan/Zoom) in Interaction & Paint (the brush icon) — both covered per view in Watching systems. All floating windows — View Settings, Interaction & Paint, Statistics, the Sampler — share the same behaviour: drag them by the title bar, they stay inside the viewport, they slide out of the panel's way, click one to bring it to the front, and ✕ closes it. Start Fresh puts every window back at its home position.
Multi-Component Lattice
The lattice model’s live controls sit in the Simulation tab, in three groups: overall pace, energetics, and the per-rule dynamics. All are live — change them any moment the system runs.
MC speed
How much simulation happens per rendered frame, measured in site-attempts. The slider is logarithmic with snap points at 1 site/frame (the slowest setting — one attempt per frame, for watching individual events) and 1 sweep/frame (one attempt per lattice site per frame). Above a sweep, morphology evolves in fast-forward. Every new system starts at a sensible midpoint.
Measurement rate (ensemble only)
How often the ensemble's observables are sampled — the slider right below MC speed. Measuring every system's composition, clustering and correlations is an O(sites) scan per replica, and for large lattices with thousands of replicas that scan, not the Monte-Carlo stepping, is what caps the simulation rate. Sampling less often lets the pool step at the raw kernel rate between measurements, so big ensembles evolve dramatically faster — the phase cloud, its history trail, and the cluster-graph learning all refresh at the chosen rate (the cloud advances in clean discrete steps rather than a blur). The slider reads 1 measurement / X frames, from 1 / frame (the fastest, and the default) down to much rarer; it carries two snap points — 1 / frame at that fast end, and a 1 / sweep point that slides into place at the current MC speed. Pair a high MC speed with a low measurement rate to watch a huge ensemble relax quickly.
Temperature
The Temperature slider (0.2–6, snap at T = 1) divides every energy in the Metropolis criterion — fields and interactions alike. Hot systems shrug off energetic penalties; cold ones commit to their energy landscape. T = 1 is the natural reference — the model's standard form — so that's where every new system starts.
Coordination number
The 4 · von Neumann / 8 · Moore selector (System section) chooses whether "neighbours" means the four orthogonal sites or all eight surrounding ones. It applies live — to facilitation counts, interaction energies, swap directions, and the clustering observables — and the phase-space axes re-scale to match. The Ising and FA presets use 4; the default is 8.
Site fields & Rule Controls
The Site H-Field Controls sub-card carries each type's energetic bias (in kBT). Below it, Rule Controls lists every rule read-only (its kind glyph and endpoints) with the live knobs: a parameter slider (0–1 for flips and swaps, −10 to +10 for a Site-Site interaction), an enable switch, and an Ignore Site Fields & Interactions checkbox (which makes the rule's success chance exactly its raw parameter, bypassing all energetics). The section ends with the live interaction matrix — every enabled Site-Site energy on each type pair, plus facilitation gates as f(●)×n chips.
Painting on the lattice
In the Lattice view, click or drag to paint sites directly — running or paused. A bold green square shows the brush and exactly the block of sites it will fill; it snaps to the lattice, moving site-by-site as you glide across. The brush is sized in whole sites (smallest is a single 1×1 site): set it in the View & Interaction window, or just scroll your mouse or touchpad over the lattice to grow and shrink it a ring at a time. Painting is physical: the sites you place immediately join the simulation (and the statistics).
Painting in phase space (ensemble)
In an ensemble's phase view the brush paints systems, not sites: dragging re-seeds the replicas under the cursor at the composition your brush position dictates. It works when an axis is a site-type fraction (both axes: a round brush; one axis: a stripe); observables like entropy can't be painted to, so the brush stays away. Scrolling resizes this brush too. The system you have selected in the Sampler is immune — a stationary click selects, a drag paints.
2D Ising
The Ising model's behaviour is three sliders in the Simulation tab plus MC speed. Temperature sets how readily spins flip against their neighbours — cross the critical point and domains coarsen; above it, fluctuation soup. Coupling J is the neighbour interaction strength (how much like-spins want to align), and Field H is a uniform bias toward up or down. MC speed works exactly as for the lattice model. In an ensemble the magnetisation–energy cloud maps out the phase diagram as you move these; painting in phase space injects systems at a chosen magnetisation (the horizontal brush position), their energy following from the fresh random configuration before it relaxes.
Single Particle
The particle moves under Langevin dynamics, tuned live in the Simulation tab. Temperature sets the thermal noise and Friction γ the damping (low = inertial and ballistic, high = an overdamped crawl). The potential selector chooses a single well — a harmonic trap set by its frequency ω — or a double well set by its separation & depth and a left/right bias. Its natural home is the ensemble phase-space view, where thousands of walkers thermalise into a Boltzmann cloud over position × momentum; painting in phase space respawns walkers in a disk at the (q, p) you brush, and they evolve back into the distribution.
Patchy Discs
Patchy Discs runs a hybrid of molecular dynamics and bond Monte-Carlo, and the Simulation tab tunes both.
Motion
Discs move by Langevin dynamics (see the science). Temperature, MD speed (integration steps per frame), and Friction γ (low = inertial and ballistic, high = an overdamped Brownian crawl) are the live knobs, and reset to their defaults on every new system. Bond stiffness — the spring constant of every formed bond (U = ½k·d² − ε) — is part of the design, so it persists across launches.
Thermodynamic ensemble — NVT or NPT
The Ensemble toggle chooses how the box is handled. NVT (the default) keeps the box a fixed size and thermostats the temperature. NPT instead lets the box breathe: a Martyna–Tobias–Klein barostat expands or compresses it until the internal pressure matches the target Pressure you set — so the discs equilibrate to whatever density that pressure implies (raise the pressure to squeeze them together, lower it to let them spread out). The Barostat coupling slider sets the box’s relaxation time — small for a fast, responsive piston, large for a slow, gentle one. The box side and packing fraction φ are shown live in the System tab, and NPT adds a packing-fraction observable. Both ensembles work in single-system and ensemble mode; the choice is a live run setting (like temperature), reset to NVT on each launch and not stored in the config.
Rule Controls
Each rule appears read-only (its kind and two endpoints) with live knobs. The strength ε (in kBT) applies to both kinds — the bond well depth for a BOND rule, the Lennard-Jones well depth for an LJ rule — and together with temperature it fixes the equilibrium. Patch–patch bonds add an attempt rate (bind/unbind attempts per MD step, per patch), which sets how fast bonding equilibrates without shifting where it settles; disc–disc attractions have no attempt rate (the MD handles them directly). An enable switch removes a rule’s interaction mid-run, and two live matrices — one for patch bonds, one for disc–disc ε — round it out.
Stirring & spawning
The Interaction & Paint window (the brush icon) has two tools. Stir pushes discs with a velocity kick along your drag — brush size (the mouse wheel resizes it too) and stir strength are sliders. Spawn inserts exactly one disc of the chosen species per click, with a thermal velocity, leaving every existing bond in place. Drop it onto a crowded spot and it is nudged clear of any overlap first, so it settles in rather than exploding out.
