Skip to content

Releases: HNXJ/jaxfne

jaxfne v0.3.41

14 Jun 19:02

Choose a tag to compare

JAX-optimized kernels and a public-documentation completeness pass.

Highlights

  • JAX-optimized kernels (+9 public APIs, __all__=194): spectral readouts (spectrolaminar_psd_jax, bandpower_jax, spectrolaminar_*_kernel_jax), compile_connection_rules_jax, STDP (update_stdp_weights_jax, run_stdp_stream), and an experimental volume-conductor placeholder.
  • Device-backend enforcement via jax.default_device (CPU/GPU/TPU); per-RuntimeConfig dtype (float32/float64) and jit remain adjustable. Cached jit with the recompilation guard (N_compile <= 1).
  • jit portability fix: @partial(jax.jit, ...) (decorator-factory form removed).
  • Public-doc completeness pass: scope boundaries and reserved field regimes centralized on a single page; neutral repository naming.

Truth gates (unchanged)

Proxy readouts only: field_solver_status=laminar_proxy_no_pde, physical_amplitude_claim_allowed=False. jaxfne is a computational scaffold; field/EEG/MEG/LFP/CSD outputs are proxies in relative units.

Install

pip install jaxfne==0.3.41

PyPI: https://pypi.org/project/jaxfne/0.3.41/

v0.3.40: Device Flexibility + Pre-0.4 Hardening

14 Jun 02:05

Choose a tag to compare

v0.3.40

Pre-0.4.0 hardening + device flexibility. No scientific-claim escalation; outputs remain proxy readouts (laminar_proxy_no_pde, physical_amplitude_claim_allowed=false).

Added

  • RuntimeConfig.backend (cpu/gpu/tpu) is now honored for device placement via jax.default_device; runtime_report() reports backend_enforced by device availability. dtype (float32/float64) and jit remain per-RuntimeConfig adjustable.
  • Accurate docstrings for all public jaxfne.__all__ members; fail-loud pre-0.4 physical-solver placeholder in experimental_hpc.

Changed

  • Repo hygiene: root thinned; non-public planning material removed from the published repository.

Artifact SHA256

File SHA256
wheel 7dd96e89369a064ee4664b4e076b21ed7f48c540f7471cb796963e04710c8517
sdist 89df2eeb19446b2adefb8188429c1f45651712bf16f2d0262c073d14329b281f

v0.3.39: Stable Packaging & Docs Consolidation

14 Jun 00:51

Choose a tag to compare

v0.3.39 — stable release

Packaging/docs/PyPI consolidation of the v0.3.37–v0.3.38 quality line. No new
APIs, no solver work, no scientific-claim escalation.

The v0.3.37 → v0.3.39 quality line

  • v0.3.37 — docs alignment: strict notebook grammar, root export grammar, scope/truth-gate cells, *_proxy naming, API index regenerated.
  • v0.3.38 — root-export hardening: the six export helpers (save_figure, save_figures, export_report, export_tutorial_artifacts, plot_raster, plot_spectrolaminar_suite) promoted to formal jaxfne.__all__ members (len(__all__) 179 → 185); clean-venv root-import laziness verified.
  • v0.3.39 — stable packaging: version bump across pyproject/core/mkdocs/docs; wheel + sdist rebuilt and twine-checked; published to PyPI, GitHub Release, and docs.

Validation

  • compileall + targeted pytest + mkdocs build --strict pass.
  • Root import loads no matplotlib/plotly/pandas/optax/jaxley/pynwb.
  • Docs API index count equals runtime len(jaxfne.__all__) = 185.
  • Local wheel smoke: version 0.3.39, all 185, 6 exports present, no forbidden imports.

Artifact SHA256

File SHA256
jaxfne-0.3.39-py3-none-any.whl a46a7d5fcda54f702b6f5292b63f604d32a279557296469d0594a34bab265514
jaxfne-0.3.39.tar.gz 3cb9c2811daedd331449a837ab2fcef0b4e1cef087fa36953a34ed9aed80e674

Scope / truth gates

Outputs remain proxy readouts (laminar_proxy_no_pde, physical_amplitude_claim_allowed=false); computational scaffold, not a calibrated biological simulator.

