jaxfne
Tensor-Field Neural Equations (TFNE) expressed as a JAX simulation engine for layer-resolved neural circuits, source operators, field proxies, probes, objectives, and evidence receipts.
Scientific grammar: Emitter → Source → Field → Probe → Objective → Optimizer → Manifest
Execution grammar: CircuitSpec → construct → Model → simulate → Signals
CircuitSpec is a conceptual category (Configuration | NeuronalTensor),
not a concrete public production class — construct accepts either a
Configuration (original path) or a NeuronalTensor with a
RuntimeConfiguration (tensor-first path). It is unrelated to the
experimental jaxfne.experimental_hpc.CircuitSpec type, which is
not accepted by production construct.
Adaptation (optional HDP family): finite-dimensional hidden biophysical state $H$ and adaptive parameter coordinates $\Theta$ (synaptic and intrinsic), mediated by
$$ \dot X = F_X(X,H,\Theta,U),\quad \dot H = F_H(H,X,\Theta,U),\quad \dot\Theta = F_\Theta(H,X,\Theta). $$
$H$-state is the latent representation; HDP is the adaptive dynamical formulation that uses it. See H-state / HDP guide.
Install
pip install jaxfne
pip install "jaxfne[viz]" # optional plotting
Development: pip install -e ".[dev,viz]" after cloning.
Minimal example
import jaxfne as jtfne
jtfne.enable_x64()
tensor = jtfne.load_canonical_neuronal_tensor("canonical-v1-column-1000n")
model = jtfne.construct(tensor, jtfne.RuntimeConfiguration(seed=0, duration_ms=1000.0, dt_ms=0.5))
signals = jtfne.simulate(model)
Optional: generative development (JDNA)
Instead of loading a fixed tensor, generate one from a PseudoGenome:
genome = jtfne.load_canonical_pseudogenome("canonical-v1-column-1000n")
tensor = jtfne.develop(genome, seed=0) # K_D: development seed
model = jtfne.construct(tensor, jtfne.RuntimeConfiguration(seed=1, duration_ms=1000.0, dt_ms=0.5))
signals = jtfne.simulate(model)
JDNA is an optional path; the direct Configuration/NeuronalTensor paths
remain first-class. See JDNA guide.
Import convention: import jaxfne as jtfne. Builder paths, paradigms, and
optimization: Quickstart.
Relative and calibrated outputs
Simulated quantities are relative by default. Calibrated claims require an explicit transformation with evidence. See Scope & status.
Documentation
| Resource | Link |
|---|---|
| Quickstart | docs/quickstart.md |
| Site | jaxfne.readthedocs.io |
| Tutorials | docs/tutorials/ |
| Études | docs/etudes/ |
| Frozen compatibility contract (0.4.13) | docs/public_surface_contract.md |
| Changelog | docs/changelog.md |
Citation
Visual examples
Real package outputs (simulated proxy scaffolds; calibration requires an
explicit transformation with evidence):
circuit geometry from Model.neuron_table(), a 10 s spike raster, a
laminar spectrolaminar readout, and long-timescale firing-rate dynamics
with homeostasis on/off. More: showcases.
Release files for jaxfne 0.4.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jaxfne-0.4.17.tar.gz | 40.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jaxfne-0.4.17-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.8 MB
Release files / jaxfne-0.4.17.tar.gz
| Download URL | jaxfne-0.4.17.tar.gz |
|---|---|
| Size | 40.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aabf22f4aa0b906d40623de60c7aa8f8d7f4e95b70aaa17f0dd026a80a99c6f2
|
|
BLAKE2b-256 checksum How to use checksums |
48e41fc5d8fffaac1597361439f9c37f8285b352d4d864c0fa99c0b8e9cd7f13
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Release files / jaxfne-0.4.17-py3-none-any.whl
| Download URL | jaxfne-0.4.17-py3-none-any.whl |
|---|---|
| Size | 639.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ea20ce34727b50c4cba71d84c38cf567235f7760428a3ac614684dcc3f4807b2
|
|
BLAKE2b-256 checksum How to use checksums |
1e8a1573f0f511d84534bc26da5b1bc7f34c546009fca66697e90a07866a5595
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|