SignalForge
See the structure in any data, across every scale, instantly.
Install
For the CLI:
pipx install adelic-signalforge
# or, if you have uv:
uv tool install adelic-signalforge
For library use in your own project:
python -m venv .venv && source .venv/bin/activate
pip install adelic-signalforge
Quick Start
# Download sample data (VIX volatility index, 2005-2012)
curl -o vix.csv "https://fred.stlouisfed.org/graph/fredgraph.csv?id=VIXCLS&cosd=2005-01-01&coed=2012-12-31"
# See the structure
sf surface vix.csv -hm --max-window 360
The 2008 financial crisis — visible across every scale at once.
Your data
sf schema mydata.csv # see what it inferred
sf schema mydata.csv --save mydata.schema.json # save it (correct overrides first if needed)
sf surface mydata.csv --schema mydata.schema.json -hm
Any CSV works. Multi-column, multi-channel, per-entity — sf schema figures it out.
Explore
sf surface data.csv -hm --baseline ewma --residual z # what's anomalous?
sf surface data.csv -hm --start-date 2008-01 --end-date 2009-06 # zoom in
sf inspect ewma # how does this work?
sf inspect # what's available?
The CLI suggests what to try next. Every output leads somewhere.
Python API
import signalforge as sf
surfaces = (
sf.load("data.csv")
.measure(windows=[10, 60, 360])
.baseline("ewma", alpha=0.1)
.residual("z")
.surfaces()
)
For branching and merging — multiple baselines, stacked features:
from signalforge.graph import Input, Measure, Baseline, Residual, Stack, Pipeline
x = Input()
m = Measure()(x)
bl = Baseline("ewma", alpha=0.1)(m)
r = Residual("z")(m, bl)
features = Stack()([m, r])
pipe = Pipeline(x, features)
result = pipe.run(records, windows=[10, 60, 360])
Custom aggregations
Each surface cell reduces a window to a number — by default a mean. SF ships with 20+ aggregations (mean, std, percentiles, spectral energy, dominant frequency, Shannon entropy, ...) and you can add your own:
from signalforge.pipeline.aggregation import register_aggregation
@register_aggregation("iqr")
def iqr(values):
return float(np.percentile(values, 75) - np.percentile(values, 25))
Across domains
The same pipeline processes financial data, EEG brain recordings, satellite gravity measurements, and generic time series — unchanged.
EEG seizure detection: the top panels show amplitude, the bottom panels show phase relationships between brain hemispheres. The seizure disrupts both — but the phase change is only visible with complex-valued analysis.
Documentation
| Quick Start | Zero to heatmap |
| Your Data | Bring your own data |
| CLI | All commands |
| Python API | Chaining and DAG |
| Examples | VIX, EEG, GRACE, INTERMAGNET |
| Concepts | How it works |
| Comparison | vs STFT, wavelets, EMD |
License
Business Source License 1.1. See LICENSE.
Free for non-commercial use. Commercial use requires a license from Adelic — contact shun.honda@adelic.org. Converts to Apache 2.0 on 2029-03-22.
Metadata
Release files for adelic-signalforge 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| adelic_signalforge-0.4.2.tar.gz | 15.1 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| adelic_signalforge-0.4.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.2 MB
Release files / adelic_signalforge-0.4.2.tar.gz
| Download URL | adelic_signalforge-0.4.2.tar.gz |
|---|---|
| Size | 15.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6242a019ffe13f9fc1eafc4993685d543d7429d0059cbe04576475ab8d3fd9c7
|
|
BLAKE2b-256 checksum How to use checksums |
5728e15b52091839d56c398783742ae7a8b04e46c121611cc93e317e0f25932a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.0
|
Release files / adelic_signalforge-0.4.2-py3-none-any.whl
| Download URL | adelic_signalforge-0.4.2-py3-none-any.whl |
|---|---|
| Size | 127.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7e0c7631939bdad9070ff3fe259d29c170daad9be2cefb6c06752c4e3a15fd31
|
|
BLAKE2b-256 checksum How to use checksums |
736fea8927fce63b5f69d687f15964224601d763a4d4aaa02738400aded757c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.0
|
Security for adelic-signalforge 0.4.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.