v0.3.37: Strict Notebook Grammar + Truth Gates

13 Jun 17:09

Choose a tag to compare

Summary

Completion of v0.3.37 strict notebook API/export grammar gate (Points 1–8, 100/100 test pass).

Key Changes

Point 1–3 (Frozen/Complete):

  • Root-level export APIs: save_figure, save_figures, export_report, export_tutorial_artifacts, plot_raster, plot_spectrolaminar_suite
  • Notebook structure standardization across 15 release-facing tutorials
  • Version synchronization: 0.3.37 across pyproject.toml, jaxfne/core.py, mkdocs.yml, docs

Point 4 (Scope Cells):

  • Scientific scope cells inserted into all 15 release-facing notebooks
  • Required terms: computational scaffold, proxy readout, local nonlinearity, global linearity, physical_amplitude_claim_allowed=False
  • Scope boundary phrase mandated to document truth gates

Point 5 (Tensor-Field Naming):

  • Fixed naming: *_like → *_proxy across all notebooks
  • Example: LFP-like → LFP-proxy, CSD-like → CSD-proxy

Point 7 (Validation Receipts):

  • SHA256 artifact integrity verified
  • Publication inventory complete: 8/8 figures, 10/10 extended data, 32 outputs, 165 tutorials, 59 examples
  • Build artifacts: wheel (235K) + sdist (8.0M)

Point 8 (Evidence Report):

  • 2284/2284 tests pass (100%)
  • All notebooks validated
  • mkdocs build --strict pass
  • Twine check pass

Validation Gates

  • ✅ All 15 release-facing notebooks with complete scope cells
  • ✅ Truth gates: physical_amplitude_claim_allowed=False enforced
  • ✅ Version alignment: 0.3.37 across all sources
  • ✅ JAX recompilation guard: N_compile ≤ 1 confirmed
  • ✅ Proxy naming: no *_like suffixes remaining
  • ✅ Test pass rate: 100%

Release Artifacts

  • jaxfne-0.3.37-py3-none-any.whl
  • jaxfne-0.3.37.tar.gz
  • SHA256 integrity hashes recorded
  • Documentation build: mkdocs --strict ✅

Next: Post-Release

  • PyPI distribution via twine
  • Documentation deployment
  • Archive release notes

jaxfne v0.3.31

10 Jun 19:30

Choose a tag to compare

Release Summary

jaxfne v0.3.31: Sanity notebook delta-test with spectrolaminar motif-quality audit

Release Scope

  • ✅ Delta-test notebook gate (sanity checks)
  • ✅ AGSDR observed-rate gate (connectivity-gain tuning)
  • ✅ Native drive injection (baseline current calibration)
  • ✅ Spectrolaminar motif-quality audit (per-frequency relative-power validation)
  • ✅ PDF report + PNG bundle + manifest
  • ✅ API catalog / anti-rediscovery guard

Release Evidence

Tests: 2203 passed / 67 skipped / 4 xfailed (full suite passes)

Documentation: mkdocs build --strict: pass

Publication inventory: 8/8 main + 10/10 extended data

Delta-test notebook: ✅ pass (execution + receipt validation)

AGSDR tuning: ✅ pass (observed baseline min > 1.0 Hz, mean 8.0 Hz)

Spectrolaminar motif audit: ✅ pass for all 5 areas

  • V1: populated=0.950, depth_max_min=0.9950
  • V4: populated=0.950, depth_max_min=0.9950
  • MT: populated=0.950, depth_max_min=0.9950
  • FEF: populated=0.950, depth_max_min=0.9950
  • PFC: populated=0.950, depth_max_min=0.9950

Report Artifacts

PDF Report:

  • SHA256: 4bca925e0f0e8cd278d4bfa6773685e5cdd4356bb244077599f0d8ab28970906
  • Size: 1438851 bytes

PNG Bundle (9 core + 5 optional):

  • SHA256: 4834f6c9b35229f5dfb349abf324f17aa94287b5d3c43e92743e31314f72ca56
  • Size: 1906358 bytes

