neuralQX logo
High-performance variational simulations for canonical Loop Quantum Gravity, built on NetKet & JAX.

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:

  1. Read Our Philosophy to understand the design goals and the long-term direction.

  2. Follow Quickstart to run your first end-to-end workflow.

  3. Use the Guides pages when you want to go deeper into the core building blocks.

In the meantime, explore:

📘 Documentation

Core modules, API concepts, and reference pages.

documentation/index.html
⚙️ Guides

Practical, “how-to” pages for graphs, Hilbert spaces, gauge groups, models, and solvers.

guides/index.html
🧠 Tutorials

Worked examples and end-to-end workflows.

tutorials/index.html
💡 Getting Started

Installation and configuration basics.

installation.html

Key features

🧩 Modular by design

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.

🕸️ Graph-native LQG workflows

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.

🧮 Constraint-driven optimisation

Express Gauß, Hamiltonian, and diffeomorphism-relevant structures as operators and run variational optimisation loops that target constraint satisfaction via expectation values, penalties, and projectors.

⚡ Performance-first backend

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:

Ideas & suggestions

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:

Apache 2.0 License

Built with ❤️ for reproducible variational LQG research.