Skip to content

Repository files navigation

Form & Flow

CI

Languages: English | 中文

Live demo: formnflow.netlify.app

Form & Flow is an interactive mathematics laboratory for exploring structure through motion, shape, and direct manipulation. Its six completed modules contain 27 explorers for linear algebra, calculus, Fourier analysis, differential equations, probability, and convolution.

Preview

Linear transformations Calculus Fourier
Non-identity matrix transformation preview Derivative motion preview Fourier spectrum preview
Differential equations Probability Convolution
Slope field preview Conditional probability preview Discrete convolution preview

Completed modules

Module Explorers Topics
Matrix and Linear Transformation 1 Transformation sequences, basis and custom vectors, determinant, 2D and 3D views
Calculus 4 Derivatives, Riemann sums, the fundamental theorem, Taylor polynomials
Fourier Transform 3 Spectrum, reconstruction, frequency filtering
Differential Equations 6 Slope fields, numerical methods, phase portraits, oscillators, populations, diffusion
Probability Intuition 7 Conditional probability, Bayes, medical testing, distributions, CLT, random-variable sums
Convolution 6 Discrete and continuous convolution, probability sums, filtering, image kernels, polynomials

Every explorer has a stable deep link under /modules/{module}/{explorer} and supports the shared language, theme, focus, reset, and export behavior where applicable.

Architecture

  • React 19 and TypeScript 6 for the application and typed mathematical state.
  • Canvas 2D for most plots; Three.js is loaded only when the Matrix 3D view is opened.
  • KaTeX is lazy-loaded with mathematical lesson content rather than the module catalogue.
  • Pure numerical kernels are separated from rendering and covered by Vitest.
  • Module manifests define routes and lazy explorer entries; the platform shell provides navigation and shared actions.
  • Playwright covers all 27 completed explorers, responsive layouts, deep links, accessibility, and bundle boundaries.

The numerical methods are educational approximations. Sampling density, time steps, finite grids, truncation, and boundary choices affect the displayed result; the visualizations are not substitutes for a proof or a scientific solver.

Local development

Requirements: Node.js 20.19 or newer and pnpm 11.0.9.

pnpm install --frozen-lockfile
pnpm dev

Useful checks:

pnpm typecheck       # TypeScript
pnpm test            # unit and behavior tests
pnpm build           # production build
pnpm check:bundle    # initial-load and chunk budgets
pnpm test:e2e        # Chromium smoke and accessibility tests
pnpm check           # unit tests, build, and bundle audit

The first browser-test run may require pnpm exec playwright install chromium.

Repository structure

src/
├── components/      # shared visualization components
├── core/            # reusable UI and application utilities
├── math/            # numerical kernels
├── modules/         # module manifests, explorers, state, rendering adapters
├── platform/        # catalogue, routes, shell, localization
├── render/          # Canvas and Three.js helpers
├── state/           # shared and URL state
└── test/            # test setup and helpers
e2e/                 # Playwright coverage
public/              # static and optimized visual assets
scripts/             # build audits

Project scope and limitations

The catalogue includes roadmap cards for future topics, but only the six modules listed above are marked complete. The public demo is deployed on Netlify with SPA route fallback, and every push to main is built and published automatically after validation.

Current priorities are mathematical correctness, responsive interaction, accessibility, and coherent explorer boundaries—not adding unvalidated subject areas.

License

MIT. See LICENSE.

About

Interactive mathematics lab with 27 visual explorers across linear algebra, calculus, Fourier analysis, differential equations, probability, and convolution.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages