Skip to main content

Enterprise-grade Wavelet Scattering Transform engine for non-stationary time-series analysis. Designed as an MCP-compatible scientific processing backend.

Project description

OmniPulse: Agentic Model Context Protocol (MCP) for Universal Transient Signal Processing

PyPI version License Build Status

Welcome to OmniPulse, a domain-agnostic, enterprise-grade Agentic MLOps pipeline designed natively for high-noise transient detection. By bridging cutting-edge temporal signal processing mathematics with autonomous Large Language Model (LLM) orchestration via the Model Context Protocol (MCP), OmniPulse sets a new standard for processing extreme time-series anomalies.

Developed by Samvardhan Singh.


The Scientific Context: Why Wavelet Scattering?

In fields like Neurology (EEG analysis for epilepsy or emotion recognition) and Astrophysics (Fast Radio Bursts / FRB detection), researchers are constantly battling non-stationary transients hiding within extreme Gaussian white noise and instrumental artifacts.

Traditional Fourier Transforms perform poorly on non-stationary signals because they lose temporal localization. Even baseline Continuous Wavelet Transforms (CWT) struggle because they are not translation parameter invariant—a slight shift in the signal severely alters the mathematical representation, crashing downstream machine learning classifiers.

The Cascaded Wavelet Scattering Transform (WST)

OmniPulse utilizes the Wavelet Scattering Transform (WST) mathematically backed by the kymatio engine. The WST solves translation-variance by passing the signal through a deep, convolutional-like cascade of wavelet modulus operators and low-pass filters:

  1. S0 (Zeroth Order): The raw signal is heavily smoothed via a low-pass filter, capturing the baseline average.
  2. S1 (First Order): The signal is convoluted with high-frequency Morlet wavelets, and the absolute modulus is taken before applying the low-pass filter. This mathematically isolates the amplitude envelopes of primary transients.
  3. S2 (Second Order): The scattered energy from S1 is recursively convoluted again, extracting the interference patterns of the amplitude envelopes, revealing deep, non-linear harmonic structures that hidden transients rely on.

This non-linear translation invariance provides a pristine, mathematically guaranteed extraction of anomalies regardless of where they occur in the temporal sequence.


Architectural Philosophy: The Decoupled Paradigm

OmniPulse abandons monolithic design. Mathematical engines are best written in Python; autonomous LLM orchestrators are best written in TypeScript.

To merge these, OmniPulse utilizes the Model Context Protocol (MCP) via a native stdio transport, physically isolating the Python Scientific Engine from the TypeScript Agentic Orchestrator while allowing seamless, type-safe RPC (Remote Procedure Call) interoperability.

1. The Python Scientific Engine (omnipulse / PyPI)

The backend is a strictly typed PyTorch/Kymatio microservice. It manages:

  • Memory-safe signal loading and NaN/Inf anomaly sanitization.
  • Wavelet Scattering Transform generation.
  • Principal Component Analysis (PCA) manifold compression using scikit-learn to retain 95% statistical variance while reducing dimensionality from tens of thousands of parameters down to a highly constrained K-dimensional vector.
  • A FastMCP server wrapper that exposes these highly complex mathematical sequences as isolated, runnable node tools.

2. The TypeScript Agentic Orchestrator (agent/ / Bun)

The frontend loop acts as the "Brain". It manages:

  • Spawning the Python backend dynamically via bun spawn.
  • Parsing continuous .npy evaluation datasets.
  • Hand-shaking the initialize JSON-RPC MCP connection.
  • Reading the JSON outputs of the Python engine to make heuristic decisions. If rigorous statistical thresholds (e.g., Mean + 3σ) are breached by an astronomical variance anomaly, the TypeScript engine autonomously flags the data for Denoising, Approval, or an emergency Halt.

Installation

OmniPulse requires Python 3.10+ and Bun v1.0+.

Installing the Mathematical Backend

The pure Python engine can be installed standalone from PyPI for local notebook evaluation or microservice integrations:

pip install omnipulse

Full Repository Install (Orchestrator + Backend)

To run the autonomous TypeScript pipeline and contribute to the MCP tools, clone the monolithic structure:

git clone https://github.com/samvardhan03/OmniPulse.git
cd OmniPulse

# 1. Setup Python Environment
cd open-source-wst
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cd ..

# 2. Setup TypeScript Orchestrator
cd agent
bun install

Usage Examples

1. Python API (Direct Scientific Usage)

If you are a Data Scientist who simply wants the Kymatio PCA compression without the LLM overhead:

import numpy as np
from transient_wst.io import SignalLoader
from transient_wst.core import WaveletScatteringExtractor
from transient_wst.reduction import PCAReducer

# Generate a fake 2000-sample signal at 1000Hz
raw_signal = np.random.randn(2000)

# Instantiate the WST (J=6 scales, Q=8 filters per octave)
extractor = WaveletScatteringExtractor(J=6, Q=8, sample_rate=1000)
scattering_paths = extractor.extract(raw_signal)

# Compress the deep nested vectors (e.g., path size [74, 31]) into a flat 2D manifold
reducer = PCAReducer(n_components=5)
# Expects batch of signals, so we add a batch dimension
reduced_tensor = reducer.fit_transform(np.expand_dims(scattering_paths, axis=0))

print(f"Compressed Representation Shape: {reduced_tensor.shape}")

2. The Bun CLI (Agentic Execution)

To run the real magic—the autonomous agent that decides what to do with the mathematics natively:

# Generate 50 simulated noisy transients
python open-source-wst/scripts/generate_sim_data.py

# Launch the TS Orchestrator Loop
cd agent
bun run src/main.ts process \
  --input ../open-source-wst/data/raw_sim \
  --output ../open-source-wst/data/processed

The agent will seamlessly boot the Python background process, map the execute_wst tool, calculate PCA distributions, cross-reference standard deviations against its configured prompt schema, and reject explicit anomalies natively!


Credits

OmniPulse is developed, maintained, and mathematically formulated by: Samvardhan Singh

License

This architecture is physically released for Academic and Open-Source usage under the Apache 2.0 License.

Copyright 2026 Samvardhan Singh

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

For Custom Lab implementations, Exascale Kubernetes adaptations, and proprietary quantum-kernel hardware bindings, please contact via the Enterprise Consulting tier.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omnipulse-0.1.1.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omnipulse-0.1.1-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

Details for the file omnipulse-0.1.1.tar.gz.

File metadata

  • Download URL: omnipulse-0.1.1.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for omnipulse-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f6bcc2592533a7f157a0085a425cb53cae2870b7ca6d46cc31983a3162f021fc
MD5 516ea7ce523514d1a3dadff4c2b563a8
BLAKE2b-256 968c071fcdbd60e5f067e991cde32b875f9ce6933a8b39b3c0560f0aee260bb1

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnipulse-0.1.1.tar.gz:

Publisher: publish.yml on samvardhan03/OmniPulse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnipulse-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: omnipulse-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 18.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for omnipulse-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a8a18ca4be14bef505105e9d00e8ad7d102342fff9c0d2f659f3e6aa6c600560
MD5 7d246d701910899fac131f6c3d561fad
BLAKE2b-256 4d559f45f36b515e089c349453fd22c56723d895d61277383f0cfe08838a983f

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnipulse-0.1.1-py3-none-any.whl:

Publisher: publish.yml on samvardhan03/OmniPulse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page