An interactive visualization tool for exploring and comparing Vision-Language Models (VLMs) based on benchmark performance over time. This project visualizes 65+ models from 2023-2025, showing how multimodal AI systems have evolved.
- π Interactive Bubble Chart - Visualize models over time with parameter count represented by bubble size
- βοΈ Customizable Benchmark Weights - Adjust importance of different benchmarks to match your use case
- π― Quick Presets - OCR-focused, Math-focused, Reasoning-heavy, and more
- π Real-time Search - Filter models by name with instant results
- π·οΈ Family Filtering - Filter by model family (Qwen, GPT, Claude, etc.)
- π 284+ Models - Comprehensive dataset from 2023-2025
- π‘ Model Selection - Click any bubble to view detailed benchmark scores
- β¨οΈ Keyboard Shortcuts:
- Press
/to focus search input - Press
Escapeto clear selection or search
- Press
- π± Responsive Design - Works seamlessly on desktop, tablet, and mobile
- π¨ Dark Theme - Modern, easy-on-the-eyes design
- β‘ Fast & Optimized - Memoized calculations and efficient rendering
- π§© Component Architecture - Clean, modular, maintainable code
- π Custom Hooks - Reusable logic for data loading and keyboard shortcuts
- π― TypeScript - Fully typed for better development experience
- βΏ Loading States - Proper loading, error, and empty state handling
- Node.js (v16 or higher)
- npm or yarn
# Clone the repository
git clone https://github.com/finn1901/VLM-Chart.git
cd VLM-Chart
# Install dependencies
npm install
# Start development server
npm run devThe application will open at http://localhost:5173
# Create production build
npm run build
# Preview production build
npm run preview# Deploy to GitHub Pages
npm run deploy- Click the search input or press
/to focus - Type the model name (e.g., "Qwen", "GPT", "Claude")
- Results update in real-time
- Press
Escapeto clear the search
- Use the "Filter by family" dropdown
- Select a family to view only those models
- Combine with search for precise filtering
- Click any bubble on the chart
- Tooltip shows:
- Model name
- Benchmark score
- Parameter count
- Release date
- Model family
- Click "Clear selection" or press
Escapeto dismiss
| Shortcut | Action |
|---|---|
/ |
Focus search input |
Escape |
Clear selection or search |
To add new models to the dataset:
- Open
src/data/models.json - Add a new entry following this format:
{
"name": "Model-Name",
"date": "YYYY-MM-DD",
"score": 75.5,
"params": 7.0,
"family": "FamilyName"
}- If adding a new family, update the color in
src/constants/chartConfig.ts:
export const FAMILY_COLORS: Record<string, string> = {
// ... existing colors
NewFamily: '#yourcolor',
};src/
βββ components/
β βββ Chart/
β β βββ BubbleChart.tsx # Main chart component
β β βββ CustomTooltip.tsx # Tooltip display
β βββ Controls/
β β βββ FamilyFilter.tsx # Family dropdown filter
β β βββ SearchInput.tsx # Search functionality
β β βββ SearchInput.css
β βββ States/
β βββ LoadingState.tsx # Loading spinner
β βββ ErrorState.tsx # Error display
β βββ EmptyState.tsx # No data message
β βββ NoResultsState.tsx # No search results
βββ constants/
β βββ chartConfig.ts # Colors, sizes, chart config
βββ data/
β βββ models.json # Model dataset
βββ hooks/
β βββ useModelData.ts # Data loading hook
β βββ useKeyboardShortcuts.ts # Keyboard shortcuts hook
βββ types/
β βββ index.ts # TypeScript interfaces
βββ App.tsx # Main application component
βββ App.css # Application styles
βββ main.tsx # Application entry point
- React 18.2 - UI framework
- TypeScript 5.0 - Type safety
- Vite 4.4 - Build tool and dev server
- Recharts 3.2 - Charting library
- ESLint - Code linting
- GitHub Pages - Deployment
The benchmark scores in this visualization represent model performance on standardized vision-language tasks. The dataset includes:
- Model release dates
- Benchmark scores (0-100 scale)
- Parameter counts (in billions)
- Model families/organizations
Note: This is a visualization tool. For specific benchmark methodology and detailed results, please refer to the original benchmark papers and model documentation.
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
npm run deploy # Deploy to GitHub PagesThe project uses:
- ESLint for code linting
- TypeScript strict mode for type checking
- Component modularity for maintainability
- Custom hooks for logic reusability
Contributions are welcome! Here's how you can help:
- Add new models - Update
models.jsonwith latest VLM releases - Report bugs - Open an issue with details
- Suggest features - Share ideas for improvements
- Submit PRs - Fix bugs or add features
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Planned features:
- Export data to CSV
- Export chart as PNG/SVG
- Model comparison mode
- Benchmark methodology info section
- Date range filtering
- Chart zoom and pan
- Additional visualization types
This project is open source and available under the MIT License.
- Model data compiled from public benchmark results
- Built with React, TypeScript, and Recharts
- Inspired by the rapid advancement in vision-language models
- Live Demo: https://finn1901.github.io/VLM-Chart
- Repository: https://github.com/finn1901/VLM-Chart
- Issues: https://github.com/finn1901/VLM-Chart/issues
Made with β€οΈ by finn1901