Releases: HNXJ/jaxfne
jaxfne v0.3.41
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-RuntimeConfigdtype (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
v0.3.40: Device Flexibility + Pre-0.4 Hardening
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 viajax.default_device;runtime_report()reportsbackend_enforcedby 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 inexperimental_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
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,
*_proxynaming, 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 formaljaxfne.__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 --strictpass. - 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
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
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_unverifiedclaim_level: computational_scaffoldfield_solver_status: laminar_proxy_no_pdephysical_amplitude_claim_allowed: falsebiological_learning_claim: falsemechanism_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.31Verify:
import jaxfne as jtfne
print(jtfne.__version__) # Should print: 0.3.31Next Release
v0.3.32/v0.3.33: Hierarchical global-local oddball API hardening (deferred)
jaxfne 0.3.27
Highlights
- Added controllable internal noise for Izhikevich emitter paths.
simulate_eig_izhikevichandsimulate_edge_recurrent_izhikevichnow acceptnoise_scale.noise_scale=Nonepreserves 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
Public docs, tutorial grammar, package metadata, and release-surface cleanup for the v0.3.x tutorial baseline.
jaxfne v0.3.4: Chainable Tutorial Grammar
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
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.30Test baseline
899 passed, 40 skipped, 0 failed (Python 3.10 / 3.11 / 3.12)
jaxfne v0.2.18
jaxfne v0.2.18
v0.2.18 completes the release-readiness contract for the current jaxfne TFNE scaffold line.
Highlights
- Completed the public
jaxfne.runtimesurface:RuntimeConfigruntimeruntime_reportget_jax_backend_reportset_precision_policysafe_jitsafe_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.18Release commit
1db649ac5e2de3a8ad3f145adc1b968acdb9bf73