Manifest:

  • repo_sha: 0d6059c
  • Contains full release metadata and truth gates

Distribution

Wheel: jaxfne-0.3.31-py3-none-any.whl

  • SHA256: 17cc8cc1b4dcc34b9ab7962a973e6ffa64f877b5316b6cbf19cfc0a8e976686b

Source: jaxfne-0.3.31.tar.gz

  • SHA256: e0b65bb15b5f53a89ec4c437926852a6f059034c0a0e56c9c87adc1655d99657

Truth / Proxy Scope

All outputs and claims are computational scaffolds, not calibrated models:

  • truth_mode: truth_safe_unverified
  • claim_level: computational_scaffold
  • field_solver_status: laminar_proxy_no_pde
  • physical_amplitude_claim_allowed: false
  • biological_learning_claim: false
  • mechanism_claim_status: not_claimed

All neural readouts use proxy-safe names (LFP-proxy, CSD-proxy, EEG-proxy, MEG-proxy). No physical amplitude or biological mechanism claims.

Installation

pip install jaxfne==0.3.31

Verify:

import jaxfne as jtfne
print(jtfne.__version__)  # Should print: 0.3.31

Next Release

v0.3.32/v0.3.33: Hierarchical global-local oddball API hardening (deferred)

jaxfne 0.3.27

02 Jun 14:14

Choose a tag to compare

Highlights

  • Added controllable internal noise for Izhikevich emitter paths.
  • simulate_eig_izhikevich and simulate_edge_recurrent_izhikevich now accept noise_scale.
  • noise_scale=None preserves the historical default behavior.
  • Scalar and per-neuron vector noise scales are supported.
  • Tutorial cell-type controls now expose per-type drive and noise knobs.
  • Tutorial defaults were tuned for stable firing rates: mean near 5–10 Hz and max below 40 Hz.
  • Added firing-rate stability reporting and JSON export.
  • Added validation for negative per-type noise and non-finite drive / Izhikevich parameters.
  • Added regression tests for noise override, vector noise scale, backward compatibility, and stable tutorial rates.

Tutorial status

The multi-area laminar tutorial remains a computational scaffold with simulated/proxy readouts. It uses laminar proxy fields, not a solved PDE field or calibrated biological amplitude.

Validation

  • Full test suite passed: 1879 passed, 63 skipped, 4 xfailed
  • CI: all checks green
  • JSON manifest / validation / metrics checks passed
  • Notebook audit passed
  • mkdocs build --strict passed

Install

```bash
pip install -U jaxfne==0.3.27
```

v0.3.5 cleanup release

26 May 19:28

Choose a tag to compare

Public docs, tutorial grammar, package metadata, and release-surface cleanup for the v0.3.x tutorial baseline.

jaxfne v0.3.4: Chainable Tutorial Grammar

26 May 15:22

Choose a tag to compare

Release: May 26, 2026

Status: Stable, production-ready

What's New

Chainable Configuration Grammar

The public API uses an intuitive chainable pattern for building models:

cfg = jtfne.Configuration()
cfg = cfg.runtime(seed=7, dtype="float32", duration_ms=1000.0, dt_ms=0.1)
cfg = cfg.column("single_neuron", layers=["L2/3"], n=1)
cfg = cfg.cell_types({"E": 1.0})
cfg = cfg.connectivity()
cfg = cfg.set_emitter("izhikevich", "cortical_eig")
cfg = cfg.probes(["MUA-proxy", "source-proxy", "LFP-proxy"])

model = jtfne.construct(cfg)
signals = jtfne.simulate(model, duration_ms=1000.0, dt_ms=0.1, seed=7)

Validated Tutorials

Three v0.3.x core tutorials are fully validated:

  • v0.3.1: Single-neuron Izhikevich dynamics
  • v0.3.2: Parameter sweep exploration
  • v0.3.3: Two-neuron E/I coupling

Plus two Suite notebooks:

  • Suite No. 1: Computational biophysics foundations
  • Suite No. 2: Spectrolaminar network motifs

Optional Dependencies Handled Correctly

  • matplotlib is optional; core API does not require it
  • Visualization tests skip gracefully if matplotlib is unavailable
  • Install with pip install "jaxfne[viz]" for plotting support
  • Core CI/test suite passes without matplotlib

