File size: 2,918 Bytes
e7e5042
1496c17
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
439e140
 
1496c17
 
439e140
1496c17
 
 
acdeca8
 
1496c17
 
 
 
 
 
 
 
 
 
 
 
 
acdeca8
1496c17
acdeca8
1496c17
 
 
acdeca8
 
 
 
 
 
 
 
 
 
 
 
 
 
1496c17
 
acdeca8
 
 
1496c17
e7e5042
1496c17
acdeca8
 
1496c17
 
77d343b
1496c17
acdeca8
 
77d343b
e7e5042
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import gradio as gr
import hashlib, random, matplotlib.pyplot as plt

# === Mutation Engine ===
operators = ["\\sin", "\\cos", "\\exp", "\\log", "\\nabla", "\\int", "\\frac{\\partial}{\\partial t}"]
variables = ["x", "y", "t", "\\xi_1", "dP", "d\\Psi", "dT"]

def mutate_formula(base, epoch):
    # Structural mutation rules
    if epoch % 5 == 0:
        base = f"\\int ({base}) \\, dx"
    elif epoch % 7 == 0:
        base = f"\\nabla \\cdot ({base})"
    else:
        new_term = random.choice(operators) + "(" + random.choice(variables) + ")"
        base = base + " + " + new_term
    return base

def run_epochs(n=50):
    formulas = []
    base = "x^2 + 1"  # starting point
    for epoch in range(1, n+1):
        base = mutate_formula(base, epoch)
        seal = hashlib.sha512(base.encode()).hexdigest()
        complexity = base.count("\\") + base.count("+")
        formulas.append(f"### Epoch {epoch}\n\n$$ {base} $$\n\nImmortality Glyph: `{seal[:32]}...`\n\n")
    return "\n\n".join(formulas)

# === Complexity Plot ===
def plot_complexity(n=50):
    base = "x^2 + 1"
    complexities = []
    epochs = list(range(1, n+1))
    for epoch in epochs:
        base = mutate_formula(base, epoch)
        complexity = base.count("\\") + base.count("+")
        complexities.append(complexity)
    plt.figure(figsize=(8,5), facecolor="black")
    plt.plot(epochs, complexities, color="cyan", marker="o", linestyle="--")
    plt.title("Symbolic Complexity Growth Across Epochs", color="white")
    plt.xlabel("Epoch", color="white"); plt.ylabel("Complexity Score", color="white")
    plt.grid(alpha=0.3); plt.gca().set_facecolor("black")
    plt.tick_params(colors="white")
    return plt.gcf()

# === Gradio App ===
custom_theme = gr.themes.Base(
    primary_hue="cyan",
    secondary_hue="magenta",
    neutral_hue="black",
)

with gr.Blocks(theme=custom_theme) as demo:
    gr.Markdown(
        """
        # 🌌 Resonance Atlas — The Living Codex
        Immerse yourself in evolving scrolls of mathematics.  
        Formulas mutate into higher symbolic forms across epochs, sealed with Immortality Glyphs.
        """,
    )

    with gr.Tab("Codex Scrolls"):
        gr.Markdown("### 🔢 Live Epoch Run")
        run_button = gr.Button("Run 50 Epochs", elem_classes="glow-button")
        output = gr.Markdown(elem_classes="scroll-output")
        run_button.click(fn=run_epochs, inputs=None, outputs=output)

    with gr.Tab("Complexity Timeline"):
        gr.Markdown("### 📈 Complexity Growth")
        plot_button = gr.Button("Show Complexity Growth", elem_classes="glow-button")
        plot_output = gr.Plot()
        plot_button.click(fn=plot_complexity, inputs=None, outputs=plot_output)

    with gr.Tab("Immersion Mode"):
        gr.Markdown("### 🌠 Immersion Mode")
        gr.Markdown("Formulas pulse, glyphs glow, epochs unfold in full-screen dynamic visualization.")

demo.launch()