// readme

SolarTournament

A browser space shooter in an asteroid field, built with three.js. A physically correct world: no drag, so a ship keeps every bit of speed it burns, no sound in space, no shield that stops a laser, and a careless burn ends in a rock.

What flies, collides, burns and breaks behaves the way it would out there, as long as it stays fun.

Run

npm install
npm run dev        # http://127.0.0.1:5173/
npm test           # unit tests (Vitest)
npm run e2e        # browser tests (Playwright; first once: npm run e2e:install)
npm run bench      # benchmark in the test browser (see Performance); PROFILE=pixel8 as the reference phone
npm run build      # static site in dist/ (the voices and the types first; the workflow CI runs the tests before it goes live)

Performance

The game draws the same world on every device, but not with the same effort: the picture’s quality moves along a ladder of looks (src/view/quality.ts), from the picture as designed (rung 0) to the cheapest (rung 13). Each rung changes one or two knobs of the one above it, the largest saving for the least loss first. Only looks change: rocks, colliders, the round and…