How horiaphilip/sat-visualizer works
SAT Visualizer is a single-file Pygame application for exploring reductions of Graph Isomorphism, Clique, Sudoku, and N-Queens Completion to CNF and solving them with PySAT. The user selects a problem, adjusts parameters or generates an instance, then requests a solve; the main loop dispatches to the matching solver and renders the result. The graph separates UI orchestration, problem encodings/solvers, and visualization. The excerpt is partial, so edges are limited to relationships explicit in the excerpt or README.
Main entry points: cc.py Pygame main loop
Components 11
Interactive application
- Pygame main loop
cc.py - Buttons and sliders
cc.py
Problem solving
- Graph utilities
cc.py - Isomorphism solver
cc.py - Clique solver
cc.py - Sudoku solver
cc.py - Sudoku generator
cc.py - Queens solver
cc.py - PySAT solver
Visualization
- Problem rendering
cc.py
Other components
- User
Connections 13
- User → Pygame main loop: operates
README.md - Pygame main loop → Buttons and sliders: handles input
cc.py - Pygame main loop → Isomorphism solver: dispatches solve
cc.py - Pygame main loop → Clique solver: dispatches solve
cc.py - Pygame main loop → Sudoku solver: dispatches solve
cc.py - Pygame main loop → Queens solver: dispatches solve
cc.py - Pygame main loop → Sudoku generator: generates puzzle
cc.py - Pygame main loop → Problem rendering: renders state
cc.py - Isomorphism solver → PySAT solver: solves CNF
- Clique solver → PySAT solver: solves CNF
cc.py - Sudoku solver → PySAT solver: solves CNF
- Queens solver → PySAT solver: solves CNF
- Pygame main loop → Graph utilities: uses graph data
cc.py