Skip to main content

iitx

tests license python

Integrated Information Theory, accelerated in JAX. ⚡

iitx computes integrated information — φ_s, big Φ, and the full cause-effect structure of IIT 3.0 and 4.0 — for any finite discrete dynamical system given as a transition probability matrix. It reproduces the reference implementation PyPhi's numbers on the canonical examples, and does three things PyPhi cannot:

  • Parallelize within a system 🚀 — candidate systems, mechanisms, purviews, partitions, and cuts are batched tensor work on CPU, GPU, or TPU, not Python loops.
  • Batch across systems 📦 — every analysis is a pure function of (system, state) that composes with jax.vmap: ten thousand systems are one call.
  • Differentiate 🎯 — the IIT 4.0 pipeline is differentiable with respect to the system's dynamics, almost everywhere and with exact subgradients: gradient ascent on integrated information itself.

Overview

  • General. Binary or multi-valued units, uniform or heterogeneous alphabets, deterministic or stochastic dynamics. Coarse-graining and black-boxing are pure System → System transforms, so macro-level systems feed the unchanged pipeline.
  • Faithful. PyPhi (pinned) is the frozen test oracle: the regression suite compares values against generated golden fixtures for both theory versions, including non-binary systems, and every deliberate divergence is a documented finding (docs/notes/oracle-findings.md), never a silent patch.
  • Honest about exactness. Everything is exact; the IIT 3.0 earth mover's distances are host linear programs (so 3.0 jits and vmaps but refuses grad loudly), while the IIT 4.0 intrinsic-difference pipeline is pure tensor algebra end to end.

Getting started

import jax
import jax.numpy as jnp

from iitx.measures import iit4
from iitx.system import System

# The standard 3-unit example (OR, COPY, XOR), as a state-by-node TPM.
tpm = jnp.asarray(
	[
		[0.0, 0.0, 0.0],
		[0.0, 0.0, 1.0],
		[1.0, 0.0, 1.0],
		[1.0, 0.0, 0.0],
		[1.0, 1.0, 0.0],
		[1.0, 1.0, 1.0],
		[1.0, 1.0, 1.0],
		[1.0, 1.0, 0.0],
	]
)
system = System.from_state_by_node(tpm)
state = jnp.asarray([1, 0, 0])

# System integrated information and the full Φ-structure.
analysis = iit4.system_phi(system, state)
structure = iit4.phi_structure(system, state)
print(analysis.phi, structure.big_phi)  # 0.415... and 1.0

# Batch over all 8 states of the system in one call.
states = jnp.stack([jnp.asarray([s >> i & 1 for i in range(3)]) for s in range(8)])
batched = jax.vmap(iit4.system_phi, in_axes=(None, 0))(system, states)

# Differentiate φ_s with respect to the dynamics.
gradient = jax.grad(
	lambda tpm: iit4.system_phi(System(tpm, system.shape, system.cm), state).signed_phi
)(system.tpm)

Installation

uv pip install git+https://github.com/maxencefaldor/iitx.git

Requires Python ≥ 3.14. Dependencies: jax, numpy, and POT (the exact earth-mover's-distance backend for IIT 3.0).

Examples

Notebook What it shows
Getting started Systems, φ_s, Φ-structures, IIT 3.0, batching, non-binary units, macro levels
Ascending Φ Gradient ascent on integrated information itself — to our knowledge a first — with structure emerging along the way

Design

The design documents are part of the repository: docs/design.md (the core abstractions and why), docs/generality.md (the PyPhi-vs-iitx capability table), and docs/glossary.md (one vocabulary, used identically in code and papers). Everything learned the hard way lives in docs/notes/.

Citing iitx

Citation information will accompany the first release.

Contributing

Contributions are welcome — see CONTRIBUTING. Start from the design documents; the tests define correctness.

License

MIT

Metadata

Release files for iitx 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iitx 0.1.0
File Size Uploaded
iitx-0.1.0.tar.gz 501.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iitx 0.1.0
File Interpreter ABI Platform
iitx-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 552.6 kB

Release files / iitx-0.1.0.tar.gz

Download URL iitx-0.1.0.tar.gz
Size 501.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4fb1c4c2bc0acec147b0c3c0c95965fea2ed76d61ac88909a2b37a43a3e55b0a
BLAKE2b-256 checksum
How to use checksums
67ecbf65c1da95827f2165e41be0ecdc07dc7d2127fe7b6e21b2059162c6e5c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.

Transparency log

Release files / iitx-0.1.0-py3-none-any.whl

Download URL iitx-0.1.0-py3-none-any.whl
Size 50.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fedd2eb3e70e58b165645ae908f3b7935394b39853ef2d0a007a1a8dae2092d6
BLAKE2b-256 checksum
How to use checksums
959ece3042518851c0f71f4e88a48e26eb53475da062ad56b9898ccd808b3dd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page