Wavelet scattering features, IC-weighted signal composition, and Bayesian portfolio construction — derived from first principles, covered by 182 tests.
Built on 182 passing tests · companion to OmniPulse (production audio fingerprinting) · AGPL-3.0 + Commercial licensing
Each failure has a mathematical cause and a mathematical fix.
Pearson correlation assumes normality. A single earnings shock flips the IC sign. Rank transformation removes the sensitivity entirely.
When assets approach observations, eigenvalues hit zero. Matrix inversion amplifies noise. Ledoit-Wolf analytical shrinkage is mandatory, not optional.
Momentum has negative IC in bear regimes. HMM regime detection gates which signals are active in each market state.
Every formula is implemented directly. The derivations are in the build history.
Morlet wavelets decay as exp(−t²). Cauchy wavelets decay algebraically: ω^α·exp(−ω) — keeping sensitivity to rare large events that matter in financial returns. Second-order coefficients capture volatility-of-volatility across pairs of scales. J=8 gives 37 coefficients per stock per date.
Derived by solving s(1)=−1, s(N)=+1 as a linear map — two equations, two unknowns. ICIR is the Sharpe ratio of the IC time series, filtering signal strength from consistency. Negative ICIR gets zero weight in the combiner.
Reverse optimisation backs out equilibrium returns from market-cap weights: μ_eq = λΣw_mkt. The posterior is a precision-weighted blend of the CAPM prior and IC-derived views. HRP (Ward linkage + recursive bisection) provides a matrix-inversion-free fallback when views are noisy.
Drag the outlier to any value and watch what happens to the z-score.
Synthetic three-year backtest on a 10-stock universe. Same pipeline as production.
Follow data from ingestion to delivery. Select any stage to inspect its role in the system.
Provider-agnostic DataLoader backed by a Parquet cache at ~/.drift/cache. Lazy OpenBB import — swap yfinance for Polygon or Refinitiv in one line. Returns a clean (date, ticker) MultiIndex DataFrame every layer above depends on.
cache.py · loader.pyfrom drift.data import DataLoader from drift.features.factors import FactorEngine from drift.portfolio.hrp import HRP from drift.backtest.engine import BacktestEngine # one pipeline, seven layers loader = DataLoader() ohlcv = loader.equity_ohlcv(["AAPL", "MSFT", "NVDA"]) result = BacktestEngine(HRP()).run(ohlcv) print(result) # Sharpe=0.70 · PSR=0.89 · MaxDD=−0.16
Drift applies the same mathematical foundations as OmniPulse — scattering transforms and optimal transport — to quantitative finance.
Concurrent systems, optimal transport, and real-time indexing. Built the Rust orchestration layer for OmniPulse (HNSW + Sliced Wasserstein) and the full seven-layer Drift platform — from data ingestion through the Streamlit dashboard.
Automation engineering, AI/MLOps pipelines, and C++/CUDA DSP kernels. Architect of omni-wst-core — the scattering engine Drift's WST layer calls via PyO3 — and the Python agentic control plane for OmniPulse.
Drift is dual-licensed. Choose the license that matches how you deploy and distribute the platform.
Use, modify, and distribute Drift under the GNU Affero General Public License v3.0, including for research, academic, and open-source work.
If you modify Drift and provide it to others over a network, you must release the complete corresponding source of your modified version under the same license.
Read the AGPL-3.0 license ↗A separate commercial license is available if you cannot or do not wish to comply with AGPL-3.0, including deployment inside proprietary products or services without releasing your own source.
Commercial terms can also cover production support, SLA, and proprietary premium components. This summary is not the commercial license agreement.
Request commercial terms →Drift is available for institutional research use. Book a walkthrough or drop your email and we will reach out.