| import sys |
| import os |
|
|
| |
| current_dir = os.path.dirname(os.path.abspath(__file__)) |
|
|
| |
| if current_dir not in sys.path: |
| sys.path.insert(0, current_dir) |
|
|
| |
| from flc_core import flc_encode_file, flc_decode_file, cosine_similarity_bytes |
|
|
| import streamlit as st |
| import os |
| import tempfile |
| import numpy as np |
| from PIL import Image |
| from flc_core import flc_encode_file, flc_decode_file, cosine_similarity_bytes |
|
|
| st.set_page_config(page_title="FLC v1.3 | How it Works", layout="wide") |
|
|
| |
| st.markdown(""" |
| <style> |
| .reportview-container { background: #0e1117; } |
| .main { color: #e0e0e0; } |
| h1, h2, h3 { color: #f1c40f !important; } |
| .stAlert { background-color: #1a1c24; border: 1px solid #f1c40f; } |
| </style> |
| """, unsafe_allow_html=True) |
|
|
| st.title("π Fibonacci Lattice Compression (FLC)") |
| st.markdown(""" |
| **FLC v1.3** is a bio-inspired data compression architecture. Unlike standard ZIP or JPEG formats, |
| FLC uses the **Golden Ratio ($\Phi$)** to decide which parts of your data are "essential" and which are "noise." |
| """) |
|
|
| |
| with st.expander("π Step-by-Step: How does the 'Secret Sauce' work?"): |
| col1, col2, col3 = st.columns(3) |
| |
| with col1: |
| st.markdown("### 1. Spectral Projection") |
| st.write(""" |
| We treat your data like a sound wave. Using a **DCT (Discrete Cosine Transform)**, |
| we project the bits into frequency space. |
| * **Low Frequencies:** The "skeleton" of your data. |
| * **High Frequencies:** The "dust" and fine details. |
| """) |
|
|
| with col2: |
| st.markdown("### 2. The Golden Filter") |
| st.write(""" |
| Instead of treating all frequencies equally, FLC uses **Fibonacci Bands**. |
| We compress the 'dust' using steps based on the **Golden Ratio ($\Phi \approx 1.618$)**. |
| As the frequency increases, the compression gets exponentially more aggressive. |
| """) |
|
|
| with col3: |
| with st.container(): |
| st.markdown("### 3. Fibonacci Coding") |
| st.write(""" |
| Standard computers use 8-bit bytes. FLC uses **Fibonacci Binary**. |
| It's a "universal code" that uses the sum of Fibonacci numbers to represent values, |
| making the compressed stream incredibly resilient and dense. |
| """) |
|
|
| st.divider() |
|
|
| |
| st.header("π§ͺ Test the Horizon") |
| with st.sidebar: |
| st.header("ποΈ Architecture Params") |
| st.info("Adjusting these changes how the 'Secret Sauce' math is applied.") |
| |
| quality_map = { |
| "High Compression (Lossy)": {"bands": 6, "step": 0.08, "desc": "Aggressive $\Phi$-scaling."}, |
| "Balanced": {"bands": 12, "step": 0.005, "desc": "The Golden Mean of fidelity."}, |
| "Near-Lossless": {"bands": 24, "step": 0.0001, "desc": "Full spectral recovery."} |
| } |
| |
| tier = st.radio("Fidelity Tier", list(quality_map.keys()), index=1) |
| st.caption(quality_map[tier]["desc"]) |
| |
| st.subheader("Visual Overlays") |
| show_spiral = st.checkbox("Fibonacci Spiral Outlines", value=True) |
| show_ring = st.checkbox("Event Horizon Ring", value=True) |
|
|
| uploaded_file = st.file_uploader("Upload a file (Image, Text, or Binary)", type=["bin", "png", "jpg", "txt"]) |
|
|
| if uploaded_file is not None: |
| with tempfile.TemporaryDirectory() as tmpdir: |
| in_path = os.path.join(tmpdir, "input.bin") |
| out_flc = os.path.join(tmpdir, "output.flc") |
| out_gif = os.path.join(tmpdir, "unzip.gif") |
| recovered_path = os.path.join(tmpdir, "recovered.bin") |
| |
| with open(in_path, "wb") as f: |
| f.write(uploaded_file.getbuffer()) |
| |
| if st.button("RUN HOLOGRAPHIC RECONSTRUCTION"): |
| with st.status("Initializing Fibonacci Manifolds...", expanded=True) as status: |
| st.write("Transforming data to Frequency Space...") |
| enc = flc_encode_file( |
| in_path, out_flc, unzip_gif=out_gif, |
| n_bands=quality_map[tier]["bands"], |
| base_step=quality_map[tier]["step"] |
| ) |
| |
| st.write("Applying $\Phi$-scaled quantization...") |
| dec = flc_decode_file(out_flc, recovered_path) |
| |
| st.write("Generating Holographic Unzip visualization...") |
| status.update(label="Reconstruction Complete!", state="complete", expanded=False) |
|
|
| |
| st.subheader("π Compression Performance") |
| c1, c2, c3, c4 = st.columns(4) |
| c1.metric("Original Size", f"{enc['n_bytes']} B") |
| c2.metric("Compressed Size", f"{enc['payload_len']} B") |
| c3.metric("Ratio", f"{enc['ratio']:.2%}") |
| |
| |
| orig_data = open(in_path, "rb").read() |
| reco_data = open(recovered_path, "rb").read() |
| fidelity = cosine_similarity_bytes(orig_data, reco_data) |
| c4.metric("Data Fidelity", f"{fidelity*100:.2f}%") |
|
|
| st.divider() |
|
|
| |
| st.header("ποΈ The Unzip Sequence") |
| st.markdown(""" |
| This animation shows the **Progressive Reconstruction**. |
| The 'Hologram' on the left shows the frequency data being added band-by-band. |
| The 'Spiral' on the right shows the bits filling the Fibonacci tiles in real-time. |
| """) |
| |
| if os.path.exists(out_gif): |
| st.image(out_gif, use_container_width=True) |
| |
| st.info("π‘ Notice how the general shape appears first, and the fine details (noise) appear last. This is the hallmark of Spectral Compression.") |
|
|
| with open(out_flc, "rb") as f: |
| st.download_button("π₯ Download Encoded .FLC File", f, file_name="demo.flc") |
|
|
| else: |
| st.warning("Please upload a file to visualize the Fibonacci transformation.") |