cha0smagick's picture
Update app.py
6b1161a verified
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")
st.text("generate chaos sigils under the sigilization theory created by Austin Osman Spare")
st.text("creator of the ZOS KIA CVLTVS")
desire = st.text_input("Enter your wish or intention:")
if desire:
sigil = create_sigil(desire)
st.write("Generated Sigil:", sigil)
visualize_sigil(sigil)