logs / proj7k

proj7k, weeks one to five: from methodology to one dashboard

#retro#architecture

Also available in Chinese →

proj7k started on 11 September. As of today the repo has 29 ADRs and over two hundred commits. Here’s what got built, phase by phase, and what got thrown out along the way.

Week one: rules first

Before writing any engine code I wrote down three principles that aren’t up for debate:

  • Difficulty comes from the chart alone, never from anyone’s scores (ADR-0001).
  • The Jinjin 7K Dan ladder is the only yardstick, and techniques come out as a multi-axis radar, not one number (ADR-0002).
  • The product is a cloud platform plus a local replay analyzer (ADR-0003).

Then came 7k-VSDL, a language for describing chart patterns, and a method that goes from player intuition to case interrogation to reverse induction, checked with a blind test to see whether it reproduces players’ judgement (ADR-0004 to 0006).

Week two: the engine and the first tools

On the model side: jacks and streams were split apart at the note level (ADR-0007), and strain accumulation moved to continuous decay pooling (ADR-0008).

Three tools shipped in quick succession:

  • osu!lazer star sync writes objective stars straight into lazer’s Realm database, and can restore the originals without a trace (ADR-0009).
  • Live radar dashboard shows the 8-axis radar and difficulty flow on a second screen while you play (ADR-0010).
  • Downscaler brings a chart you can’t pass down to your level while keeping its hand patterns (ADR-0011).

By the weekend there were replay diagnostics and player profiles, the start of closed-loop training (ADR-0012).

Weeks three and four: replacing the old engine

Once absolute technique stars landed (ADR-0016), the old driver/strain engine got harder to patch with every fix. On 2 October I decided to replace it wholesale with spec v0.2 (ADR-0017): run both engines side by side, then move consumers over one at a time (ADR-0018 to 0022). On 8 October the old engine was deleted (ADR-0023).

The same day, the live radar, library sync, downscaler and profiler, until then four separate tools, merged into a single web dashboard (ADR-0024). Now it’s one page.

Week five: reaching outward

  • Online 7K chart catalog: search modelled on the osu! website, with official SR and engine SR side by side (ADR-0026). Currently getting it ready to go public.
  • Charts from audio: give it a song and a target star rating, get a 7K chart (ADR-0027).
  • Profiles are fitted across plays instead of taking the best single play (ADR-0028), and technique habits can now be read from replay key timing (ADR-0029).

What’s next

After the catalog goes public, the next step is osu! OAuth sign-in and player profiles on the cloud platform. Milestones and progress are kept up to date on the project page.