Documentation Updates

  • README.md updated with v0.3.4 grammar and PyPI links
  • Scope boundaries clarified
  • Installation docs reference v0.3.4
  • Quickstart shows current chainable API

Breaking Changes

None from v0.2.30. v0.3.4 is built on the stable v0.2.30 foundation with new tutorials and public grammar documentation.

Validation

  • Test suite: 1062 passed, 37 skipped
  • PyPI smoke test: PASS (install, import, grammar execution)
  • Tutorial execution: All 5 release notebooks execute successfully
  • Twine check: PASS (wheel and sdist)
  • GitHub Actions: Green on main

Install

pip install -U "jaxfne>=0.3.4"

Or with visualization:

pip install "jaxfne[viz]"

Scope & Limitations

jaxfne v0.3.4 is a computational scaffold, not a validated biological simulator:

  • Proxy readouts only — no solved Maxwell equations
  • No empirical calibration — simulation results are relative metrics
  • Tutorial-scale — examples demonstrate concepts, not biological ground truth
  • Optional visualization — figures are instructional aids

All outputs declare truth_mode: truth_safe_unverified and claim_level: computational_scaffold.

Next Steps

v0.3.4 is a stable checkpoint. Future v0.3.x work can focus on:

  • Additional tutorials (multi-area networks, plasticity)
  • Advanced visualization (Plotly interactivity)
  • Optimization workflows
  • Jaxley bridge enhancements

Package: Available on PyPI
Documentation: Read the Docs
Repository: GitHub

jaxfne v0.2.30

23 May 19:39

Choose a tag to compare

v0.2.30: Performance hardening and tutorial-scenario stabilization.

What's in this release

  • Performance benchmarking receipts: Deterministic CPU benchmark scripts with local_environment_receipt_only claim boundary. No universal performance claims.
  • JSON-safety validator: Walks outputs/ and docs/_static/tutorial_figures/ to detect NaN/Infinity serialization violations.
  • CI policy updated: Documents benchmark scope and claim boundaries. No automatic CI gates on performance.
  • Tutorial figure manifest: Canonical docs/_static/tutorial_figures/figure_manifest.json updated to v0.2.30.
  • v0.3 tutorial-scenario doctrine: Defines the 32-phase scenario spine (v0.3.0–v0.3.31) built on stable jaxfne==0.2.30. Establishes canonical import alias import jaxfne as jtfne.

Claim status (frozen, unchanged)

  • truth_mode: truth_safe_unverified
  • claim_level: computational_scaffold
  • field_solver_status: laminar_proxy_no_pde
  • physical_amplitude_claim_allowed: false

No solver implementation, no biological mechanism claims, no physical amplitude claims.

Install

pip install jaxfne==0.2.30

Test baseline

899 passed, 40 skipped, 0 failed (Python 3.10 / 3.11 / 3.12)

jaxfne v0.2.18

21 May 05:49

Choose a tag to compare

jaxfne v0.2.18

v0.2.18 completes the release-readiness contract for the current jaxfne TFNE scaffold line.

Highlights

  • Completed the public jaxfne.runtime surface:
    • RuntimeConfig
    • runtime
    • runtime_report
    • get_jax_backend_report
    • set_precision_policy
    • safe_jit
    • safe_vmap
  • Added CPU-first runtime/backend inspection helpers.
  • Added precision-policy control for float32 default and x64 opt-in workflows.
  • Added safe JAX transform wrappers with fallback behavior.
  • Removed stale public version language from README and examples.
  • Preserved the current TFNE claim discipline:
    • computational scaffold
    • simulated/proxy readouts
    • no biological proof claim
    • no calibrated physical amplitude claim from proxy operators

Validation

Release-prep validation completed on the tagged commit:

python -m compileall -q jaxfne tests examples
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 PYTHONPATH=. python -m pytest tests/ -q --tb=line
737 passed
python -m build
twine check dist/*
PASSED

Package

pip install jaxfne==0.2.18

Release commit

1db649ac5e2de3a8ad3f145adc1b968acdb9bf73