An interactive, offline-first Intelligent Tutoring System (ITS) and practice laboratory for university-level Analog Signal Processing & Linear Systems.
SignalLab provides undergraduate and graduate engineering students with an interactive, step-by-step practice environment for mastering continuous-time signals and systems. Designed around cognitive tutoring principles, SignalLab breaks complex signal processing problems into structured sub-steps, evaluates student inputs with exact symbolic math normalization, and delivers real-time diagnostic feedback.
- 🧩 Zero-Guesswork Step Solvers: Step-by-step problem workflows showing characteristic roots, differential trial ansatzes, systems of linear equations, and partial fraction expansions.
- 📐 Symbolic Math Normalization: Powered by
@cortex-js/compute-enginewith AST normalization tolerant of student shorthand, equivalent algebraic groupings, and fractional forms. - 💡 Adaptive Diagnostic Feedback: Real-time syntax checking, multi-tiered hints, and step-specific error classification.
- 📊 Interactive Canvas Visualizers: Dynamic canvas plots for Fourier harmonic series synthesis and continuous-time signal analysis.
- 🔒 100% Client-Side & Private: Practice runs entirely in the browser with zero external telemetry or tracking, with PWA asset caching for offline use and theme preferences saved in
localStoragewhen available. Solver sessions and practice history are not persisted across reloads. - 📱 Fluid & Accessible: Fully accessible via keyboard (
:focus-visible), with responsive layouts verified down to$320\text{px}$ viewports (WCAG 2.1 Reflow).
| Module | Core Topics & Capabilities | Route |
|---|---|---|
| Differential Equations | Characteristic equation roots, zero-input response ( |
/odes |
| Continuous-Time Convolution | Graphical convolution, sliding window integration, interval partitioning, and composite piece-wise response computation. | /convolution |
| Fourier Series Representation | Trigonometric & compact exponential Fourier series, Dirichlet conditions, line spectra, and harmonic synthesis. | /fourier-series |
| Continuous-Time Fourier Transform | Forward and inverse CTFT, spectral density |
/fourier-transform |
| Laplace Transform & ROC | Unilateral/bilateral Laplace transforms, pole-zero constellations, Region of Convergence ( |
/laplace |
| Analog Circuit Analysis |
|
/circuits |
| Fourier Series Analysis & Live Harmonic Synthesis | Second-Order ODE Response Solver |
|---|---|
![]() |
![]() |
- Node.js
22.xfromv22.22.1, orv24.12.0and higher (24.xis recommended for the resolved dependencies). npmv10.0.0or higher
# Clone the repository
git clone <repository-url>
cd "Analog Signal Processing Practice"
# Install dependencies
npm install
# Start development server
npm run devOpen http://localhost:5173 in your browser to start practicing.
Configure Settings → Pages → Source → GitHub Actions once. Pushes to main and manual dispatch build with the Pages BASE_PATH, verify the artifact using npm run test:pages, and deploy only after verification passes. PR checks exercise both root and project hosting. See the Pages verification guide.
- 🛠️ Development & Testing Guide — Contributor setup, dual-runtime Vitest architecture (ADR
0025), Playwright E2E suites, AST math testing, and formatting standards. - 📐 Terminology & Mathematical Standards — Canonical signal processing symbols, operator conventions, and notation rules.
- 🏛️ Architectural Decision Records (ADRs) — Index of 33 ADRs recording foundational design, mathematical engine, and UI decisions.
- 🤖 Workspace Agent Rules — Development guidelines for LaTeX math formatting, component styling, and code quality.
This project is licensed for non-commercial educational use under the PolyForm Noncommercial License 1.0.0.


