First-principles signal analysis without training data, protocol libraries, or GPUs.
Send any time-series. Get structural characterisation back. No signal-specific tuning required.
Overview
API Operational — v1.0.0
What This Does
The API accepts raw time-series data — voltage samples, ADC readings, or derived magnitude (e.g. √(I²+Q²)) — and returns a structural characterisation of what the signal is doing. It works on radio signals, sensor streams, financial data, or any continuous measurement.
How It Works
Your data is converted into state-space trajectories. Adaptive thresholding identifies significant state transitions. Unsupervised anomaly gating filters noise. Spike-based coincidence scoring measures structural similarity. Multi-lag autocorrelation captures temporal patterns. Twelve mathematical phenomena detectors surface anomalous signatures.
The pipeline runs server-side. You receive only the characterisation — classification tags, temporal profile, anomaly level, and detected phenomena.
What Makes It Different
No training data: Fully unsupervised. Works on signals never seen before.
Not pattern matching: Characterises mathematical structure, not protocol signatures.
Universal input: Any time-series. RF, vibration, medical, financial, quantum hardware.
Structural output: Not just "anomaly detected" but what kind of anomaly.
Edge-ready: Designed for neuromorphic hardware at milliwatt power.
Run the analysis on the built-in demo signal, or paste your own samples.
First request after idle may be 1–3s slower (cold start). Subsequent requests are fast.
Ready
Detectors12 mathematical signatures
What We Detect
The pipeline tests for twelve mathematical phenomena in every signal. Each detector asks a specific structural question — not "is this a known protocol?" but "is this signal doing something mathematically unusual?"
Physical Phenomena
Quantum Zeno: Measurement frequency correlates with delayed transitions
Criticality: Self-organised criticality in event magnitude distribution
Information Backflow: Non-Markovian temporal correlations
Fractal Dimension: Chaotic structure in state-space trajectories
Topological Transitions: Phase changes in signal geometry
Copy-paste the snippet for your stack. No config needed — the system auto-tunes.
Python (recommended for data science / Rydberg)
import requests
import numpy as np
# 1. Generate Data (Example: Gaussian Noise)# Note: Noise often trends to ANTI_CORRELATED or low structure; may show STRUCTURED depending on gating/windowing.
data = np.random.normal(0, 1, 5000).tolist()
# Pro Tip: To see "STRUCTURED" detection, use a sine wave instead:# t = np.linspace(0, 1, 5000)# data = (np.sin(2 * np.pi * 50 * t)).tolist()# 2. Request — no config needed; optional: {"samples": data, "config": {"sample_rate_hz": 44100}}
url = "https://signal.sparse-supernova.com/api/characterise"
headers = {
"X-API-Key": "demo-sparse-supernova-2026",
"Content-Type": "application/json",
"User-Agent": "QuantumSignalClient/1.0",
}
print(f"Sending {len(data)} samples to Sparse Supernova...")
response = requests.post(url, headers=headers, json={"samples": data})
# 3. Resultsif response.status_code == 200:
result = response.json()
print("Classification:", result["characterisation"]["classification"])
print("Phenomena:", [p["detector"] for p in result["phenomena_detected"]])
else:
print("Error:", response.text)
Expectations: Noise often trends to ANTI_CORRELATED or low structure (may show STRUCTURED depending on gating/windowing). Sine → STRUCTURED. The snippet prints Phenomena (e.g. Quantum Zeno, Criticality). RF/IQ: Send magnitude √(I²+Q²); set User-Agent to avoid Cloudflare blocks.
cURL (Linux / Mac / WSL)
Minimum 128 samples: The API rejects payloads with fewer than 128 samples (400 Bad Request). Example 1 is for documentation; example 2 is a bash-only quick test (generates 150 samples with positive bias; for a symmetric signal test use a small JSON file or the Python snippet).
# 1. Documentation example (replace ... with 125+ more values or use #2)
curl -X POST https://signal.sparse-supernova.com/api/characterise \
-H "X-API-Key: demo-sparse-supernova-2026" \
-H "Content-Type: application/json" \
-d '{"samples": [0.1, -0.3, 0.5, ...]}'# min 128 samples# 2. Bash-only quick test (generates 150 samples; 0.xxx positive bias)
curl -X POST https://signal.sparse-supernova.com/api/characterise \
-H "X-API-Key: demo-sparse-supernova-2026" \
-H "Content-Type: application/json" \
-d "{\"samples\": [$(for i in {1..150}; do echo -n \"0.$RANDOM,\"; done | sed 's/,$//')]}"
Speaks hardware language: magnitude √(I²+Q²), not raw JSON. Fits Unix pipelines (rtl_sdr, GNU Radio). Converting I/Q to magnitude before upload cuts bandwidth by 50%. Save the script below as iq_to_magnitude.py so the pipeline runs.
# Fixed-size demo read: 48,000 complex samples → 96,000 bytes interleaved u8 IQ (I,Q,I,Q,…). Use -n 48000 with rtl_sdr. For streaming, read stdin in a loop instead.import sys, numpy as np, json
raw = sys.stdin.buffer.read() # or read(96000) for exactly one -n 48000 chunk
y = np.frombuffer(raw, dtype=np.uint8).astype(float)
y = (y - 127.5) / 127.5 # Normalize to -1..1
i, q = y[0::2], y[1::2]
magnitude = np.sqrt(i**2 + q**2) # √(I²+Q²)print(json.dumps({"samples": magnitude.tolist()}))