flyvis
PyTorch implementation of connectome-constrained models of the fly visual system, with pretrained models and analysis tutorials.
Neurons are simulated — leaky integrate-and-fire or better — with documented, tuned parameters.
Dispute this rating →The evidence
No evidence, no level.Predicted neural activity across the fly visual system is compared against recordings from real flies. This is an activity comparison rather than a behavioural one, which the mark covers and the distinction is worth keeping.
https://www.nature.com/articles/s41586-024-07939-3Neurons are passive point neurons with an explicit voltage velocity equation and a per-node membrane time constant.
https://github.com/TuragaLab/flyvis/blob/92b3845cc426dd309a1a0e1b3890156c42e14021/flyvis/network/dynamics.py#L207-L218Synaptic weight is the product of neurotransmitter sign, connectome synapse count, and a learned syn_strength - so the connectome fixes the wiring and the strengths are free parameters.
https://github.com/TuragaLab/flyvis/blob/92b3845cc426dd309a1a0e1b3890156c42e14021/flyvis/network/dynamics.py#L163-L169Those parameters are changed by an Adam optimizer taking gradient steps on a task loss in an offline training loop, not by any biological rule during a run.
https://github.com/TuragaLab/flyvis/blob/92b3845cc426dd309a1a0e1b3890156c42e14021/flyvis/solver.py#L320-L347The paper this repository implements predicts neural activity across the fly visual system - an activity comparison against recordings, not a behavioural comparison.
https://github.com/TuragaLab/flyvis/blob/92b3845cc426dd309a1a0e1b3890156c42e14021/readme.md#L20-L22
The official implementation of Lappalainen et al., Nature 2024. Neuron dynamics are explicit and documented: passive point neurons with instantaneous graded-release synapses, dv/dt = (1/tau) * (-v + bias + sum_j w_ji * relu(v_j) + x_t), with a per-cell-type membrane time constant. That is a documented neuron model with state, so L1. This is the batch's hardest call, because unlike the readout-only projects the trained parameters here really are inside the fly circuit: the edge weight is sign * synapse_count * syn_strength, and syn_strength is an nn.Parameter. It still does not reach L2, for two reasons the scale calls out directly. First, what changes those weights is loss.backward() and an Adam step against an optic-flow task loss - an optimizer's gradient, not a rule grounded in fly biology; a search of the whole package for a Hebbian, STDP, dopaminergic or eligibility term returns nothing at all. Second, it is offline training that bakes in fixed weights: during a simulation or analysis run the parameters are constant, and the shipped pretrained ensembles are exactly such frozen weights. Validated is a separate question from the level, and this project earns it: the repository ships direction-tuning curves digitised from Maisak et al. 2013 recordings in live flies and correlates the model's responses against them, and the Nature paper publishes that comparison across the visual system. It is a comparison of neural activity rather than of behaviour, which the mark covers, and the distinction is worth keeping.
Record
Nearby
All projects →Research code for the Shiu et al. connectome-based leaky integrate-and-fire model, including activation/silencing experiments, notebooks, and FlyWire data configuration.
FlyWire whole-brain LIF implementation based on Shiu et al., with multiple simulation backends and benchmarking tools. This repository supplies the neural model; it is not a complete embodied demo package.
Ratings on thelearningfly.com are proposals, not verdicts. Every one of them is arguable in public.