v1.3.0
Flux Hourglass 1.3.0
A focused upgrade to the visual core of the timer — the sand pile now
behaves like sand instead of plateauing two-thirds of the way, the
display reacts to physical gravity, and a brand-new LED grid mode
sits alongside the original hourglass.
Highlights
- Pile fills the full screen. Previously the heap topped out at
roughly two thirds of the height regardless of duration. The pile
now tracks elapsed time 1:1, so when the timer ends the screen is
fully covered. A baseline catch-up keeps the pile honest even on
long durations where per-grain deposition would otherwise lag. - Softer, finer texture. Grains shrank from 3.0 dp to 1.4 dp and
the column count nearly doubled (50 → 90), giving the pile a much
smoother silhouette and a more powdery surface. - Real gyro response. The accelerometer is no longer cosmetic. The
falling stream bends with the gravity vector, and the heap on the
floor immediately slumps toward the lower side when you tilt the
device — strong tilts trigger an extra pour pass for a more decisive
reaction. - New LED mode. A "전광판" alternative renders the screen as a
16 × 32 grid of LED-style cells that light up bottom-to-top in
proportion to elapsed time. When every cell is lit, time is up.
Toggle betweenS A N DandL E Dfrom a new tab row at the top
of the setup screen; the choice is persisted alongside the last
duration. - Bolder typography. Secondary labels were close to invisible at
the old 0.25–0.4 alpha range. They have been lifted to 0.55–0.8 and
bumped fromThin/ExtraLighttoLight(withMediumon the
selected mode tab), so the chrome reads clearly without losing the
minimalist character.
Implementation notes
ParticleSystemnow owns a baseline lift step that adds the deficit
between the target average height(1 - remainingFraction) * hand
the current average back into every column. The lift is capped at
h * 0.004per frame so it never produces a visible jolt.pvxis no longer reset to zero each frame; particles integrate
horizontal gravity and despawn when they leave the canvas. Spawn
positions get mild jitter plus a small directional bias so the
stream visibly leans when the device is tilted.- Slumping uses an asymmetric threshold
(1.0 ± biasX)with four
passes per frame, escalating to six passes when|gravityX| > 2.0. - LED mode reuses the same touch-reveal + pause/reset overlay as the
sand mode through a sharedRunningOverlaycomposable; the renderer
itself is a singleCanvasthat lights cells in row-major order
from the bottom. TimerPreferencesgained amodefield backed by a string
preference (SAND/LED), defaulting toSANDfor first runs and
upgrading users.