--- title: Maze Generator emoji: 🎯 colorFrom: blue colorTo: purple sdk: gradio sdk_version: 5.46.1 app_file: app.py pinned: false license: mit --- # Maze Generator A Gradio web interface that generates custom maze PDFs from https://www.mazegenerator.net/ with customizable dimensions and quantities. ## Features - Generate multiple maze PDFs with specified dimensions - Extract only the first page from each PDF (to remove solution pages) - Web interface with progress tracking - Merge multiple PDFs into a single file - Real-time file list updates ## How to Use 1. **Generate Mazes Tab:** - Set the number of mazes you want to generate (1-50) - Specify width and height in cells (2-200) - Click "Generate Mazes" to create the PDFs - View generated files in the file list 2. **Merge PDFs Tab:** - Click "Merge All PDFs" to combine all PDFs in the pdfs/ directory - The merged file will be saved as `merged_mazes.pdf` - Individual files will be deleted after merging ## Technical Details - Each maze is generated with random patterns - PDFs are saved in the `pdfs/` directory - File naming pattern: `maze_{width}x{height}_{number}.pdf` - The app automatically handles file name conflicts by incrementing numbers ## Dependencies - `gradio`: Web interface framework - `pandas`: Data manipulation - `pypdf`: PDF processing and merging - `requests`: HTTP requests to maze generator API ## Deployment This app is designed to be deployed on Hugging Face Spaces. The deployment configuration is specified in the front matter of this README.md file. ## Local Development To run this app locally: 1. Clone the repository 2. Create a virtual environment: `python -m venv venv` 3. Activate the environment: `source venv/bin/activate` (Linux/Mac) or `venv\Scripts\activate` (Windows) 4. Install dependencies: `pip install -e .` 5. Run the app: `python app.py` The app will be available at `http://localhost:7861`