Operating system for heterogeneous multiprocessor systems · in development

Relax it. Sample it.
Or keep it driven.

Equilibrium is one regime, not the whole story. VonNeuro runs programs that minimise an objective, draw from a distribution, or evolve far from equilibrium — on p-bits, annealers, memristive networks, neuromorphic chips, a plain CPU, or a dish of living neurons. You state the intent and the contracts. The compiler finds the physics and shows its work.

Today, vonNeuro Messenger already puts real laboratory chips online: memristors, analog circuits and p-bit samplers on our bench answer jobs you send from a browser or a Python script, and every result comes back with its raw data.

Messenger and VOLT processing: running now · Full OS toolchain: roadmap

relax · xbar0 · 16×16 descending
Energy E—
Inv. temp β—
Settled in—
Substrate targets
  • p-bit fabric
  • quantum annealer
  • 1T1R crossbar
  • nanowire mesh
  • event ASIC
  • photonic operator
  • neuronal culture
  • reaction network
  • FPGA
  • GPU · CUDA / ROCm / Metal / Vulkan
  • x86-64 · arm64 · riscv64
Premise

Three commitments the whole system is built on.

portability

One program, any substrate

A program states what it means mathematically, not which chip you own. Each backend lowers that meaning to a native physical process — a coupling matrix, an anneal schedule, a driven circuit — instead of pretending the device is a CPU.

regime

Equilibrium is a special case

Plenty of useful computation has no energy function to descend. Driven, dissipative and self-organising dynamics are first-class here — which is also what makes the same abstraction reach living systems, judged on declared observables rather than on whether they settle.

accounting

A number and a bound

Joules per task alone say nothing about what was avoidable. Every run reports measured dissipation and the thermodynamic lower bound it should be read against — or refuses the comparison. The planned vnstat ledger will show both.

Today

What runs now, on real hardware, with the data to show for it.

running now

What VonNeuro does today

Computing is becoming heterogeneous. CPUs already share the work with GPUs and accelerators; next to them sits a growing family of physical processors — analog circuits, memristive networks, stochastic samplers — that compute by letting matter relax, fluctuate or respond, rather than by stepping through instructions. VonNeuro is developing a pancomputing approach for that world: a common language in which a task states what it needs, so it can be decided which processor should run it, why, and how — and a record of what each run cost and how far its answer can be trusted.

Bringing analog and stochastic computing back is a resource for the future, not a nostalgia. Physics can sample, relax to a minimum or filter a signal in time with far less energy than a digital machine simulating the same process. That saving is a promise we measure, not a result we claim yet, and the answers such hardware gives are statistical: certifying that they meet what a program declared is the part we are building now.

The bench is a proof of concept, not a product: a first prototype that multiplexes 16 RC coprocessors and 16 memristors behind one laboratory instrument, next to a hardware p-bit sampler, all online through vonNeuro Messenger. You write a program in an early version of VOLT, pick any of the 32 devices, and get back the measurement — raw samples, settings and provenance included. It exists to show that the whole loop works on real, imperfect devices.

From here we are moving toward a bit of everything: photonic and spintronic devices, annealers, neuromorphic chips, larger memristive arrays and living neural cultures, alongside conventional processors. For physicists, each is a natural process put to work, with its own noise and its own energy budget. For computer scientists, it is one more target behind a single language, chosen by a compiler that knows what each device can and cannot do. For anyone weighing where computing goes next, it is a way to keep adding capacity as the energy cost of conventional computing keeps rising — without rewriting software for every new kind of hardware.

memristors · measured

Pinched hysteresis from real chips

Device 23 · pins 8–16 · 2 V, 1 Hz · +290 / −530 µA · measured 2026-10-12
Device 22 · pins 6–14 · 1 V, 1 Hz · peak ≈4 µA · measured 2026-10-15

Sixteen memristive elements on two 16-pin devices, characterised one terminal pair at a time with sine sweeps from 0.25 to 2 V and 1 Hz to 1 kHz. The curves above are phase-averaged measurements, not simulations: current against device voltage, pinched at the origin, with loops that shrink as the drive gets faster.

Analog Discovery Studio · 256 sweep conditions · every raw sample archived with a checksum

online · messenger

Jobs from a browser or Python

Sign in to Messenger, pick a job — a VOLT program, a circuit preset on the instrument, or an emulator run — and download the result. The same jobs run from a Python script with the vonneuro_messenger package.

Per-second metering · one account, browser and game

bench prototype · 32 devices

16 RC coprocessors and 16 memristors, probed remotely

