FlyDoom
Research framework comparing a MaleCNS-constrained sparse recurrent controller with rewired graphs, conventional neural networks, and other controls on simple VizDoom tasks.
Neurons are simulated — leaky integrate-and-fire or better — with documented, tuned parameters.
Dispute this rating →The evidence
No evidence, no level.Connectome edge weights are written in place each step from a dopamine signal times a local eligibility trace, with no optimizer and no gradient.
https://github.com/eganeganegan/flydoom/blob/b047fabffb62e10268de2fc1f12c765b8b019c0b/src/flydoom/training/three_factor.py#L139-L158The third factor is a temporal-difference reward prediction error, injected into the subgraph's dopaminergic neurons when any are present.
https://github.com/eganeganegan/flydoom/blob/b047fabffb62e10268de2fc1f12c765b8b019c0b/src/flydoom/training/three_factor.py#L124-L138Plasticity can be restricted to edges running from annotated Kenyon cells to mushroom-body output neurons in the loaded graph.
https://github.com/eganeganegan/flydoom/blob/b047fabffb62e10268de2fc1f12c765b8b019c0b/scripts/train.py#L196-L219Underlying node dynamics are a documented leaky recurrent rate unit over the sparse measured edge set, which is the L1 floor this project clears.
https://github.com/eganeganegan/flydoom/blob/b047fabffb62e10268de2fc1f12c765b8b019c0b/src/flydoom/models/connectome_network.py#L60-L76
L1. A documented sparse leaky recurrent rate unit over the measured MaleCNS v1.0 edge set (`src/flydoom/models/connectome_network.py`) clears the L1 floor. Not L2, on two independent grounds. First, the default run is curve fitting on the fly's own synapses: `scripts/train.py` defaults to `algorithm: ppo` with `model=connectome_rate`, whose `training_mode: trainable_internal` makes the connectome edge weights an `nn.Parameter` trained by `torch.optim.Adam` through `loss.backward()`. An optimizer is L1 whatever tensor it touches. Second, the shipped `three_factor` arm is genuine gradient-free plasticity on real edges but is not a rule grounded in fly biology. The only config that enables it, `configs/experiment/flydoom_biological.yaml`, sets `plasticity_scope: all`, and the learner's default mask is every edge - the README says plainly that the current preset permits plasticity on every edge in the subgraph. The third factor at the weight write is a bare temporal-difference scalar; injecting it into annotated dopaminergic neurons only perturbs their node state, and only when the subgraph contains any, which the repo's own recommended visual-to-descending subgraph does not. The README motivates the rule with general neo-Hebbian three-factor theory (Fremaux & Gerstner 2016; Gerstner et al. 2018), not fly learning literature, and calls the update equations a biologically inspired computational hypothesis; the KC->MBON restriction exists only as a command-line option no config uses. A reward-modulated Hebbian rule applied uniformly across every edge is the case the scale explicitly keeps at L1. Not validated: nothing in the repo compares behaviour to measurements from real flies - the Erdos-Renyi, degree-rewired, MLP, GRU and LSTM comparisons are internal topology ablations on VizDoom score.
Record
Nearby
All projects →MaleCNS simulation connected to ViZDoom through modeled visual inputs and a fixed button readout. Includes plasticity experiments and negative validation results; learned survival has not been demonstrated.
Hooks a MaleCNS model up to Super Mario 64, with a local dashboard and macOS setup. A playful experimental controller; requires your own game ROM.
Ratings on thelearningfly.com are proposals, not verdicts. Every one of them is arguable in public.