feat: complete academic symbol lexicon heal, 2-column Cooper extraction, and updated assets
This commit is contained in:
@@ -0,0 +1,134 @@
|
||||
import math
|
||||
from PIL import Image, ImageDraw, ImageFilter
|
||||
|
||||
SIZE = 1024
|
||||
CENTER = SIZE / 2.0
|
||||
|
||||
# 1. Background: Deep mystical space
|
||||
bg = Image.new('RGBA', (SIZE, SIZE), (3, 5, 16, 255))
|
||||
bdraw = ImageDraw.Draw(bg)
|
||||
|
||||
# Starfield
|
||||
import random
|
||||
random.seed(1337)
|
||||
for _ in range(400):
|
||||
x = random.randint(0, SIZE)
|
||||
y = random.randint(0, SIZE)
|
||||
b = random.randint(140, 255)
|
||||
r = random.choice([1, 1, 2, 2, 3])
|
||||
bdraw.ellipse([x, y, x + r, y + r], fill=(b, b, 255, b))
|
||||
|
||||
# Soft cosmic nebulae
|
||||
neb = Image.new('RGBA', (SIZE, SIZE), (0, 0, 0, 0))
|
||||
ndraw = ImageDraw.Draw(neb)
|
||||
ndraw.ellipse([150, 120, 880, 850], fill=(15, 60, 130, 85))
|
||||
ndraw.ellipse([250, 250, 780, 780], fill=(70, 25, 120, 60))
|
||||
neb = neb.filter(ImageFilter.GaussianBlur(90))
|
||||
bg = Image.alpha_composite(bg, neb)
|
||||
|
||||
# 2. STRICT 13-POINTED STAR GEOMETRY (ТРИДЕКАГРАММА)
|
||||
N_POINTS = 13
|
||||
R_TIP = SIZE * 0.46
|
||||
R_INNER = SIZE * 0.285
|
||||
R_MEDALLION = SIZE * 0.265
|
||||
R_CORE = SIZE * 0.095
|
||||
|
||||
start_angle = -math.pi / 2.0 # 12 o'clock (верхний луч строго вверх)
|
||||
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_INNER * math.cos(ang_val), CENTER + R_INNER * math.sin(ang_val)))
|
||||
|
||||
star_layer = Image.new('RGBA', (SIZE, SIZE), (0, 0, 0, 0))
|
||||
sdraw = ImageDraw.Draw(star_layer)
|
||||
|
||||
# Draw 13 volumetric faceted crystal rays in cyan-platinum starlight
|
||||
for i in range(N_POINTS):
|
||||
p_tip = tips[i]
|
||||
p_val_left = valleys[(i - 1) % N_POINTS]
|
||||
p_val_right = valleys[i]
|
||||
|
||||
# Left facet (deep crystalline cyan)
|
||||
sdraw.polygon([CENTER, CENTER, p_val_left[0], p_val_left[1], p_tip[0], p_tip[1]], fill=(30, 120, 210, 220))
|
||||
# Right facet (bright electric platinum)
|
||||
sdraw.polygon([CENTER, CENTER, p_tip[0], p_tip[1], p_val_right[0], p_val_right[1]], fill=(160, 235, 255, 245))
|
||||
# Ridge highlight
|
||||
sdraw.line([CENTER, CENTER, p_tip[0], p_tip[1]], fill=(255, 255, 255, 255), width=3)
|
||||
# Edge rim
|
||||
sdraw.line([p_val_left[0], p_val_left[1], p_tip[0], p_tip[1]], fill=(220, 250, 255, 220), width=2)
|
||||
sdraw.line([p_tip[0], p_tip[1], p_val_right[0], p_val_right[1]], fill=(220, 250, 255, 220), width=2)
|
||||
|
||||
# Outer glow aura around star tips
|
||||
aura = star_layer.filter(ImageFilter.GaussianBlur(16))
|
||||
bg = Image.alpha_composite(bg, aura)
|
||||
bg = Image.alpha_composite(bg, star_layer)
|
||||
|
||||
# 3. Inner Circular Medallion (Obsidian deep space mirror)
|
||||
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, 10, 26, 250), outline=(130, 240, 255, 255), width=7)
|
||||
mdraw.ellipse([CENTER - R_MEDALLION + 7, CENTER - R_MEDALLION + 7, CENTER + R_MEDALLION - 7, CENTER + R_MEDALLION - 7], outline=(40, 130, 220, 180), width=2)
|
||||
|
||||
# 4. CHROME TRISKELION IN THE CENTER (3 nines sharing 1 center circle)
|
||||
# Single central circle:
|
||||
mdraw.ellipse([CENTER - R_CORE, CENTER - R_CORE, CENTER + R_CORE, CENTER + R_CORE], fill=(3, 6, 18, 255), outline=(255, 255, 255, 255), width=6)
|
||||
mdraw.ellipse([CENTER - R_CORE + 4, CENTER - R_CORE + 4, CENTER + R_CORE - 4, CENTER + R_CORE - 4], outline=(70, 210, 255, 220), width=3)
|
||||
|
||||
# 3 Chrome pinwheel curved blades
|
||||
for k in range(3):
|
||||
rot = start_angle + k * (2.0 * math.pi / 3.0)
|
||||
blade_outer = []
|
||||
blade_inner = []
|
||||
steps = 45
|
||||
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)
|
||||
blade_outer.append((bx, by))
|
||||
|
||||
thickness = (1.0 - t * 0.8) * 22
|
||||
inner_r = max(R_CORE, cr - thickness)
|
||||
ix = CENTER + inner_r * math.cos(ca + 0.08)
|
||||
iy = CENTER + inner_r * math.sin(ca + 0.08)
|
||||
blade_inner.append((ix, iy))
|
||||
|
||||
blade_poly = blade_outer + blade_inner[::-1]
|
||||
mdraw.polygon(blade_poly, fill=(50, 185, 255, 220))
|
||||
for p in range(len(blade_outer) - 1):
|
||||
mdraw.line([blade_outer[p], blade_outer[p+1]], fill=(255, 255, 255, 255), width=3)
|
||||
|
||||
# Also create the Warm Solar Starlight version
|
||||
# Composite layers
|
||||
comp = Image.alpha_composite(bg, med_layer)
|
||||
|
||||
bloom = comp.filter(ImageFilter.GaussianBlur(10))
|
||||
final_cyan = Image.blend(comp, bloom, 0.22)
|
||||
|
||||
out_cyan = '/home/alexives/.gemini/antigravity-ide/brain/4ff924d9-3d7f-4202-9066-3ac5c3088b8e/star_exact_13_cyan_light.png'
|
||||
final_cyan.save(out_cyan, 'PNG')
|
||||
|
||||
# Create White Diamond Starlight version:
|
||||
import numpy as np
|
||||
arr = np.array(final_cyan, dtype=np.float32)
|
||||
r, g, b, a = arr[:, :, 0], arr[:, :, 1], arr[:, :, 2], arr[:, :, 3]
|
||||
lum = 0.299 * r + 0.587 * g + 0.114 * b
|
||||
is_fg = lum > 35
|
||||
# Map to pure radiant white-platinum with subtle warm champagne highlight
|
||||
r_w = np.where(is_fg, np.clip(lum * 1.15 + 15, 0, 255), r)
|
||||
g_w = np.where(is_fg, np.clip(lum * 1.12 + 10, 0, 255), g)
|
||||
b_w = np.where(is_fg, np.clip(lum * 1.18 + 25, 0, 255), b)
|
||||
out_w = np.stack([r_w, g_w, b_w, a], axis=-1).astype(np.uint8)
|
||||
img_white = Image.fromarray(out_w)
|
||||
out_white = '/home/alexives/.gemini/antigravity-ide/brain/4ff924d9-3d7f-4202-9066-3ac5c3088b8e/star_exact_13_diamond_white.png'
|
||||
img_white.save(out_white, 'PNG')
|
||||
|
||||
print("Generated exactly 13-pointed star (cyan and diamond white)")
|
||||
Reference in New Issue
Block a user