Two 16-channel multiplexers share their address lines: selecting channel n connects RC coprocessor n and memristor n at once, each with its own drive and sense. Anyone with an account can probe any of the 32 devices from Python, one guarded measurement at a time — a first prototype of a remotely programmable physical substrate.

Analog Discovery Studio · per-device safety checks · every run queued and metered

p-bits · hardware sampler

A 16-p-bit hardware sampler

A dedicated hardware sampler runs Gibbs sampling over up to sixteen Ising spins. Load couplings, set a temperature, and stream spin samples through Messenger.

16 p-bits · Gibbs sampling on dedicated hardware

a small, complete example · game

One game, every ingredient

I Shall Survive is deliberately small, but it exercises the whole problem. Enemies chase Francis on RC coprocessors measured live on the bench, and fall back to calibrated emulators while the board is busy. They decide when to guard with a real memristor, a hardware p-bit sampler can supply their stochastic choices, and a rescue drone flies on two RC coprocessors. Every decision raises the questions VonNeuro is built to answer: which device should take this task, what happens when it is unavailable, and is the physical answer still the right one.

Godot · live bench service · live and emulated side by side, below

volt 0.1 · on the bench

Programs that run on real devices

Write a VOLT 0.1 system program — a state, how it evolves under a drive, what to observe, and its contracts — and run it on a memristor or an RC coprocessor. The device contract is checked first: a program that needs an adaptive device is refused by an RC, naming the clause. Each reply carries the compiled graph, the source hash and the energy measured at the device terminals.

Compiled to VNG · device contract checked · processing programs sandboxed

The game, live vs emulated

Each enemy chasing Francis runs on one of the bench's RC coprocessors. Live, the board measures that coprocessor's real response to Francis's position and the enemy moves on it (label LIVE); between measurements, and in the emulated run, a calibrated model of the same coprocessor decides (EMU). Same level, same route, 30 seconds each, recorded in real time.

live RC coprocessors measured on the bench
emulated calibrated models, no hardware

The browser game is on request: create a Messenger account, then ask on the Play page. The game uses the same sign-in to reach the bench.

running now Messenger, VOLT 0.1 on the bench, VOLT processing, the instrument presets and the devices above. roadmap The full OS described below — compiler, kernel, thermodynamic ledger and the wider substrate list.

Messenger

The chip stays on the laboratory bench and still answers your jobs.

running now

vonNeuro Messenger: chips you can reach

Messenger is the VonNeuro device server, built on vonNeuro Messenger. It connects laboratory hardware — including one-off and experimental chips — to accounts on the web, without asking the laboratory to redesign the device around a new computer architecture. You send a job; the computer wired to the instrument runs it; the results come back to you.

  1. Sign in

    Create an account on the website or inside the game. New accounts get trial compute time, metered per second.

  2. Choose a job

    Run a VOLT program, capture from the instrument with a circuit preset, or try the emulated experiment — from the dashboard or from Python. The script lab sends RC or memristor pulse scripts, or Ising models for the 16 p-bit sampler, to the bench from the browser, and hands you the same script as Python.

  3. Get the results

    Follow the job live, then download its files: the program reply, or the raw scope samples with every setting and device identity.

volt_runRun your own VOLT 0.1 program on one of the 32 bench devices: memristor:N or rc:N.
volt_processRun an installed VOLT processing program on your inputs; returns result.json.
messenger_instrumentCapture from the Analog Discovery Studio, including guarded I–V sweeps of any memristor in the array.
volt_experimentThe game's emulated spiking experiment, without hardware.
run.py
# git clone github.com/vonneuro/messenger (access on request), then: pip install -e messenger
from vonneuro_messenger import MessengerClient

c = MessengerClient("https://series-marina-gigantic.ngrok-free.dev")
c.login("you", "your-password")

# a VOLT 0.1 program, run on memristor 15 of the bench
program = """
system memristor_evolve(u: real) {
  state material: adaptive;
  evolve material for 10 ms using drive.interval(u);
  observe response: real from material.terminal_current;
  return response;
  execution { intent = evolve; output = response; }
  device { dialects = [dynamical, adaptive];
           required_capabilities = [drive.interval, observe.terminals]; }
  thermodynamics { process_boundary = "drive_to_observation"; }
}"""
reply = c.volt_run(program, {"u": 0.5}, "memristor:15")
print(reply["result"]["value"])       # +5.6e-08 A, measured
print(reply["measured_energy_j"])        # 8.3e-11 J at the terminals

# the same program on an RC is refused before anything is driven
c.volt_run(program, {"u": 0.5}, "rc:2")["error"]
# 'device.dialects: adaptive not a dialect of rc (dynamical)'

Get the Python client

