Skip to content

Repository files navigation

Resonance

CI

An interactive simulation of resonance in driven oscillating systems, built with SceneryStack. Visualize driven mass-spring systems and Chladni plate vibration patterns.

Features

  • Single Oscillator — driven damped harmonic oscillator with spring presets and frequency sweep
  • Multiple Oscillators — 1–10 oscillators with different natural frequencies driven together
  • Phase Analysis — phase lag and phase-space plots near resonance
  • Chladni Patterns — particles on vibrating plates revealing nodal lines and mode shapes
  • Real-time controls for mass, spring constant, damping, driving frequency, and amplitude
  • Configurable phase-space graphs, trace mode, and 25+ analytical properties
  • English, Spanish, and French UI with multiple color profiles and PWA support

Quick Start

npm install
npm run icons    # generate PNG icons from public/icons/icon.svg
npm start        # dev server → http://localhost:5173

Scripts

Command Description
npm start / npm run dev Start Vite dev server
npm run build Type-check + production build → dist/
npm run preview Preview the production build locally
npm test Run Vitest unit tests (includes memory-leak suite)
npm run test:coverage Vitest with a v8 coverage report
npm run test:fuzz Optional Playwright fuzz smoke: pointer (?fuzz) + keyboard (?fuzzBoard), with ?ea, 30s each
npm run test:fuzz -- 90 Same fuzz for 90 seconds (--duration 90 or FUZZ_DURATION=90 also work)
npm run test:fuzz:quick Shorter fuzz smoke (10s)
npm run test:fuzz:long Longer fuzz smoke (300s)
npm run check TypeScript type check
npm run lint Biome lint check
npm run format Auto-format all files
npm run fix Lint + auto-fix
npm run icons Regenerate PNG icons from public/icons/icon.svg
npm run release check && lint && build && test, then version patch + push tags
npm run clean Remove dist/

Tech Stack

Tool Version Purpose
SceneryStack ^3.0.0 Simulation framework
Vite ^8 Build tool + dev server
TypeScript ^7 Type-safe JavaScript
Biome ^2.5 Linting + formatting
vite-plugin-pwa ^1 PWA + service worker

License

GNU Affero General Public License v3.0 — see OpenLyceum org license.

Contributing

See OpenLyceum contributing guidelines. Report bugs via GitHub Issues; use org issue templates.

About

Interactive simulation of resonance in driven oscillating systems. Visualizes driven mass-spring systems and Chladni plate patterns.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages