Live demo: https://www.harpsparc.com/
HARP is a full-stack web application that provides a no-code, visual interface for designing, training, and comparing Echo State Networks (ESNs) for time series forecasting. The platform allows anyone to upload a time-series dataset, visually configure and test multiple ESN architectures, and deploy models, leveraging Google Vertex AI for scalable, distributed cloud training and real-time predictions.
Built by a team of four for the SPARC Competition at Penn.
Team: Pranav Thokachichu, Helen He, Axel Delakowski, Raymond Setiawan.
Time-series forecasting is powerful but often inaccessible without ML expertise. HARP makes advanced forecasting approachable by wrapping Echo State Networks (ESNs) in an intuitive web app:
- Upload a CSV/Excel time series
- Explore single / dual / parallel reservoir variants
- Tune hyperparameters with guided defaults
- Train locally or on the cloud
- Compare predictions & metrics, then export artifacts
- Interactive ESN Workbench: Configure reservoirs, fit models, and visualize outputs in-browser
- Multiple Architectures: Single, dual, and parallel reservoirs for quick ablations
- Fast Iteration: ESN training is lightweight → rapid prototyping and comparisons
- Cloud Optionality: Integrations for Google Vertex AI jobs & Cloud Storage
- Real-time Predictions: Stream predictions with trained models
- Rich Visuals: Charts for raw series, forecasts, errors, and reservoir dynamics
- Auth & Roles: Firebase Authentication for secure access
- i18n: English, Spanish, French, Indonesian, and Chinese
Monorepo with React/TypeScript frontend and FastAPI backend.
HARP/
├─ Frontend/ # React 19 + TypeScript + Vite
│ ├─ src/ # UI, views, state, API client
│ └─ public/
│
├─ Backend/ # FastAPI + Python
│ ├─ src/ # REST API, ESN trainers, Vertex jobs
│ ├─ deployment/ # Cloud Run / Vertex helpers
│ └─ tests/
│
└─ README.md
Frontend
- React 19, TypeScript, Vite
- TailwindCSS, Radix UI
- TanStack Query (async data)
- i18next (internationalization)
- Firebase Auth
Backend
- FastAPI (Python)
- ReservoirPy, scikit-learn (ESN & utilities)
- NumPy, Pandas, Matplotlib (processing/plots)
- Firebase Admin SDK
- Google Cloud: Vertex AI, Cloud Storage, Cloud Run
- Ingest: User uploads a dataset → schema validation & series selection
- Design: Pick ESN variant and set hyperparameters (reservoir size, spectral radius, leak rate, regularization, etc.)
- Train: Fit locally or submit a managed job (Vertex AI optional)
- Evaluate: Inspect predictions, residuals, metrics, and reservoir dynamics
- Iterate/Export: Compare runs, adjust settings, and export models/plots
- Speed to insight: ESNs train quickly → more experiments in less time
- Approachable ML: Visual workflow lowers the barrier for non-experts