Simple module allowing to record animations to trace changes in qubit states for arbitrary quantum circuits.
Project description
qiskit-state-evolution-recorder
Simple module allowing to record animations to trace changes in qubit states for arbitrary quantum circuits.
Installation
pip install qiskit-state-evolution-recorder
Usage
from qiskit.circuit import QuantumCircuit
from qiskit_state_evolution_recorder import StateEvolutionRecorder
qc = QuantumCircuit(4)
# apply Pauli X-gate
qc.x(3)
# apply Hadamart gate
qc.h(range(4))
# apply Toffoli gate
qc.mcx(list(range(3)), 3)
# apply Hadamart gate
qc.h(range(4))
qc.measure_all()
recorder = StateEvolutionRecorder(qc, figsize=(12, 8), num_cols=4, style={'name': 'bw'})
# evolve the circuit using 120 intermediate states for each qubit
# since we have 5 fundamental states it will lead to 481 frames
recorder.evolve(120)
# with FPS of 30, the video duration will be 16.033333s
recorder.record("quantum_circuit.mp4", fps=30)
In a Jupyter notebook, you can do:
from IPython.display import Video
video = Video("quantum_circuit.mp4")
video.reload()
video
https://github.com/user-attachments/assets/8a3c8567-cbb8-4271-9c2c-9588130c01b0
Testing
Running Tests
The project includes both unit tests and performance tests. Performance tests can be run optionally.
# Run all tests except performance tests
python -m pytest --benchmark-skip
# Run all tests including performance tests
python -m pytest --benchmark-enable
# Run only performance tests
python -m pytest --benchmark-enable --benchmark-only
Backend Support
The library supports multiple animation backends:
- FFmpeg (default, preferred): Uses matplotlib's FuncAnimation with FFmpeg
- OpenCV: Uses OpenCV for video creation (fallback when FFmpeg is not available)
The system automatically selects the best available backend. To install additional backends:
# Install OpenCV backend
pip install opencv-python
# Install FFmpeg (system-dependent)
# Ubuntu/Debian: sudo apt-get install ffmpeg
# macOS: brew install ffmpeg
# Windows: Download from https://ffmpeg.org/download.html
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qiskit_state_evolution_recorder-1.0.3.tar.gz.
File metadata
- Download URL: qiskit_state_evolution_recorder-1.0.3.tar.gz
- Upload date:
- Size: 25.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
588f1628931b3aee0e63f61aa1cc1bc9b525cbeba1e19dc875ea20746f607eec
|
|
| MD5 |
b3db6637b230c66f18f9fdc0e9b9726d
|
|
| BLAKE2b-256 |
9ce1367cafcc6fc316b4c213d1cacd4c059a71a9f16ba08984bc8580a3b452d4
|
File details
Details for the file qiskit_state_evolution_recorder-1.0.3-py3-none-any.whl.
File metadata
- Download URL: qiskit_state_evolution_recorder-1.0.3-py3-none-any.whl
- Upload date:
- Size: 24.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d528e4be86435058a82ff1c53e0679a8cef7771ba80ff2968ce5897685ac1301
|
|
| MD5 |
f52a3058739b194aef31a0993e78a9d3
|
|
| BLAKE2b-256 |
5ac9e6295a9ff229a30cae71668bc1775b768a4a91335d0b543ca13f90390376
|