Rogvibe — ターミナルで動く抽選ホイール
概要
Rogvibeは「Rogue your vibe hero like rogue like.」というキャッチフレーズのもと開発された、ターミナル上で動く抽選ホイールツールです。Textual(RichベースのTUIフレームワーク)を使い、キー入力でホイールを回転させ、参加者をランダムに選択します。インストールはpipやuvxコマンドで簡単に行え、Python 3.13を想定したパッケージングがされています。イベントや飲み会、ランダム選定が必要な場面で手早く使える軽量なユーティリティです。
リポジトリの統計情報
- スター数: 12
- フォーク数: 0
- ウォッチャー数: 12
- コミット数: 10
- ファイル数: 6
- メインの言語: Python
主な特徴
- ターミナルで動作する視覚的な抽選ホイール(Textualベース)。
- スペースキーでホイールを回転、参加者からランダムに選出。
- pip/uvx経由で簡単インストール、Python 3.13対応を想定したパッケージ構成。
- 画像アセットを含むシンプルで軽量なコードベース。
技術的なポイント
Rogvibeの核はTextualフレームワークを用いたTUI(Text User Interface)実装にあります。TextualはRichの描画機能と非同期イベントループを活用しており、キーボードイベント(スペースキー)を受け取ってアニメーションを駆動する構成が想定されます。ホイールの回転や停止はランダム関数による選択ロジックと、Textualのレイアウト・描画更新を組み合わせて視覚的に表現します。アニメーションはフレーム単位での再描画やCSS風のスタイル設定を使って滑らかに見せることが可能で、参加者リストの表示・ハイライト切替は状態管理(ステートマシン)で処理します。
パッケージング面ではpyproject.tomlを備え、モダンなビルドツールに対応しています。インストール手順にある「uvx」「uv tool install」などのツールは、環境ごとの依存管理や配布に対応したラッパーを示唆しており、複数のPythonバージョンでの実行やバイナリ配布を容易にします。リポジトリは小規模でファイル数も少なく、READMEに含まれる画像アセットやライセンスファイルを含めた整った構成になっています。
設計上の注目点は、ターミナルという制約の中でユーザ体験(操作感、視覚的な満足度)を向上させる工夫がされている点です。Textualのコンポーネント分割を利用すれば、ホイール表示・参加者管理・入出力処理を明確に分離でき、将来的な拡張(CSVからの参加者読み込み、カスタムアニメーション、ホイール重み付けなど)も容易です。また、Python単体で完結するためクロスプラットフォーム性が高く、端末さえあればどこでも動作します。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- LICENSE: file
- README.md: file
- pyproject.toml: file
- src: dir
…他 1 ファイル
まとめ
軽量で使い勝手の良いTextualベースのターミナル抽選ツールです(約50字)。
リポジトリ情報:
- 名前: rogvibe
- 説明: Rogue your vibe hero like rogue like.
- スター数: 12
- 言語: Python
- URL: https://github.com/yihong0618/rogvibe
- オーナー: yihong0618
- アバター: https://avatars.githubusercontent.com/u/15976103?v=4
READMEの抜粋:
Rogvibe
Terminal lottery wheel built with Textual: press Space to spin the wheel and randomly pick a participant.
https://github.com/user-attachments/assets/f819f175-acd0-48c4-af22-c9d1a7134d73
Quick start
uvx rogvibe
# or
pip install rogvibe
rogvibe
# or
uv tool install --python 3.13 rogvibe
rogvibe
…