Dense Evolution

io.github.tatopenn-cell由 GitHub 账号 tatopenn-cell 发布v8.1.52更新于 Oct 24, 2026

Real quantum circuit simulator, VQE, molecular Hamiltonians, QM/MM forces, and MD via 21 tools.

已验证STDIO仅桌面开发者工具AI 与机器学习

概览

AI 生成的概览

本地 MCP 服务器,让助手通过约 22 个工具驱动 Dense Evolution Composer 量子电路编辑器与模拟器。

可以做什么
通过所暴露的工具驱动 Dense Evolution Composer 电路编辑器,以图形或 OpenQASM 2.0/3.0 方式构建和编辑电路(清单未列出具体工具名)。在本地内核上运行量子模拟,包括态矢量与 MPS 引擎、噪声模型和零噪声外推。按注册表描述,可进行 VQE、分子哈密顿量、QM/MM 力与分子动力学计算。还可使用同一软件包中的可逆算术、后选择、QEC 解码以及 Qiskit/PennyLane 互操作。
适用场景
适合希望助手在本地 Composer 会话中构建、编辑并模拟量子电路,或直接在对话中运行 VQE、化学与 QM/MM 计算的场景。它是面向量子计算工作的桌面专用工具,而非通用自动化工具。
运行要求
通过 stdio 在本地运行,从 PyPI 以 uvx 安装(mcp 附加包)。需要先启动 Composer 内核(composer 附加包),其地址由环境变量 DENSE_EVOLUTION_KERNEL_URL 指定,默认指向本地地址。JAX 是核心依赖;可选附加包提供 GPU、仪表板、Qiskit/PennyLane 与 Hartree-Fock 支持。未声明身份验证。
安装前请注意
服务器连接的内核地址来自 DENSE_EVOLUTION_KERNEL_URL,只应指向你自己启动的内核。模拟可能占用大量内存和算力,磁盘溢出是较慢的兜底方案。在 macOS 上使用 Qiskit 附加包时,已知 Qiskit 会导致进程崩溃,建议改用 PennyLane 附加包。通过工具执行的操作会改变 Composer 会话中的电路。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Dense Evolution,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[Dense Evolution — NISQ quantum simulation toolkit, JAX-native]

A high-performance quantum simulation toolkit Statevector/MPS engines with compilation, noise, VQE, QEC, chemistry, and agent-native tooling.

[图片]
Download the Dense Evolution Dashboard (Streamlit)
Windows (.bat) · macOS / Linux (.sh)

[CI] [Docs] [codecov] [PyPI] [PyPI Downloads] [Python] [License] [Build] [Cross-Validation CI] [Latest Release] [Last Commit] [Issues] [Stars] [JAX] [DOI] [Featured in Awesome Quantum Software]


Table of Contents

▍ What It Is

Run up to 28 qubits in about 3 seconds, without crashing. Dense Evolution JIT-compiles statevector circuits through JAX XLA, automatically chunks and — past even that RAM ceiling — spills to disk when memory fills up, so a real simulation stays alive instead of OOM-ing.

📖 Full documentation, API reference, and worked examples →

A local Streamlit dashboard and web-based Composer editor are also included — see Composer & MCP Server below.


▍ Install

bash
pip install dense-evolution  # JAX is a core dependency, installed by default
# full stack: GPU · dashboard · Qiskit/PennyLane interoppip install dense-evolution[full]
# just the interop bridgepip install dense-evolution[qiskit]pip install dense-evolution[pennylane]
# native Hartree-Fock (basis-set data)pip install dense-evolution[hf]
# Composer's local kernel (see "Composer" below)pip install dense-evolution[composer]
# MCP server for the Composer kernel (see "MCP Server" below)pip install dense-evolution[mcp]
# developmentgit clone https://github.com/tatopenn-cell/Dense-Evolution.gitcd Dense-Evolution && pip install -e .[full]
⚠️ macOS + dense-evolution[qiskit] users

