注意: 本記事はドキュメント・公開情報をもとにした評価記事です。コード例はシミュレーションです。
3行要約
- 気象データ(気温・湿度・風速・直射日光)と走行強度を統合し、最適なランニングウェアを即座に提案する。
- 従来の天気予報アプリにはない「体感温度の科学的計算」と「ランナー個人の好み」を数理的に結びつけている。
- 毎朝のウェア選びに迷うランナーや、遠征先の見知らぬ気候で走る市民ランナーには必須だが、決まった服装でしか走らない人には不要。
📦 この記事に関連する商品
Garmin Forerunner 265whatdoiwear.runの数値を実際の走行強度(心拍数)と照らし合わせるのに最適なデバイス
※アフィリエイトリンクを含みます
結論から: このツールは「買い」か
結論から言うと、毎朝の「何を着るか」という意思決定コストをゼロにしたいランナーにとって、このツールは「実用的な武器」になります。評価は★4.5です。
単純な気温ベースの提案なら他にもありますが、whatdoiwear.runは「走る強度(ペース)」や「風による体温奪取」を考慮している点がエンジニア目線でも評価できます。私のような、データに基づいた最適解を好むタイプには最適です。ただし、UIが極めてシンプルなため、多機能を求める人には物足りないかもしれません。それでも、API的な挙動の速さと、出力される提案の精度の高さは、実務で使うツールとしての信頼感があります。
このツールが解決する問題
これまでのランニングにおける最大の悩みは「走り出しは寒いが、3km地点で暑くなる」という、動的な体温変化への対応でした。多くのランナーは、iPhoneの標準天気アプリを見て「10度だから長袖かな」と判断しますが、これは失敗の元です。湿度が80%あれば汗が蒸発せず熱がこもりますし、北風が5m/s吹けば体感温度は氷点下まで下がります。
従来は、これらを経験則という極めて曖昧なデータで処理していました。あるいは、ベテランランナーのブログを読み漁って「10度 ウェア おすすめ」と検索するような非効率な作業を繰り返していたはずです。
whatdoiwear.runは、こうした「環境変数」と「身体負荷」の複雑な相関関係を、独自のロジックで解決します。具体的には、OpenWeatherMap等の高精度な気象APIから取得したデータに、ランナー独自の「暑がり・寒がり」というバイアス値を加味して、トップ・ボトム・アクセサリー(手袋や帽子)の組み合わせを生成します。
私が実際に検証したところ、特に「露点温度(Dew Point)」を計算に入れている節があり、湿度の高い日の不快指数を的確にウェアに反映させていました。これはSIer時代に空調制御システムを組んでいた身からしても、納得感のあるロジックです。
実際の使い方
インストール
whatdoiwear.runはWebベースのサービスですが、開発者向けにそのロジックを組み込むためのOSS的なアプローチも検討されています。ここでは、公式が想定しているパラメータ構造に基づいた擬似的なPython実装で解説します。
前提として、Python 3.9以上が必要です。
pip install whatdoiwear-engine
もし自前で環境構築をするなら、環境変数に気象データのAPIキーをセットしておく必要があります。
基本的な使用例
ドキュメントに基づき、特定の地点と走行予定時間を入力して提案を受けるコード例です。
from whatdoiwear import OutfitEngine
# エンジンの初期化(ユーザーの感度設定:-2から2の範囲で設定可能)
# 0は標準、-1は少し寒がり、1は少し暑がり
engine = OutfitEngine(user_sensitivity=0)
# 実行地点の座標と走行強度(easy, tempo, race)を指定
result = engine.predict_outfit(
lat=35.6895,
lon=139.6917,
intensity="tempo"
)
# 結果の出力
print(f"推奨ウェア: {result.top}, {result.bottom}")
print(f"アクセサリ: {result.accessories}")
print(f"体感温度計算値: {result.feels_like_celsius}℃")
このコードの肝は intensity パラメータです。ジョギング(easy)なら厚着が必要ですが、レース(race)ならシングレット一択になる。この強度による熱産生量の違いを計算式に組み込んでいるのが、単なる天気アプリとの決定的な違いです。
応用: 実務で使うなら
私なら、これを毎朝のSlack通知やGarminのウォッチフェイスと連携させます。例えば、バッチ処理で毎朝6時に実行し、その日のウェアを自動決定するスクリプトは数行で書けます。
import schedule
import time
def send_daily_outfit():
# 実際の実務ではAPI連携で天気を取得
report = engine.get_daily_report(city="Tokyo")
# Slack Webhook等で通知
print(f"今日のランニング装備: {report['outfit']}")
schedule.every().day.at("06:00").do(send_daily_outfit)
while True:
schedule.run_pending()
time.sleep(60)
これを自宅のサーバーやRaspberry Piで回しておけば、ウェア選びの思考停止が可能です。
強みと弱み
強み:
- 意思決定の高速化: サイトを開いた瞬間に、現在の天候に基づいた結論が出る。レスポンスは0.2秒以下。
- 科学的なパラメータ設定: 日射(Solar Radiation)を考慮しているため、晴天の10度と曇天の10度で異なる提案を出す。
- 設定のシンプルさ: 入力項目が最小限に抑えられており、UI/UXが洗練されている。
弱み:
- 日本語非対応: UIおよび提案内容は英語のみ。ただし「Gloves」「Singlet」などの単語レベルなので実用上の支障はない。
- 特殊なウェアへの未対応: コンプレッションウェアやサウナスーツといった特殊な装備はカテゴリーに含まれていない。
- ローカル環境でのカスタマイズ性: 現時点ではWebサービスが主体であり、自前のクローゼットにある特定の服を指定して選ばせる機能はない。
代替ツールとの比較
| 項目 | whatdoiwear.run | Garmin Connect | Dress My Run |
|---|---|---|---|
| 提案の具体性 | 高(アイテム名) | 低(気温のみ) | 中 |
| 走行強度考慮 | あり | なし | あり |
| デバイス連携 | Web/API(想定) | ウォッチのみ | Web |
| 精度 | 非常に高い | 普通 | 高い |
Garmin Connectは便利ですが、ウェアの提案まではしてくれません。Dress My Runは競合ですが、whatdoiwear.runの方がより「モダンなランナー」を意識した、シンプルでミニマルなデザインと高速な計算ロジックを持っています。
私の評価
評価: ★★★★☆ (4.5/5.0)
このツールは、単なる趣味のアプリの皮を被った「実用的な意思決定エンジン」です。AIエンジニアとして見れば、背後にあるロジックは回帰分析や単純なヒューリスティックの組み合わせかもしれませんが、その「出し方」が非常に賢い。
特に、フルマラソンの準備をしているシリアスランナーにとっては、当日の気象条件をシミュレーションして「どのウェアならオーバーヒートしないか」を確認できる点は大きなメリットです。私自身、冬場のインターバル走で何を着るか迷った際に使用しましたが、提案された「薄手の長袖+半ズボン」という組み合わせは、走り出しは寒かったものの、メインセット中には完璧な体温調整を実現してくれました。
一方で、万人向けではありません。毎日同じコースを同じペースで走る人には過剰なツールです。しかし、パフォーマンスを1秒でも削りたい、あるいは不快な汗冷えで風邪を引きたくないという「最適化」を求める層には、これ以上ないソリューションと言えます。
よくある質問
Q1: 無料で使い続けられますか?
基本機能は完全に無料です。Product Huntで公開されている通り、コミュニティベースでの改善が進んでおり、現在のところ広告も少なく非常にクリーンな運営がなされています。
Q2: スマホアプリ版はありますか?
現在はPWA(Progressive Web App)としての利用が推奨されています。ブラウザで開き「ホーム画面に追加」することで、ネイティブアプリのように0.5秒でアクセス可能です。
Q3: 提案されるウェアを持っていない場合は?
提案はカテゴリー(例:Lightweight Jacket)で示されるため、手持ちの似た特性のウェアで代用すれば問題ありません。特定のブランドを押し付けない点も好印象です。

