<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Dr. Elena Rivers</title>
    <subtitle>Computational neuroscientist studying how neural circuits learn and adapt.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://wip-2026-rtj.pages.dev/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://wip-2026-rtj.pages.dev"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-05-01T00:00:00+00:00</updated>
    <id>https://wip-2026-rtj.pages.dev/atom.xml</id>
    <entry xml:lang="en">
        <title>DriftDB</title>
        <published>2026-05-01T00:00:00+00:00</published>
        <updated>2026-05-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://wip-2026-rtj.pages.dev/projects/driftdb/"/>
        <id>https://wip-2026-rtj.pages.dev/projects/driftdb/</id>
        
        <content type="html" xml:base="https://wip-2026-rtj.pages.dev/projects/driftdb/">&lt;p&gt;&lt;strong&gt;DriftDB&lt;&#x2F;strong&gt; is a curated dataset of two-photon calcium imaging from mouse visual
cortex, recorded from the same neurons across six weeks during a stable
discrimination task. It is the dataset behind our 2026 work on representational
drift.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-inside&quot;&gt;What’s inside&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;~4,000 neurons tracked across 30+ sessions per animal (6 animals).&lt;&#x2F;li&gt;
&lt;li&gt;Aligned ROIs, deconvolved activity, and full behavioral logs.&lt;&#x2F;li&gt;
&lt;li&gt;A NWB-formatted release plus loader utilities for &lt;a href=&quot;&#x2F;projects&#x2F;neurodyn&#x2F;&quot;&gt;NeuroDyn&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;We release DriftDB under CC-BY so the community can test theories of drift and
stability without re-collecting expensive longitudinal data.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>LocalProp</title>
        <published>2025-11-01T00:00:00+00:00</published>
        <updated>2025-11-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://wip-2026-rtj.pages.dev/projects/localprop/"/>
        <id>https://wip-2026-rtj.pages.dev/projects/localprop/</id>
        
        <content type="html" xml:base="https://wip-2026-rtj.pages.dev/projects/localprop/">&lt;p&gt;&lt;strong&gt;LocalProp&lt;&#x2F;strong&gt; collects clean, benchmarked implementations of learning rules that
avoid the biologically implausible weight transport of backpropagation —
feedback alignment, target propagation, predictive coding, and our own local
error signals from the NeurIPS 2025 paper.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;goals&quot;&gt;Goals&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;One consistent training loop so rules can be compared fairly.&lt;&#x2F;li&gt;
&lt;li&gt;Benchmarks on vision and sequence tasks with logged compute budgets.&lt;&#x2F;li&gt;
&lt;li&gt;A teaching resource: each rule has an annotated, minimal notebook.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If you are exploring how the brain might approximate gradient descent, this is a
good place to start experimenting.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>NeuroDyn</title>
        <published>2024-06-01T00:00:00+00:00</published>
        <updated>2024-06-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://wip-2026-rtj.pages.dev/projects/neurodyn/"/>
        <id>https://wip-2026-rtj.pages.dev/projects/neurodyn/</id>
        
        <content type="html" xml:base="https://wip-2026-rtj.pages.dev/projects/neurodyn/">&lt;p&gt;&lt;strong&gt;NeuroDyn&lt;&#x2F;strong&gt; fits state-space and switching linear dynamical systems to recordings
from thousands of simultaneously imaged or recorded neurons. It is built on JAX,
so models scale to GPU&#x2F;TPU and differentiate end-to-end.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;highlights&quot;&gt;Highlights&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Pluggable observation models (Gaussian, Poisson, negative-binomial).&lt;&#x2F;li&gt;
&lt;li&gt;Variational and Laplace inference with a unified API.&lt;&#x2F;li&gt;
&lt;li&gt;Tools for cross-validation, model comparison, and trajectory visualization.&lt;&#x2F;li&gt;
&lt;li&gt;Tutorials reproducing results from several published datasets.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;why-it-exists&quot;&gt;Why it exists&lt;&#x2F;h2&gt;
&lt;p&gt;Most labs re-implement the same inference machinery for every project. NeuroDyn
packages it once, tests it thoroughly, and gets out of your way so you can focus
on the science.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;python&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span class=&quot;z-keyword&quot;&gt;import&lt;&#x2F;span&gt;&lt;span&gt; neurodyn&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword&quot;&gt; as&lt;&#x2F;span&gt;&lt;span&gt; nd&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;model&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; nd.SLDS(&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable&quot;&gt;n_states&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword&quot;&gt;=&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant&quot;&gt;4&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable&quot;&gt; n_latents&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword&quot;&gt;=&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant&quot;&gt;8&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable&quot;&gt; observations&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword&quot;&gt;=&lt;&#x2F;span&gt;&lt;span class=&quot;z-punctuation z-definition z-string z-string&quot;&gt;&amp;quot;poisson&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;posterior&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword&quot;&gt; =&lt;&#x2F;span&gt;&lt;span&gt; model.fit(spikes,&lt;&#x2F;span&gt;&lt;span class=&quot;z-variable&quot;&gt; n_iters&lt;&#x2F;span&gt;&lt;span class=&quot;z-keyword&quot;&gt;=&lt;&#x2F;span&gt;&lt;span class=&quot;z-constant&quot;&gt;500&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;nd.plot.trajectories(posterior)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;</content>
        
    </entry>
</feed>
