v3.15.0
[3.15.0] — 2026-05-19
Wave 11: Hardware and compiler extensions (2026-05-01)
Added — Hardware Profiles (8 new → 183 total, 35 platform classes)
- Thermodynamic (2):
extropic_epu,normal_cn101. - Probabilistic / p-Bit (2):
purdue_pbit,tohoku_sot_pbit. - Polariton / Exciton (2):
marvell_polariton,stanford_polariton. - Metamaterial (2):
mit_metamaterial,penn_acoustic_meta.
Added — Compiler Features (9 new → 76 total)
- §68
configure_approximation()— precision-energy tradeoff knobs per population. - §69
model_energy_harvest()— batteryless edge feasibility analysis. - §70
predict_aging()— NBTI/HCI degradation modeling with timing derating. - §71
generate_dvfs_controller()— Verilog DVFS FSM generator. - §72
explore_pareto()— multi-objective power/area/latency Pareto frontier. - §73
protect_ip_pqc()— post-quantum (CRYSTALS-Dilithium) IP protection. - §74
run_fault_campaign()— systematic bit-flip SDC testing. - §75
verify_timing_closure()— formal static timing analysis. - §76
ingest_telemetry()— digital twin ↔ hardware telemetry loop.
Added — Tests
test_wave11_features.py— 35 tests, 0 failures.
Wave 10: Security, sovereignty & extensibility (2026-05-01)
Added — Hardware Profiles (10 new → 175 total, 31 platform classes)
- Magnonic (3):
tum_skyrmion,kaist_spinwave,imec_mtj_reservoir. - Organic Bioelectronic (2):
cambridge_oect,linkoping_organic. - RISC-V Sovereign (5):
sifive_x280_ai,esperanto_et_soc,
ventana_veyron_ai,tenstorrent_ascalon,andes_ax45mpv.
Added — Generic Profile Constructor
HardwareProfile.from_constraints()— auto-construct profile from spec
sheet constraints. Any future hardware automatically supported.
Added — Compiler Features (8 new → 67 total)
lint_hardware_trojans()— detect dormant trigger / payload paths.generate_sbom()— CycloneDX/SPDX SBOM for EU CRA compliance.generate_hil_calibration()— HIL drift compensation protocol.generate_digital_twin()— software shadow of deployed hardware.map_ucie_protocol()— UCIe chiplet die-to-die lane mapping.schedule_seu_scrubbing()— space-grade configuration scrubbing.obfuscate_ip()— logic locking + structural IP protection.embed_watermark()— verifiable netlist watermark embedding.
Added — Tests
tests/test_wave10_features.py— 32 tests across 13 test classes.
Wave 9: Universal coverage & extensibility (2026-05-01)
Added — Hardware Profiles (10 new → 165 total, 28 platform classes)
- Optical I/O (2):
ayar_teraphy,intel_cpo. - Acoustic (2):
mit_phononic,caltech_mems_nn. - Fluidic (2):
stanford_microfluidic,eth_fluidic_logic. - Space-Qualified (4):
bae_rad750_sq,seakr_sbc,vorago_va10820,frontgrade_leon5.
Added — Compiler Features (8 new → 59 total)
analyze_cdc()— formal CDC check.load_profiles_from_toml()— custom HW without code changes.plan_multi_die_floorplan()— chiplet/3D bin packing.check_regression()— perf regression detector.check_license_compliance()— SPDX IP compatibility.generate_power_state_machine()— sleep/wake/hibernate FSM.register_platform_hook()/discover_platforms()— runtime extensibility.generate_compilation_report()— one-click markdown report.
Added — Tests
tests/test_wave9_features.py— 28 tests across 10 test classes.
Wave 8: Final gap closure & trajectory synthesis (2026-05-01)
Added — Hardware Profiles (11 new → 155 total, 24 platform classes)
- RRAM (3):
weebit_reram,crossbar_rram,adesto_cbram. - SRAM-CIM (2):
tsmc_cim_n7,samsung_cim_sf3. - Cryo CMOS (2):
intel_horse_ridge,google_cryo_ctrl. - DNA/Molecular (2):
microsoft_dna_store,asu_dna_perovskite. - Quantum Neuromorphic (2):
ibm_qnn,ionq_trapped_ion.
Added — Compiler Intelligence Features (10 new → 51 total)
import_nir_graph()— NIR/ONNX-SNN model import.verify_ode_stability()— Lyapunov/eigenvalue discretization check.generate_power_intent()— IEEE 1801 UPF generation.estimate_carbon_footprint()— lifecycle CO₂ per target.insert_debug_probes()— ILA/SignalTap auto-insertion.generate_memory_map()— address decoder for neuron SoC arrays.score_portability()— cross-platform compatibility scoring.predict_reliability()— MTTF from voltage/temp/node.generate_fault_tree()— FTA/FMEA for DO-254 Level A.generate_testbench()— Cocotb/UVM auto-generation.
Added — Tests
tests/test_wave8_features.py— 38 tests across 12 test classes.
Wave 7: Compiler intelligence and platform coverage (2026-05-01)
Added — Hardware Profiles (10 new → 144 total, 19 platform classes)
- Biological (2):
finalspark_neuroplatform,cortical_labs_dishbrain. - Electrochemical (3):
ibm_ecram,samsung_pcram,stanford_ecram. - Wafer-Scale (3):
cerebras_wse3_ws,tesla_dojo3,tachyum_prodigy. - Analog Mixed-Signal (2):
aspinity_aml100,renesas_analog_ai.
Added — Compiler Intelligence Features (8 new → 41 total)
recommend_target()— constraint-driven optimal HW selection.plan_partial_reconfiguration()— FPGA DPR partition scheduling.score_supply_chain_risk()— geopolitical/sole-source risk analysis.generate_bittrue_kernel()— C/Rust code matching Verilog bit-exactly.classify_model_complexity()— memory/compute/comm-bound routing.CompilationCache— memoized instant re-targeting.estimate_thermal_envelope()— junction temperature prediction.optimize_network_topology()— multi-chip spike bandwidth minimizer.
Added — Tests
tests/test_wave7_features.py— 41 tests across 11 test classes.- Total regression: 1,094 passed, 1 xfailed, 0 failures.
Wave 6: Total paradigm coverage & overlooked compiler features (2026-05-01)
Added — Hardware Profiles (21 new → 134 total, 79 vendors, 15 classes)
- Superconducting (3):
nist_sfq,northrop_aqfp,josephson_jj. - Spintronic (2):
everspin_stt_mram,samsung_sot_mram. - Ferroelectric (2):
gf_fefet,sk_hynix_feram. - CGRA (3):
samsung_cgra,qualcomm_npu_cgra,pact_xtensa. - 3D-Stacked (3):
tsmc_soic,intel_foveros,amd_3dv. - Edge MCU (5):
rp2040,esp32_s3,stm32h7,nrf5340,max78000. - RISC-V AI (3):
sifive_x280,qualcomm_ventana,ainekko_rv.
Added — Strategic Compiler Features (8 new → 33 total)
generate_equivalence_sketch()— formal ODE↔RTL proof skeleton with SVA.partition_timescales()— multi-timescale ODE clock-domain splitting.generate_provenance_chain()/format_provenance_json()— SHA-256 audit trail.generate_compliance_matrix()/format_compliance_report()— DO-254/IEC 61508/ISO 26262.generate_energy_schedule()— energy-harvesting neuron update scheduling.lint_side_channels()— power/timing side-channel leakage analysis.generate_drift_compensator()— analog device aging calibration controller.plan_heterogeneous_dispatch()— multi-backend SNN model splitting.
Added — Tests
tests/test_wave6_features.py— 58 tests across 10 test classes.- Total regression: 1,033 passed, 1 xfailed, 0 failures.
Wave 5: Universal hardware coverage & strategic features (2026-05-01)
Added — Hardware Profiles (29 new → 113 total, 66 vendors, 9 classes)
- Photonic / Optical Compute (5):
lightmatter_passage,lightelligence_pace,
xanadu_x8,ipronics_smartlight,luminous_computing. - Chiplet / UCIe (5):
tenstorrent_blackhole,cerebras_wse3,
intel_ponte_vecchio,amd_mi300x,ucie_generic. - PIM / CXL Memory (5):
upmem_pim,samsung_hbm_pim,sk_hynix_aim,
cxl_type3,axdimm. - Next-Gen Neuromorphic (5):
akida2,spinnaker2,dynapse2,
rain_neuromorphic,brainscales2. - Sovereign / Defence (5):
bae_rad750,cobham_ut700,mpfs250t_rt,
versal_xqrvc1902,trenz_zynq_space. - Automotive / Edge AI (6):
mythic_m1076,mobileye_eyeq6,horizon_j6,
ambarella_cv72s,hailo15,syntiant_ndp120.
Added — TOML Profile Loader (universal future-proofing)
load_toml_profile()— register custom hardware targets from TOML files.load_toml_profiles_dir()— bulk-load all*.tomlprofiles from a directory.- Enables instant compatibility with any future chip without code changes.
Added — Strategic Compiler Features
generate_tmr_wrapper()— SEU/TMR wrapper with majority/median voter.embed_model_checksum()— SHA-256 hash embedding for reproducibility.auto_quantisation_sweep()— sweep Q4→Q32 for accuracy-vs-resource DSE.format_quantisation_report()— markdown table output for sweep results.encode_mzi_weights()— MZI phase-shift encoding for photonic chips.generate_mzi_config()— photonic chip config (JSON/CSV) from MZI weights.plan_pim_layout()— PIM/CXL memory bank layout optimisation.generate_power_domain_wrapper()— ICG clock gating for ultra-low-power edge.generate_hls_cpp()— Vitis/Catapult HLS C++ translation.generate_bitstream_encryption()— AES-256 bitstream encryption (Xilinx/Intel).advise_ucie_partition()— chiplet die-to-die neuron array partitioning.advise_cxl_mapping()— CXL.mem Type-3 device mapping with protocol selection.generate_learning_params()/export_learning_config()— STDP/RSTDP on-chip
learning parameter export for Akida 2, BrainScaleS-2, SpiNNaker 2.inject_weight_noise()— stochastic weight noise injection (Gaussian/uniform/
lognormal) for analog/memristive robustness validation.create_noise_profile()— device-variation characterisation for analog targets.generate_pipeline_wrapper()— auto-insert register stages for HF targets.compare_targets()— compile once, compare N hardware targets side-by-side.format_comparison_report()— markdown table from multi-target comparison.generate_compilation_summary()— comprehensive markdown compilation report.
Added — Tests
tests/test_wave5_features.py— 130 tests (profiles, TOML, TMR, checksum,
sweep, MZI, PIM, power-domain, HLS, encryption, UCIe, CXL, STDP, noise,
pipeline, comparison, summary, cross-feature E2E integration).- Total regression: 933 passed, 1 xfailed, 0 failures.
Network-level compilation & thermal-aware deployment (2026-05-01)
Added — Advanced Features: BRAM Auto-Selection
storage_recommendation()— automatic register/BRAM/URAM strategy.generate_bram_array()— time-multiplexed BRAM-backed neuron array
with(* ram_style = "block" *)inference pragmas.- Supports 18Kb, 36Kb BRAM and 288Kb URAM (UltraScale+/Versal).
Added — Advanced Features: Thermal-Aware Compilation
thermal_analysis()— ΔT estimation, frequency derating, hotspot risk.generate_thermal_constraints()— XDC with derated clock and DSP spreading.- Technology model for 7nm through 65nm junction temperature.
Added — Advanced Features: Weight ROM Generation
generate_weight_rom()— synaptic weights in 3 formats:
Verilog ROM, Xilinx.coe, and Intel.mif.
Added — Tests
tests/test_wave4_features.py— 28 tests (BRAM, thermal, weights).tests/e2e/test_e2e_pipeline.py— 22 end-to-end integration tests
covering 9 cross-cutting compilation pipelines.- Total regression: 745 passed, 1 xfailed, 0 failures.
Added — Hardware Profiles (7 new → 84 total)
- AI accelerators:
qualcomm_nsp(Qualcomm NSP),sambanova(SambaNova
RDU),cambricon_mlu(Cambricon MLU370/590). - Emerging compute:
superconducting(AQFP/SFQ ~100 GHz),
cim_sram(compute-in-SRAM),analog_ai(PCM/ReRAM),
event_camera(Prophesee/Sony DVS).
Added — Static Analysis: Pipeline Stage Analysis
critical_path_depth()— AST-based multiply chain analysis.pipeline_stages_needed()— pipeline budget from target frequency.pipeline_analysis()— multi-ODE per-variable pipeline report.
Added — Static Analysis: Power Estimation
estimate_power()— switching-activity-based power model.PowerEstimatedataclass with dynamic/static/total/energy-per-spike.- Technology node library: 7nm through 65nm capacitance scaling.
Added — Deployment: Multi-Target Compilation
compile_multi_target()— compile one neuron to N targets.format_comparison_table()— markdown comparison report.CompilationResultdataclass with per-target metrics.
Added — Tests
tests/test_wave3_features.py— 31 tests (profiles, pipeline,
power, multi-target).- Total regression: 695 passed, 1 xfailed, 0 failures.
Added — Hardware Profiles (12 new → 77 total)
- Neuromorphic:
loihi3(Intel, 4nm 8M neurons),northpole(IBM, 256-core),
innatera_pulsar(Innatera, analog-digital hybrid μC). - FPGA:
versal_ai_edge(AMD, AI Engine + DSP58),proasic3(Microchip, flash),
trion/titanium(Efinix),gowin_arora_v(Gowin 28nm),intel_agilex5
(Intel, HBM2e). - AI accelerators:
nvidia_dla(Orin DLA),mediatek_apu(APU 790),
aws_inferentia(Inferentia2/Trainium2).
Added — Deployment: SymbiYosys Formal Verification
- One-command
.sbyscript generation for BMC, induction, and cover modes. - Solver support: boolector, Z3, yices via SymbiYosys + Yosys.
Added — Deployment: RISC-V Driver + RTOS Templates
- RISC-V C driver with volatile MMIO accessors for PolarFire SoC, Efinix
Titanium, and RISC-V soft-cores (Nios V, MicroBlaze V). - FreeRTOS task template:
xTaskCreate+vTaskDelayneuron tick loop. - Zephyr RTOS thread template:
K_THREAD_DEFINE+k_msleepintegration.
Added — Advanced Features: DVS Event-Camera → AER Bridge
- Synthesisable Verilog bridge converting Prophesee / Sony IMX636 DVS events
to SC-NeuroCore AER address-event protocol. - Configurable FIFO depth, address width, timestamp width, polarity bit.
- Overflow detection flag for back-pressure monitoring.
Added — Deployment: Multi-Die SLR Placement
- Vivado XDC PBLOCK constraint generation for multi-SLR FPGAs (Versal,
Agilex 7, Stratix 10, UltraScale+). - Auto inter-SLR pipeline register directives for >500 MHz crossing.
Added — Advanced Features: Block-FP / MXFP Encoding
- OCP Microscaling Spec v1.0 formats: MXFP4, MXFP6, MXFP8 (E4M3/E5M2).
- IEEE FP8 (NVIDIA H100/B100 native) with block_size=1.
- Encode/decode block functions for parameter transfer and weight storage.
Added — Deployment: Safety Certification Evidence
- XML traceability matrix generation for DO-254 (DAL-A/B/C), IEC 61508
(SIL 1–4), and ISO 26262 (ASIL A–D). - Requirement → design → verification linkage with pass/fail/untested
status and coverage percentage.
Added — Tests
tests/test_wave2_features.py— 49 tests (profiles, SBY, RISC-V,
DVS, SLR, MXFP, certification).- Total regression: 650 passed, 1 xfailed, 0 failures.
Universal hardware compilation & deployment industrialisation (2026-05-01)
Added — Compiler: Hardware Profiles
- Expanded hardware profile registry from 32 to 65 pre-configured profiles
across 7 platform classes and 40 vendors. - Rad-hard / space: NanoXplore NG-Ultra, Microchip RTG4, Xilinx Kintex
UltraScale+ RT — DO-254 / MIL-STD-883 alignment. - Edge AI accelerators: Hailo-8, Kneron KL730, Groq TSP, NVIDIA Jetson
Orin, Intel Habana Gaudi 2/3, Renesas DRP-AI. - eFPGA IP: Achronix Speedcore, Flex Logix EFLX, Menta Origami.
- Vision-on-sensor: Sony IMX500/IMX501, Samsung Exynos NPU.
Added — Compiler: Static Analysis (static_analysis.py)
- Guard-bit auto-computation from expression AST (single + multi-ODE).
- Formal overflow proof via interval arithmetic — mathematical guarantee of
no overflow at compile time, no simulation required. - SystemVerilog Assertion (SVA) generation for DO-254 / IEC 61508 formal
verification (overflow assertions, reachability covers, input assumptions,
stability checks).
Added — Compiler: Mixed Precision (mixed_precision.py)
- Per-variable mixed-precision specification via dict API.
- Automatic constraint solver: given value bounds, resolution requirements,
and a total-bit budget, auto-selects optimal Q-format per variable. - Preset shorthand (
from_preset({"v": "q88", "u": "q44"})).
Added — SoC Integration: Bus Interface (bus_interface.py)
- AXI4-Lite bus wrapper generator (Xilinx/AMD compatible).
- Wishbone B4 bus wrapper generator (LiteX/open-source RISC-V compatible).
- Auto-generated register map with CTRL, I_T, SPIKE_COUNT, and parameter
registers. Spike interrupt output for GIC/NVIC integration.
Added — Compiler: Deployment Utilities (deployment.py)
- Resource estimation: LUT/FF/DSP/BRAM estimation from Verilog without
synthesis (heuristic-based, <1 ms). - Constraint generation: SDC (Intel/generic) and XDC (Xilinx) timing
constraint files with configurable target frequency. - Host driver generation: Python MMIO class and C header with Q-format
encode/decode for host-side parameter tuning. - Cocotb testbench generation: 3-scenario Python-based verification
(spike, zero-current, reset).
Added — Compiler: Advanced Features (advanced_features.py)
- VHDL-2008 output mode: generates entity/architecture wrappers for
mixed-language simulation and DO-254 compliance. - Posit arithmetic: posit-8 and posit-16 encode/decode with 4 standard
configs (POSIT8_0, POSIT8_1, POSIT16_1, POSIT16_2). - CDC synchroniser generation: multi-clock domain crossing with
configurable stages andASYNC_REGattributes. - TCL project generation: complete Vivado and Quartus project scripts
(synth → P&R → bitstream → reports). - Bitstream automation: Yosys + nextpnr Makefiles for iCE40 and ECP5
open-source FPGA flow.
Added — SoC Integration: IP-XACT Packaging (ip_xact.py)
- IEEE 1685 IP-XACT component XML generator for Vivado IP Integrator
drag-and-drop integration with AXI bus interfaces, port definitions,
file sets, and parameter schemas.
Added — Documentation
- New guide:
docs/guides/static_analysis_guide.md(217 lines) — guard bits,
interval arithmetic overflow proof, SVA generation. - New guide:
docs/guides/soc_integration_guide.md(239 lines) — bus
wrappers, mixed-precision, host drivers, IP-XACT, VHDL output. - New guide:
docs/guides/deployment_guide.md(338 lines) — resource
estimation, SDC/XDC constraints, Cocotb testbenches, Vivado/Quartus TCL,
CDC synchronisers, posit arithmetic, iCE40/ECP5 Makefile, complete
end-to-end deployment workflow. - Updated guide:
docs/guides/hardware_profiles.md(431 lines) — expanded
from 51 to 65 profiles with rad-hard, eFPGA, edge AI, and vision tables;
cross-references to 3 new guides. - Updated roadmap:
docs/internal/COMPILER_ROADMAP_TODO.md— all Tier 4
items marked DONE, cross-references to new modules. - 100% docstring coverage across all 13 modified/new source modules.
Added — Tests
tests/test_static_analysis.py— 28 tests.tests/test_bus_mixed_precision.py— 34 tests.tests/test_deployment.py— 26 tests.tests/test_advanced_features.py— 40 tests (IP-XACT, VHDL, posit, CDC,
TCL, Makefile).tests/test_hardware_profiles.py— expanded to cover all 65 profiles.- Total regression: 577 passed, 1 xfailed, 0 failures.
Fixed — Docstring Coverage
- Added missing docstrings to 24 functions/methods across
verilog_generator.py,equation_builder.py,universal_dsl.py, and
neurons/__init__.pyto achieve 100% coverage on all session-touched files.
Security hardening (2026-04-29)
Added
- Property-based fuzz coverage for malformed bitstream/IR ports, Studio graph
JSON, transfer checkpoints, NIR imports, model-zoo NPZ archives, SCPN
datastream JSON, custom chip-spec JSON, HDL stochastic-source lowering,
equation/MLIR lowering, and optimiser evidence JSON. - Offline supply-chain audit command for committed CycloneDX SBOM and release
requirements metadata:python tools/supply_chain_audit.py. - Hardware-install documentation now records Vivado
v2025.2as the current
SHD/PYNQ evidence pin and marks OpenROAD PPA numbers as unpublished until the
binary/container digest and PDK revision are recorded. - Packaging metadata now exposes
sc-neurocore[hdl], expands
sc-neurocore[full]across CPU-side training, NIR, Studio, HDL, codec,
bioware, and quantum workflows, and packages HDL/OpenROAD source artefacts. - Added an offline EDA toolchain version inventory helper for Vivado,
OpenROAD, Yosys, nextpnr, IceStorm, Trellis, Quartus, Lattice tools, PYNQ,
and OpenROAD/PDK pin metadata.
Fixed
- Hardened validation boundaries for fuzzed JSON, NPZ, NIR, IR, and HDL inputs
before they reach parser, lowering, or hardware-resource paths. - Documented the strict release-mode supply-chain gate in
SECURITY.md. - Aligned the CycloneDX SBOM root component version with
pyproject.tomlso
strict supply-chain audit runs pass without metadata drift.
CI coverage restoration (2026-04-21)
Fixed
tools/ci_install_dev.pynow installsdev,nir,compression,training,research,bioware,studioso the 342 torch-gated tests (arcane_zenith,darts_sc_nas,advanced_plasticity, and the_nativebridges that hit thetorch.autograd.Functionpath) run inside the 3.10–3.14 matrix instead of being silently skipped.tests/test_analog_bridge/test_analog_bridge.py+test_analog_bridge_extended.pynow import throughsc_neurocore.analog_bridgerather than via asys.path.inserthack;coverage.pywas reporting 0 % foranalog_bridge.analog_bridgedespite the 27 tests executing every line.
Added
sc_neurocore.analog_bridgepackage root re-exportsAnalogBridge,AnalogSubstrateProfile,EventDrivenInterface,CalibrationRoutine,AEREventthrough__all__.tests/test_native/test_array_guards.py— 24 multi-angle tests forrequire_c_contiguouscovering happy path, dtype coercion, non-contiguous rejection, list / tuple conversion, the post-asarray defensive branch via__array__producers, alignment enforcement, and FFI integration byte ops. Module coverage 42 % → 100 %.- Two
unittest.mock.patch-based tests forCalibrationRoutine.effective_resolution_bitsfallback (max_err == 0andfull_range == 0); reachable branches not touched by the sweep-and-measure suite. Module coverage 99 % → 100 %.
evo_substrate: 4-backend whole-process industrial evolve runner (2026-04-20)
Added
crates/evo_substrate_core(new Rust crate, 1 227 LOC ofrunner.rs+ C-FFI + PyO3 extension) — port ofReplicationEngine.evolve_generation+ eleven industrial guards (TournamentSelector, AgeRegulator, FormalSafetyGuard, BloatPenalizer, ExtinctionDetector, HallOfFame, ParetoFront, LineageTracker, MutationEngine × 4 variants, CrossoverEngine, parametric FitnessEvaluator). Entry pointpy_evolve_run(config_json) -> str. Measured 72× speedup over the PythonReplicationEngineon 10-gen × 16-pop industrial runs (0.57 ms vs 40.88 ms).src/sc_neurocore/accel/julia/evo_substrate/evo_runner.jl(720 LOC) — same industrial loop in Julia 1.10+. JSON-in / JSON-out subprocess contract. Pinned deps viaProject.toml.src/sc_neurocore/accel/go/evo_substrate/runner.go(926 LOC) — same industrial loop in Go 1.22+. Shares the JSON contract.--runnerflag on the existingevo_substrate_benchbinary dispatches to it.src/sc_neurocore/accel/mojo/kernels/evo_runner.mojo(803 LOC) — same industrial loop in Mojo 0.26+. Uses Mojo's Python interop for JSON + SHA-256 at the I/O boundary; compute loop (mutation, fitness, tournament, Pareto, lineage, extinction) runs in pure Mojo.- Unified XorShift64 PRNG across all four backends (shift constants 13/7/17,
0xDEADBEEFCAFEBABEfallback for zero seeds) so the uniform-random sequence is byte-identical cross-language. Rust↔Julia full bit-exact parity on final genomes / lineage / Pareto; Rust↔Go & Rust↔Mojo agree on structural counters but drift ~1e-3 onbest_fitnessbecause Go + Mojolibmcos()/log()differ from Rust's libm at ~1 ULP and Box-Muller compounds that. - Hamming(7,4) encode / decode +
ScDoctor.adaptcontrol law added tocrates/stochastic_doctor_corewith PyO3 bridge (py_hamming74_encode,py_hamming74_decode,py_sc_doctor_adapt);src/sc_neurocore/debug/sc_doctor.pynow dispatches to Rust when the extension is importable (1.7× / 3.1× speedup on encode / decode;adaptslower via FFI at 276 ns due to dominant PyO3 overhead). Pure-Python fallback preserved bit-exact. sc_scope.compute_sccnow dispatches tostochastic_doctor_core.py_scc_packed(174× speedup over pure Python; bit-exact parity with fallback).- Cross-language parity test harness
tests/test_evo_substrate/test_multilang_parity.py(18 assertions) asserts Rust↔Julia byte-exact, Rust↔Go counter match + fitness tolerance, Rust↔Mojo schema match. - Per-backend unit tests: Julia 17 tests (
test_evo_runner.jl), Go 8 tests (runner_test.go), Mojo 7 side-validated tests (tests/test_evo_substrate/test_mojo_runner.py).
Documentation
docs/api/evo_substrate.md§7.3 — new whole-process runners section with entry-point table, measured 4-way parity matrix, honest timing breakdown per backend (Rust PyO3 warm 0.57 ms, Go execution 2 ms excluding ~3 sgo buildfirst time, Mojo cold ~1.1 s pixi + JIT + Python interop, Julia cold ~3 s JSON.jl + SHA.jl precompile, Python reference 40.88 ms), decision matrix for which backend to pick, and the 4-way test-suite invocation list.
Strategic module unification (2026-04-20)
Added
sc_neurocore.arcane_zenith.ArcaneZenithCognitiveCore— three-compartment ArcaneNeuron (fast / working / deep membrane states) coupled via attention gate + self-model predictor, wired to four reward-modulated plasticity rules via a sharpened sigmoid that maps weights into biological ranges fortau_deep,surprise_baseline,delta_conf,lr_base. Factorycreate_arcane_neuron_with_zenith_plasticity(backend=…), plusstep_from_bio_rates(MEA rate dict) andstep_from_genome(evo_substrate bridge). 32 multi-angle tests intests/test_arcane_zenith/.sc_neurocore.optics.photonic_emitter— full rewrite ofCrosstalkModel.analyze_bankon Marcatili coupled-mode theory (adjacent + next-nearest pairs); newanalyze_pairsfor O(N²) arbitrary geometry. Rust FFIpy_ph_analyze_crosstalk_bank/py_ph_analyze_crosstalk_pairs(with 4 cargo tests); Python fallback matches to 1e-9.FDTD2DSolversplit-field Berenger PML (Ezx + Ezy with σ-matched magnetic conductivity).CompilationResult.to_gdsiinow produces real GDSII viagdsfactory+klayout(PDK auto-activation,allow_duplicatecells, netlist string to GDS TEXT layer 63/0). 43 tests intests/test_optics/.sc_neurocore.biowareclosed-loop surface:BioHybridSession.process_framereturnsBioHybridFrameResult(typed dataclass with legacy mapping view —result["round"]+result.roundboth valid).SpikeSorterfit/assign with sklearn PCA+KMeans, no-op on empty input.HomeostaticPlasticity.update_thresholdQ8.8 proportional controller (error × α × 256, clamped to min/max). Newmea_fitness_hook— converts MEA spike dynamics to{accuracy, energy_mw, latency_ms}for evo_substrate'sReplicationEngine(metrics_fn=…). Matching PCA / Berenger / closed-loop regression tests added.sc_neurocore.accel.mojo.MojoKernelRunner+kernels.mojo— Mojo SIMD primitives (packed SC ops,sc_and/or/xor/mux/sub/not, pack/unpack,vec_mac,stdp_update,reward_modulated_stdp,hdc_bind). Pixi-managed toolchain;_HAS_MOJOflag never raises on missing tooling.benchmarks/bench_mojo_vs_rust.pypure-text side-by-side harness.sc_neurocore.edge.aer_router.AERRoutingDaemon— Python lifecycle wrapper for the Go AER UDP mesh router (accel/go/services/aer_router/main.go). Three sibling Go modules:hil_debugger(WebSocket telemetry),services/services_ext(service coordination). Each with its owngo.mod+main_test.go.sc_neurocore.debug.hil_server.HILServerDaemon+HILDebugger— lifecycle wrapper for the Go HIL debugger binary withGET /healthreadiness probe, 5 s timeout, SIGTERM → SIGKILL ladder.sc_neurocore.formal.FormalProofEngine— Lean 4 bridge.safety_bounds.leanproves six theorems (monitor_soundness,safe_transition,sc_precision_bound,sc_add_preserves_range,lif_membrane_bounded,correlation_range) mapped 1:1 toneuro_safe_monitor.svP-properties. Newsrc/sc_neurocore/formal/__init__.pyexports the engine.sc_neurocore.accel.julia.solvers.JuliaFusionSolver+ 4.jlscripts (fusion_solver,neuron_zoo,dynamical_analysis,spike_analysis) — reference continuous-time ODE solvers viaDifferentialEquations.jl(Tsit5).sc_neurocore.hdl_gen.safety.neuro_safe_monitor+tb_safety_monitor— SystemVerilog runtime safety monitor enforcing the six Lean theorems at nanosecond scale. Parameterised on Q8.8 current / voltage / coherence / SC denominator / LIF max.openroad_flow/run_asic_flow.shdrives Yosys synthesis (+ optional OpenROAD P&R) against the monitor with area / timing reports.sc_neurocore.evo_substrategained (documented in full):FormalSafetyGuard,BloatPenalizer,ExtinctionDetector,ComplexityTracker,CPPNGenome,ParetoFront,NoveltyArchive,HallOfFame,TileDeploymentTracker,ResourceBudget,LineageTracker,IslandModel. Bridged to MEA viamea_fitness_hookand to ArcaneZenith viastep_from_genome.sc_neurocore.proto—core.proto(Tensor, BitstreamMetadata) +telemetry.proto(HILFrame) as the wire contract for HIL debugging.- Plasticity-layer
reset()contract: new FFIreset_rule_layerinlibautonomous_learning(Rayon par_iter over rules), newWgpuRuleLayer::reset+reset_wgpu_layerFFI, andreset()methods onRustRuleLayer,RustWgpuRuleLayer,TorchRuleLayerwith per-rule trace-clearing scope matching the RustPlasticityRule::resettrait contract.ArcaneZenithCognitiveCore.reset()now works across all three backends. 11 new tests. - Example demos:
examples/14_bioware_closed_loop_demo.py(100-frame MEA ↔ ArcaneZenith closed loop),examples/15_photonic_compilation_demo.py(SC → MZI cascade → real GDSII),examples/16_evo_substrate_demo.py(genome → SC top-level module → Verilog emit).
Documentation
- New API pages:
docs/api/mojo_accel.md,docs/api/edge.md,docs/api/formal.md,docs/api/julia_solvers.md,docs/api/proto.md. - Upgraded from stubs:
docs/api/evo_substrate.md(23 → 155 lines),docs/api/debug.md(24 → 120 lines, added HIL section),docs/api/hdl_gen.md(17 → 100 lines, added safety-monitor P-property table + Lean mapping + ASIC flow). docs/api/bioware.mdupgraded from 14-line stub (fullBioHybridSession+BioHybridFrameResultdual-access + Q8.8 homeostatic controller + SpikeSorter + mea_fitness_hook sections).- New
docs/api/arcane_zenith.md+docs/api/optics.mdcompletely rewritten (photonic compiler + Berenger PML + Marcatili crosstalk + GDSII). mkdocs.ymlnavigation restructured: new Acceleration (Mojo + Julia), Formal + Safety, Edge + Wire Protocol groups under Frontiers.
Fixed
RustEligentLearner.stepFFI signature was missing thedtparameter (4 args passed, 5 expected) — every non-empty call raisedAttributeError. Addeddt: float = 0.001kwarg.sc_neurocore._native.learning_bridgeno longer raises at import time whenlibautonomous_learning.sois absent; returns_HAS_LEARNING = Falseso downstream imports succeed (the 398 previously-failing test collections now run).CI workflows(ci.yml,v3-engine.yml) now build theautonomous_learningcdylib and copy it intosrc/sc_neurocore/_native/before pytest runs — keeps the Rust path live.
Repository hygiene
- Untracked compiled Go bench binaries (
services_bench,services_ext_bench≈ 4.4 MB total) fromsrc/sc_neurocore/accel/go/services/…; pattern added to.gitignore(regenerate locally viago test -bench -c). - 22 ruff lint + format fixes across user-WIP modules (evo_substrate, mojo/runner, debug/hil_*, edge/aer_router, formal/lean_bridge).
ruff check src/ tests/andruff format --check src/ tests/clean. - New optional extras in
pyproject.toml:optics = ["gdsfactory>=9.0"],bioware = ["scikit-learn>=1.3"].
CorticalColumn full-scale (77 169 cells) verification (2026-04-19)
- Ran the canonical fidelity reference:
scale=1.0, seed=42, 600 ms simulation with the block + Rust batched multi-spmv path. 77 169 cells, build 298 s, sim 3 564 s ≈ 64 minutes wall. - 5/8 populations within 1.2× of Potjans Table 4 (L23i 1.07×, L4e 1.06×, L4i 1.09×, L6e 1.24×, L6i 1.05×). L5e 1.32×, L5i 1.22× plateau ~25 % over published — NOT purely a finite-size effect (does not collapse below 1.20× at full scale). L23e under-fires at 0.67× consistently across all four scales.
- Honest interpretation: the residual is a combination of (i) shorter analysis window than the published 5 s, (ii) dt-quantised global-bin delays vs the paper's per-connection continuous Gaussian, (iii) per-target multapse sampling vs NEST's
multapses=False(which we cannot trivially use without breaking van Albada 2015 in-degree preservation). The shape is faithful (population ordering, E/I balance, all rates finite and bounded); the absolute residual at ≤ 1.32× is the practical limit of the current architecture. - Doc page §4.1 now records all four scales side-by-side; the full-scale row is the canonical reference.
CorticalColumn full-scale convergence verified at scale=0.5 (2026-04-18)
- Ran
scale=0.5, seed=42, 600 ms simulation with the block + Rust batched multi-spmv path. 38 586 cells, build 116 s, sim 1 956 s (≈ 33 min wall). - 6/8 populations within 1.2× of Potjans Table 4 (vs 5/8 at scale=0.1, 5/8 at scale=0.2): L23i 1.00×, L4e 0.95×, L4i 1.07×, L5i 1.20×, L6i 1.04×.
- L5e shrinks 1.97× → 1.52× → 1.36×; L6e shrinks 2.81× → 2.43× → 1.68×. Both still residual but on the predicted convergence trajectory of van Albada et al. 2015 Fig 5.
- Confirms the finite-size hypothesis empirically: residuals collapse monotonically as scale grows, full-scale (~77 000 cells) would close to ≤ 1.05× across all populations. scale=0.5 / 600 ms is now reachable in 33 min wall, unblocked by the block + Rust path.
CorticalColumn batched multi-spmv Rust call (2026-04-18)
- New
engine/src/cortical_inject.rs::parallel_csr_multi_spmv_add— does2 × n_delay_bins(= 10) spmv add operations in ONE FFI call. Rust loops internally over the bins;par_chunks_mut(512)parallelism still applies, with the per-row kernel summing contributions from all bins before writing back. - New PyO3 wrapper
sc_neurocore_engine.py_parallel_csr_multi_spmv_addacceptingVec<PyReadonlyArray1>for indptrs / indices / data / xs. CorticalColumn._inject_block(dt)now batches all non-empty (E + I) bins into ONE FFI call when the multi-spmv kernel is available; falls back to per-block calls otherwise.- Bridge wrapper
bridge/sc_neurocore_engine/__init__.pyre-exportspy_parallel_csr_multi_spmv_add. - 1 new Rust unit test
test_multi_spmv_matches_sequentialproving batched output equals N sequentialparallel_csr_spmv_addcalls. - Measured perf at scale=0.1, 600 ms: 287.5 s wall — DOWN from 460 s (single-call Rust) and ON PAR with scipy per-pair (290 s). FFI overhead reduction (10 calls → 1) reclaimed the gap.
CorticalColumn Rust per-row-parallel CSR spmv kernel (2026-04-18)
- New
engine/src/cortical_inject.rs: rayon-parallel CSR sparse mat-vec add (y += W @ x) with row-chunking (CHUNK_SIZE = 512) so each task sees ~250 µs of work — well above rayon's per-iteration scheduler break-even point. 4 unit tests. - PyO3 wrapper
sc_neurocore_engine.py_parallel_csr_spmv_addre-exported viabridge/sc_neurocore_engine/__init__.py. CorticalColumn._inject_block(dt)now dispatches to the Rust kernel automatically when available (auto-detected via_HAS_RUST_CSR_SPMV). Bit-identical results vs scipy single-threaded — per-row reductions are local so parallel order does not affect output.- Pre-extracted
(indptr, indices, data)triples per block at construction (_block_e_arrays,_block_i_arrays) to dodge per-stepnp.ascontiguousarraycast overhead that otherwise eats the per-call Rust speedup. - Honest perf finding: Rust kernel measures 18.9 ms vs scipy 33 ms standalone (1.75× per call). In the full simulation pipeline at scale=0.1 / 600 ms, however, Rust takes 460 s vs scipy 290 s (per-pair) — a 1.6× regression. scipy's CSR mat-vec is already well-tuned for the in-pipeline access pattern (cache-warm matrices, sparse spike vectors); per-call Rust overhead + the surrounding Python concat / count_nonzero / slice work dominates.
- The Rust kernel is preserved as the right primitive for the future block-CSR / GPU / multi-node scale-up regime (where per-call FFI overhead shrinks relative to per-call work). Default per-pair scipy path is already the fastest Python-side measurement; Rust is opt-in via
use_block_csr=True.
CorticalColumn block-CSR opt-in path (2026-04-18)
- Added stacked block-CSR matrices keyed by
(source-type, global-bin-idx)so the per-step inner loop can collapse fromn_pairs × n_delay_bins(≈ 320 sparse mat-vecs) to2 × n_delay_bins(≈ 10). Bin centres are global, derived from theoretical Gaussian quantiles viascipy.stats.norm.ppf. - New
CorticalColumnparameteruse_block_csr: bool = False. When True, the construction builds block matrices alongside the per-pair representation;step()dispatches to_inject_block(dt). - Honest perf finding: at
scale=0.1, 300 ms sim, the block path measures 306 s vs ~145 s for the legacy per-pair path (≈ 2× SLOWER). scipy.sparse CSR mat-vec is compute-bound (FLOPs scale withnnz, identical between paths), and the per-pair tight inner loop wins on cache locality. The block path is preserved as an opt-in because it is the natural data layout for any future Rust / Mojo FFI port (10 FFI calls vs 320, where call overhead DOES dominate). - Default flipped to
use_block_csr=Falseso the as-shipped Python path stays on the fastest measured backend. - New
tests/test_cortical_column.py::TestConnectivity::test_block_csr_path_builds_and_runsexercises the opt-in path so it does not silently rot.
CorticalColumn finite-size verification at scale=0.2 (2026-04-18)
-
Empirically verified that the L5e/L6e residual at
scale=0.1is a finite-size effect (van Albada et al. 2015 Fig 5), not a model bug. Scale=0.2 / 600 ms / seed=42 measurements:Pop scale=0.1 ratio scale=0.2 ratio Δ L23e 0.67× 0.27× overshoots low L23i 1.19× 0.94× improving L4e 0.68× 0.73× stable L4i 1.21× 1.08× improving L5e 1.97× 1.52× -23 % L5i 1.50× 1.27× -15 % L6e 2.81× 2.43× -14 % L6i 1.24× 1.10× improving -
The deep-layer residuals (L5e, L6e) shrink monotonically with scale; extrapolating linearly suggests scale=0.5 closes them to within 1.2-1.3× of Potjans Table 4. Closing all 8 populations to within 10 % requires full scale (~77 000 cells, ≈ 50 min/sec biotime). The implementation is faithful — the residual is intrinsic to sub-full-scale finite-size effects.
-
docs/api/cortical_column.md§4.1 now documents the per-scale ratios side-by-side with the historical baseline and the rejected no-multapse experiment.
CorticalColumn per-connection Gaussian delay distribution (2026-04-18)
-
network/cortical_column.pyadds per-connection delay binning. New constantsDELAY_E_SIGMA = 0.75 ms,DELAY_I_SIGMA = 0.4 ms(Potjans Table 5). New__init__parametersdelay_distribution: bool = Trueandn_delay_bins: int = 5. At construction time each (target, source) pair samplesK_per_target * n_tper-connection delays fromN(DELAY_*, sigma_*), quantile-bins them into 5 groups and stores one sub-CSR per bin. Perstep(), each pair contributes onedot()per bin, reading the source spike vector at that bin's delay offset. -
Setting
delay_distribution=Falserestores the legacy single-mean-delay path for fast smoke tests and direct comparison. -
Fidelity dramatically tightened. Measured at
scale=0.1, seed=42, 200 ms analysis window after 100 ms burn-in:Population single-delay ratio per-conn Gaussian ratio L23e 5.29× 0.67× L23i 4.78× 1.19× L4e 0.83× 0.68× L4i 2.03× 1.21× L5e 3.05× 1.97× L5i 2.10× 1.50× L6e 5.23× 2.81× L6i 2.33× 1.24× 5/8 populations now sit within 1.2× of Potjans Table 4; the remaining 3 (L4e, L5e, L6e) within 2-3×.
-
Cost: per-step ≈ 5× slower (5 sparse mat-vecs per pair instead of 1). At
scale=0.1, sim wall went 32 s → ~290 s for 600 ms (matches 5× expectation). -
New
tests/test_cortical_column.py::TestPublishedFidelity::test_per_connection_delays_tighten_rates— asserts ≥ 5/8 populations within[0.5, 1.5]×of published Table 4 values. Pins the win. -
benchmarks/bench_cortical_column.pynow bench BOTHdelay_distributionmodes side-by-side. -
All 29 cortical_column tests pass with the new default (29 passed in 14:18 with delay distribution, 24 deselected-fidelity tests in 4:39 for fast iteration via
-k 'not Fidelity').
PINGCircuit Rust acceleration backend (2026-04-18)
- New Rust per-step kernel
engine/src/ping.rswith PyO3 wrappersc_neurocore_engine.py_ping_step. Mirrors the Python step semantics (LIF + AMPA / GABA decays + drive + Wiener noise + refractory + spike detect + reset). Noise samples are drawn on the Python side and passed in asxi_e/xi_iso the per-instance RNG state evolves identically across both backends. - New
backend=parameter onPINGCircuit("auto" | "rust" | "python", default"auto")."rust"raisesRuntimeErrorif the kernel is not built;"auto"falls back to NumPy. - Bridge wrapper
bridge/sc_neurocore_engine/__init__.pyre-exportspy_ping_stepso pytest'sbridge/-on-sys.pathsetup sees the Rust symbol. - New
tests/test_gamma_oscillation.py::TestPythonRustParity(6 cases): per-population firing rates within 10 % across (80, 20) / (400, 100) / (1000, 250); dominant FFT peak within 1.5 Hz; explicitbackend="rust"smoke; invalid-backend rejection. Per-cell membrane V values drift at the float-noise level (NumPy SIMD/FMA vs Rust scalar ordering) — documented inline; aggregate dynamics match. benchmarks/bench_gamma_oscillation.pyextended to bench BOTH backends. Measured speedup: ~3.3-4.3× across the three workload sizes (per-step 145.8 → 33.7 µs at (80, 20); 588.3 → 178.3 µs at (4000, 1000)). All 6 runs stay in the published 30-80 Hz dominant band.engine/src/ping.rsships 3 Rust unit tests (no-drive silence; supra-threshold drive + refractory hold; deterministic for identical inputs). All pass oncargo test --release.
CorticalColumn no-multapse experiment — REJECTED (2026-04-18)
- Tried replacing the multapse-with-replacement adjacency builder with a vectorised
argpartitionno-multapse sampler (matching NESTmultapses=Falsedefault). Mean per-target weight is identical between the two approaches and per-target unique connectivity rises from ~63 % to 100 %. - Measured at
scale=0.1, seed=42, 600 ms: rates BLEW UP to refractory ceiling for 6 of 8 populations (L23e 90 Hz, L4e/L4i ≈ 410 Hz, L5e/L5i/L6i 260-390 Hz). Pre-experiment multapse-with-replacement gave rates 1.6-7.5× over Potjans Table 4 (within band, just inflated). Post-experiment no-multapse made the divergence ~10× worse. - Honest finding: at sub-full scale the deterministic per-target in-degree of the no-multapse path amplifies population synchrony in the heavy-recurrent regime (K approaches N_s for several pairs); the multapse path's natural variance dampens this. Documented inline next to the multapse sampler so future contributors don't repeat the experiment without first re-reading van Albada 2015 §3.
PINGCircuit scale-invariant weight normalisation (2026-04-18)
network/gamma_oscillation.py: per-spike conductance contributions are now divided by source population size at construction (_w_*_eff = w_* · default_size / actual_size). The default(80, 20)published weights stay bit-identical; larger circuits no longer drift out of the 30-80 Hz band.bench_gamma_oscillation.pynow reports 40.0 / 41.2 / 41.2 Hz across(80,20) / (400,100) / (4000,1000)— all in band — vs 40.0 / 103.8 / 76.2 before the fix. All 19 PINGCircuit tests still pass (default weights and behaviour unchanged at(80, 20)).
Honest benchmark scripts for network/ models (2026-04-18)
benchmarks/bench_cortical_column.py: 3-config wall-clock + per-population firing rates + Potjans Table 4 ratios forCorticalColumn. Replaces hand-measured numbers indocs/api/cortical_column.mdwith reproducible JSON output atbenchmarks/results/bench_cortical_column.json. Honest BLOCKED status reported per backend (Rust/Julia/Go/Mojo) perfeedback_no_fabricated_benchmarksandfeedback_module_standard_attnres.benchmarks/bench_gamma_oscillation.py: 3-workloadstep()wall-clock + dominant gamma frequency check (must lie in 30-80 Hz) forPINGCircuit. JSON output atbenchmarks/results/bench_gamma_oscillation.json. Documents the per-cell LIF + 4 conductance decays as a clean Rust + Mojo target (BLOCKED, tracked under multilang policy). Bench surfaces a real fidelity edge case atn_e=400, n_i=100(f_dom=103.8 Hz, outside published 30-80 Hz band) that the default-configuration test does not catch.docs/api/cortical_column.mdperformance table updated to reference the bench script and JSON path; numbers replaced with the measured values (build 0.04 / 2.04 / 4.07 s and per-step 0.96 / 2.07 / 5.29 ms across the three configurations).
Bandit MEDIUM triage (2026-04-18)
- 6 MEDIUM
B307findings (use ofeval) → ACCEPT with# nosec B307markers and inline rationale:equation_builder.pyEuler integrator, RK4 derivative eval, threshold expression and reset rule (4 sites);studio/analysis.pynullcline grid eval (2 sites). All sites are downstream ofEquationNeuron._validate_exprAST whitelist (_ALLOWED_AST_NODES+_BLOCKED_NAMESreject any escape vector beforecompile) with empty-__builtins__eval globals. - Re-running
bandit -r src/ -llreturns 0 findings. - 55 LOW findings remain (B101 asserts, B603/B404/B607 subprocess, B110 try/pass, B311 random); informational, no real impact, full inventory in
docs/internal/audit_bandit_2026-04-18.mdanddocs/internal/AUDIT_INDEX.md.
CorticalColumn Potjans & Diesmann 2014 (2026-04-18)
network/cortical_column.pyrewritten from 5-population canonical-microcircuit toy to the full 8-population Potjans & Diesmann 2014 model: L23e, L23i, L4e, L4i, L5e, L5i, L6e, L6i with per-population sizes from Table 5, the verbatim 8×8 connection-probability matrix from Table 5, per-cell background Poisson drive (K_bgper population,bg_rate=8 Hz), and exponentially decaying current-based PSCs (tau_syn=0.5 ms).- LIF integration:
C_m=250 pF,tau_m=10 ms,t_ref=2 ms,E_L=V_reset=-65 mV,V_th=-50 mV. Per-source delays:1.5 ms(E),0.8 ms(I), quantised todt. - Synaptic weights:
w_e=87.81 pA,w_i=-g·w_ewithg=4(configurable),w_l4_to_l23e=2·w_eper Potjans boost. - Sparse
scipy.sparse.csr_matrixadjacency per (target, source) pair with multapses sampled with replacement; full-scale in-degree preservation underscale_correction=True(van Albada et al. 2015 protocol). simulate(duration_ms, dt),step(dt),population_rates(rasters, dt, burn_in_ms),total_indegree(target)andreset_state()helpers.tests/test_cortical_column.pyrewritten: 29 tests covering smoke, determinism (per-instance RNG, global-seed leak-proofing), connectivity (Table 5 entries, K_bg, weight signs, L4e→L2/3e boost, sparse adjacency built per pair), and published fidelity (no silent populations, no refractory-ceiling saturation, E/I asymmetry, L4e in band, zero-background silence). 100 % coverage oncortical_column.py. Closes #10.docs/api/cortical_column.mdrewritten end-to-end (308 lines): published-reference summary, implementation overview (8 populations, sparse adjacency build, LIF + synapse + refractory, delay handling), public API reference, verification table vs Potjans Table 4 (L4e match within 1 %, other populations within 2-4×), performance table (4.6 s / 19.5 s / 43.6 s wall at scale 0.02 / 0.05 / 0.1) and reference list (Potjans 2014, van Albada 2015, Binzegger 2004, Hahne 2017, Douglas & Martin 2004).
PINGCircuit conductance-based gamma (2026-04-18)
network/gamma_oscillation.pyrewritten from rate-coded toy model to per-cell conductance-based Börgers-Kopell 2003 weak-PING. HH-style integrate-and-fire with separate AMPA / GABA exponentially decaying conductances, refractory window, per-cell drive jitter and stochastic kicks. Default parameters reproduce the published 30-80 Hz gamma peak (verified at 40 Hz at the default operating point).population_rate(spike_log, dt, bin_ms)anddominant_frequency(spike_log, dt, bin_ms, f_min, f_max)helpers added; FFT-based with empty-log + out-of-band silence handling.tests/test_gamma_oscillation.pyupdated to the new API: 19 tests covering smoke, determinism (per-instance RNG isolation, global-seed leak-proofing), published fidelity (30-80 Hz peak, gain-loop disengage paths, Hz units, silence handling). 100 % coverage ongamma_oscillation.py. Closes #11.- Replaced
np.sum(boolarray)withnp.count_nonzero(boolarray)in both implementation and tests to be reload-safe under coverage instrumentation (the_NoValuesentinel mismatch otherwise raisedTypeErrorfrom_methods.py).
Repository hygiene (2026-04-18)
- SPDX header format converted from 1-line piped to 2-line form across 2728 source files (.py / .jl / .rs / .go / .mojo). Closes #60.
microtubule_neuron.vEngineer attribution:Arcane Sapience.cargo clippy --release --lib: 20 in-source warnings → 0.- Bandit HIGH severity in
nas/sc_nas_engine.py:169→ 0 (hashlib.md5(..., usedforsecurity=False)). - Chiplet package coverage 95 % → 100 % (
test_hierarchical_partitioner_perf.py,test_chiplet_gen_edge_cases.py). tools/run_full_cov.sh: batched per-directory--cov-appendrunner. First full sweep completes at 43.81 % cumulative coverage; no OOM. Closes #58..gitignore:.agent_metadata.json.ruff,rustfmt: clean across all touched files.
Chiplet Partitioner — Multi-Language KL Refine (2026-04-18)
- Perf:
HierarchicalPartitioner.partitionV=200 went from 963 ms (pre-#65) → 12.7 ms (Python post-fix) → 0.04 ms (Mojo). Total wall-clock improvement at V=200: 24,000× across the chain. - #65 fix:
CorrelationAwareGraphnow caches(min, max) → edgelookup → O(1);_spectral_bisecthoistsset(vertices)out of the inner loop. 22-29× speedup at V=50/100/200. - #64-prep refine fix:
_per_partition_cost(v, n_parts, ...)returns the full length-P cost vector in ONE neighbour scan (was P redundant scans). Additional 2-9× over #65; bit-identical canonical output. - #74 multi-language KL refine: Rust (
engine/src/partition.rs), Julia (accel/julia/chiplet/kl_refine.jl), Go (accel/go/partition/partition.go), Mojo (accel/mojo/partition/partition.mojo) all wired intoHierarchicalPartitioner(refine_backend=...). Bit-exactpart_mapparity verified end-to-end via dispatcher tests on V=100. Empirical fastest-pick at V=1000: Mojo 0.20 ms (351×), Julia 0.26 ms (270×), Rust 0.29 ms (242×), Go 0.68 ms (103×), Python 70 ms. - Bench harness:
benchmarks/bench_kl_refine.pyruns 5 backends with parity check; results inbenchmarks/results/bench_kl_refine.json. - Tests: 218 chiplet tests (39 new this batch); coverage 99.58 % on the chiplet package, with
chiplet_gen.pyat 100 % andhierarchical_partitioner.pyat 99 %.
LGSSM Multi-Language Acceleration (2026-04-17)
- Mojo LGSSM Kalman filter (
accel/mojo/world_model/lgssm.mojo): hand-rolled matmul + Cholesky + triangular solve viamojo build --emit shared-lib. 46× over Python, 8× over Rust at T=200 d=4 p=3 workload. Closes #69. - Go LGSSM (
accel/go/lgssm/lgssm.go): cgo + ctypes shared lib, hand-rolled Cholesky. Closes #70. - Julia LGSSM (
accel/julia/world_model/predictive_model.jl): juliacall + LinearAlgebra LAPACK. Closes #68. - Rust LGSSM (
engine/src/lgssm.rs): PyO3 + ndarray Cholesky. Closes #67. - All 4 backends dispatched via
KalmanFilter.filter(backend='auto'|'rust'|'julia'|'go'|'mojo'|'python'); bit-exact parity vs Python at atol≤1e-9 on means/covs, ≤1e-7 on log-likelihood. - Mojo 0.26 FFI pattern proven: raw
Intaddress viaarr.ctypes.data+UnsafePointer[T, MutAnyOrigin](unsafe_from_address=addr)reconstruction inside the@exportbody works around the parametric-signature restriction. Same pattern reused for fault_injection + KL refine.
Fault Injection Multi-Language (2026-04-17)
- Rust + Julia + Go + Mojo kernels for the 5 fault models (
bitflip,stuck_at_0/1,dropout,gaussian). Mojo wins 4/5 boolean kernels (2.7-8.2× over NumPy); Julia wins Gaussian via Ziggurat randn. Bench harness with 4σ Binomial parity atbenchmarks/bench_kl_refine.py-style 5-backend layout.
Bench Harness Honest Exemptions (2026-04-17)
bench_safety_monitor.py+bench_chiplet.pynow emit abackendsblock in the JSON output documenting USED / EXEMPT / BLOCKED-ON-#X status per backend per op, with explicit FFI-vs-compute math instead of silent skipping.
Cross-Module Integration — (2026-04-16)
- Shared Core Types
core/types.py: unifiedHardwareBudget,ResourceReport,LayerSpec,estimate_network()— single source of truth for Optimizer↔NAS↔Runtime - Closed-Loop Adaptive Controller
control/adaptive_loop.py: Runtime drift detection → SA re-optimisation → newRuntimeConfig, configurable cooldown/threshold - Unified Energy Reporter
energy_accounting/unified_reporter.py: bridgesCarbonModel+ThermalModel+ ASIC power into singleanalyze()call - End-to-End Export Pipeline
export/pipeline.py: Model Zoo → ONNX → TVM Relay → MLIR/SSA → SystemVerilog in onerun()call - Rust Wiring:
sc_optimizer.py→optimizer.rsSA engine,sc_nas_engine.py→evo.rstournament selection,photonic_emitter.py→photonic.rscrosstalk analysis - Package Exports: Updated
core/__init__.py,control/__init__.py,export/__init__.pywith new module exports - Integration Tests: 20 new tests in
tests/test_integration/test_cross_module.pycovering all 5 actions - Maturin: Rebuilt
sc_neurocore_enginev3.14.0 with all Rust bindings - Total: 10,592 tests (8,895 Python + 1,697 Rust) — ALL GREEN
Extended Rust Wiring — QA & DNA Bridges (2026-04-17)
- Quantum Annealing:
bridges/quantum_annealing.py→py_qa_simulated_annealing(2,402× at 100 qubits)IsingModel.energy()→py_qa_ising_energy(Rust path for n>20 qubits)SimulatedAnnealer.solve_ising()→py_qa_simulated_annealing(467× at 20Q → 2,402× at 100Q)EnergyLandscape.analyze()→py_qa_batch_ising_energy(batch energy for >100 samples)
- DNA Mapper:
bridges/dna_mapper.py— Rust engine loaded (_HAS_RUST_DNA)- Imported:
py_dna_design_sequence,py_dna_detect_hairpins,py_dna_check_cross_hybridization,py_dna_simulate_kinetics,py_dna_design_orthogonal_set
- Imported:
- Photonic: Fixed
py_ph_analyze_crosstalkAPI (channel_ids, wavelengths, bandwidths, powers)
Python vs Rust Benchmarks — Integration Hot Paths (2026-04-16)
- SA Optimizer: 7× (5 layers) → 36× (20 layers) → 47× (50 layers)
- Tournament Selection: 337–394× (amortised per-round overhead elimination)
- Batch Mutate: 17–21× across population sizes 50–1000
- Population Diversity: 34–90× (O(N²) SIMD pairwise distance)
- Mean Rust speedup: 334.6× across all hot paths (incl. QA)
- Peak QA: 467× (20Q) → 1,426× (50Q) → 2,402× (100Q)
- E2E Pipeline: NAS→Optimizer→Energy→Verilog in 13.7ms (small) to 116ms (large)
- Criterion (Rust-native): spike_times=83ns, firing_rate=13ns, ISI=96ns, van_rossum=1.2µs (N=100)
- Results:
benchmarks/results/py_vs_rust_integration.json - Script:
benchmarks/py_vs_rust_benchmark.py
Cross-Language Acceleration — Spike Stats (2026-04-16)
- Crate
spike_stats_core(v0.1.0): 16 functions, 28 Rust tests, PyO3 + Criterion - Distance (7 fns):
victor_purpura_distance181×,spike_sync31×,hunter_milton27×,van_rossum,spike_distance,earth_movers_distance,multi_neuron_victor_purpura160× - Correlation (5 fns):
cross_correlation,event_synchronization,spike_time_tiling_coefficient,coincidence_index - Variability (4 fns):
approximate_entropy73×,sample_entropy78×,lempel_ziv_complexity69×,permutation_entropy65× - 99/99 Python tests pass on both Rust and Python fallback paths
- Python dispatch wired in:
distance.py,correlation.py,variability.py
Cross-Language Acceleration — Stochastic Doctor (2026-04-16)
- PyO3 bindings for
stochastic_doctor_corecrate:py_scc_bytes,py_scc_batch,py_precision_bytes,py_histogram,PyDriftDetector - Replaced legacy
ctypes.CDLLwith PyO3 import pattern (primary), Python fallback (secondary) SC_NEUROCORE_NO_RUST=1env var forces Python path- 16/16 Python tests pass on both Rust and Python paths
- 23 Rust tests pass
- Benchmarks (SCC single-pair): 35× at N=100, 3.5× at N=1M
- Benchmarks (batch SCC N×N): 15–18× for 4–64 neuron layers
- Benchmarks (precision): 5–14× across all sizes
- Criterion benchmarks:
crates/stochastic_doctor_core/benches/doctor_bench.rs - Python benchmark:
benchmarks/stochastic_doctor_benchmark.py - Results:
benchmarks/results/stochastic_doctor_py_vs_rust.json - API docs updated with full benchmark tables:
docs/api/stochastic_doctor.md
Module Integration — 19 Industrialized Modules (2026-04-16)
- Industrial tier: safety_cert (IEC 61508/ISO 26262, 81 tests), asic_flow (multi-PDK, 67 tests), fault_injection (radiation-grade, 22 tests), uvm_gen (UVM testbench, 71 tests)
- Exascale tier: hypervisor (multi-tenant, 78 tests), digital_twin/twinsync (time-warp sync, 72 tests)
- Substrates tier: spintronic (MTJ mapper, 66 tests), chiplet (UCIe/BoW, 94 tests), memristor (crossbar, 70 tests), analog_bridge (SC-to-analog, 27 tests)
- Frontiers tier: evo_substrate (self-replicating evolution, 91 tests), meta_plasticity (self-modifying rules, 72 tests), bioware (organoid interface, 79 tests), federated (DP-SGD, 93 tests), bci_studio (closed-loop BCI, 32 tests)
- Unification tier: explainability (causal attribution, 71 tests), neuro_symbolic (predictive coding, 34 tests), stochastic_doctor (bitstream diagnostics, 16 tests), model_zoo (auto-Verilog, 37 tests)
- All modules: SPDX dual-license headers,
__tier__classification,__init__.pywith docstrings - 19 MkDocs API doc pages with
mkdocstringsdirectives - Updated
mkdocs.ymlnav with 5 new categories (Industrial, Substrates, Exascale, Frontiers, Unification) - Integration reference:
docs/MODULE_INTEGRATION.md - Total: 1,173 new Python tests from integrated modules
Rust Workspace — 5 Research Crates Integrated (2026-04-16)
- Created
crates/directory for research Rust crates - Integrated: tinysc_riscv (83 tests), core_engine (22 tests), autonomous_learning (12 tests), neuro_symbolic (28 tests), stochastic_doctor_core (23 tests)
- Root
Cargo.tomlworkspace now has 6 members (engine + 5 research crates) - Engine (
sc_neurocore_engine, 1,549 tests) verified undamaged after workspace expansion - Total: 1,717 Rust tests across 6 crates
Evolutionary Substrate — (2026-04-16)
FormalSafetyGuard: pre-deployment safety validationCPPNGenome: Compositional Pattern Producing Network developmental encodingIslandModel: multi-deme evolution with migrationNoveltyArchive: k-NN behavioural novelty searchHWFitnessCollector: FPGA execution feedback for hardware-in-loop fitnessParetoFront: NSGA-II style non-dominated sortingTournamentSelector,AgeRegulator,BloatPenalizer,ExtinctionDetector,CoevolutionArenaEvoStatisticsTracker,ComplexityTracker,genome_diff(),shared_fitness()- Module grew from 657 to 1,400 LOC, 42 to 91 tests
Foundation-Model Neural Decoders (2026-04-07)
- POYODecoder: spike tokenisation + cross-attention (Azabou et al. 2023 NeurIPS)
- POSSMDecoder: diagonal SSM with HiPPO-LegS init (Ryoo et al. 2025 ICLR)
- NDT3Decoder: causal masked self-attention on binned spikes (Ye & Pandarinath 2025)
- CEBRAEncoder: InfoNCE contrastive embedding with analytical backprop (Schneider et al. 2023 Nature)
- Rust acceleration: tokenise_spikes, sinusoidal_position_encode, scaled_dot_product_attention, gaussian_attention, ssm_step_diagonal, infonce_loss (6 pub fn, 11 tests)
- PyO3: 5 functions registered
- Tests: 47 multi-angle tests
- Documentation: 976 lines, 8/8 sections
Transcriptomic Foundation Model Interfaces (2026-04-07)
- ScKGBERTInterface: dual S-Encoder + K-Encoder with Gaussian attention (Li et al. 2025 Genome Biology)
- GeneformerInterface: rank-value tokenisation + multi-head attention + MLM (Theodoris et al. 2023 Nature)
- rank_value_encode: shared utility for gene expression tokenisation
- Tests: 29 multi-angle tests
- Documentation: 1,118 lines, 8/8 sections
Gap Model Python + PyO3 + Docs (11 models, 2026-04-07)
- 10 new Python implementations (publication-exact): AdaptiveThresholdMoENeuron, HybridLinearAttentionNeuron, QuantumInspiredLIFNeuron, DendriticNMDANeuron, MulticompartmentMCNNeuron, AstrocyteLIFNeuron, DirectionSelectiveRGC, CochlearHairCell, ShortTermPlasticitySynapse, DopamineStdpSynapse
- PyO3 wiring: 11 models registered (2 macro + 9 manual wrappers)
- Tests: 87 multi-angle tests
- 10 docs (5,701 lines total)
- GPU backend documentation (607 lines)
CI & Dependency Fixes (2026-04-07)
- PEP 639: migrated
license = { text = "..." }→license = "AGPL-3.0-or-later"(fixes setuptools ≥78) - mypy: 1.19.1 → 1.20.0
- cyclonedx-bom: 7.2.2 → 7.3.0
- ci.yml: pinned all mypy stub dependencies to exact versions (CodeQL #287)
- cargo fmt: applied to all new Rust code
- Purged 52 resolved failed/cancelled CI runs
- Closed superseded dependabot PRs #53, #55
Neuron Models — (12 new models, 2026-04-04/05)
- TUMNetwork: rate model with short-term plasticity (depression + facilitation), 3 ODEs
- ElBoustaniNetwork: E/I + NMDA bistability, 3 ODEs
- GradedSynapseNeuron: non-spiking, passive RC + sigmoid release
- GapJunctionNeuron: LIF + electrical synapse with Cx36 rectification
- FrankenhaeUserHuxleyAxon: GHK permeability-based currents (not linear V-E)
- NodeOfRanvier: MRG 2002 — Nav1.6 transient + persistent + Kv7 slow K
- MyelinatedAxon: MRG node + passive internode cable
- CardiacPurkinjeFibre: DiFrancesco-Noble 1985, 6 currents
- SmoothMuscleCell: CaL + BK + IP3R/SERCA + Ca²⁺ store
- EndocrineBetaCell: CaL + K_dr + K_ATP + K_Ca glucose-dependent bursting
Fidelity Audit Fixes (7 models corrected, 2026-04-04)
- RetinalGanglionCell: basic LIF → Pillow 2005 GLM (stimulus + history filters)
- InnerHairCell: no vesicle pool → Meddis 1986/2006 (q/c/w compartments)
- OuterHairCell: unidirectional sigmoid → bidirectional asymmetric prestin (Santos-Sacchi 2006)
- GranuleCell: LIF-style → D'Angelo 2001 full HH (7 ionic currents)
- AlphaMotorNeuron: PIC no inactivation → h_pic + Ca²⁺ buffering
- RodPhotoreceptor: no Ca²⁺ feedback → Ca²⁺-GC feedback (Nikonov 2006, Hill n=4)
- TraubMilesNeuron: missing M-current → Kv7/KCNQ (Yamada 1989)
Kinetics Audit Fixes (3 models upgraded, 2026-04-05)
- GolgiCell (CRITICAL): 5-current WB → full Solinas 2007 (11 currents, 13 gating variables)
- DCNNeuron (MODERATE): added persistent Na (INaP) + Ca²⁺-dependent AHP (7 currents total)
- OlfactoryReceptorNeuron (MODERATE): added PDE4 negative feedback on cAMP
Infrastructure (2026-04-05)
supported_models(): 28 missing entries added (159 total)- Interface wrappers: 20 non-standard models wired via Wr* types (multi-input, i32-input, graded/rate)
- All 4 failing CI workflows fixed (clippy, ruff, MkDocs, typos)
cargo fmtapplied to all engine source- Fresh Criterion benchmarks published (2026-04-05)
- Documentation audit: all stale numbers corrected across README, pricing, index, benchmarks
Notebooks (13 new, 21 total)
- 08_equation_to_verilog: ODE string → Python sim → Q8.8 Verilog (LIF, FHN, Izhikevich)
- 09_topology_and_dynamics: 6 generators, adjacency matrices, degree distributions, raster plots
- 10_spike_train_analysis: ISI, CV, Fano, cross-correlation, van Rossum, PCA
- 11_biological_circuits: tripartite synapse Ca²⁺ dynamics, Rall dendrite nonlinearity
- 12_learning_rules: STDP, e-prop eligibility, R-STDP, STP facilitation/depression
- 13_quantisation_pipeline: float → Q8.8 → SC probabilities → Verilog export, error budget
- 14_sc_arithmetic_theory: AND=multiply, XNOR=bipolar, MUX=add, CORDIV=divide, Sobol vs Bernoulli convergence, Hoeffding bounds
- 15_fault_tolerance: SC vs fixed-point under bit-flips/stuck-at, TMR majority vote
- 16_neuron_atlas: 12 models from 8 families (LIF→ArcaneNeuron, 1907–2026)
- 17_reservoir_computing: liquid state machine, temporal XOR, ridge readout, SVD dimensionality
- 18_mixed_precision_sc: per-layer adaptive L, Hoeffding vs sensitivity allocation, Pareto frontier
- 19_compression_and_pruning: magnitude/SC-aware pruning, quantisation sweep, combined Pareto
- 20_power_analysis: event-driven vs clock-driven toggle count, scaling with network size
- 21_spike_alu: Turing-complete spike-based ALU — logic gates, SR latch register, ripple-carry adder, sort
- 22_ir_type_safety: IR signal type checker — Bitstream/Rate/Spike/Fixed, catch mismatches before Verilog synthesis
- 23_topological_observables: winding number, Ollivier-Ricci curvature, sheaf consistency defect, connection curvature
- 24_identity_lazarus: Lazarus checkpoint save/load/merge, TraceEncoder text→spikes, StateDecoder attractor extraction, DirectorController L16 self-regulation
- 25_cortical_column_dynamics: canonical 5-population microcircuit, thalamic drive, layer-resolved rasters, feedforward latency
- 26_spike_codec_benchmark: 5 codecs (ISI/AER/predictive/delta/streaming) on synthetic data, compression ratio vs density curves
- 27_python_to_proven_silicon: complete end-to-end pipeline — ODE string → Python sim → IR type check → Q8.8 Verilog → testbench → formal properties → resource estimate
- 28_domain_bridge: TensorStream prob↔bitstream↔quantum conversions, QuantumStochasticLayer cos²(θ/2) non-linearity, Born rule roundtrip
Tests (19 new files, ~3700 lines, ~310 test methods)
test_topology_generators.py: 6 generators — CSR validity, degree, symmetry, edge count, determinismtest_cordiv_division.py: CORDIV accuracy, monotonicity, convergence, adaptive_length Hoeffding boundstest_fault_injection.py: bit-flip degradation, stuck-at analytical bounds, TMR, SC vs fixed-point comparisontest_learning_advanced.py: EligibilityTrace decay, BPTT/TBPTT loss, R-STDP reward gating, STP facilitation/depression/recoverytest_quantisation_pipeline.py: Q8.8 roundtrip, dequantise fidelity, SC probability ordering, dot product end-to-endtest_network_monitors_stimulus.py: SpikeMonitor record/count/trains, StateMonitor accumulation, RateMonitor bins, TimedArray clamp, StepCurrent onset/offset, PoissonInput rate/seed/weighttest_neuron_families.py: parametrised test across 11 EquationNeuron models — step(), spike detection, reset, state finiteness, determinismtest_sc_convergence.py: AND O(1/√L), Sobol faster than Bernoulli, CORDIV monotonic, correlation violation, popcount exacttest_spike_alu.py: SpikeGate truth tables (AND/OR/NOT/NAND/XOR), De Morgan law, SpikeRegister roundtrip, SpikeALU add/sub/xor/compare/shift, spike_sort correctnesstest_topological_observables.py: winding number wraps, Ricci curvature complete>ring, sheaf defect zero when synchronised, connection curvature bounded by couplingtest_scpn_integrated.py: K_nm symmetric zero-diagonal, OMEGA_N physical frequencies, create_full_stack 16 layers, run_integrated_step finite, get_global_metricstest_identity_lazarus.py: IdentitySubstrate run/step/health, TraceEncoder encode/determinism, Checkpoint save/load/merge roundtrip, StateDecoder patterns/attractors, DirectorController monitor/diagnose/correcttest_cortical_column_dynamics.py: CorticalColumn step/run dict outputs, 5 populations, binary spikes, thalamic drive, L4-before-L5, inhibition, reset, determinismtest_codec_roundtrip.py: all 5 codecs parametrised — lossless roundtrip (sparse/empty/single-spike/all-ones), compression ratio bounds, shape preserved, edge cases (1 channel, 1 timestep)test_tensor_stream.py: TensorStream prob↔bitstream↔quantum roundtrips, Born rule, normalisation, p=0/1 edge cases, invalid conversion raisestest_quantum_hybrid.py: QuantumStochasticLayer cos²(θ/2) transfer, p=0→1, p=1→0, monotonic decreasing, multi-qubit independence
Model Validation
- LIF f-I curve: 29/29 tests, <5% error vs analytical solution
- Izhikevich 20 firing patterns: all from Izhikevich (2003) Table 1 validated
- Hodgkin-Huxley 1952: AP peak 40.6mV, spike width 1.46ms, AHP -75.1mV
- NeuroBench SHD: 79.28% test accuracy (250K params, feedforward)
- Brian2 parity: exact LIF match (0.000ms timing diff), 7.3x speedup
- 5 validation docs with measured data in
docs/validation/
Stochastic Computing Pipeline
- Bipolar SC (XNOR):
core/bipolar.pyfor signed weight multiplication - SC bitstream MNIST: 10% (unipolar) -> 35.6% (bipolar) -> 50.0% (all fixes)
- SC-aware training:
SCAwareLIFNetwith bitstream noise injection (+9.5pp)
Quantization-Aware Training
QuantizedLIFNet: 2/4/8/16-bit STE weight quantization (PyTorch)SCAwareLIFNet: SC noise injection during trainingSCAwareLinear: drop-in layer replacement
Encoding Comparison
- 7 temporal spike encodings benchmarked on MNIST
- Latency encoding Pareto-optimal: 88.1% at 142 spikes (17x fewer than rate)
Interoperability
- NeuroML 2 importer: iafCell, Izhikevich (2003/2007), AdEx
- SONATA network format importer: nodes.h5 + edges.h5, connectivity matrix
Reproducibility
- 7 Kaggle scripts in
notebooks/*_kaggle.py - JSON artifacts in
benchmarks/results/