import math import numpy as np from PIL import Image, ImageDraw, ImageFilter SIZE = 1024 CENTER = SIZE / 2.0 bg = Image.new('RGBA', (SIZE, SIZE), (2, 4, 12, 255)) bdraw = ImageDraw.Draw(bg) np.random.seed(777) for _ in range(400): x = np.random.randint(0, SIZE) y = np.random.randint(0, SIZE) br = np.random.randint(150, 255) sz = np.random.choice([1, 1, 2, 2, 3], p=[0.7, 0.2, 0.07, 0.02, 0.01]) bdraw.ellipse([x, y, x + sz, y + sz], fill=(br, br, 255, br)) N_POINTS = 13 R_TIP = SIZE * 0.46 R_VALLEY = SIZE * 0.28 R_MEDALLION = SIZE * 0.255 R_CORE = SIZE * 0.09 start_angle = -math.pi / 2.0 tips = [] valleys = [] for i in range(N_POINTS): ang_tip = start_angle + i * (2.0 * math.pi / N_POINTS) ang_val = ang_tip + (math.pi / N_POINTS) tips.append((CENTER + R_TIP * math.cos(ang_tip), CENTER + R_TIP * math.sin(ang_tip))) valleys.append((CENTER + R_VALLEY * math.cos(ang_val), CENTER + R_VALLEY * math.sin(ang_val))) star_layer = Image.new('RGBA', (SIZE, SIZE), (0, 0, 0, 0)) sdraw = ImageDraw.Draw(star_layer) GOLD_CORE = (255, 255, 240, 255) # incandescent white-gold GOLD_MAIN = (255, 215, 80, 240) # warm celestial amber-gold GOLD_GLOW = (220, 160, 20, 90) # Fill rays with deep translucent astral gradient for i in range(N_POINTS): p_tip = tips[i] p_vl = valleys[(i - 1) % N_POINTS] p_vr = valleys[i] sdraw.polygon([CENTER, CENTER, p_vl[0], p_vl[1], p_tip[0], p_tip[1]], fill=(35, 28, 12, 120)) sdraw.polygon([CENTER, CENTER, p_tip[0], p_tip[1], p_vr[0], p_vr[1]], fill=(50, 38, 16, 150)) # Sacred tridecagram linear lattice (subtle geometric star web inside) for i in range(N_POINTS): p1 = tips[i] p2 = tips[(i + 3) % N_POINTS] sdraw.line([p1[0], p1[1], p2[0], p2[1]], fill=(255, 210, 70, 40), width=1) # Fine outer outlines of the 13 rays for i in range(N_POINTS): p_tip = tips[i] p_vl = valleys[(i - 1) % N_POINTS] p_vr = valleys[i] # Glow outline sdraw.line([p_vl[0], p_vl[1], p_tip[0], p_tip[1]], fill=GOLD_GLOW, width=5) sdraw.line([p_tip[0], p_tip[1], p_vr[0], p_vr[1]], fill=GOLD_GLOW, width=5) sdraw.line([CENTER, CENTER, p_tip[0], p_tip[1]], fill=GOLD_GLOW, width=5) # Sharp gold line sdraw.line([p_vl[0], p_vl[1], p_tip[0], p_tip[1]], fill=GOLD_MAIN, width=2) sdraw.line([p_tip[0], p_tip[1], p_vr[0], p_vr[1]], fill=GOLD_MAIN, width=2) sdraw.line([CENTER, CENTER, p_tip[0], p_tip[1]], fill=GOLD_CORE, width=2) # Medallion med_layer = Image.new('RGBA', (SIZE, SIZE), (0, 0, 0, 0)) mdraw = ImageDraw.Draw(med_layer) mdraw.ellipse([CENTER - R_MEDALLION, CENTER - R_MEDALLION, CENTER + R_MEDALLION, CENTER + R_MEDALLION], fill=(6, 8, 18, 250), outline=GOLD_MAIN, width=3) mdraw.ellipse([CENTER - R_MEDALLION + 6, CENTER - R_MEDALLION + 6, CENTER + R_MEDALLION - 6, CENTER + R_MEDALLION - 6], outline=(255, 240, 160, 160), width=1) # Chrome Triskelion - 3 curved wings (number 9 loops sharing 1 central circle) # Center circle: mdraw.ellipse([CENTER - R_CORE, CENTER - R_CORE, CENTER + R_CORE, CENTER + R_CORE], fill=(3, 5, 14, 255), outline=GOLD_MAIN, width=4) mdraw.ellipse([CENTER - R_CORE + 4, CENTER - R_CORE + 4, CENTER + R_CORE - 4, CENTER + R_CORE - 4], outline=GOLD_CORE, width=1) # Chrome pinwheel curved ribbon blades for k in range(3): rot = start_angle + k * (2.0 * math.pi / 3.0) outer_pts = [] inner_pts = [] steps = 50 for s in range(steps + 1): t = s / float(steps) cr = R_CORE + t * (R_MEDALLION - R_CORE - 10) ca = rot + t * 1.35 bx = CENTER + cr * math.cos(ca) by = CENTER + cr * math.sin(ca) outer_pts.append((bx, by)) thick = (1.0 - t * 0.8) * 16 ir = max(R_CORE, cr - thick) ix = CENTER + ir * math.cos(ca + 0.08) iy = CENTER + ir * math.sin(ca + 0.08) inner_pts.append((ix, iy)) poly = outer_pts + inner_pts[::-1] mdraw.polygon(poly, fill=(180, 130, 20, 120)) # Sharp gold boundary for p in range(len(outer_pts) - 1): mdraw.line([outer_pts[p], outer_pts[p+1]], fill=GOLD_CORE, width=2) for p in range(len(inner_pts) - 1): mdraw.line([inner_pts[p], inner_pts[p+1]], fill=GOLD_MAIN, width=1) comp = Image.alpha_composite(bg, star_layer) comp = Image.alpha_composite(comp, med_layer) bloom = comp.filter(ImageFilter.GaussianBlur(8)) final_img = Image.blend(comp, bloom, 0.22) out_file = '/home/alexives/.gemini/antigravity-ide/brain/4ff924d9-3d7f-4202-9066-3ac5c3088b8e/star_exact_13_gold_filigree_ribbons.png' final_img.save(out_file, 'PNG') print("Rendered ribbons variant to", out_file)