01 Open-source research framework

Signal has
a shape.

Dynamic Resonance Rooting finds the rhythms in multivariate time series, traces which signal leads which, and tells you how sure it can be. Every number on this page is computed live, in your browser, by a port of the Python package that is tested against it.

Open the live lab

02 Live lab

Set the truth.
See what DRR finds.

Three channels stream at 100 Hz. dim_0 mixes a 7 Hz rhythm with broadband noise, dim_1 hears it through a delay you choose, and dim_2 is an unrelated 11 Hz distractor. DRR only sees the numbers. Every 512 new samples it measures resonance depth and tests every directed edge against 99 circular-shift surrogates.

How strongly dim_1 follows dim_0.
DRR searches lags 1 to 6.
7 Hz amplitude in dim_0. Pure rhythm hides direction.
Measurement noise on every channel.
Analysis window · 512 samples · 5.12 s

next analysis in —

DRR found —
Ground truth dim_0 → dim_1 lag 2

Collecting samples

Windows
0
Recovered
0
Missed
0
False alarms
0

Set coupling to 0 and every edge DRR reports is a false alarm. At α = 0.05 you should see about one in twenty.

Directed edges max-statistic adjusted
dim_0 power spectrum Welch · 256-sample segments
Resonance depth drr_composite_v2
—dim_0

    dim_1 — · dim_2 —

    03 Evidence

    Numbers we can
    stand behind.

    Each figure below is read from a committed artifact that anyone can regenerate with one command. That includes the result that went against us.

    False alarms stay near 5%

    Share of simulated null systems where the rooting test reported any edge.

    Show the numbers

    Which null survives long memory?

    Family-wise false-alarm rate of each surrogate null on independent channels whose dependence breaks its assumption by degrees.

    Show the numbers

    Real edges get found

    Share of trials that recovered the injected edge at its true lag.

    Show the numbers

    Depth describes; it does not test

    Median and 5–95% range of resonance depth over 200 draws.

    Show the numbers

    Not supported

    The preregistered external test did not pass

    —full DRR holdout false-alarm rate
    —preregistered tolerance

    On 572 months of NOAA stratospheric wind data, DRR raised too many alarms outside the published disruption windows. We record the claim as not supported, and it stays inside that one domain.

    Read the protocol and the artifact

    04 The method

    Measure the rhythm.
    Trace the lag.
    Keep the evidence.

    1. 01

      Detect

      FFT, Welch, and Morlet-wavelet spectra locate recurring frequencies. Peaks are refined below the grid spacing, so a tone scores the same wherever it falls.

    2. 02

      Root

      Lagged correlation or transfer entropy scores every directed pair. Circular-shift surrogates keep each series' own memory and give family-wise adjusted p-values.

    3. 03

      Measure

      Resonance depth combines spectral concentration, persistence, phase coherence, and amplitude stability. The score is unchanged if you relabel Hz as cycles per month.

    A directed edge is a lead–lag relationship under a chosen estimator and null model, not a proof of causation. A result in one domain does not carry over to another.

    Run it on your own data

    Three commands
    to reproduce.

    $ pip install -e .
    $ drr-reproduce --no-artifacts
    $ python scripts/run_calibration_study.py
    Explore the research