Skip to main content

Qiskit EigenLight

Turn a quantum system's eigenvalues into light instead of sound.

There's a well-worn idea in the ecosystem of sonifying quantum state evolution — mapping amplitudes and phases to pitch, timbre, rhythm. qiskit-eigenlight takes the same underlying object (a Hamiltonian's eigenspectrum, probed by a continuous-time evolution) and asks what it looks like instead of what it sounds like: rendered as an emission spectrum, with spectral lines positioned at true eigenvalue gaps and colored/intensity-scaled from the actual coherence structure of the evolving state.

It is not a music-to-image converter. There is no audio anywhere in this package. The physics is the same substrate a sonification would use — this is just the other rendering of it.

What it actually computes

Given a Hamiltonian H (real symmetric, e.g. the adjacency matrix of a graph) and an initial state:

  1. Diagonalize H = V Λ V^T (via numpy.linalg.eigh).
  2. Evolve under the free Hamiltonian: |ψ(t)⟩ = V exp(-iΛt) V^T |ψ(0)⟩.
  3. Decompose ⟨T(t)⟩ for a probe operator T into its Fourier components — each component sits at a frequency ω_kl = |λ_k − λ_l|, with amplitude |c_k c_l ⟨k|T|l⟩|.
  4. Render those components as spectral lines: position = true energy gap, height/color = true coherence amplitude.

This is the actual linear-response decomposition of an observable's dynamics — not a stylized approximation of one. The one deliberate simplification: T defaults to a uniform all-pairs coupling (every eigenstate pair is treated as equally "dipole-allowed") rather than something derived from the physical transition operator of a real atom. That's a real limitation if you're trying to reproduce an actual physical spectrum, and it's stated here rather than buried — pass your own T if you have one that means something.

The package also supports continuous-time quantum walks (CTQW) directly: build H as the adjacency matrix of Cay(G, S) for a finite group G and generating set S, and the same machinery gives you the walk's mixing/return-probability dynamics on one panel and its emission spectrum on the other. Girth and spectral gap are computed exactly (BFS-based cycle detection, not estimated).

Install

pip install qiskit-eigenlight

or from source:

git clone https://github.com/RexRowan/qiskit-eigenlight
cd qiskit-eigenlight
pip install -e .

Quick start

from qiskit_eigenlight import build_cayley_adjacency, spectral_lines, ctqw_populations
from qiskit_eigenlight import plot_emission_spectrum, plot_ctqw_populations

# Cay(Z_12, {1, 5}) -- a circulant graph
A = build_cayley_adjacency(n=12, generators={1, 5})

lines = spectral_lines(A, start_vertex=0)
fig = plot_emission_spectrum(lines)
fig.savefig("emission_spectrum.png", dpi=150)

times, pops = ctqw_populations(A, start_vertex=0)
fig2 = plot_ctqw_populations(times, pops)

Current scope

  • Adjacency construction: cyclic groups Z_n only, via build_cayley_adjacency. Products of cyclic groups (Z_n1 x Z_n2 x ...) are not yet supported — that's the natural next step for tying this to non-F_2^n abelian group work, and is tracked as an open item rather than silently assumed to work.
  • No dissipation. Everything here is unitary evolution; spectral lines are infinitely sharp. If you want linewidth broadening from a real decoherence model, that's a layer to add on top, not something this package currently does.
  • Girth is graph girth, not the "non-backtracking zero-sumfree" variant under investigation elsewhere — it's a useful number to watch change as you vary S, but the package doesn't (yet) compute anything about non-backtracking walks specifically. Don't over-read the girth readout as answering a distance-bound question it isn't wired to answer.

Relationship to other packages in this portfolio

This package is intentionally standalone for now — no dependency on qiskit-stateviz, qiskit-graph-walks, or anything else. An integration layer that lets qiskit-stateviz call into this package's rendering directly lives in qiskit_eigenlight.integrations.stateviz, documented separately, and is opt-in: importing qiskit_eigenlight on its own pulls in only numpy and matplotlib.

If you're looking for the CTQW mixing-signature analysis this shares math with, see qiskit-graph-walks. If you're looking for the SU(2)/spinor visual work this shares an aesthetic lineage with, see Spinor-Topology.

License

Apache 2.0.

Metadata

Release files for qiskit-eigenlight 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 qiskit-eigenlight 0.1.0
File Size Uploaded
qiskit_eigenlight-0.1.0.tar.gz 11.6 kB Details

Built distribution (wheel)

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

Total release size: 22.2 kB

Release files / qiskit_eigenlight-0.1.0.tar.gz

Download URL qiskit_eigenlight-0.1.0.tar.gz
Size 11.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0ef111749d0ccf7d466108cc12603f596f8fc2be7f98c35e8cbcc9bf9b3516b3
BLAKE2b-256 checksum
How to use checksums
bbaa10d82e8f15688f1fd42642a04c327dec81662677dfd9f01d79c0f7515ddf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.1

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

Download URL qiskit_eigenlight-0.1.0-py3-none-any.whl
Size 10.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fcfc50ebd0d4f4835a1f44eda7c249204795d2b49ca297c51eb04f6f51486f6f
BLAKE2b-256 checksum
How to use checksums
6a2bb7f7c66e14e15a04402505ba9e1b1d2ee2e0b0c4b06e34180856d88ff288
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.1

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