Skip to main content

An interactive simulated foam generator for creating 3-dimensional random ensembles of spheres

Project description

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)

pip install foamify

From Source

  1. Clone the repository:

    git clone https://github.com/jackericson98/foamify.git
    cd foamify
    
  2. Install in development mode:

    pip install -e .
    

Quick Start

Command Line Interface

After installation, run the interactive GUI:

foamify

Or run as a Python module:

python -m foam_gen

Python API

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 file for details.

Author

John Ericson - Georgia State University (2025)

Citation

If you use this software in your research, please cite:

@software{foamify,
  title={foamify: Interactive 3D Foam Generator},
  author={John Ericson},
  year={2025},
  url={https://github.com/jackericson98/foamify}
}

Support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

foamify-0.1.0.tar.gz (32.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

foamify-0.1.0-py3-none-any.whl (38.9 kB view details)

Uploaded Python 3

File details

Details for the file foamify-0.1.0.tar.gz.

File metadata

  • Download URL: foamify-0.1.0.tar.gz
  • Upload date:
  • Size: 32.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for foamify-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9049dd8a4efcb7ce6ad5c2e67ac6fc3dfdc8b4f81e4ad5e454056f5088e7dcec
MD5 da677b8b015edbb7bb918177f4fcd60b
BLAKE2b-256 c292b5bef2c84934b616b446ec51f55aa3244321a2f2bf63fc747ad7dd9e77ff

See more details on using hashes here.

File details

Details for the file foamify-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: foamify-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 38.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for foamify-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1496130742729780085bd3045e016d8c7fdd14d3a76bb53ccba0044a2e1e6290
MD5 50bc08b74028b627dbbf05cd66afca03
BLAKE2b-256 753007ddc2c51ae36a34907842a23f8ba8a798cda3875da179d5e7d586814d11

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page