A newer version of the Gradio SDK is available:
6.3.0
title: Makerspace Inventory AI
emoji: π§
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 5.50.0
app_file: app.py
pinned: false
π§ Makerspace Inventory Management System
An intelligent, AI-powered inventory management system designed for makerspaces, workshops, and educational facilities. This system combines computer vision, natural language processing, and optimization algorithms to streamline inventory tracking and improve workspace efficiency.
π Features
π Smart Check-Out System
- AI-Powered Image Recognition: Upload photos or use your webcam to automatically identify tools and equipment
- Gemini Vision AI: Utilizes Google's Gemini 2.5 Flash model for accurate item detection
- Vector Search: ChromaDB-powered semantic search for fuzzy matching between detected items and inventory
- Real-time Inventory Updates: Automatic quantity tracking and session logging
- Multi-Item Support: Scan multiple items in a single image
π¦ Intelligent Item Addition
- OCR Receipt Processing: Upload PDF or image receipts to automatically extract items
- Fuzzy Matching: Smart name matching to find items even with typos or variations
- Interactive Editing: Review and modify detected items before adding to inventory
- Manual Entry: Quick single-item updates with auto-completion
- Update History: Complete audit trail of all inventory changes
π Data-Driven Layout Optimization
- Pattern Mining: Discovers which items are frequently checked out together
- Association Rules: Calculates support, confidence, and lift metrics for item pairs
- Distance Optimization: Uses greedy relocation algorithm to minimize walking distance
- Visual Analytics: Side-by-side comparison of current vs. optimized layouts
- Actionable Recommendations: Specific move suggestions with quantified benefits
π How to Use
Check Out Items
- Click "π Check Out Items" on the main menu
- Upload an image of items or use your webcam
- Or manually type item names (comma-separated)
- Review detected items and adjust quantities
- Confirm checkout (optionally enter user ID)
Add Items to Inventory
- Click "π¦ Add Items" on the main menu
- Receipt Upload Tab:
- Upload a PDF or image receipt
- Review extracted items
- Check/uncheck items to include
- Edit quantities if needed
- Click "Apply Updates"
- Manual Entry Tab:
- Type item name
- Enter quantity
- Click "Add to Inventory"
Analyze Layout Efficiency
- Click "π Inventory Analysis" on the main menu
- Adjust analysis parameters:
- Minimum Support: Pattern frequency threshold (0.02 = 2%)
- Top K Pairs: Number of frequent pairs to optimize (25)
- Maximum Moves: Limit on relocations (10)
- Minimum Gain: Distance improvement threshold (0.05 units)
- Click "π Run Analysis"
- Review:
- Frequent item pairs
- Relocation recommendations
- Distance savings
- Visual layout comparison
π Key Metrics Explained
Support
Frequency of items appearing together in checkout sessions
- Example: 0.10 = items appear together in 10% of checkouts
Lift
How much more likely items are checked out together vs. randomly
- Lift > 1: Positive correlation (should be near each other)
- Lift = 2: Items are 2Γ more likely to be checked out together
Confidence AβB
Probability of checking out item B when checking out item A
- Example: 0.80 = 80% chance of checking B with A
Distance Saved
Reduction in walking distance by relocating items
- Measured in grid units (1 unit β 1 meter)
π οΈ Technology Stack
- Frontend: Gradio 5.9 (Interactive web interface)
- AI/ML:
- Google Gemini 2.5 Flash (Vision AI for image recognition)
- Sentence Transformers (Semantic embeddings)
- ChromaDB (Vector database for similarity search)
- OCR: Tesseract + Pytesseract
- Data Processing: Pandas, NumPy
- Optimization: Custom greedy algorithm for layout optimization
- Visualization: Matplotlib
- Fuzzy Matching: RapidFuzz
π File Structure
.
βββ app.py # Main application file
βββ requirements.txt # Python dependencies
βββ README.md # This file
βββ items.csv # Inventory database
βββ locations.csv # Physical location grid
βββ checkouts.csv # Checkout history
βββ update_log.csv # Inventory update log
βββ screwdriver.png # Example checkout image
βββ mcmaster_receipt.pdf # Example receipt
π§ Local Setup
Prerequisites
- Python 3.10 or higher
- Tesseract OCR installed on your system
Installation
- Clone the repository:
git clone <repository-url>
cd makerspace-inventory
- Install system dependencies (Ubuntu/Debian):
sudo apt-get update
sudo apt-get install -y tesseract-ocr poppler-utils
- Install Python dependencies:
pip install -r requirements.txt
- Run the application:
python app.py
- Open your browser to
http://localhost:7860
Environment Variables
The Gemini API key is currently hardcoded. For production use, set it as an environment variable:
export GEMINI_API_KEY="your-api-key-here"
π Data Format
items.csv
item_id,item_name,category,quantity,unit,description,location_id
I0001,Hex Key Set,Hand Tools,12,sets,Standard SAE hex key sets,L001
locations.csv
location_id,x,y,capacity
L001,0,0,1
checkouts.csv
timestamp,user_id,session_id,item_id
2025-12-05T10:30:00Z,U0001,S00001,I0001
π― Use Cases
- Makerspaces & Fab Labs: Track tools and equipment usage
- Educational Workshops: Monitor student equipment checkouts
- Tool Libraries: Manage community tool sharing
- Research Labs: Optimize equipment layout based on usage patterns
- Manufacturing Facilities: Improve tool room efficiency
π€ Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
Development Roadmap
- Barcode/QR code scanning
- User authentication system
- Advanced analytics dashboard
- Mobile app integration
- Multi-location support
- Automated reorder suggestions
- Integration with purchasing systems
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π₯ Authors
Developed as part of a makerspace automation project.
π Acknowledgments
- Google Gemini AI for vision capabilities
- Anthropic Claude for development assistance
- Open-source community for amazing tools and libraries
π Support
For questions, issues, or feature requests, please open an issue on GitHub or contact the development team.
Built with β€οΈ for makers, by makers