Qiskit's own QuantumCircuit.__init__ is known to segfault the whole process on macOS/arm64 (an upstream Qiskit bug, not something Dense-Evolution can fix from its side — see release v8.1.43 for the full reproduction). dense_evolution/interop.py now warns (RuntimeWarning, once per process) the first time you touch the Qiskit bridge on sys.platform == 'darwin', but it does not block — some Qiskit/macOS combinations may work fine. If you hit a crash, pip install dense-evolution[pennylane] gives the same circuit-interop functionality without constructing any Qiskit object.

Google Colab (3 lines):

python
!git clone https://github.com/tatopenn-cell/Dense-Evolution.git%cd Dense-Evolution!pip install -e .

▍ Quick Start

python
from dense_evolution import DenseSVSimulator, QASMParser
# parse any OpenQASM 2.0 / 3.0 string -- single-qubit rotations, a barrier# (a real OpenQASM synchronization marker: parsed like hardware would, no# effect on the simulated state), then an entangling layerqasm = """OPENQASM 2.0;include "qelib1.inc";qreg q[3];rx(pi/3) q[0];ry(pi/4) q[1];h q[2];barrier q;cx q[0], q[1];cx q[1], q[2];rz(pi/6) q[2];"""
parser = QASMParser()circuit = parser.parse(qasm)
sim = DenseSVSimulator(n_qubits=3)sim.run_circuit_jit(circuit.to_tuples())
probs = sim.get_probabilities()sv    = sim.get_statevector()# probs = [0.3201 0.3201 0.0549 0.0549 0.0183 0.0183 0.1067 0.1067]

Noise:

python
import numpy as npfrom dense_evolution import DenseSVSimulator, QASMParser, NoiseModel
qasm = 'OPENQASM 2.0; include "qelib1.inc"; qreg q[2]; h q[0]; cx q[0],q[1];'circuit = QASMParser().parse(qasm)
sim = DenseSVSimulator(n_qubits=2)sim.run_circuit_jit(circuit.to_tuples())
noisy_sv = NoiseModel.apply_to_sv(np.asarray(sim.sv), n=2, model='depolarizing', p=0.05, rng=np.random.default_rng(0))np.abs(noisy_sv) ** 2# [0.   0.5  0.5  0.  ]

VQE:

python
import jaximport jax.numpy as jnpfrom dense_evolution import QASMParser, circuit_to_energy_fn
qasm = 'OPENQASM 2.0; include "qelib1.inc"; qreg q[1]; ry(0.0) q[0];'circuit = QASMParser().parse(qasm)energy_fn, n_params = circuit_to_energy_fn(circuit, n_qubits=1)h = jnp.array([[1.0, 0.0], [0.0, -1.0]], dtype=jnp.complex128)  # Pauli Z
theta = jnp.array([0.1])grad_fn = jax.value_and_grad(energy_fn, argnums=0, has_aux=True)for _ in range(40):    (energy, sv), grad = grad_fn(theta, h)    theta = theta - 0.5 * grad# energy = -1.0, theta = [3.14159265]

Mitigation (ZNE):

python
import dense_evolution as de
e1, e2, e3 = 1.234, 0.876, 0.611  # values at 1x, 2x, 3x noisede.zero_noise_extrapolation([e1, e2, e3], [1.0, 2.0, 3.0])# 1.622

Dashboard (local, Streamlit):

bash
pip install "dense-evolution[dashboard]"  # JAX already included by defaultstreamlit run tools/dashboard/app.py

Anti-OOM for large circuits:

python
from dense_evolution import Chunk, QASMParser
qasm = 'OPENQASM 2.0; include "qelib1.inc"; qreg q[27]; h q[0:27];'circuit = QASMParser().parse(qasm)
sim = Chunk(27)sim.run_chunk(circuit.to_tuples(), chunk_size_gates=500)

▍ Key Features

