Extropic THRML, the Open Source Thermodynamic Sampler
Extropic THRML is an open-source Python library, built on JAX, that samples from probabilistic graphical models by block Gibbs sampling. Extropic, the company Guillaume Verdon founded, released it under the Apache-2.0 licence in October 2025 as the software side of its thermodynamic chips. You install it with pip install thrml, and it runs today on an ordinary CPU or GPU. For this site the library has one use. It lets a sampling step that would run on thermodynamic hardware be tested in software first, against exact answers, before any chip exists to test it on.
In short, THRML is the reference software for Extropic’s p-bit hardware, it runs without that hardware, and The Consciousness AI already calls it from its research code. No result from it is evidence that the project’s architecture is substrate independent yet.
What Extropic builds
Extropic designs chips made of p-bits, probabilistic bits whose state flips at random because of thermal noise in the transistor. A grid of coupled p-bits settles into states with the probabilities of an Ising model, so the hardware draws samples that a digital machine has to compute step by step. The company’s first silicon, X0, shipped inside a desktop platform called XTR-0 to dozens of early users.
The next chip, Z1, is taped out. In its Summer 2026 post From One to One Billion, Extropic states the following figures. None of them has been measured by this project.
| Item | Extropic’s stated figure | Status |
|---|---|---|
| Z1 p-bits | 269,568 in eight cores | Taped out, early access planned for 2027 |
| Z1 couplings | 215,904 programmable, 16 neighbours per p-bit | Vendor figure |
| Z1 speed and power | Above 50 MHz sampling, under 1 W per die | Vendor figure |
| Thermo Compute Stick | Two Z1 chips, over 500,000 p-bits | Planned |
| Thermo Accelerator Card | 16 Z1 chips, over 4,000,000 p-bits | Planned |
| Thermo Compute Cluster | Over 1,000,000,000 p-bits | Planned for 2027 |
The efficiency claim comes from a paper. Andraž Jelinčič, Owen Lockwood, Akhil Garlapati, Peter Schillinger, Isaac Chuang, Guillaume Verdon and Trevor McCourt describe an all-transistor probabilistic computer that runs denoising models in hardware (arXiv:2510.23972, first posted 28 October 2025). They estimate that such a device could match a GPU on a simple image benchmark with about 10,000 times less energy. That number is a system-level estimate from simulation. It is not a measurement on a chip. The THRML README asks users to cite this paper.
What THRML does
THRML samples from discrete energy-based models. The user declares nodes, such as spins, and the edges and weights between them. The library then splits the nodes into blocks with no edges inside a block, and updates one block at a time in parallel. That schedule is chromatic Gibbs sampling, the same scheme Extropic states Z1 runs in hardware. Internally, THRML compiles the interactions into one array representation, so JAX can run the updates without Python loops.
The release history is short. Version 0.1.3 appeared on PyPI on 29 October 2025 and version 0.1.4 on 4 August 2026. The repository had about 1,170 stars on 27 October 2026. It needs Python 3.10 or newer.
The README example samples a chain of five spins. We ran it on 27 October 2026 with THRML 0.1.4 and JAX 0.12, with more samples, and added one line that compares the result to the exact answer. For an open chain with no bias, the mean product of neighbouring spins equals tanh of the coupling times beta, which is tanh(0.5) = 0.462.
import jax
import jax.numpy as jnp
from thrml import SpinNode, Block, SamplingSchedule, sample_states
from thrml.models import IsingEBM, IsingSamplingProgram, hinton_init
nodes = [SpinNode() for _ in range(5)]
edges = [(nodes[i], nodes[i + 1]) for i in range(4)]
model = IsingEBM(nodes, edges, jnp.zeros((5,)), jnp.ones((4,)) * 0.5, jnp.array(1.0))
free_blocks = [Block(nodes[::2]), Block(nodes[1::2])]
program = IsingSamplingProgram(model, free_blocks, clamped_blocks=[])
k_init, k_samp = jax.random.split(jax.random.key(0), 2)
init_state = hinton_init(k_init, model, free_blocks, ())
schedule = SamplingSchedule(n_warmup=100, n_samples=20000, steps_per_sample=2)
samples = sample_states(k_samp, program, schedule, init_state, [], [Block(nodes)])
spins = 2 * jnp.asarray(samples[0], dtype=jnp.float32) - 1
print((spins[:, :-1] * spins[:, 1:]).mean(), jnp.tanh(0.5))
The run printed a sampled value of 0.463 against the exact 0.462. The two blocks are the even and the odd spins. A chain has no edge between two even spins, so each block updates at once, which is the parallel step a p-bit grid does physically.
The other open tools
Extropic publishes a second framework, Torx, also Apache-2.0 and built on JAX, for stochastic circuits and factor graphs. Its compiler for Z1, Thermalizers, was announced in the same post and was not yet on GitHub on 27 October 2026. Normal Computing, which taped out its own thermodynamic chip, CN101, publishes thermox, an Apache-2.0 JAX library that simulates Ornstein-Uhlenbeck processes exactly and solves linear algebra the way a thermodynamic device would (arXiv:2308.05660). The Thermodynamic Computing hub lists these tools side by side.
Comparison to The Consciousness AI
The project’s research code wraps THRML in one file, models/thermodynamic/interfaces/thrml_adapter.py. THRML is optional and is not in the project’s requirements. The wrapper passes couplings and biases straight through, because THRML’s Ising energy uses the same sign convention as the project’s own p-bit emulator. That was checked by exact enumeration on 22 September 2026 with THRML 0.1.4. A test samples a small frustrated graph of six spins with 2,000 chains and requires the samples to sit within a total variation distance of 0.03 of the exact Boltzmann distribution. The wrapper samples in software only. It does not reach any Extropic hardware.
The consciousness question sits one step further on. This site studies consciousness as an emergent property under functionalist emergentism, which predicts that the causal organization carries the result, whatever material runs it. Thermodynamic hardware is one of the cleanest tests of that prediction, because it replaces deterministic arithmetic with physical noise. If the parts of the architecture that the project has verified keep their measured properties when one step runs on p-bits, that supports substrate independence for those properties. If they lose them, that counts against it. Todd Feinberg and Jon Mallatt, whose six neurobiological features shape the design, argue that the substrate is critical for sentience, so the result is open in both directions.
THRML makes the software half of that test possible now. The hardware half waits for chips the project can measure. The Thermodynamic Console shows the two systems involved, an Ising lattice near its critical temperature and a ring of Kuramoto oscillators, emulated in the browser. The wider argument about which substrates could carry consciousness is laid out in Pober and Schwitzgebel’s case for substrate flexibility, and the field’s attempt to set criteria at all is in the race to define AI consciousness.
What is known and what is not
Known on 27 October 2026. THRML is public, licensed Apache-2.0, installs from PyPI, and its Ising sampler matches exact statistics on small graphs, in our run and in the project’s test. Extropic’s X0 exists and shipped to early users. Z1 is taped out.
Not known. No independent group has published a measurement of Z1’s speed or power. The 10,000 times energy figure is an estimate from simulation. No result from this project shows that any property of its architecture survives a move to p-bits, in software or in hardware. The Extropic figures above are the company’s own, and this page reports them as such.