# foamify
An interactive simulated foam generator for creating 3-dimensional random ensembles of spheres.
## Overview
`foamify` is a Python package designed to create 3-dimensional random ensembles of spheres, mimicking the bubbles in foam based on user-defined parameters. This tool is particularly useful for researchers and scientists working in materials science, physics, and engineering applications.
## Features
- **3D Sphere Generation**: Create random ensembles of spheres in 3D space
- **Customizable Parameters**: Adjust size, distribution, and interaction of spheres
- **Interactive GUI**: User-friendly graphical interface for parameter configuration
- **Export Capabilities**: Save generated foam structures for further analysis
- **Visualization Tools**: Built-in plotting and visualization features
- **Machine Learning Integration**: Advanced density adjustment algorithms
## Installation
### From PyPI (Recommended)
```bash
pip install foamify
```
### From Source
1. Clone the repository:
```bash
git clone https://github.com/jackericson98/foamify.git
cd foamify
```
2. Install in development mode:
```bash
pip install -e .
```
## Quick Start
### Command Line Interface
After installation, run the interactive GUI:
```bash
foamify
```
Or run as a Python module:
```bash
python -m foam_gen
```
### Python API
```python
import foam_gen
# Use the package programmatically
# (API documentation coming soon)
```
## Usage
1. **Launch the GUI**: Run `foamify` from your terminal
2. **Configure Parameters**: Set your desired foam parameters through the interface
3. **Generate Foam**: Click "Create Foam" to generate your 3D sphere ensemble
4. **Export Results**: Save your generated foam for further analysis
## Parameters
The foam generation can be customized with various parameters including:
- Sphere size distributions
- Density settings
- Spatial arrangement
- Interaction parameters
## Dependencies
- Python >= 3.8
- numpy >= 1.21.0
- scipy >= 1.7.0
- matplotlib >= 3.5.0
- numba >= 0.56.0
- pandas >= 1.3.0
- scikit-learn >= 1.0.0
- tqdm >= 4.62.0
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Author
**John Ericson** - Georgia State University (2025)
- Email: jackericson98@gmail.com
- GitHub: [@jackericson98](https://github.com/jackericson98)
## Citation
If you use this software in your research, please cite:
```bibtex
@software{foamify,
title={foamify: Interactive 3D Foam Generator},
author={John Ericson},
year={2025},
url={https://github.com/jackericson98/foamify}
}
```
## Support
- **Issues**: [GitHub Issues](https://github.com/jackericson98/foamify/issues)
- **Documentation**: [GitHub README](https://github.com/jackericson98/foamify#readme)
Raw data
{
"_id": null,
"home_page": "https://github.com/jackericson98/foamify",
"name": "foamify",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "foam, simulation, 3d, spheres, physics, visualization",
"author": "John Ericson",
"author_email": "John Ericson <jackericson98@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/c2/92/b5bef2c84934b616b446ec51f55aa3244321a2f2bf63fc747ad7dd9e77ff/foamify-0.1.0.tar.gz",
"platform": null,
"description": "# foamify\r\n\r\nAn interactive simulated foam generator for creating 3-dimensional random ensembles of spheres.\r\n\r\n## Overview\r\n\r\n`foamify` is a Python package designed to create 3-dimensional random ensembles of spheres, mimicking the bubbles in foam based on user-defined parameters. This tool is particularly useful for researchers and scientists working in materials science, physics, and engineering applications.\r\n\r\n## Features\r\n\r\n- **3D Sphere Generation**: Create random ensembles of spheres in 3D space\r\n- **Customizable Parameters**: Adjust size, distribution, and interaction of spheres\r\n- **Interactive GUI**: User-friendly graphical interface for parameter configuration\r\n- **Export Capabilities**: Save generated foam structures for further analysis\r\n- **Visualization Tools**: Built-in plotting and visualization features\r\n- **Machine Learning Integration**: Advanced density adjustment algorithms\r\n\r\n## Installation\r\n\r\n### From PyPI (Recommended)\r\n\r\n```bash\r\npip install foamify\r\n```\r\n\r\n### From Source\r\n\r\n1. Clone the repository:\r\n ```bash\r\n git clone https://github.com/jackericson98/foamify.git\r\n cd foamify\r\n ```\r\n\r\n2. Install in development mode:\r\n ```bash\r\n pip install -e .\r\n ```\r\n\r\n## Quick Start\r\n\r\n### Command Line Interface\r\n\r\nAfter installation, run the interactive GUI:\r\n\r\n```bash\r\nfoamify\r\n```\r\n\r\nOr run as a Python module:\r\n\r\n```bash\r\npython -m foam_gen\r\n```\r\n\r\n### Python API\r\n\r\n```python\r\nimport foam_gen\r\n\r\n# Use the package programmatically\r\n# (API documentation coming soon)\r\n```\r\n\r\n## Usage\r\n\r\n1. **Launch the GUI**: Run `foamify` from your terminal\r\n2. **Configure Parameters**: Set your desired foam parameters through the interface\r\n3. **Generate Foam**: Click \"Create Foam\" to generate your 3D sphere ensemble\r\n4. **Export Results**: Save your generated foam for further analysis\r\n\r\n## Parameters\r\n\r\nThe foam generation can be customized with various parameters including:\r\n- Sphere size distributions\r\n- Density settings\r\n- Spatial arrangement\r\n- Interaction parameters\r\n\r\n## Dependencies\r\n\r\n- Python >= 3.8\r\n- numpy >= 1.21.0\r\n- scipy >= 1.7.0\r\n- matplotlib >= 3.5.0\r\n- numba >= 0.56.0\r\n- pandas >= 1.3.0\r\n- scikit-learn >= 1.0.0\r\n- tqdm >= 4.62.0\r\n\r\n## Contributing\r\n\r\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n## Author\r\n\r\n**John Ericson** - Georgia State University (2025)\r\n\r\n- Email: jackericson98@gmail.com\r\n- GitHub: [@jackericson98](https://github.com/jackericson98)\r\n\r\n## Citation\r\n\r\nIf you use this software in your research, please cite:\r\n\r\n```bibtex\r\n@software{foamify,\r\n title={foamify: Interactive 3D Foam Generator},\r\n author={John Ericson},\r\n year={2025},\r\n url={https://github.com/jackericson98/foamify}\r\n}\r\n```\r\n\r\n## Support\r\n\r\n- **Issues**: [GitHub Issues](https://github.com/jackericson98/foamify/issues)\r\n- **Documentation**: [GitHub README](https://github.com/jackericson98/foamify#readme)\r\n\r\n \r\n",
"bugtrack_url": null,
"license": null,
"summary": "An interactive simulated foam generator for creating 3-dimensional random ensembles of spheres",
"version": "0.1.0",
"project_urls": {
"Bug Tracker": "https://github.com/jackericson98/foamify/issues",
"Documentation": "https://github.com/jackericson98/foamify#readme",
"Homepage": "https://github.com/jackericson98/foamify",
"Repository": "https://github.com/jackericson98/foamify"
},
"split_keywords": [
"foam",
" simulation",
" 3d",
" spheres",
" physics",
" visualization"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "753007ddc2c51ae36a34907842a23f8ba8a798cda3875da179d5e7d586814d11",
"md5": "50bc08b74028b627dbbf05cd66afca03",
"sha256": "1496130742729780085bd3045e016d8c7fdd14d3a76bb53ccba0044a2e1e6290"
},
"downloads": -1,
"filename": "foamify-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "50bc08b74028b627dbbf05cd66afca03",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 38928,
"upload_time": "2025-08-05T20:22:01",
"upload_time_iso_8601": "2025-08-05T20:22:01.699210Z",
"url": "https://files.pythonhosted.org/packages/75/30/07ddc2c51ae36a34907842a23f8ba8a798cda3875da179d5e7d586814d11/foamify-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c292b5bef2c84934b616b446ec51f55aa3244321a2f2bf63fc747ad7dd9e77ff",
"md5": "da677b8b015edbb7bb918177f4fcd60b",
"sha256": "9049dd8a4efcb7ce6ad5c2e67ac6fc3dfdc8b4f81e4ad5e454056f5088e7dcec"
},
"downloads": -1,
"filename": "foamify-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "da677b8b015edbb7bb918177f4fcd60b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 32913,
"upload_time": "2025-08-05T20:22:03",
"upload_time_iso_8601": "2025-08-05T20:22:03.046625Z",
"url": "https://files.pythonhosted.org/packages/c2/92/b5bef2c84934b616b446ec51f55aa3244321a2f2bf63fc747ad7dd9e77ff/foamify-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-05 20:22:03",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jackericson98",
"github_project": "foamify",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "numpy",
"specs": [
[
"~=",
"1.26.4"
]
]
},
{
"name": "scipy",
"specs": [
[
"~=",
"1.13.1"
]
]
},
{
"name": "pandas",
"specs": [
[
"~=",
"2.2.2"
]
]
},
{
"name": "matplotlib",
"specs": [
[
"~=",
"3.7.5"
]
]
},
{
"name": "future",
"specs": [
[
"~=",
"0.18.3"
]
]
},
{
"name": "numba",
"specs": [
[
"~=",
"0.60.0"
]
]
},
{
"name": "scikit-learn",
"specs": [
[
"~=",
"1.5.2"
]
]
},
{
"name": "joblib",
"specs": [
[
"~=",
"1.4.2"
]
]
},
{
"name": "plotly",
"specs": [
[
"~=",
"5.22.0"
]
]
}
],
"lcname": "foamify"
}