XAct.jl
- Name: XAct.jl (Repository:
XAct.jl) - Primary language: Julia
- Purpose: Symbolic tensor algebra and curvature calculus for general relativity
- Python package:
xact-py(import asxact) - Verification: Oracle-based parity tests via
sxact - License: GNU General Public License v3.0 (GPL-3.0)
XAct.jl is the native Julia port of the Wolfram xAct suite. Start here if you want the project overview, the newcomer path, and the map of names used across the repository, Julia package, Python package, and verification tooling.
Start with the canonical newcomer path
Choose one path and follow it in order:
- Installation — set up Julia, Python, or the verification stack
- Getting Started — run the first working Julia or Python examples
- Typed Expressions (TExpr) — learn the recommended expression API
- Basics tutorial or notebooks — continue with guided practice
Use the page that matches your goal
| Goal | Go to |
|---|---|
| Install the project | Installation |
| Run the first working examples | Getting Started |
| Learn the typed expression API | Typed Expressions (TExpr) |
| Work through a guided Julia tutorial | Basics tutorial |
| Migrate existing Wolfram workflows | Wolfram Migration Guide |
| Look up Wolfram-to-Julia mappings | Wolfram Translation Reference |
| Understand the package and module names | Naming and product map |
| Inspect API details | Reference |
Understand the project naming
| Name | Kind | Meaning |
|---|---|---|
XAct.jl | Repository | The Git repository you clone and browse |
XAct.jl / XAct | Julia package and module | The native Julia tensor algebra engine |
xact-py | Python package | The distribution published to PyPI |
xact | Python import | The Python API imported in user code |
sxact | Verification framework | The Python tooling for oracle-based parity tests |
Know what the project contains
The project has two user-facing layers:
- XAct.jl — the Julia computational engine for canonicalization, contraction, covariant derivatives, perturbation theory, coordinate components, and invariants.
- xact-py / xact — the Python wrapper around the Julia core.
It also has one project-facing support layer:
- sxact — the verification framework used to compare results against Wolfram Engine snapshots.
Try the Julia fast track
If you already have Julia installed, this is the shortest successful session:
using XAct
reset_state!()
def_manifold!(:M, 4, [:a, :b, :c, :d])
def_tensor!(:T, ["-a", "-b"], :M; symmetry_str="Symmetric[{-a,-b}]")
@indices M a b c d
T_h = tensor(:T)
ToCanonical(T_h[-b,-a] - T_h[-a,-b])The typed API validates index usage before evaluation. For the full typed-expression model, continue to Typed Expressions (TExpr).
Continue based on where you are coming from
- New to the project: start with Installation, then Getting Started
- Already using Wolfram xAct: use the Wolfram Migration Guide
- Looking for API facts: go to the Julia API or Python API
- Evaluating implementation status: read the Feature Matrix
Troubleshooting the first page mismatch
| Situation | Best page |
|---|---|
| “I need commands, not overview.” | Installation or Getting Started |
| “I need Wolfram mappings, not onboarding.” | Wolfram Translation Reference |
| “I need the typed API details.” | Typed Expressions (TExpr) |
| “I need package naming clarified.” | Naming and product map |
Project note
Most of the codebase was developed with AI assistance and then checked by humans and by oracle-backed verification. The mathematical trust story depends on both implementation review and parity testing.