One form gets you both: a Messenger account with an hour of bench time, and access to the private repository github.com/vonneuro/messenger with the Python client, the examples and the manuals. We invite your GitHub account as a collaborator; then you git clone it and run experiments on the bench from your own computer.

1 hour of bench time per account, more on request.

The device stays in your laboratory roadmap

A lightweight adapter translates the controls and readouts already used in the lab into a versioned VonNeuro device contract, then registers that device with vonNeuro Messenger. A Volt program can target it as a remote backend, while results return with the calibration, timing, provenance and energy evidence available for that run.

connect

Keep the existing control stack and expose only the operations and measurements the chip already supports.

describe

Publish capabilities, parameter ranges, topology and current calibration as a machine-readable contract.

run

vonNeuro Messenger receives a compiled job, dispatches it to the laboratory device and returns outputs with its evidence record.

vonNeuro Messenger supplies the online endpoint, registry and job path. The scientific claim still comes from the device contract and the evidence reported by the hardware.

From chip discovery to a working backend roadmap

vonNeuro Messenger also provides the development loop for processors that do not yet have a settled programming model. A prototype can begin with a partial device contract. Characterisation runs then reveal which controls, observables and dynamical regimes are reproducible enough to support computation, while the digital reference shows what the chip gains and where it departs from the intended model.

discover

Explore relaxation, sampling and driven regimes to find useful computation in a new physical device.

characterise

Map response, noise, drift, stability, latency and energy evidence across the chip's operating range.

develop

Refine controls, calibration and compilation together, then promote the result into a versioned backend.

The same path supports a one-off research chip, successive fabrication revisions and a production device: connect it, measure it, formalise its contract, and improve the hardware against executable computational tests.

Regimes

The semantic core is small on purpose. Everything reduces to these three.

Today, small instances of each: Ising objectives, the hardware Gibbs sampler, driven memristor and spiking emulators.

Three ways matter can be useful

Most stacks assume the second and third are approximations of the first. They aren't. A sampler is not a failed optimiser, and a driven network held away from equilibrium is not a relaxation that hasn't finished yet.

minimise / relax

Descend a landscape

Objectives, ground states, fixed points. The program declares the energy and the tolerated gap; the backend picks the schedule and reports where it landed.

p-bits · annealers · Ising machines · crossbars · GPU

sample

Draw from a distribution

Inference, marginals, low-energy ensembles. The contract is distributional — total variation, effective sample size — so devices that make randomness differently can still be compared.

p-bits · annealers as samplers · stochastic devices · GPU chains

evolve / drive

Run out of equilibrium

Continuous-time dynamics under external drive: reservoirs, memristive self-organisation, analog circuits, limit cycles and hysteresis. No energy function is required, and none is invented.

memristive networks · neuromorphic · analog · photonic · living tissue

Wetware

The driver contract asks three questions. Living systems can answer them.

roadmap

Physical includes biological

A cell was running a driven, noisy, dissipative computation long before anyone built a chip to imitate one. Nothing in the semantic core mentions silicon. A backend qualifies if it can report its state, accept a drive, and characterise its own noise — and tissue can do all three. What changes is the timescale, the drift, and how honestly the energy can be measured.

neuronal culture

Neurons on an electrode array

State
Population activity across the electrodes
Drive
Closed-loop stimulation, patterned in time
Readout
Declared observables over a response window

Non-stationary over hours. The device contract is re-fit continuously, not assumed.

reaction network

Molecules in solution

State
Species concentrations, strand occupancy
Drive
Fuel species, temperature, flow
Readout
Fluorescence or sequencing at declared times

Seconds to hours per run. Latency contracts are the binding constraint, not accuracy.

gene circuit

Regulation inside cells

State
Expression levels across a population
Drive
Inducers, light, growth conditions
Readout
Distributional — the population is the sample

Intrinsically stochastic, so it lowers naturally to a sampling contract.

Living backends are held to the same contracts and the same honesty. Dissipation is metabolic and only estimated, so the ledger marks it modelled rather than measured, and refuses comparisons across boundaries it cannot justify. Protocol, provenance and approval constraints are part of the device contract, not an afterthought.

Architecture

L5 → L0. Meaning at the top, matter at the bottom.

Each layer is tagged with what exists today.

The stack, meaning to matter

Compilation here is not translation into machine instructions. It is a model-conditioned transformation: program meaning plus contracts plus the current device model, producing an executable physical process and the record of what that cost in assumptions.

L5

Volt

volt · voltc
VOLT 0.1 parser

Declare state spaces, intent, and three contracts: what counts as correct, what thermodynamic description holds, and what the device must support. Today: driven system programs and processing programs; the wider syntax is planned.

L4

