A framework that discovers the causal graph from measurements and expresses the unnamed variables as names.
$curl -fsSL https://raw.githubusercontent.com/Sullivan07043/CausalBridge/main/install.sh | sh
CausalBridge bridges the gap between measurements and their meanings with causal structure. Given the measurements of a system and a few known names, it discovers the causal graph, solves for the embedding of every unnamed variable under the relations the graph implies, and expresses the embeddings as names through a frozen language model. The causal structure is recovered from the measurements alone, which may make it the one source of information free of bias from human knowledge.
CausalBridge recovers the causal graph from the measurements alone, before it reads any name, and adds a latent variable wherever the dependence among the observed variables requires one. You can also give the graph you know.
It solves for the meaning of every unnamed variable under the relations that the graph implies: what causes it, what it causes and what it is independent of. The known names serve as anchors.
A frozen language model expresses each solved meaning as a name. The structure supplies what human knowledge does not cover, and the language model supplies the words.
A vehicle drive and a personality test, animated from cause to effect.
Questionnaires, robot logs, vehicle buses: any system where some variables have names and others do not.
The observed task names unnamed columns. The joint task also names the hidden causes behind them.
Independent rows such as questionnaire responses, and time series such as sensor logs.
Any compatible open model on your GPU. CausalBridge never downloads a model for you, so you choose it.
OpenAI, OpenRouter, DeepSeek and local vLLM servers through the OpenAI format, and Claude through the Anthropic format.
Train a profile from your own datasets with one command, and fit new language models to any profile.
Your data stays local. With a hosted model, only names and evidence lines go to the provider, never the data rows.