大家好,我是 GO ASIA TRAIL 的堤。
今天要跟大家分享我最近在 GitHub 上公開的一款工具。這款工具是專為越野跑賽事主辦方和賽事總監設計的,用來模擬比賽中跑者的壅塞程度。它以 Python 開發,採用蒙地卡羅法(Monte Carlo method)。接下來就讓我分享開發的緣由和工具的詳細內容。
開發背景
大家知道今年六月舉辦的 Kaga Spa Trail Endurance 100 by UTMB 這場比賽嗎?這是日本首場「by UTMB」賽事,備受矚目。然而在營運方面出現了多項嚴重問題,遭到國內外跑者的大量批評。詳情請參閱以下文章:
- 瀨戶際的賽事:2025年 Kaga Spa Trail Endurance 100 by UTMB 營運崩壞報告
- 加賀 Spa by UTMB 營運問題:沉默的日本國內媒體
- 專業雜誌應有的觀點?關於 RUN+TRAIL 雜誌「加賀 Spa Trail」專題的一些思考
- Kaga Spa Trail Endurance 100 by UTMB 遭到嚴厲批評的始末
我本身也是越野跑者,有參加海外賽事的經驗,因此出於希望提升日本賽事品質的心情,提出了一些建設性的意見。但同時也在思考,除此之外還能從什麼角度做出貢獻。
我認為這次的營運問題,光從個別現場或跑者實際體驗等微觀角度來看,是很難解決的。必須從賽事規劃和財務等更宏觀的視角來審視。
從這個角度出發,我認為除了依賴賽事總監個人的直覺和經驗來規劃之外,還需要能夠支援資料驅動決策的工具和環境。舉例來說,如果能預測跑者的分散情況和壅塞高峰,就能制定更精確的賽事營運計畫(人員配置、補給路線、退賽者的接駁等)。
使用 Google Gemini 快速開發
開發時使用了 Google 的 Gemini 2.5 Pro,原型僅花了 15 分鐘就完成。實際上是在企業級的 Vertex AI 平台上使用 Gemini 2.5 Pro,以確保穩定的提示處理。
之後透過 Vibe Coding 進行微調後便上線了。UI/UX 偏向工程師取向,因此主要是命令列操作,但既然是開源專案,任何人都可以 fork 或提交 Pull Request 來改進,也歡迎下載後自由魔改。
「20 年以上工程師經驗 x 越野跑者」再加上近年 AI 技術的快速發展,讓我得以在短時間內完成這款工具。有了 AI 的協助,只要有想法就能快速做出工具,這真是一個美好的時代。
Code for Trail:以程式碼解決問題

大家聽過「Code for 國名/地區名」這類組織嗎?「Code for 國名/地區名」是運用科技改善政府服務,讓市民更容易使用的組織,發源於美國的「Code for America」。推動政府與市民合作解決地方問題的「公民科技」活動。
日本也有「Code for Japan」這個組織,各地區則有以 Brigade(語源為消防團)命名的分支,例如「Code for Osaka」、「Code for Kyoto」、「Code for Kanazawa」,或許你所在的地方也有「Code for ***」。
而我所提倡的「Code for Trail」可以說是越野跑產業版的 Brigade。我認為不只是地方,在數位化尚未普及的產業中,Code for 的精神同樣不可或缺。
工具概要
那麼,這到底是什麼樣的工具呢?讓我來說明一下。這款工具使用 GPX 檔案(記錄路線數據的檔案)來模擬賽事壅塞情況。主要功能有以下三項:
- 跑者分散度分析:分析特定時段內跑者在賽道上的分散情況。
- 壅塞度模擬:預測特定地點(例如補給站)的人員集中程度。
- 地圖視覺化:以動畫方式顯示跑者的移動(輸出為 HTML 檔案)。


核心在於使用蒙地卡羅法進行模擬。以常態分佈模擬跑者的配速,並考慮狹窄單軌路段(難以超車的地方)的壅塞,以及為紓解壅塞而採用的分波出發。藉此評估參賽人數和出發時間的影響,支援資源配置規劃。
關於蒙地卡羅法,以下影片有很好的解說,想深入了解的朋友請參考。
不過要注意的是,這是基於簡化模型的結果。實際比賽中有天氣和個人狀況等無法預測的因素,因此結果請作為參考值使用。但我用國內外多場賽事的數據分析後,認為大致上與賽事實況相符。
原始碼等資源已在以下 GitHub 儲存庫以 MIT 授權公開。由於對象不限日本,面向全世界,因此儲存庫的主要語言是英文,但也提供了日文的 README.md,請參考。
※ Mountain Software 是我所擁有的法人企業名稱。儲存庫由該法人管理。
總結與展望
這次的文章以新聞稿的形式介紹了開發經緯和工具概要。下一篇文章將搭配實際的使用方法和分析案例來做介紹。
此外,如果 Code for Trail(暫名)有需求的話,計劃先成立任意團體,進而法人化(NPO 或一般社團法人等)來推動活動。
