Advanced Web Platform for Generating Unstructured Clouds of Points
Complete solution for meshless Generalized Finite Difference Method (mGFD) applications
- Overview
- Features
- Installation & Setup
- Quick Start
- Usage Guide
- API Documentation
- Examples
- Project Architecture
- Configuration
- Scientific Background
- Contributing
- Research Team
- Commercial Sponsors
- Acknowledgments
- Citation & License
- Contact
The mGFD CloudGenerator 2.0 is a comprehensive web-based platform designed for generating optimized unstructured clouds of points specifically tailored for the meshless Generalized Finite Difference Method (mGFD). This advanced tool combines interactive image processing capabilities with sophisticated cloud generation algorithms to provide researchers and engineers with a complete solution for numerical simulations.
๐ Try it now! A stable live demo is available at: https://malla.umich.mx/CloudGenerator/
- ๐จ Interactive Contour Creation: Optimized image segmentation with adaptive Flood Fill and smart texture analysis.
- โ๏ธ Optimized Cloud Generation: High-quality point cloud generation with Regular and Natural Distribution algorithms.
- ๐ Real-time Visualization: Interactive canvas with zoom, pan, brush-based refinement, and multi-region support.
- ๐พ Multiple Export Formats: CSV data export with PNG/SVG visualizations and statistical analysis.
- ๐ Web-based Interface: Modern, responsive design with asynchronous processing and Web Workers.
| Field | Application | Use Case |
|---|---|---|
| Computational Fluid Dynamics ๐ | Flow Simulation | Irregular domain discretization, boundary layer modeling |
| Structural Engineering ๐๏ธ | Stress Analysis | Complex geometry meshing, crack propagation studies |
| Heat Transfer ๐ฅ | Thermal Analysis | Non-uniform domain discretization, interface problems |
| Environmental Modeling ๐ฟ | Pollution Transport | Irregular terrain modeling, contaminant dispersion |
| Biomedical Engineering ๐ฌ | Tissue Modeling | Organ geometry discretization, drug delivery simulation |
- Optimized Single-Region Detection: High-performance
cv2.floodFillimplementation for instant region extraction. - Adaptive Tolerance: Automatic sensitivity adjustment based on local image texture analysis.
- Interactive Refinement: Seed-based tools to add or subtract regions with precision.
- Brush-based Editing: Manual correction tools with customizable size and opacity.
- Multi-region Management: Detect, add, remove, and modify multiple regions with color-coded visualization.
- Canvas Operations: Zoom, pan, precise click-based region selection with coordinate tracking.
- Format Support: PNG, JPG, JPEG, GIF, BMP, TIFF with automatic format detection.
- Advanced Distribution Algorithms: Regular and Natural Distributions.
- Multi-region Processing: Intelligent node classification (interior, boundary, interface nodes).
- CSV File Processing: Upload validation, data parsing, and coordinate optimization.
- Real-time Visualization: Interactive scatter plots with statistical analysis and progress tracking.
- Asynchronous Processing: Background cloud generation with Web Workers and real-time status updates.
- Multiple Export Formats: CSV data files with high-resolution PNG and scalable SVG visualizations.
- Modern Design: Responsive interface with modular CSS architecture and glassmorphism effects.
- Drag & Drop: Intuitive file upload with progress indicators and validation.
- Real-time Feedback: Live status updates, error handling, and progress tracking.
- Professional Logging: Comprehensive logging system with file rotation and debugging.
- Cross-platform: Compatible with all modern web browsers and operating systems.
| Component | Minimum | Recommended |
|---|---|---|
| Python | 3.9+ | 3.10+ |
| RAM | 4 GB | 8 GB+ |
| CPU | 2 cores | 4+ cores |
| Storage | 1 GB | 5 GB+ (for datasets) |
| OS | Windows/Linux/macOS | Linux (optimal performance) |
The project uses the following main dependencies:
# Core web framework
Flask >= 3.1.1 # Web application framework
Werkzeug >= 3.1.3 # WSGI utilities
# Computer vision and image processing
opencv-python-headless >= 4.12 # Image processing (server-optimized)
# Scientific computing
numpy >= 2.2.6 # Numerical computations
shapely >= 2.1.1 # Geometric operations
matplotlib >= 3.10.0 # Visualization and plotting
# Additional utilities
threading # Asynchronous processing support
logging # Comprehensive logging system# Clone the repository
git clone https://github.com/gstinoco/CloudGen.git
cd CloudGen
# Install dependencies
pip install -r requirements.txt# Create virtual environment
python -m venv mGFD_env
source mGFD_env/bin/activate # On Windows: mGFD_env\Scripts\activate
# Clone and install
git clone https://github.com/gstinoco/CloudGen.git
cd CloudGen
pip install -r requirements.txt# Create conda environment
conda create -n mGFD_cloudgen python=3.10
conda activate mGFD_cloudgen
# Clone and install
git clone https://github.com/gstinoco/CloudGen.git
cd CloudGen
pip install -r requirements.txt# Test installation
python -c "import flask, cv2, numpy; print('โ
Installation successful!')"
# Run the application
python app.pyThe application will be available at http://localhost:8080
# Navigate to project directory
cd mGFD-CloudGenerator
# Start the web server
python app.py- Upload Image: Navigate to ContourCreator and upload your image
- Detect Regions: Click on regions of interest to detect contours
- Manage Regions: Add, remove, or modify detected regions
- Export Data: Save coordinates as CSV files
- Upload CSV: Use the CSV file from ContourCreator or upload your own
- Configure Parameters: Set generation options (regions inside/outside)
- Generate Cloud: Start the cloud generation process
- Download Results: Get CSV data and visualization files
- CSV Files: Node coordinates with region classification
- PNG Images: High-resolution visualizations
- SVG Files: Scalable vector graphics for publications
// Supported formats: PNG, JPG
// Maximum file size: 10MB
// Drag & drop or click to browse- One-Click Detection: Instantly identify regions with optimized Flood Fill.
- Texture Analysis: Automatic parameter adjustment for complex images.
- Refinement: Use brush tools or seed points to perfect the contour.
- Add Region: Click "Add Region" after detection
- Toggle Visibility: Show/hide regions individually
- Delete Region: Remove unwanted regions
- Clear All: Reset all detected regions
- Single Region: Export individual region coordinates
- All Regions: Export complete dataset with region labels
- CSV Format: Normalized coordinates (0-1 range)
# Expected CSV format:
x,y,region
0.1,0.2,1
0.3,0.4,1
0.5,0.6,2- Regions Inside: Generate points inside detected regions
- Regions Outside: Generate points outside detected regions
- Adaptive Sizing: Automatic point density optimization
- Asynchronous Processing: Background generation with status updates
- Memory Management: Optimized for large datasets
- Error Handling: Comprehensive error reporting
- Node Classification: Interior, boundary, and interface nodes
- Multiple Formats: CSV data with PNG/SVG visualizations
- Quality Metrics: Point distribution analysis
mGFD-CloudGenerator/
โโโ ๐ app.py # Main Flask application
โโโ ๐ cloud_generation.py # Cloud generation algorithms
โโโ ๐ reduce_points.py # Point reduction utilities
โโโ ๐ contour_detection.py # Contour detection logic
โโโ ๐ requirements.txt # Python dependencies
โโโ ๐ templates/ # HTML templates
โ โโโ ๐ home.html # Landing page
โ โโโ ๐จ contour_creator.html # ContourCreator interface
โ โโโ โ๏ธ cloud_generator.html # CloudGenerator interface
โ โโโ โน๏ธ about.html # About page
โโโ ๐ static/ # Static assets
โ โโโ ๐จ css/ # Modular CSS Architecture
โ โ โโโ styles.css # Global variables and resets
โ โ โโโ tools.css # Shared tool components
โ โ โโโ home.css # Landing page styles
โ โ โโโ about.css # About page specific styles
โ โ โโโ contour_creator.css # ContourCreator specific styles
โ โ โโโ cloud_generator.css # CloudGenerator specific styles
โ โ โโโ examples.css # Examples gallery styles
โ โ โโโ privacy_notice.css # Privacy page styles
โ โโโ ๐ js/ # JavaScript modules
โ โ โโโ contour_creator.js # ContourCreator functionality
โ โ โโโ cloud_generator.js # CloudGenerator functionality
โ โ โโโ navbar.js # Navigation components
โ โโโ ๐ผ๏ธ images/ # Logos and assets
โ โโโ ๐ examples/ # Sample data files
โโโ ๐ uploads/ # Temporary file storage
โโโ ๐ output/ # Generated results
โโโ ๐ logs/ # Application logs
- Web Framework: Flask-based REST API
- File Management: Upload handling and cleanup
- Image Processing: OpenCV integration for segmentation
- Async Processing: Background task management
- Logging System: Professional logging with rotation
- Advanced Distribution Algorithms: Regular and Natural Distributions
- Multi-region Processing: Intelligent boundary data processing for mGFD method
- Node Classification: Interior/boundary/interface detection with automatic classification
- Visualization: High-quality PNG/SVG output with statistical analysis
- Multiple Reduction Algorithms: Uniform, Multiple, and Filtered reduction methods
- Quality Preservation: Maintains geometric integrity while reducing point density
- Flexible Configuration: Customizable reduction parameters for different use cases
- Optimized Algorithms: Fast Flood Fill and Adaptive Tolerance for real-time detection
- Brush-based Refinement: Manual editing tools for precise boundary adjustment
- Multi-format Support: Comprehensive image format compatibility (PNG, JPG, TIFF, etc.)
- Interactive Refinement: Seed-based region modification
- Modular CSS: Clean, maintainable, and scoped styling architecture
- Modern UI: Responsive design with CSS Grid/Flexbox
- Interactive Canvas: HTML5 Canvas with zoom/pan capabilities
- Real-time Updates: WebSocket-like status monitoring
We welcome contributions from the research community! Here's how you can help:
- Search Existing Issues: Check if the bug has been reported
- Create Detailed Report: Include steps to reproduce, expected vs actual behavior
- Provide Context: Operating system, Python version, browser details
- Include Logs: Attach relevant log files from the
logs/directory
- Describe the Feature: Clear description of the proposed functionality
- Justify the Need: Explain how it benefits the research community
- Provide Examples: Include use cases and expected behavior
# Fork the repository
git clone https://github.com/yourusername/CloudGen.git
cd CloudGen
# Create development environment
python -m venv dev_env
source dev_env/bin/activate
pip install -r requirements.txt
# Create feature branch
git checkout -b feature/your-feature-name- Python Style: Follow PEP 8 guidelines
- Documentation: Include comprehensive docstrings
- Testing: Add unit tests for new functionality
| ๐จโ๐ฌ Researcher | ๐ Degree | ๐ฏ Specialization | ๐ Key Contributions |
|---|---|---|---|
| Dr. Gerardo Tinoco-Guerrero | Ph.D. Physical Engineering Sciences | Meshless Methods, Numerical Analysis | Project leadership, algorithm design, scientific direction |
| Dr. Josรฉ Alberto Guzmรกn-Torres | Ph.D. Physical Engineering Sciences | Artifitial Intelligence Applications, Software Development | Technical implementation, code optimization, validation |
| Dr. Francisco Javier Domรญnguez-Mota | Ph.D. Mathematical Sciences | Applied Mathematics, Applied Numerical Methods | Mathematical rigor, theoretical foundations, algorithm validation |
- ๐ฌ Interdisciplinary Approach: Combining mathematics, engineering, and computer science
- ๐ Academic Affiliation: Universidad Michoacana de San Nicolรกs de Hidalgo (UMSNH)
- ๐ Research Impact: Advancing meshless methods for scientific computing
- ๐ค Collaborative Spirit: Open-source development and knowledge sharing
- ๐ International Reach: Contributing to global scientific community
Commercial partnerships driving practical applications of computational mathematics
|
๐ฏ Specialization:
๐ Partnership Impact:
๐ผ Collaboration Areas:
|
| ๐ก Innovation | ๐ค Collaboration | ๐ Growth | ๐ Impact |
|---|---|---|---|
| Cutting-edge research | Strategic partnerships | Continuous development | Industry applications |
| Advanced algorithms | Knowledge sharing | Skill enhancement | Technology transfer |
| Practical solutions | Resource optimization | Career opportunities | Market innovation |
We deeply appreciate the trust and support of our commercial sponsors who believe in advancing computational mathematics and bringing research to real-world applications.
๐ค Partnership Opportunities: Interested in supporting cutting-edge research with commercial applications? Contact us to explore collaboration possibilities.
No related publications yet. Research is ongoing and publications are in preparation.
If you use mGFD CloudGenerator in your research, please cite:
@software{tinoco2025mGFD,
title={mGFD CloudGenerator 2.0: Advanced Web Platform for Generating Unstructured Clouds of Points},
author={Tinoco-Guerrero, Gerardo and Dom\'{i}nguez-Mota, Francisco Javier and Guzm\'{a}n-Torres, Jos\'{e} Alberto},
year={2025},
url={https://github.com/gstinoco/CloudGen},
version={2.0}
}This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2025 Gerardo Tinoco-Guerrero
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
We extend our heartfelt gratitude to the organizations, communities, and individuals who have made this project possible
|
Our home institution providing academic foundation and research infrastructure
|
Secretariat of Science, Humanities, Technology and Innovation
|
Centro Internacional de Mรฉtodos Numรฉricos en Ingenierรญa
๐ฌ Research Excellence: International center for numerical methods in engineering
๐ค Collaboration: Fostering international research partnerships
๐ Innovation: Advancing computational methods and engineering solutions
๐ International Collaboration
- Research Networks: Global partnerships in computational mathematics
- Open Source Spirit: Collaborative development and knowledge sharing
- Academic Exchange: International conferences and publications
- Peer Review: Constructive feedback from the scientific community
๐ Special Recognition
- Beta Testers: Early adopters who provided valuable feedback
- Contributors: Developers who enhanced the codebase
- Educators: Teachers using this tool in their courses
- Students: The next generation of computational scientists
This project exists because of the collective effort of researchers, developers, and educators worldwide. Together, we advance the frontiers of computational science and make powerful tools accessible to everyone.
Research Collaboration
- Email: gerardo.tinoco@umich.mx
- Institution: Michoacan University of Saint Nicholas of Hidalgo
- Topics: Meshless methods, numerical analysis, scientific computing
Stay Connected
- GitHub: Follow the repository for updates
- Research Gate: Connect with the research team
- Academic Networks: Find us on academic social platforms
Common Questions
Q: What file formats are supported for images? A: PNG, JPG, JPEG, GIF, and BMP formats up to 10MB.
Q: Can I use this for commercial applications? A: Yes, the MIT license allows commercial use with proper attribution.
Q: How do I cite this work in my research? A: Use the BibTeX citation provided in the Citation section.
Q: Is there a limit on the number of points generated? A: The limit depends on your system memory. The tool is optimized for large datasets.
Q: Can I contribute new algorithms? A: Absolutely! We welcome contributions. Please see the Contributing section.







