File size: 1,989 Bytes
874e3d1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
954a391
 
 
874e3d1
 
954a391
874e3d1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import streamlit as st
import matplotlib.pyplot as plt
import numpy as np
import random

def create_sigil(desire):
    consonants = [c for c in desire.lower() if c.isalpha() and c not in 'aeiou']
    letters = list(set(consonants))
    random.shuffle(letters)
    sigil = ''.join(letters)
    return sigil

def fibonacci_sphere(samples=1):
    rnd = 1.
    points = []
    offset = 2./samples
    increment = np.pi * (3. - np.sqrt(5.))
    for i in range(samples):
        y = ((i * offset) - 1) + (offset / 2)
        r = np.sqrt(1 - y*y)
        phi = ((i + rnd) % samples) * increment
        x = np.cos(phi) * r
        z = np.sin(phi) * r
        points.append([x, y, z])
    return points

def visualize_sigil(sigil):
    fig, ax = plt.subplots(figsize=(6,6))
    ax.set_aspect('equal')
    ax.axis('off')
    circle = plt.Circle((0.5, 0.5), 0.4, color='black', fill=False, lw=2)
    ax.add_artist(circle)
    num_letters = len(sigil)
    fibonacci_points = fibonacci_sphere(num_letters)
    x_letters = [0.5 + 0.35 * p[0] for p in fibonacci_points]
    y_letters = [0.5 + 0.35 * p[1] for p in fibonacci_points]
    for i, letter in enumerate(sigil):
        ax.text(x_letters[i], y_letters[i], letter, fontsize=1, ha='center', va='center', color='black')
    for i in range(num_letters):
        j = (i + 1) % num_letters
        x_start, y_start = x_letters[i], y_letters[i]
        x_end, y_end = x_letters[j], y_letters[j]
        ax.plot([x_start, x_end], [y_start, y_end], color='black')
    ax.scatter(x_letters[0], y_letters[0], color='black', s=20)
    ax.scatter(x_letters[-1], y_letters[-1], color='black', s=20)
    plt.xlim(0, 1)
    plt.ylim(0, 1)
    st.pyplot(fig)

st.title("Austin Osman Spare Sigil Generator")
st.text("Created by Frater Cha0smagick for the blog grimoriomagiadelcaos.blogspot.com")
desire = st.text_input("Enter your wish or intention:")
if desire:
    sigil = create_sigil(desire)
    st.write("Generated Sigil:", sigil)
    visualize_sigil(sigil)