What is neuraLQX?¶
neuraLQX is an open-source Python package for high-performance variational simulations of canonical loop quantum gravity. It is designed to let you work directly with LQG-native objects (graphs, Hilbert spaces, gauge groups, constraints, projectors) while leveraging a battle-tested variational backend.
Under the hood, neuraLQX builds on NetKet and JAX. In practice, this means you can use state of the art Monte Carlo sampling, automatic differentiation, and scalable optimisation workflows, while writing simulations in a vocabulary that matches LQG.
Start here¶
If you are new to the project, the fastest path is:
Read Our Philosophy to understand the design goals and the long-term direction.
Follow Quickstart to run your first end-to-end workflow.
Use the Guides pages when you want to go deeper into the core building blocks.
In the meantime, explore:¶
Core modules, API concepts, and reference pages.
Practical, “how-to” pages for graphs, Hilbert spaces, gauge groups, models, and solvers.
Worked examples and end-to-end workflows.
Installation and configuration basics.
Key features¶
neuraLQX is organised around clearly separated modules (graphs, Hilbert spaces, gauge groups, operators, projectors, solver/driver orchestration). This keeps workflows inspectable and makes it easier to extend or swap components.
Define the discrete geometric backbone explicitly and build consistent kinematics and operators on top. Graphs are treated as first-class objects that drive indexing, orientation conventions, and operator structure.
Express Gauß, Hamiltonian, and diffeomorphism-relevant structures as operators and run variational optimisation loops that target constraint satisfaction via expectation values, penalties, and projectors.
JAX + NetKet provide fast sampling, differentiation, and optimisation. neuraLQX focuses on LQG-specific structure while staying compatible with NetKet’s variational ecosystem.
What you can do today¶
The current focus is the Abelian \(U(1)^N\) playground: a clean environment where we can test operator constructions, Hilbert-space layouts, gauge-invariant sampling strategies, and end-to-end solver workflows.
This includes (among other things):
fixed-graph models where edges carry \(U(1)^N\) degrees of freedom,
multiple operator backends (local-operator style vs. “act-on-state” computational operators),
kinematical and reduced (gauge-invariant) Hilbert-space constructions,
projectors and penalty-based workflows that integrate into variational Monte Carlo,
and a solver that coordinates models, samplers, networks, and logging in a reproducible way.
Suggestions¶
If you have ideas (for example, operators or models you would like to see implemented), please share them by opening a new post in the ideas discussion board:
P.S. you will need a GitHub account.
Examples¶
You can also find more hands-on examples in the tutorials area. During development, some tutorial content may live as notebooks in the GitHub repository before it is fully integrated into Read the Docs.
License¶
This package will be available under the Apache 2.0 license. You can read the license text here: