finding beatmaps using raw geometry and math. no ai black magic involved
by selithrarion
pp jumps sotarks!!! (more screenshots below) (https://osu.ppy.sh/beatmapsets/842412#osu/1762728)

what is this?
a local engine that looks at your maps, extracts geometric features (angles, flow, rhythm density), and finds similar ones
how it works
- parses
.osufiles - converts hitobjects into float vectors (fingerprint/embeddings)
- shoves them into a custom vector db (my prev study project. IN RUST BTW)
- uses ivf index (like elastic search) to quickly look for similar maps
why manual features and not ai transformers?
too lazy to train a model. also geometry doesn't hallucinate xd
does it actually work?
kindaaa~~
it can definitely distinguish between a 1-2 jump farm and a tech map
don't expect miracles!!! this is an MVP built in a 2-day coding sprint hahaha. it's fun to put my own map and see what the algo thinks is similar to it
my osu dream is a pattern/style recommendation system (like pinterest for maps), so mappers could find inspiration easily
- download the release
- run it
- point it to your
osu!/Songsfolder if it doesn't automatically - hit Start Indexing and wait a min
- paste a beatmap link/id
- tech map: high overlap, red slider anchors
- jump farm: high circle ratio, triangle angles, low rhythm variance
- streams: high object density
- old school: wide jumps, high overlap
TODO: symmetry feature?
TODO: consider ar for overlaps
TODO: slider curvature and slider art feature?
TODO: linux build (but does it make sense? maybe only after lazer support)
TODO: add lazer support (parse sqlite db?)
TODO: add desktop app icon
streams (https://osu.ppy.sh/beatmapsets/813569#osu/1706210)

funny that it can't find similar maps to my first ranked in 2023 (didn't pass that stress test huh)
(OH AND ACTUALLY ITS SPOTLIGHTED!!! im still super happy with that even after 2+ years, thanks Lefafel for suggesting it to other spotlight curators yay) (https://osu.ppy.sh/beatmapsets/1962015#osu/4066340)

intended to be used like that but ui is always better

if you wanna compile it yourself or add more features:
you need rust, nodejs and pnpm (also c++ build tools and webview support for tauri)
stack: vuejs + rust + tauri
credits: used osuparse crate, thanks!
pnpm dev # run everything
pnpm build # or prod build