Skip to content
View yasumorishima's full-sized avatar

Block or report yasumorishima

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
yasumorishima/README.md

Yasunori Morishima (盛島康徳)

Manufacturing Engineer & Data Analyst with 17 years of experience, specializing in data analysis, open source contribution, and business automation. (製造業にて17年の経験を持つエンジニア。データ分析・OSS貢献・業務自動化を専門としています)

Pitching Skeleton (3D C3D) Hitting Skeleton (3D C3D)
3D skeleton visualization from Driveline OpenBiomechanics C3D data — baseball-cv

🌐 Open Source Contributions

(43 PRs / 21 Merged) across 14 repositories. See [oss-contributions](https://github.com/yasumorishima/oss-contributions) for full details.
Repository PR Description
dfinity/icp-js-core #1270 Improve Candid decode error messages
dfinity/icp-js-core #1277 Deduplicate parallel fetchSubnetKeys
dfinity/pic-js #235 Add fetchCanisterLogs() method
line/line-bot-mcp-server #369 Add get_follower_ids tool
pyomeca/ezc3d #384 Fix __eq__ early return bug
optuna/optuna Hyperparameter optimization framework
pandas-dev/pandas Data analysis library
jldbc/pybaseball #498-504 Bug fixes & documentation
team-mirai — Civic Tech OSS (21 PRs (11 Merged / 2 Open / 8 Closed))

Contributing to open-source civic tech projects that promote political transparency and citizen participation in Japan.

# Repository PR Status Description
21 marumie #1141 Open Display total amount when category filter is applied
20 action-board #1969 Merged Add 48 unit tests for pure functions
19 action-board #1918 Merged Disable Supabase Image Transformation
18 action-board #1914 Merged Block shape deletion with XP
17 post-checker #34 Open Fix timezone-dependent date parsing
16 action-board #1906 Merged Refactor achieveMissionAction
15 action-board #1869 Merged Supabase RPC function tests for develop
14 action-board #1868 Merged Posting count display: times to sheets
13 action-board #1867 Merged Error toast for poster mission failure
12 action-board #1859 Merged Supabase RPC function tests
11 fact-checker #88 Closed Slack same-thread reply
10 fact-checker #87 Closed Deduplicate tweets using start_time filter
9 fact-checker #86 Closed Unit tests for Note markdown utilities
8 action-board #1856 Merged Update video mission description
7 action-board #1855 Closed Street speech map link
6 fact-checker #85 Closed Slack button env-based branching
5 action-board #1849 Merged Breadcrumb navigation
4 action-board #1845 Merged Fix prefecture cache invalidation
3 fact-checker #84 Closed Disable Twitter posting in staging
2 fact-checker #83 Closed Client-side engagement filtering
1 fact-checker #69 Done X API investigation

Tech Stack: Next.js, TypeScript, Supabase, shadcn/ui, Biome, Bun, Vitest


⚾ Baseball Prediction & Analytics

2026 NPB season prediction using Marcel projection + LightGBM/XGBoost, with Pythagorean win% team simulation. (Marcel法 + ML + ピタゴラス勝率によるNPB 2026年シーズン予測)

  • Live demo: npb-prediction.streamlit.app
  • API: FastAPI (8 endpoints) — /predict/hitter, /predict/pitcher, /simulate/team, and more
  • 2026 Predictions: Central: 阪神 80.1 > DeNA 71.3 > 巨人 70.7 / Pacific: SB 80.5 > 日ハム 76.8 > オリ 73.8
  • Accuracy (2025 backtest): Marcel OPS MAE = .048 / ERA MAE = 0.63
  • Data: baseball-data.com + npb.jp (2015–2025)
  • Tech: Python, FastAPI, Streamlit, Docker (Raspberry Pi), Marcel method, LightGBM, XGBoost

Article (JP) / Article (EN)

Marcel projections + Bayesian foreign player estimation — side-by-side comparison with Marcel-only standings. (Marcel法 + ベイズ推定で外国人選手を加味した順位予測。Marcel版との比較が一目でわかる)

  • Live demo: npb-prediction-bayes.streamlit.app
  • 3 pages: Standings comparison (Marcel vs Marcel+Bayes), Foreign player projections (24 players), Historical foreign analysis (367 players)
  • Bayesian model: Shrinkage model (w≈0.14) converting prior league stats (wOBA/ERA) to NPB scale
  • Uncertainty: Monte Carlo simulation (5,000 draws) for prediction ranges
  • Data: baseball-data.com + npb.jp (2015–2025)

3D skeleton visualization and biomechanical analysis of baseball motions using Driveline OpenBiomechanics C3D data + ezc3d + MediaPipe. (Driveline C3Dデータによる投球・打撃の3D骨格可視化と関節角度・球速の相関分析)

Topic Result
C3D visualization 45-marker pitching + 55-marker hitting skeleton animation
Joint kinematics Elbow, shoulder, trunk, knee angle & angular velocity extraction
Speed correlation Trunk rotation range vs pitch speed: r=0.425 (strongest)
ezc3d OSS Contributed bug fix PR #384

Article (JP) / Article (EN)

Real-time Win Probability, Leverage Index, and tactical recommendations — built from scratch with Markov Chain + RE24. (マルコフ連鎖 + RE24テーブルによるMLBリアルタイム勝利確率・レバレッジ指数・作戦提案エンジン)

  • Live demo: mlb-wp-engine.streamlit.app
  • API: FastAPI (6 endpoints) — /wp, /wp/live/{gamePk}, /re24, /wp/scenario, /games/today
  • Live feed: MLB Stats API → real-time WP / LI update every 30s
  • Core math: 24 base-out states × run expectancy (RE24, MLB 2010–2019) → Poisson/Normal WP approximation
  • Tech: Python, FastAPI, Streamlit, Docker (Raspberry Pi), runs_per_game param for NPB support

MLB Statcast × MLOps — weekly auto-retrained player performance prediction that outperforms Marcel projections. (MLB Statcastトラッキングデータ × MLOpsパイプラインによる選手成績予測。Marcel法を上回る精度)

  • Live demo: baseball-mlops.streamlit.app
  • Accuracy (2025 backtest): Batter wOBA MAE = .0296 (Marcel: .0325) / Pitcher xFIP MAE = 0.546 (Marcel: 0.566)
  • Pipeline: GitHub Actions cron (weekly) → pybaseball Statcast fetch → LightGBM retrain → W&B Model Registry → FastAPI → Streamlit
  • Tech: LightGBM, Weights & Biases, FastAPI, Streamlit, GitHub Actions, pybaseball

📊 Data Analysis

MLB Statcast data analysis with pybaseball + DuckDB + Google Colab. (pybaseball + DuckDB + Colabを使ったMLB投球・打撃データ分析)

6 analyses covering Japanese MLB pitchers (Kikuchi, Senga, Imanaga, Darvish) and Ohtani batting data.
Analysis Key Finding Article
Kikuchi Slider Revolution (2019-2025) SL 17%→37% after Astros trade, #1 pitch in 2025 Zenn / DEV.to
Senga Ghost Fork (2023-2025) FO whiff rate 58%→39%, decline pre-injury Zenn / DEV.to
All analyses (6)
Analysis Key Finding Article
Kikuchi Slider Revolution (2019-2025) SL 17%→37% after Astros trade, #1 pitch in 2025 Zenn / DEV.to / Kaggle
Senga Ghost Fork (2023-2025) FO whiff rate 58%→39%, decline pre-injury Zenn / DEV.to / Kaggle
Imanaga 2nd Year (2024-2025) 3-pitch concentration (97%), 1st TTO xwOBA .505 Zenn / DEV.to / Kaggle
Darvish Evolution (2021-2025) SL/ST halved, CU became putaway pitch Zenn / DEV.to / Kaggle
Ohtani Spray Chart spraychart() one-liner vs matplotlib manual Zenn
Ohtani Heatmap Stadium drawing + hit density heatmap Zenn

📊 Data Analysis

6 published MLB datasets with comprehensive documentation (size, columns, DOI, articles)
Dataset Description
🥈 MLB Bat Tracking Leaderboard (2024-2025) 452 batters, 19 swing metrics
🥈 WBC 2026 Scouting MLB Statcast scouting data for all WBC 2026 teams (306 players, 20 countries)
Other datasets (4)
Dataset Description
Baseball Savant Leaderboards (2024-2025) 15 leaderboards, 2 seasons combined
Japanese MLB Players Statcast (2015-2025) 34 Japanese MLB players, 174k pitches+hits
MLB Pitcher Arsenal Evolution (2020-2025) 4,253 pitcher-seasons, 111 metrics
MLB Statcast + Bat Tracking (2024-2025) Combined Statcast + bat tracking data
Notebooks Expert | 🥉 12 Bronze Notebook Medals

Competition: S6E2 Heart Disease — LGB+XGB+CatBoost ensemble, CV AUC 0.955, LB 0.953

All Bronze Medal Notebooks (12)
Notebook Topic
savant-extras Defense & Pitching Quality Defense metrics & pitching quality analysis (savant-extras)
MLB Statcast Spray Charts for WBC 2026 Players WBC 2026 player spray charts + pitch zone charts (baseball-field-viz)
March Machine Learning Mania 2026 Baseline NCAA basketball tournament prediction (LightGBM + Logistic Regression)
CAFA 6 Baseline with Regularization Protein function prediction (PyTorch MLP)
Bat Tracking: Japanese MLB Batters (2024-2025) MLB bat speed & swing metrics analysis
Senga Ghost Fork Analysis MLB Statcast pitching analysis
Kikuchi Slider Revolution MLB Statcast pitching analysis
NFL Geometric Rules Baseline Physics-based rules, No ML, RMSE 2.921
PhysioNet ECG Baseline ECG submission format guide
Diabetes EDA & Baseline LightGBM 5-fold CV, AUC 0.727
Diabetes Rank-Based Ensemble Rank averaging for AUC optimization
Deep Past Cloud Workflow + TF-IDF Baseline Akkadian→English TF-IDF baseline
6 packages (click to expand)
Package Description
savant-extras 17 Baseball Savant leaderboards + date range support. Complements pybaseball
baseball-field-viz Statcast coordinate transform + field drawing + spray charts + pitch zone charts
kaggle-notebook-deploy Deploy Kaggle Notebooks via git push + GitHub Actions
kaggle-wandb-sync Sync W&B offline runs from Kaggle to W&B cloud
signate-deploy SIGNATE competition workflow via GitHub Actions
signate-wandb-sync Record SIGNATE scores to W&B runs

📱 Apps

Statcast-based scouting dashboards for all WBC 2026 teams, deployed on Streamlit Community Cloud. (WBC 2026参加国の Statcast データをビジュアライズしたスカウティングダッシュボード群)

  • 30 apps across 19 countries — batters (17 countries) + pitchers (13 countries)
  • Features: Zone heatmaps, spray charts, pitch movement, count-by-count performance, LHP/RHP splits, pitch type filter
  • Data: Baseball Savant Statcast via pybaseball, auto-fetched by GitHub Actions
  • Bilingual: English / Japanese
Example Link
USA Batters wbc-usa-batters.streamlit.app
Japan Pitchers wbc-japan-pitchers.streamlit.app
All 30 apps GitHub README

Streamlit app powered by savant-extras. 5 tabs: Leaderboard, Player Comparison, WBC Country Strength, Team Lineup Builder, Monthly Trend. English/Japanese bilingual.

Personal diary app — started as a GAS web app, then evolved into a Flutter mobile app. (個人用日記アプリ — GAS Webアプリから始まり、Flutterモバイルアプリへ進化)

Version Stack Features
Mobile (Flutter) Flutter, Dart, Hive, AdMob 5 languages, offline-first, Published on Google Play (177 countries)
Web (GAS) Google Apps Script, JavaScript 10 pages, dark mode, data stored in user's own Spreadsheet

🔬 Learning Projects

Built a persistent counter dApp on Internet Computer (ICP). Stack: Motoko, Vanilla JavaScript, dfx CLI

Automated tweet bot on Raspberry Pi 5 using OpenClaw + Gemini API (free tier). Stack: Raspberry Pi 5, OpenClaw, Gemini 2.5 Flash, X API, Node.js Article (JP)


📦 Past Projects

Project Description
GAS Calendar Tool Batch calendar event registration with senior-friendly mobile UI (GAS + Google Calendar API)
Dune Analytics On-chain data analysis using SQL on Dune Analytics. JPYC Stablecoin Dashboard — issuance/redemption/circulation tracking across 3 chains.

Older projects (Selenium automation, business workflow tools, etc.) are also archived here: yasumorishima/archived-projects


🛠️ Tech Stack

Category Technologies
Data Analysis & ML Python, pandas, scikit-learn, LightGBM, XGBoost, CatBoost, PyTorch, matplotlib, seaborn, DuckDB, W&B
Data Sources Baseball Savant (Statcast), pybaseball, Dune Analytics
Web & Dashboards Streamlit, Next.js, TypeScript, Supabase, shadcn/ui
Mobile App Flutter, Dart, Hive, Google AdMob
Automation & DevOps GitHub Actions, Google Apps Script, VBA, Power Query
Tools Claude Code, Kaggle, Google Colab, Excel, Looker Studio
Manufacturing Statistical Quality Control, Process Engineering

📈 Career

  • 2024 - Present: Quality Management @ Marubun Corporation (丸文株式会社)
  • 2020 - 2024: Technical Dept. @ Metaco Corporation (株式会社メタコ)
  • 2008 - 2020: Process Engineering in Semiconductor Manufacturing (半導体製造プロセスエンジニア)

🏆 Patents

Stencil mask and manufacturing method thereof (ステンシルマスク及びその製造方法)

  • Patent No: 6307851 (特許第6307851号)
  • Role: Inventor (発明者)
  • Assignee: Toppan Printing Co., Ltd. (凸版印刷株式会社)
  • Link: Google Patents (JP6307851B2)

📫 Contact & Blog

Pinned Loading

  1. kaggle-datasets kaggle-datasets Public

    Baseball-themed Kaggle datasets generated with pybaseball

    Python

  2. mlb-statcast-visualization mlb-statcast-visualization Public

    MLB Statcast data visualization with pybaseball - 3 methods to draw baseball fields (spraychart, matplotlib, sportypy)

    Python

  3. oss-contributions oss-contributions Public

    My open source contributions tracker

    Python

  4. wbc-scouting wbc-scouting Public

    Python