oscillator.ts
const damping = 0.25;
const frequency = 2;
const duration = 10;
const samples = 300;

const omegaD = frequency * Math.sqrt(1 - damping ** 2);
const displacement = (t: number) =>
  Math.exp(-damping * frequency * t) * Math.cos(omegaD * t);

const points = Array.from({ length: samples }, (_, i) => {
  const time = (i / (samples - 1)) * duration;
  return { time, value: displacement(time) };
});