Semantic graph

.vng
compiled from VOLT

A serialisable representation of maps, dynamics, distributions, objectives, measurements and composition — the portable object, and the thing that outlives any one front end.

L3

Passes

check · analyse · lower · partition
contract checks only

Contract checking, the thermodynamic analysis pass, algorithm selection, and splitting a program across two modalities without hiding conversion and communication costs.

L2

Kernel

vnk
roadmap

Event-driven scheduler, capability-based device isolation, the device registry, remote endpoints, and the ledger that meters every run. Today Messenger provides the remote job path and per-second metering; the kernel itself is not built.

L1

Device contract

vn-hal/*
schema + maturity A0–A5

A versioned, machine-readable statement of native operations, connectivity, parameter ranges, noise, timing, calibration state and available energy measurements. Compilation targets a device instance at a time; when calibration drifts, the runtime recompiles and your source doesn't move. Today: contracts and capability checks exist; drift-driven recompilation is planned.

L0

Matter

fluctuations, conductances, light, cells
memristors · RC · p-bits

Stochastic bits, annealing hardware, adaptive networks, spiking silicon, analog and photonic operators, cultured neurons and reaction networks — or a digital reference that simulates any of them for when you need a baseline you can trust.

Language

Files end in .volt · VOLT 0.1 parser and VNG compiler today

roadmap

The first three tabs show target syntax. memristor_evolve.volt compiles and runs on the bench today.

State the intent. Declare the contracts.

Every program carries four things: mathematical intent, a computational contract, a thermodynamic contract, and the device requirements. The last two are what let a run on a p-bit fabric and a run on a crossbar be compared honestly — or declared incomparable.

// target syntax (planned) · minimise — one source, three very different machines
problem max_cut(G) {
  state s: spin[G.vertices];
  minimise H(s) = sum((i,j) in G.edges, G.w[i,j] * s[i] * s[j]);
  return best(s), samples(s);
}

execution {
  stochastic     = allowed;
  objective_gap <= 0.02;
  confidence    >= 0.99;
  samples        = 2000;
}

thermodynamics {
  input_distribution = workload.max_cut;
  process_boundary   = encode_to_readout;
  coarse_graining    = logical_spin;
  lower_bound        = mismatch_cost;
}
minimise · sample · evolve

The three intents of the semantic core. A program says which one it means, and the conformance test follows from that — an objective gap, a distributional distance, or a tolerance on declared observables.

execution { … }

What counts as a correct result. Stochasticity, admissible approximation, precision, confidence, latency. A backend that cannot meet it is rejected at compile time, with the failing clause named.

thermodynamics { … }

The process model, input distribution, prior, boundary, time decomposition and coarse-graining. Without these, a joule figure is not a claim about anything.

steady_state = nonequilibrium

Says the run is held away from equilibrium by an external drive. Detailed balance is not assumed, so the analysis uses the driven forms and the runtime tracks entropy production rather than energy descent.

Physics

Stated where each result holds — and where it stops.

roadmap

Learning and accounting, without pretending

Backpropagation asks matter for an exact reverse pass over stored activations. These rules ask only for what physical systems already do: settling, fluctuating, being driven, and dissipating.

Contrastive equilibrium

ΔW ∝ (1/β) [ ⟨s sᵀ⟩clamped − ⟨s sᵀ⟩free ]

Settle twice, subtract the correlations. Every term is available at the coupling itself, so the update runs inside the array with no activation tape.

Applies to relaxation programs only

Driven, dissipative learning

σ = Σt J(t)·F(t) / T  >  0

When the system is held out of equilibrium there is no free phase to contrast against. Updates come from correlations along the driven trajectory, and the cost is a steady entropy production rate rather than a descent that ends.

Reservoirs · memristive self-organisation · neural cultures

Mismatch cost

MCG(p,q) = D(p‖q) − D(Gp‖Gq) ≥ 0

For a fixed stochastic map, actual input distribution and process-dependent prior, the drop in KL divergence lower-bounds entropy production. It is the first analysis the compiler implements, and it is why the prior has to be declared.

Reported in kB, and in joules under stated T

Hysteresis is data

Wdiss = ∮ h dm  ·  ẋ = αx − βV(t) + ξ(t)

Memristive elements have internal state, drift and loop area. VonNeuro models them explicitly and plans pulse trains against the device's own dynamics instead of assuming a write lands where you asked.

Calibrated at boot · re-fit on drift

Noise as a resource

⟨e−βW⟩ = e−βΔF

Fluctuation identities of Jarzynski–Crooks type turn device noise into free-energy estimates, so the runtime samples with the hardware's randomness instead of spending energy suppressing it.

Anneal schedules · free-energy readout

Certified descent, where it applies

dE/dt ≤ 0  ·  ‖st+1 − st‖ → 0

For programs that declare an energy, the compiler checks the update against it and emits runtime assertions where it can't decide statically. Programs that declare no energy get observable tolerances instead — not a fake Lyapunov function.

Static check · runtime assertion · stall escalation

Evidence

A real sequence: each step either keeps the bound or it doesn't.

roadmap

Every lowering says what it cost you

A thermodynamic provenance graph travels with the program. At each transformation the compiler must state whether the bound survives — and a run that ends in an invalid comparison is a useful scientific result, not a failure to be papered over.

Source

Declared boundary

Input distribution, prior family, process start and end, coarse-graining.

bound stated
Lowering

Minor embedding

Logical spins become chains of physical qubits; the state space changes shape.

recomputed
Schedule

Finer time grid

Evaluating the process at higher temporal resolution tightens the bound.

strengthened
Readout

Spatial coarse-graining

Variables removed at readout need backend justification before bounds compare.

weakened
Compare

Cross-substrate

Different boundaries or priors means the two energy figures are not the same claim.

not comparable
Support

What runs where, in which regime, and how good the energy evidence is.

roadmap

Planned backends. Today's bench: 16 RC coprocessors and 16 memristors multiplexed, LED–RC, a hardware p-bit sampler, via Messenger.

Cross-platform, stated plainly

The first five rows run today. The rest are the backends the same semantic graph is designed to reach: what changes is the native regime, how much the compiler has to approximate, and whether dissipation is measured on a rail or only modelled.

SubstrateDriverNative regimeEnergy evidenceStatus
16 memristors (devices 22, 23) on a multiplexer, Analog Discovery Studiovn_hal · Messenger · VOLT 0.1evolveTerminal energy per run (∫V·I dt)measured
16 series-RC coprocessors on a multiplexervn_hal · Messenger · VOLT 0.1evolveSource energy per run (∫V·I dt)measured
LED–RC circuitvn_hal · MessengerevolveVoltage measured; energy not yetmeasured
Hardware p-bit sampler · 16 p-bitsvn_hal · MessengersampleNonerunning
CPU emulators — analog, memristor, p-bit, spikingvn_hal/backendssample evolveNoneemulated
GPU — CUDA, ROCm, Metal, Vulkanvn-hal/gpuminimise sample evolveBoard telemetry (planned)planned
p-bit fabric on FPGAvn-hal/pbitsample minimiseRail measurement (planned)planned
Quantum annealer / Ising machinevn-hal/annealminimise sampleService-reportedplanned
Event-driven neuromorphic ASICvn-hal/spikeevolve sampleOn-chip countersplanned
1T1R memristive crossbarvn-hal/xbarminimise evolveRail measurementplanned
Self-organising nanowire meshvn-hal/meshevolveProbe-limitedresearch
Photonic / analog linear operatorvn-hal/opticevolveModelled onlyresearch
Neuronal culture on MEAvn-hal/cultureevolve sampleMetabolic, modelledresearch
Molecular / DNA reaction networkvn-hal/molecsample evolveModelled onlyresearch
Engineered gene circuitvn-hal/genetsampleModelled onlyresearch

The GPU backend is not a consolation prize planned

It is where most people will start, where large instances actually fit, and it is the reference every physical run gets compared against. All three regimes are native.

minimise

Thousands of instances relaxed at once; anneal schedules run as batched tensor ops, with the objective gap checked per instance.

sample

Independent chains in parallel, held to exactly the distributional contract a p-bit fabric has to meet — same test, different machine.

evolve

Stiff and non-stiff integrators for driven dynamics, respecting the declared measurement grid so the time decomposition stays valid.

CUDA, ROCm, Metal and Vulkan · multi-GPU sharding for graphs that outgrow one board · board telemetry feeds the ledger, so GPU runs carry measured dissipation rather than a model — which is what makes them usable as the baseline.

Today: Python (Windows-tested) for the bench, VOLT tools and the Messenger client; the Messenger server runs anywhere Python and FastAPI do.
Planned: Linux, macOS and WSL2 hosts, bare metal on arm64 and riscv64, and C, Python and Rust bindings. Neuromorphic backends are meant to lower through existing intermediate layers rather than around them.

Reach real matter now.
The full OS comes next.

Sign in to Messenger and run a VOLT program or a measurement on our bench today. Then the roadmap: install the toolchain, run the digital reference on your laptop, scale across GPUs, and point the same semantic graph at a p-bit fabric, an annealer, a crossbar, or a culture.

$VonNeuro installer — coming
roadmap