vivlos.dev running NixOS 26.05 / Hyprland local time --:--:-- UTC+8
アフターライト

Afterlight

I build random tools for my stupidly niche issues, break things that were already working fine, and spend a questionable amount of time playing rhythm games.

Profile 自己紹介

Hey, I'm Afterlight. Most of the stuff I write starts with a very specific irritation: "ts so ahh", or realizing that no one made the exact tool that solves a hyper-specific annoyance.

My daily workstation runs NixOS with Hyprland. It started mostly because the Nix logo got me, but it became a permanent home because declarative config sounds cool. It also lets me do random things without worrying about breaking anything.

Outside of that, I spend a borderline degenerate amount of time playing rhythm games, mostly osu! standard, plus maimai (I'm 12K!).

Handle
Afterlight / RyoYamada
Based in
Malaysia, UTC+8
OS
NixOS 26.05 + Hyprland (Caelestia shell)
Writes
C++, TypeScript
Into
osu!, maimai, anime, eh idk really

Projects 制作物

Hitsound Studio

Hitsounding in osu! means juggling sample sets, additions, volumes and custom indices across hundreds of timing lines. The usual workaround is a dummy 18-key mania diff in Mapping Tools, which says mappers want lanes; the workflow just isn't there.

A channel-rack of lanes, each bound to a sample set, addition, index and volume, over a waveform with BPM-snapped grid and ghost notes from your other diffs. Exports a clean [Hitsounds] diff and can copy hitsounds into the mapset without touching slider velocity. Runs entirely client-side.

steal-framework

Give it a map link, ID or .osz. It pulls every other map of that song from the Hinamizawa mirror and compares rhythm timing, object positions and slider shapes, including flipped, rotated and shifted copies, then points at the exact stretches that match, on a playfield overlay you can scrub through.

osu! Beatmap Gacha

Log in with your osu! account, summon beatmaps as collectible cards, keep a collection. Made for fun, a friend asked for it.

re-fun60-ultra-tmr

With mechanical switches in this board, hard taps type the letter twice. The debounce slider in MonsGeek's app does nothing, there's no fixed firmware, and their web driver barely works on Linux.

Reports a press the moment the contact closes, but only reports the release after it has stayed open for 8 ms. Stock did 13 to 165 doubles per test run, this does 0 in 121 hard taps. It also does typing over USB and 2.4G, the Fn layer, per-key RGB and settings saved on the board, and comes with FUN60 Studio, a web driver to remap and tune it. Sleep and Bluetooth aren't done yet.

osu-skins

Workstation 機器構成

Machine
LaptopAcer Nitro V 15
CPUAMD Ryzen 5 7535HS (6C/12T)
GPUNVIDIA RTX 3050 6GB
Memory32GB DDR5 4800MHz
OSNixOS 26.05
CompositorHyprland (Wayland)
MonitorAOC 24G11ZE, 240Hz
Input
KeypadSayoDevice K05 HE
Actuation1.5 mm press / 0.3 mm release
Rapid trigger0.2 mm press / 0.4 mm release
TabletWacom Bamboo CTH-670
Tablet area67.67 × 39.39 mm
Area ratio1.718 : 1
KeyboardsHyperX Alloy Origins (Red) · Everglide AE68 PRO

Rhythm 音ゲー記録

RyoYamada
osu! standard · Lv 101
Global
…
Malaysia
…
pp
…
Accuracy
…
Plays
…
Top plays, press ▶ for the song preview
# Preview Beatmap pp Acc Combo Mods Grade
Loading scores…

Lore ヴィブロスについて

Why vivlos.dev?

The name comes from Vivlos (ヴィブロス) from Umamusume: Pretty Derby. There's no deep meaning behind it: I like Vivlos, I liked the name, and apparently I liked it enough to call the domain vivlos.dev, and I don't even play Uma.

Colophon

  • Set in Torus Pro (osu!'s typeface) and Maple Mono. Colours are osu!lazer's own palette.
  • Static files on GitHub Pages; a Cloudflare Worker proxies the osu! API, Lanyard provides Discord presence.
  • Glass by liquidglass (WebGL). Otherwise no frameworks, no trackers, hand-written HTML and CSS.
Vivlos in her stage outfit
Vivlos, stage outfit, the site's namesake.