# CompI Phase 2.B: Data/Logic Input to Image Generation ## 🚀 Overview Phase 2.B transforms structured data and mathematical formulas into stunning AI-generated art. This phase combines data analysis, pattern recognition, and poetic interpretation to create unique visual experiences that reflect the essence of your data. ## ✨ Key Features ### 📊 Data Processing - **CSV Data Analysis**: Upload spreadsheets, time series, measurements, or any numeric data - **Mathematical Formula Evaluation**: Enter Python/NumPy expressions for mathematical art - **Pattern Recognition**: Automatic detection of trends, correlations, and seasonality - **Statistical Analysis**: Comprehensive data profiling and feature extraction ### 🎨 Artistic Integration - **Poetic Text Generation**: Convert data patterns into descriptive, artistic language - **Data Visualization**: Create beautiful charts and plots from your data - **Prompt Enhancement**: Intelligently merge data insights with your creative prompts - **Visual Conditioning**: Use data visualizations to inspire AI art generation ### 🔧 Technical Capabilities - **Safe Formula Execution**: Secure evaluation of mathematical expressions - **Batch Processing**: Handle multiple datasets or formulas simultaneously - **Comprehensive Metadata**: Detailed logging of all generation parameters - **Flexible Output**: Save both generated art and data visualizations ## 🛠️ Installation & Setup ### Prerequisites Ensure you have the base CompI environment set up with all dependencies from `requirements.txt`. ### Additional Dependencies Phase 2.B uses the existing CompI dependencies, specifically: - `pandas>=2.0.0` - Data manipulation and analysis - `numpy>=1.24.0` - Mathematical operations - `matplotlib>=3.7.0` - Data visualization - `seaborn>=0.12.0` - Statistical plotting ## 🎯 Quick Start ### 1. Launch the Streamlit Interface ```bash # Navigate to your CompI project directory cd "C:\Users\Aksharajsinh\Documents\augment-projects\Project CompI" # Run the Phase 2.B interface streamlit run src/ui/compi_phase2b_streamlit_ui.py ``` ### 2. Using CSV Data 1. **Upload your CSV file** containing numeric data 2. **Enter your creative prompt** (e.g., "A flowing river of data") 3. **Set style and mood** (e.g., "abstract digital art", "serene and flowing") 4. **Click Generate** and watch your data transform into art! ### 3. Using Mathematical Formulas 1. **Enter a mathematical formula** using Python/NumPy syntax 2. **Combine with your prompt** for artistic interpretation 3. **Generate unique mathematical art** based on your equations ## 📚 Examples ### CSV Data Examples #### Time Series Data ```csv date,temperature,humidity,pressure 2024-01-01,22.5,65,1013.2 2024-01-02,23.1,62,1015.8 2024-01-03,21.8,68,1012.4 ... ``` **Prompt**: "Weather patterns dancing across the sky" **Style**: "impressionist painting" **Result**: Art inspired by temperature fluctuations and atmospheric pressure #### Financial Data ```csv date,price,volume,volatility 2024-01-01,100.5,1000000,0.15 2024-01-02,102.3,1200000,0.18 2024-01-03,99.8,900000,0.22 ... ``` **Prompt**: "The rhythm of market forces" **Style**: "geometric abstract" **Result**: Visual representation of market dynamics ### Mathematical Formula Examples #### Sine Wave with Decay ```python np.sin(np.linspace(0, 4*np.pi, 100)) * np.exp(-np.linspace(0, 1, 100)) ``` **Prompt**: "Fading echoes in a digital realm" **Result**: Art representing diminishing oscillations #### Spiral Pattern ```python t = np.linspace(0, 4*np.pi, 200) np.sin(t) * t ``` **Prompt**: "The golden ratio in nature" **Result**: Spiral-inspired organic art #### Complex Harmonic ```python x = np.linspace(0, 6*np.pi, 300) np.sin(x) + 0.5*np.cos(3*x) + 0.25*np.sin(5*x) ``` **Prompt**: "Musical harmonies visualized" **Result**: Multi-layered wave patterns ## 🎨 Creative Workflow ### 1. Data Preparation - **Clean your data**: Remove or handle missing values - **Choose meaningful columns**: Focus on numeric data that tells a story - **Consider time series**: Temporal data often creates compelling patterns ### 2. Prompt Engineering - **Start with your data story**: What does your data represent? - **Add artistic style**: Choose styles that complement your data's nature - **Set the mood**: Match the emotional tone to your data's characteristics ### 3. Style Recommendations | Data Type | Recommended Styles | Mood Suggestions | |-----------|-------------------|------------------| | Time Series | flowing, organic, wave-like | rhythmic, temporal, evolving | | Statistical | geometric, structured, minimal | analytical, precise, clean | | Financial | dynamic, angular, sharp | energetic, volatile, intense | | Scientific | technical, detailed, precise | methodical, systematic, clear | | Random/Chaotic | abstract, expressionist, wild | unpredictable, chaotic, free | ## 🔧 Advanced Usage ### Programmatic Access ```python from src.generators.compi_phase2b_data_to_image import CompIPhase2BDataToImage # Initialize generator generator = CompIPhase2BDataToImage() # Generate from CSV results = generator.generate_image( text_prompt="Data flowing like water", style="fluid abstract", mood="serene, continuous", csv_path="path/to/your/data.csv", num_images=2 ) # Generate from formula results = generator.generate_image( text_prompt="Mathematical harmony", style="geometric precision", mood="balanced, rhythmic", formula="np.sin(np.linspace(0, 4*np.pi, 100))", num_images=1 ) ``` ### Batch Processing ```python # Process multiple CSV files results = generator.batch_process_csv_files( csv_directory="data/experiments/", text_prompt="Scientific visualization", style="technical illustration", mood="precise, analytical" ) # Process multiple formulas formulas = [ "np.sin(x)", "np.cos(x)", "np.tan(x/2)" ] results = generator.batch_process_formulas( formulas=formulas, text_prompt="Trigonometric art", style="mathematical beauty" ) ``` ## 📊 Understanding Data Features Phase 2.B analyzes your data and extracts several key features: ### Statistical Features - **Means, Medians, Standard Deviations**: Basic statistical measures - **Ranges and Distributions**: Data spread and shape - **Trends**: Increasing, decreasing, stable, or volatile patterns ### Pattern Features - **Correlations**: Relationships between different data columns - **Seasonality**: Repeating patterns in time series data - **Complexity Score**: Measure of data intricacy (0-1) - **Variability Score**: Measure of data diversity (0-1) - **Pattern Strength**: Measure of detectable patterns (0-1) ### Poetic Interpretation The system converts these features into artistic language: - **Trend descriptions**: "ascending", "flowing", "turbulent" - **Pattern adjectives**: "intricate", "harmonious", "dynamic" - **Artistic metaphors**: "like brushstrokes on canvas", "dancing with precision" ## 🎯 Tips for Best Results ### Data Tips 1. **Quality over quantity**: Clean, meaningful data works better than large messy datasets 2. **Numeric focus**: Ensure your CSV has numeric columns for analysis 3. **Reasonable size**: Keep datasets under 10,000 rows for faster processing 4. **Meaningful names**: Use descriptive column names for better interpretation ### Formula Tips 1. **Use NumPy functions**: Leverage `np.sin`, `np.cos`, `np.exp`, etc. 2. **Define ranges**: Use `np.linspace()` to create smooth curves 3. **Experiment with complexity**: Combine multiple functions for richer patterns 4. **Consider scale**: Ensure your formula produces reasonable numeric ranges ### Prompt Tips 1. **Be descriptive**: Rich prompts lead to more interesting results 2. **Match your data**: Align artistic style with data characteristics 3. **Experiment**: Try different style/mood combinations 4. **Use the preview**: Check the enhanced prompt before generating ## 🔍 Troubleshooting ### Common Issues **"Error analyzing data"** - Check that your CSV has numeric columns - Ensure the file is properly formatted - Try with a smaller dataset first **"Invalid formula"** - Use only safe mathematical functions - Check your NumPy syntax - Ensure parentheses are balanced **"Generation failed"** - Check your GPU memory if using CUDA - Try reducing the number of inference steps - Ensure your prompt isn't too long ### Performance Optimization - Use GPU acceleration when available - Reduce image dimensions for faster generation - Process smaller datasets for quicker analysis - Use fewer inference steps for rapid prototyping ## 🚀 Next Steps After mastering Phase 2.B, consider: 1. **Combining with Phase 2.A**: Use audio + data for multimodal art 2. **Creating data stories**: Build narratives around your visualizations 3. **Exploring advanced formulas**: Try complex mathematical expressions 4. **Building datasets**: Create custom data for specific artistic goals --- **Ready to transform your data into art?** Launch the Streamlit interface and start creating! 🎨📊✨