
どんなプロダクト?
ポモドーロ型の作業タイマーに、窓ガラスを流れる雨のアンビエント表現を重ねた macOS / Windows 向けデスクトップ常駐アプリです。
- 作業中は、画面の隅に数字なしの穏やかなバーだけが残り時間を伝えます。画面の大半には何も出しません
- 休憩30秒前になると、透過した雨が画面に重なって徐々に強まります(クリックスルーなので作業はそのまま続行可能)
- 休憩本体では雨が画面を覆い、雨音とともに休息を促します。それでも Skip / Esc でいつでも作業へ戻れます
- 雨が上がれば静かに引っ込み、次の作業へ。最終セットの雨上がりには虹が架かり、軒先の雫と遠くの鳥の声が余韻として鳴ります
「通り雨が来たから少し手を止める」── 休憩を強制ではなく誘いとして設計しています。
開発の経緯
休憩促進アプリは「時間を一切見せず受動的に促す」タイプと「時間が来たら強制的に画面をロックする」タイプの二極が多く、どちらも自分には合いませんでした。時間の経過は感じたい、でも数字のカウントダウンに急かされたくない。休憩は取りたい、でも閉じ込められたくない。
その間を埋めるものとして、「雨が近づいてくる予兆」と「数字なしの穏やかなバー」という2つの仕掛けを中心に据えたのが本作です。住んでいる三重県大台町は日本有数の多雨地帯で、雨は身近な風景。梅雨どきのしんみりした空気感を、そのまま集中と休息のリズムに翻訳しました。
特徴 ── 2本の楔
(A) 予兆という「移行」の発明
休憩はいきなり来ません。30秒かけて雨が近づき、作業を続けたまま「もうすぐ通り雨」を体で察知できます。「いきなり降る」のとも「強制中断」とも違う、滑らかな移行の設計です。
(B) 集中中の穏やかな常時バー
時間を隠すのではなく「見せる、ただし穏やかに」。数字なしの連続バーが goal-gradient(ゴールが近づく感覚)で集中を後押しします。ドラッグで移動・縁をつかんでリサイズでき、クリックしてもフォーカスを奪わないのでタイピングを中断させません。
技術スタックと工夫
- Tauri 2 + SvelteKit + Rust:インストーラ10MB未満・メモリ30〜50MBの軽量常駐
- 時間の真実は Rust 側:非表示 WebView の JS タイマーはスロットリングで周期がズレるため、tokio + Tauri 非依存の状態機械(単体テスト22件)が時間を管理。WebView は描画と演出に専念
- 雨描画は raindrop-fx(WebGL2):実画面のキャプチャを屈折元に使い、粒の合体・蛇行滑落・トレイルを表現
- 雨音は Web Audio で自前合成:擬似ピンクノイズ+ローパス。音声アセット不使用
- prefers-reduced-motion を自動尊重。Skip / Esc を常備し、ユーザーを閉じ込めない
- 設定は4点のみ(作業/休憩時間・セット数・音量・自動起動)。美的パラメータは作者の決め打ちとし、「道具を管理させる」負債を避けました
今後の展望
macOS 全画面アプリとの共存の実機検証、背景静止画の差し替え、予兆演出の磨き込み、サイクル統計などを予定しています。
ダウンロード
GitHub Releases から macOS(Apple Silicon / Intel)・Windows 版を配布中。自動アップデート対応。未署名配布のため、初回起動時の手順は README をご覧ください。