Build oszillator, an unofficial browser-based .osz player experiment for osu!standard-compatible gameplay.
- osu!standard only
- local
.oszimport only - no ranking, leaderboard, login, or online score submission
- no online beatmap download
- no official branding or bundled official assets
- no copyrighted beatmap or audio fixtures in the repository
- no gameplay logic coupled to PixiJS or DOM
- Web Audio clock is the authoritative gameplay time source
- renderer consumes prepared beatmap state and never parses
.osu - parser is warning-first and robust against unknown fields
- TypeScript stays strict and
anyis avoided - avoid per-frame allocations in renderer hot paths
- document known gameplay deviations in
docs/known-deviations.md
corepack pnpm typecheck
corepack pnpm test
corepack pnpm build
corepack pnpm lintIf UI or browser behavior changes:
corepack pnpm test:e2e- parser changes need parser tests
- ruleset changes need deterministic unit tests
- slider changes need geometry and judgement tests
- storage changes need migration tests
- bug fixes need regression tests