You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
๐ Classical AI Algorithms Framework & Interactive Lab
A state-of-the-art, highly modular Object-Oriented AI framework implemented from scratch in Python. Crafted specifically for Visual Learners, researchers, and developers, this repository provides unified abstractions, pluggable solver engines, 100% transparent visualizers, automated benchmarking pipelines, and an interactive CLI Launcher (main.py) across a vast array of artificial intelligence paradigms.
โก Quick Start
# Install dependencies
pip install pygame matplotlib numpy
# Launch the interactive CLI menu
python main.py
# Or run any demo directly
python -m demo.maze --algo AStar --vis
python -m demo.local_search_tsp --algo GeneticAlgorithm --vis
python -m demo.crazy_demo
๐ฎ Unified Interactive Launcher Hub (main.py)
Launch the interactive CLI menu to browse and run all 18 supported AI demos:
python main.py
Features of the Launcher Hub:
Categorized Menu: Browse demos across Search, Optimization, CSP, and Adversarial Games categories.
Algorithm Selector: Each demo supports CLI flags to pick algorithms (A*, BFS, DFS, UCS, IDA*, Hill Climbing, Simulated Annealing, Genetic Algorithm, Backtracking + MRV/MAC, Minimax, AlphaBeta, MCTS, IS-MCTS).
Game Modes: Human vs AI, AI vs AI, Human vs Human.
Visualizer Support: All demos with --vis flag launch interactive Pygame visualizers.
Dynamic Window Resizing: Full pygame.RESIZABLE support across all visualizers.
Charts: High-resolution figures in reports/figures/.
๐ค Open Source Contribution Guidelines
We welcome open-source contributions! Adding a new search algorithm, heuristic, or domain is straightforward:
Add a New Search Algorithm: Inherit from SearchAlgorithm in search/SearchAlgorithm.py and implement search_step().
Add a New CSP Heuristic / Inference: Implement a function receiving (csp, assignment) inside csp/heuristics/ or csp/inference/.
Add a New Game Domain: Inherit from GameState in games/GameState.py and define get_legal_actions(), apply_action(), and is_terminal().
Add a Custom Visualizer: Create a Pygame visualizer class in visualization/ with standardized HUD controls (SPACE auto-play, +/- speed, LEFT/RIGHT step, R restart).
๐ License
Licensed under the MIT License. Developed for educational research, visual learning, and advanced AI algorithm exploration.
About
A highly modular Object-Oriented AI framework and interactive lab implemented in Python. Features automated benchmarking, pluggable solver engines, and interactive Pygame visualizers for Search, CSPs, Optimization, and Adversarial Games.