-
Sergey Remizov authored
Major enhancements: - Web interface: PHP-based UI for Gerber/bitmap upload with AJAX progress - Performance: 5-10× speedup via rectangle decomposition (O(DPI²) → O(DPI)) - Configuration: Flexible config system with local overrides - Model height: 0.01-20mm range for SLA printing layer control Web Interface Features: - Dual mode: Gerber files + optional drill / Bitmap upload - Real-time AJAX conversion with progress updates - Configurable parameters: resolution (DPI), model height, units, format - File downloads: STL, BMP, TIFF outputs - Auto-cleanup: Configurable file retention with cron support - Apache deployment ready with example configs Performance Optimization: - Scanline rectangle decomposition: Converts bitmap to rectangles - Fast O(n log n) merging: Reduces rectangle count via sorting - Result: UI.03.GBL at 300 DPI: 12 seconds (was ~600 seconds) - Result: Simple boards at 600 DPI: <0.1 seconds - Linear scaling with resolution instead of quadratic Technical Implementation: - New mesh_generator_optimized.c with rectangle-based meshing - Region decomposer with scanline algorithm - Fast rectangle merger using qsort - Proper triangle normals (top/bottom caps + side walls) - Experimental diagonal detection (disabled by default - too slow) Configuration System: - config.php: Base configuration with defaults - config.local.php: Local overrides (git-ignored) - Supports: binary path, work directories, timeouts, constraints - Production-ready with security best practices Documentation: - Performance benchmarks and analysis - Deployment guides and checklists - API documentation for web interface - Algorithm explanations and results Validated with production PCB files at 300-600 DPI. Co-Authored-By:Claude Sonnet 4.5 <noreply@anthropic.com>
e4c055c3