[图片]
  • JIT-fused statevector engine. No Kronecker-product overhead — stride-sliced linear kernel fusion compiled through JAX XLA, real GPU/TPU dispatch with no code change. Simulator · MPS backend for low-entanglement circuits at scale.
  • Anti-OOM Chunk engine. Circuits too large for one array, split dynamically and sized off the real compute device's own free memory — with disk-backed overflow past even that ceiling. Chunk guide.
  • Real noise, real mitigation. Stochastic Kraus channels, real-device noise imported from Qiskit backends, and Zero-Noise Extrapolation, with the shot budget split optimally across noise factors and a single-qubit Bloch-vector variant that always returns a valid state, to correct for it. Noise · Mitigation · what noise/mitigation/healing each mean.
  • Differentiable VQE, from scratch. circuit_to_energy_fn is the same JAX-differentiable engine real molecular VQE runs on — real Hartree-Fock Hamiltonians, UCCSD/hardware-efficient ansätze, Adam optimization. Autodiff.
  • libcint integrals on Windows, macOS and Linux. pip install dense-evolution ships libcint compiled for each system: the full two-electron tensor of ethanol in 6-31G* in 0.32 s. Open-shell molecules with UHF and ROHF (run_uhf, run_cuhf). native_hf.
  • Reversible arithmetic. Register adders, subtraction, comparisons and modular arithmetic up to modular exponentiation, applied as exact basis permutations, and as OPENQASM 2.0 gate circuits (Cuccaro, Draper and Beauregard adders, controlled modular multiplication), up to Shor order finding with one control qubit. Arithmetic.
  • Postselection. Keep the branch where a qubit is found in |0>, |1>, |±> or |±i>, with its probability. Postselection.
  • OpenQASM 2.0/3.0, both directions. A real parser, plus Qiskit/PennyLane interop bridges. QASM Parser · Interop.
  • Code-agnostic QEC decoding, Majorana/Jordan-Wigner fermion mapping, from-scratch Hartree-Fock for elements outside PennyLane's own basis set, a traversable-wormhole-inspired teleportation protocol, and real QM/MM region partitioning (ring-safe BFS, Diffuse2Seg-derived relevance propagation) — see the full API reference for all of it.

▍ Benchmarks

Measured on Windows, CPU only, 8 GB RAM — PennyLane's default.qubit allocates the full statevector; Dense Evolution's Chunk holds constant ~2 GB regardless of qubit count.

QubitsHilbert SpacePennyLaneDense EvolutionChunk Geometry
2667,108,864✅ 1,074 MB✅ 2,050 MB1× (2²⁷)
28268,435,456❌ OOM✅ 2,050 MB2× (2²⁷)
324,294,967,296❌ OOM✅ 2,048 MB32× (2²⁷)

On Google Colab (12 GB RAM), n=28 runs in ~3s end-to-end (JIT-compiled, num_chunks=2) — the multi-chunk path is fast, not just OOM-safe. Past the real RAM ceiling (Chunk alone raises MemoryPressureError cleanly rather than crashing the process), allow_disk_overflow=True falls back to a slower disk-backed path instead of failing — correctness-first, not benchmarked for speed yet. Full measured table: docs/api/chunk.md.

▍ Composer & MCP Server

A real circuit editor (graphical or OpenQASM) running on your own machine, plus an MCP server exposing 22 tools so an agent (Claude Code, Claude Desktop, ...) can drive it directly. Composer · MCP Server.

▍ Key Resources


▍ Changelog

📜 Full Changelog & Releases — every version, latest first.


▍ License

GNU Affero General Public License v3.0 or later. A commercial licence is available on request.

Releases up to 8.3.2 were published under the Business Source License 1.1: LICENSE-BUSL-1.1-until-8.3.2.md

Full text: LICENSE


▍ Cite This

If Dense-Evolution is useful in academic work, please cite it via the metadata in CITATION.cff (recognized by GitHub's own "Cite this repository" button, and by reference managers that support the Citation File Format).

Archived on Zenodo:


© 2026 Salvatore Pennacchio — Dense Evolution

来源:README.md,提交 3baff9e

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v8.1.52最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分