A comprehensive tool for analyzing vision control (ward placement, smoke usage) in professional Dota 2 matches. This project includes both a web-based interactive visualizer and Python scripts for generating analysis data from DOTABUFF match logs.
🌐 Live Demo: https://dota2-bkb.github.io/ti14-vision/
- Visit the Live Demo
- Download the sample CSV file:
assets/events_summary.csv - Click "📁 Choose CSV File" and upload the sample data
- Explore the interactive visualization with:
- Game selection by Radiant/Dire sides
- Observer ward limit slider
- Toggle controls for sentry wards, smoke events, paths, and time labels
- "Show This Ward Only" mode for focused analysis
- Generate your own CSV file using the Python scripts (see Data Generation below)
- Upload your custom
events_summary.csvto the web visualizer - Analyze your team's vision patterns and strategies
Interactive web visualizer showing game selection, event controls, and real-time map visualization with observer wards, paths, and statistics
Example analysis output: YB team Dire side ward placement patterns across top 5 games, showing observer ward positions with timestamps and movement paths
- Interactive Map: Click and hover on events for detailed information
- Game Filtering: Select specific games by Radiant/Dire sides
- Event Controls:
- Observer ward limit slider (1-20 wards per game)
- Toggle sentry wards, smoke events, movement paths, and time labels
- Observer-only mode for focused ward analysis
- Real-time Statistics: Live stats showing selected games and event counts
- Team Players Display: Shows all team members from loaded games
- Vision Event Extraction: Parse Observer Ward placements, destructions, and Smoke usage from DOTABUFF HTML files
- Timeline Analysis: Categorize events by game phases (pre-game, 0-6min, 6-12min, 12-20min, 20-40min, 40+min)
- Team-based Analysis: Generate separate analysis for Radiant/Dire sides
- Multi-game Comparison: Overlay multiple games to identify patterns
- Clone the repository:
git clone https://github.com/dota2-bkb/ti14-vision.git
cd ti14-vision- Install Python dependencies:
pip install -r requirements.txtThe HTML data files are downloaded from DOTABUFF, specifically from the "Vision" tab of match pages.
- Get Match ID: Find your match ID from DOTABUFF or in-game
- Visit Vision Page: Go to
https://www.dotabuff.com/matches/{MATCH_ID}/vision- Example:
https://www.dotabuff.com/matches/8461854486/vision
- Example:
- Save HTML: Right-click → "Save As" → Save as HTML file
- Organize Files: Place HTML files in appropriate folders:
data_falcon/- For Falcon team matchesdata_pari/- For Team Parivision matchesdata_yb/- For your team matches
Each HTML file contains detailed match logs with vision events including:
- Observer Ward placements with exact map coordinates
- Observer Ward destructions
- Smoke of Deceit activations
- Timestamps and hero information
- Side (Radiant/Dire) information
Use the vision_smoke_moving.py script to process HTML files and generate CSV data:
# Process all HTML files in a directory
python vision_smoke_moving.pyThis script will:
- Parse HTML files from data directories (
data_falcon/,data_pari/,data_yb/) - Extract vision events (ward placements, destructions, smoke usage)
- Generate CSV files with event data, player information, and game metadata
- Output results to corresponding directories (
output_falcon/,output_pari/,output_yb/)
The script generates events_summary.csv files containing:
- Events: JSON-formatted event data with positions and timestamps
- Hero Players: Your team's player names mapped to heroes
- Hero Players Against: Opponent team's player names
- Side: Team side (Radiant/Dire)
- Game ID: Match identifier
- Game Time: Match timestamp
The visualizer supports three main event types:
-
Observer Wards (Yellow Circles)
- Numbered by placement order
[1],[2], etc. - Essential for map vision and enemy movement tracking
- Numbered by placement order
-
Sentry Wards (Blue Squares)
- Used for dewarding and invisible unit detection
- Toggleable in the visualizer
-
Smoke of Deceit (Purple Diamonds)
- Team movement and gank coordination
- Filtered to avoid duplicate events from multiple heroes
Interested in partnerships or collaborations? Contact us to explore opportunities in Dota 2 analytics and esports data visualization.
- Live Demo: https://dota2-bkb.github.io/ti14-vision/
- GitHub Repository: https://github.com/dota2-bkb/ti14-vision
- DOTABUFF: https://www.dotabuff.com/ (Data source for match logs)