import streamlit as st import numpy as np from scipy.sparse import csr_matrix import pandas as pd import time import graphviz # ----------------------------------------------------------------------------- # Title and Overview # ----------------------------------------------------------------------------- st.title("Cortical Column Theory: Self-Modifying Memory Systems") st.markdown(""" **Theory Overview:** This application demonstrates a model inspired by Cortical Column Theory where the ability to self-modify is paramount. - **Episodic Memory (E):** Represents short-term, conscious experience (~5–10 seconds) via introspective attention. - **Semantic Memory (K):** Cumulative knowledge built over time (Mass + Agency), enabling free energy formation. - **Neural Connectivity:** Modeled via sparse matrices to mimic voting neurons in cortical columns. - **Social Bonding:** Hierarchical connections—from teams to humanity—facilitate maximum free energy (or ‘love’) at a cellular level. These components interact in a dynamic system, much like how neocortical columns steer signals via voting neurons and dendritic excitement. """) # ----------------------------------------------------------------------------- # Create Tabs for Organized UI Sections # ----------------------------------------------------------------------------- tabs = st.tabs([ "Theory", "Neural Connectivity", "Concept Graph", "Interactive Components", "NPS Score", "Extra UI" ]) # ----------------------------------------------------------------------------- # Tab 1: Theory Explanation # ----------------------------------------------------------------------------- with tabs[0]: st.header("Cortical Column Theory") st.write(""" The central hypothesis is that life’s essential characteristic is its ability to self-modify. In this model: - **Episodic Memory (E)** functions as immediate, introspective attention over a 5–10 second window. - **Semantic Memory (K)** aggregates past experiences into a knowledge base, growing as new connections (graph edges) form. - **Free Energy** is produced as the system scales its pair bonds—from simple interactions (e.g., between two neurons) to complex networks (teams, organizations, and ultimately humanity). - **Love (❤️)** is conceptualized as the maximal connection, representing the highest free energy state and optimal bond formation. This theoretical framework abstracts how biological neural circuits might mirror self-coding systems in AI. """) # ----------------------------------------------------------------------------- # Tab 2: Neural Connectivity with Sparse Matrix # ----------------------------------------------------------------------------- with tabs[1]: st.header("Neural Connectivity Sparse Matrix") st.write("Below is a demonstration of a sparse matrix simulating neural connectivity within a cortical column:") # Create a random binary matrix (10 neurons, ~20% connectivity) size = 10 density = 0.2 random_matrix = np.random.binomial(1, density, size=(size, size)) sparse_matrix = csr_matrix(random_matrix) st.write("Sparse Matrix Representation:") st.write(sparse_matrix) st.write("Dense Matrix Representation:") st.write(random_matrix) # ----------------------------------------------------------------------------- # Tab 3: Emoji and Concept Graph UI # ----------------------------------------------------------------------------- with tabs[2]: st.header("Emoji and Concept Graph") st.write("Visualizing core concepts with emojis where each node represents a key component of the theory:") # Graphviz diagram using emojis and labels for key concepts. graph_source = """ digraph G { "Cortical Column 🧠" -> "Episodic Memory (E) ⏱️" [label="short-term"]; "Cortical Column 🧠" -> "Semantic Memory (K) 📚" [label="knowledge"]; "Episodic Memory (E) ⏱️" -> "Introspective Attention 🔍" [label="focus"]; "Semantic Memory (K) 📚" -> "Free Energy ⚡" [label="agency"]; "Free Energy ⚡" -> "Love ❤️" [label="bond"]; "Love ❤️" -> "Humanity 🌍" [label="connection"]; } """ st.graphviz_chart(graph_source) # ----------------------------------------------------------------------------- # Tab 4: Interactive UI Components # ----------------------------------------------------------------------------- with tabs[3]: st.header("Interactive Components Demonstration") st.subheader("Input and Selection") concept_input = st.text_input("Enter a concept label:", "Cortical Column Theory") time_window = st.slider("Select attention window (seconds)", 1, 10, 5) memory_type = st.radio("Select memory type", ("Episodic (E)", "Semantic (K)")) neural_component = st.selectbox("Choose a neural component", ["Neuron", "Synapse", "Dendrite", "Axon"]) additional_components = st.multiselect("Select additional components", ["Free Energy", "Agency", "Mass", "Bond"]) st.subheader("Activation Controls") if st.checkbox("Activate Introspective Attention"): st.write("Introspective Attention Activated!") if st.button("Execute Self-Modification Cycle"): st.write("**Self-Modification Cycle Executed**") st.write(f"Memory Type Selected: {memory_type}") st.write(f"Attention Window: {time_window} seconds") st.write(f"Neural Component: {neural_component}") st.write(f"Additional Components: {additional_components}") st.subheader("Media Components") st.image("https://via.placeholder.com/150.png?text=Neural+Network", caption="Neural Network Representation") # Note: The video below is a placeholder. st.video("https://www.youtube.com/watch?v=dQw4w9WgXcQ") st.subheader("Data and JSON Display") df = pd.DataFrame({ "Component": ["Neuron", "Synapse", "Dendrite", "Axon"], "Status": ["Active", "Active", "Inactive", "Active"] }) st.dataframe(df) sample_json = { "Episodic": {"Duration": f"{time_window} sec", "Type": memory_type}, "Semantic": {"Label": concept_input} } st.json(sample_json) st.subheader("File Upload and Color Picker") uploaded_file = st.file_uploader("Upload a configuration file") color = st.color_picker("Pick a highlight color", "#00f900") st.write("Selected Color:", color) st.subheader("Date and Time Inputs") date_input = st.date_input("Select a date") time_input = st.time_input("Select a time") st.write("Date:", date_input, "Time:", time_input) st.subheader("Progress Bar Simulation") progress_bar = st.progress(0) for percent_complete in range(101): progress_bar.progress(percent_complete) time.sleep(0.01) st.subheader("Metrics and Download Button") st.metric(label="Introspective Score", value=time_window*10, delta="+5") st.download_button("Download Configuration", data="configuration data", file_name="config.txt") # ----------------------------------------------------------------------------- # Tab 5: Self Reward Learning NPS Score # ----------------------------------------------------------------------------- with tabs[4]: st.header("Self Reward Learning NPS Score") nps_score = st.slider("Rate Self Reward Learning (0-10):", 0, 10, 5) if nps_score <= 6: nps_comment = "Needs Improvement - Consider refining self-modification algorithms." elif nps_score <= 8: nps_comment = "Good, but can be better - Fine-tuning required." else: nps_comment = "Excellent! - The system demonstrates robust self-reward learning." st.write(f"**NPS Score:** {nps_score} - {nps_comment}") # ----------------------------------------------------------------------------- # Tab 6: Extra UI Components for Extended Demonstration # ----------------------------------------------------------------------------- with tabs[5]: st.header("Extra UI Components") with st.expander("More Details"): st.write("Additional explanations or interactive widgets can be added here.") col1, col2 = st.columns(2) with col1: st.write("**Column 1:** Additional metrics or charts.") st.line_chart(np.random.randn(20, 1)) with col2: st.write("**Column 2:** Other interactive elements.") st.bar_chart(np.random.randn(20, 1))