CLI-driven framework for simulation-based inference with large simulators
Project description
Falcon
Falcon is a CLI-driven Python framework for simulation-based inference (SBI) with large, expensive simulators. Born in astrophysics, built for any domain with complex forward models — break your model into components and Falcon jointly infers their parameters.
- Composable — define multi-component models as a graph of simulators in YAML, each wrapped with a thin Python interface, regardless of framework.
- Adaptive — steers simulations toward high-posterior regions as training progresses, focusing compute where it matters.
- Concurrent — trains neural posterior estimators across heterogeneous parameter blocks in parallel, using Ray for distributed execution.
- Batteries included — ships with neural spline flows, data embeddings (including CNN/transformer support), and built-in experiment tracking via WandB.
Installation
pip install falcon-sbi
For development:
git clone https://github.com/cweniger/falcon.git
cd falcon
pip install -e ".[monitor]"
Quick Start
Run the minimal example (a 3-parameter Gaussian inference problem):
cd examples/01_minimal
falcon launch --run-dir outputs/run_01
falcon sample posterior --run-dir outputs/run_01
This trains a neural posterior estimator on simulated data, then draws 1000 posterior samples. Results are saved under outputs/run_01/.
How It Works
You define a directed graph of random variables in config.yml. Each node has a simulator (forward model) and optionally an estimator (learned posterior). Falcon iterates between simulating data and training the estimator, automatically managing the sample buffer.
graph:
z: # Latent parameters
evidence: [x]
simulator:
_target_: falcon.priors.Hypercube
priors:
- ['uniform', -5.0, 5.0]
estimator:
_target_: falcon.estimators.Flow
x: # Observations
parents: [z]
simulator:
_target_: model.Simulate
observed: "./data/obs.npz['x']"
CLI
falcon launch [--run-dir DIR] [--config-name NAME] [key=value ...]
falcon sample prior|posterior|proposal --run-dir DIR
falcon graph # Visualize graph structure
falcon monitor # Real-time TUI dashboard (requires pip install "falcon[monitor]")
Examples
| Example | Description |
|---|---|
01_minimal |
Basic 3-parameter inference |
02_bimodal |
10D bimodal posterior with training strategies |
03_composite |
Multi-node graph with image embeddings |
04_gaussian |
Gaussian inference |
05_linear_regression |
Linear regression |
Documentation
For tutorials, configuration reference, and API docs, see cweniger.github.io/falcon.
Citation
@software{falcon2024,
title = {Falcon: Distributed Dynamic Simulation-Based Inference},
author = {Weniger, Christoph},
year = {2024},
url = {https://github.com/cweniger/falcon}
}
License
MIT License - see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file falcon_sbi-0.3.0.tar.gz.
File metadata
- Download URL: falcon_sbi-0.3.0.tar.gz
- Upload date:
- Size: 9.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a86096d051eb68267557e81ad671cb14650f65e29ec9946338b30544e2a4b60
|
|
| MD5 |
827ccaf39d0b3a848b7980620b3481a1
|
|
| BLAKE2b-256 |
3614e950b54de2a19660f723b1e7048896dd935c3a921a94cc2ff78e0faff31f
|
Provenance
The following attestation bundles were made for falcon_sbi-0.3.0.tar.gz:
Publisher:
publish.yml on cweniger/falcon
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
falcon_sbi-0.3.0.tar.gz -
Subject digest:
5a86096d051eb68267557e81ad671cb14650f65e29ec9946338b30544e2a4b60 - Sigstore transparency entry: 963970488
- Sigstore integration time:
-
Permalink:
cweniger/falcon@343ed0d98d962f6e3529d99e4fdf807a828cd361 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/cweniger
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@343ed0d98d962f6e3529d99e4fdf807a828cd361 -
Trigger Event:
release
-
Statement type:
File details
Details for the file falcon_sbi-0.3.0-py3-none-any.whl.
File metadata
- Download URL: falcon_sbi-0.3.0-py3-none-any.whl
- Upload date:
- Size: 94.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a17ea776d29bcd8b18b631db47100df9128c38a4d06bf7219da824b6837208a
|
|
| MD5 |
cabb8a01a20ec31ea4dcd9df1fe241ac
|
|
| BLAKE2b-256 |
5ec1f49497dadb755d8e71fea74c39f970fca3a1dfd180f9afa60c08d7841ff9
|
Provenance
The following attestation bundles were made for falcon_sbi-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on cweniger/falcon
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
falcon_sbi-0.3.0-py3-none-any.whl -
Subject digest:
6a17ea776d29bcd8b18b631db47100df9128c38a4d06bf7219da824b6837208a - Sigstore transparency entry: 963970584
- Sigstore integration time:
-
Permalink:
cweniger/falcon@343ed0d98d962f6e3529d99e4fdf807a828cd361 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/cweniger
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@343ed0d98d962f6e3529d99e4fdf807a828cd361 -
Trigger Event:
release
-
Statement type: