#!/usr/bin/env python3 """ AeThex Logo Generator - Generative Art Creates multiple logo variations programmatically """ import random import math from pathlib import Path # Brand colors COLORS = { 'purple_light': '#A855F7', 'purple': '#8B5CF6', 'purple_dark': '#7C3AED', 'cyan': '#06B6D4', 'cyan_light': '#22D3EE', 'white': '#FFFFFF', } def create_svg_header(width=200, height=200): """Create SVG header with gradients""" return f''' ''' def create_svg_footer(): return '' # Logo Variation 1: Geometric Hexagon Network def generate_hex_network(): svg = create_svg_header() # Hexagon points cx, cy = 100, 100 radius = 60 points = [] for i in range(6): angle = math.pi / 3 * i - math.pi / 2 x = cx + radius * math.cos(angle) y = cy + radius * math.sin(angle) points.append(f"{x:.1f},{y:.1f}") svg += f' \n' # Inner nodes (cloud network) nodes = [ (70, 85), (100, 75), (130, 85), (80, 105), (120, 105), (100, 115) ] # Connection lines connections = [(0, 1), (1, 2), (3, 4), (0, 3), (2, 4), (1, 5), (3, 5), (4, 5)] for start, end in connections: x1, y1 = nodes[start] x2, y2 = nodes[end] svg += f' \n' # Draw nodes for x, y in nodes: svg += f' \n' svg += create_svg_footer() return svg # Logo Variation 2: Abstract Letter A def generate_letter_a(style='geometric'): svg = create_svg_header() if style == 'geometric': # Modern geometric A svg += ' \n' svg += f' \n' svg += f' \n' svg += f' \n' svg += f' \n' svg += f' \n' svg += f' \n' svg += ' \n' elif style == 'rounded': # Rounded A with flow svg += ' \n' svg += f' \n' svg += f' \n' svg += f' \n' svg += ' \n' svg += create_svg_footer() return svg # Logo Variation 3: Particle Cloud def generate_particle_cloud(): svg = create_svg_header() # Create cloud of particles forming "A" shape random.seed(42) # Consistent randomness # Generate particles for i in range(80): # A-shape distribution y = random.uniform(40, 160) # Make it A-shaped: narrower at top, wider at bottom top_width = 20 bottom_width = 80 width = top_width + (bottom_width - top_width) * (y - 40) / 120 # Left or right side of A side = random.choice([-1, 1]) x_offset = random.uniform(0, width/2) * side # Middle gap (crossbar area) if 90 < y < 110: if abs(x_offset) < 15: continue # Skip middle to create A shape x = 100 + x_offset # Vary size radius = random.uniform(1, 3) # Color gradient based on position if y < 100: color = COLORS['purple_light'] else: color = COLORS['cyan'] if random.random() > 0.5 else COLORS['purple'] opacity = random.uniform(0.4, 1.0) svg += f' \n' svg += create_svg_footer() return svg # Logo Variation 4: Minimalist Icon def generate_minimal_icon(): svg = create_svg_header() # Simple shapes only svg += ' \n' # Triangle (simplified A) svg += f' \n' # Connection bar svg += f' \n' # Small dots svg += f' \n' svg += f' \n' svg += f' \n' svg += ' \n' svg += create_svg_footer() return svg # Logo Variation 5: Infinity Engine def generate_infinity(): svg = create_svg_header() # Infinity symbol with code/cloud elements svg += ' \n' svg += f' \n' # Nodes at intersections positions = [(-20, 0), (20, 0), (-40, 12), (40, 12), (-40, -12), (40, -12)] for x, y in positions: svg += f' \n' svg += ' \n' svg += create_svg_footer() return svg # Logo Variation 6: Code Brackets def generate_code_brackets(): svg = create_svg_header() svg += ' \n' # Left bracket svg += f' \n' # Right bracket svg += f' \n' # Center element (cloud) svg += f' \n' svg += f' \n' svg += f' \n' svg += f' \n' svg += ' \n' svg += create_svg_footer() return svg # Logo Variation 7: Neural Network def generate_neural_net(): svg = create_svg_header() # Layer nodes layer1 = [(50, 50), (50, 100), (50, 150)] layer2 = [(100, 75), (100, 125)] layer3 = [(150, 100)] # Draw connections svg += ' \n' for n1 in layer1: for n2 in layer2: svg += f' \n' for n2 in layer2: for n3 in layer3: svg += f' \n' svg += ' \n' # Draw nodes for x, y in layer1: svg += f' \n' for x, y in layer2: svg += f' \n' for x, y in layer3: svg += f' \n' svg += create_svg_footer() return svg # Generate all variations def main(): output_dir = Path('assets/generated-logos') output_dir.mkdir(exist_ok=True) variations = { 'hex-network.svg': generate_hex_network(), 'letter-a-geometric.svg': generate_letter_a('geometric'), 'letter-a-rounded.svg': generate_letter_a('rounded'), 'particle-cloud.svg': generate_particle_cloud(), 'minimal-icon.svg': generate_minimal_icon(), 'infinity-engine.svg': generate_infinity(), 'code-brackets.svg': generate_code_brackets(), 'neural-network.svg': generate_neural_net(), } for filename, svg_content in variations.items(): filepath = output_dir / filename filepath.write_text(svg_content) print(f"āœ“ Generated: {filepath}") print(f"\nāœ… Generated {len(variations)} logo variations in {output_dir}/") print("\nOpen them in a browser to preview!") if __name__ == '__main__': main()