SoulMatrix README

The project's README from github.com/AhmadHassan-BTed/SoulMatrix. As one markdown file: README.md.

SoulMatrix Banner

SoulMatrix

Project Status Language Database OS Compatibility Author

A premium, local-first interactive live-reading matrix dashboard and pop-out Script Board for Destiny Matrix (Soul Blueprint) analysis. Engineered with real-time multi-screen offline synchronization and dual-DOB compatibility engines.

Designed and engineered by Ahmad Hassan (B-Ted). Built to bridge spiritual numerology with premium human-centric design and technology.


Overview

SoulMatrix is a high-performance interactive tool designed for numerologists, spiritual consultants, and live-stream presenters (specifically optimized for OBS, TikTok Live, and dual-monitor configurations).

It calculates a client's Destiny Matrix octagram using their birth date, plots it onto a modernized interactive SVG chart, and dynamically renders detailed script interpretations loaded directly from a customizable Excel master database. To support live streaming, a secondary Script Board window communicates offline in real-time, allowing presenters to display interpretation details on a private screen while displaying the interactive matrix chart to their audience.


Visual Modernization (Before vs After)

SoulMatrix features a refined UI refresh designed to captivate clients during live sessions. Hover effects, glowing neon states, and color-coded zone divisions provide instant clarity:

Muted Gradients & Low Contrast (Original) Vibrant Gradients & Glowing Outlines (Modernized)
Before Visual Refresh After Visual Refresh

Key Features


Architecture Overview

The system operates local-first and zero-dependency, ensuring maximum reliability and privacy during live sessions.

graph TD
    classDef file fill:#2e2a3a,stroke:#d4af6e,stroke-width:1.5px,color:#eae6f0;
    classDef script fill:#1e2638,stroke:#b088f0,stroke-width:1.5px,color:#eae6f0;
    classDef ui fill:#1b3233,stroke:#5cdec8,stroke-width:1.5px,color:#eae6f0;

    xlsx[Master Spreadsheet<br>interpretations.xlsx]:::file -->|Edit database| bat_sync(run_update.bat):::script
    bat_sync -->|Executes compiler| py_sync[update_interpretations.py / ps1]:::script
    py_sync -->|Generates backup & compiles| csv_db[interpretations.csv]:::file
    csv_db -->|Loaded via fetch / FileReader| main_app[soul_matrix.html Dashboard]:::ui
    main_app <-->|Offline BroadcastChannel Sync| script_board[script_board.html Script Board]:::ui

System Workflow

This diagram outlines the complete workflow loop, from database maintenance to rendering and live presenting:

sequenceDiagram
    autonumber
    actor Presenter as Ahmad Hassan (B-Ted) / Presenter
    participant Excel as Master Excel (data/interpretations.xlsx)
    participant SyncTool as Sync Engine (tools/update_interpretations.py)
    participant Dashboard as Main Dashboard (src/soul_matrix.html)
    participant ScriptBoard as Script Board (src/script_board.html)

    Note over Presenter,Excel: Step 1: Database Maintenance
    Presenter->>Excel: Updates interpretation text / adds new modules
    Presenter->>SyncTool: Runs run_update.bat
    SyncTool->>SyncTool: Backs up CSV and parses Excel sheets
    SyncTool-->>Presenter: Displays successful compilation count

    Note over Presenter,Dashboard: Step 2: Session Launch
    Presenter->>Dashboard: Double-clicks run_locally.bat (Starts HTTP Server)
    Dashboard->>Dashboard: Reads interpretations.csv and populates memory
    Presenter->>Dashboard: Enters Client Date of Birth and clicks "Calculate"
    
    Note over Dashboard,ScriptBoard: Step 3: Dual Screen Presenting
    Presenter->>Dashboard: Clicks "Script Board" button (Opens pop-out window)
    ScriptBoard->>Dashboard: Requests active session synchronization
    Dashboard-->>ScriptBoard: Broadcasts calculated nodes & database configurations
    Presenter->>Dashboard: Clicks interactive SVG Node (e.g. Node E)
    Dashboard->>ScriptBoard: Broadcasts selected position 'E' (via BroadcastChannel)
    ScriptBoard->>ScriptBoard: Scrolls to and highlights Node E interpretations

Repository Structure

The layout separates core runtime assets, Excel data configurations, and build/sync scripts:

SoulMatrix/
├── data/
│   ├── interpretations.xlsx      ← Excel Master Database (edit this!)
│   ├── interpretations.csv       ← Compiled LIVE CSV database mapping (loaded by web page)
│   └── interpretations_deep.csv  ← Compiled Deep Dive CSV database mapping
├── docs/
│   └── images/                   ← UI comparison screenshots and visual assets
├── src/
│   ├── soul_matrix.html          ← Interactive matrix chart dashboard (Presenter display)
│   ├── script_board.html         ← Pop-out private reader/presenter Script Board
│   ├── css/                      ← Modular CSS Design System
│   │   ├── main.css              ← Core CSS tokens, typography, and base layout
│   │   ├── matrix_chart.css      ← SVG Matrix chart styling and glow keyframes
│   │   └── panels.css            ← Side panel, tabs, and card UI styles
│   ├── js/                       ← Modular Engine Modules
│   │   ├── config.js             ← Matrix metadata, position dictionaries, module titles
│   │   ├── calc_engine.js        ← Arcanum reduction math, single & couple matrix engines
│   │   ├── db_sync.js            ← CSV parsing, Dual DB loader, BroadcastChannel sync
│   │   ├── programs_engine.js    ← 3-Node triplet program detector & active dashboard
│   │   ├── pdf_exporter.js       ← Warm client report generator & PDF printer
│   │   └── ui_controller.js      ← UI panel switcher, node listeners, outer age timeline SVG
│   ├── server.py                 ← Python local HTTP server
│   └── server.ps1                ← PowerShell local HTTP server (automated fallback)
├── tools/
│   ├── update_interpretations.py ← Excel-to-CSV compilation sync engine (Python)
│   ├── update_interpretations.ps1 ← Excel-to-CSV compilation sync engine (PowerShell fallback)
│   ├── package_release.py       ← Versioned release zip packager
│   └── backups/                  ← Automatically generated CSV backup files
├── run_locally.bat               ← Launcher script to host application locally
├── run_update.bat                ← Shortcut batch script to compile Excel edits
├── build_release.bat             ← Release packaging batch launcher
├── README.md                     ← Main documentation file
├── CHANGELOG.md                  ← Release version and feature update history
├── HOW-TO-UPDATE.md              ← Detailed Excel mapping guide
└── TODO.md                       ← Comprehensive completed feature & task roadmap

Data Flow & Calculation Pipeline

The core engine maps birth dates to the matrix structure and reduces them using base-22 Major Arcana reduction math:

graph LR
    classDef input fill:#222,stroke:#ffffd9,color:#eee;
    classDef math fill:#332211,stroke:#d4af6e,color:#eee;
    classDef output fill:#112233,stroke:#5cdec8,color:#eee;

    DOB1[Partner 1 DOB]:::input --> Engine[Calculation Engine]:::math
    DOB2[Partner 2 DOB]:::input --> Engine
    Engine --> Arcana[Arcana-22 Reduction Math]:::math
    Arcana --> Output[Summed Compatibility Nodes]:::math
    Output --> SVG[Plot interactive SVG Coordinates]:::output
    Output --> Table[Generate Chakra Health Matrix]:::output
    Output --> Prog[Filter Active 3-Number Programs]:::output
Click to view Arcana-22 Math & Summation Formulas

Arcana-22 Reduction Math

All numerical nodes in the Destiny Matrix are mathematically reduced to a value between 1 and 22 (corresponding to the Major Arcana): $$\text{reduced}(n) = \begin{cases} n, & \text{if } n \le 22 \ \text{sum of digits of } n, & \text{if } n > 22 \end{cases}$$ If the sum of digits is still greater than 22, the reduction formula is applied recursively until the value falls within the $[1, 22]$ range.

Compatibility Coordinate Summation

For Couples Compatibility Mode, nodes for each partner are summed and reduced: $$\text{Node}{\text{compatibility}} = \text{reduced}(\text{Node}{\text{PartnerA}} + \text{Node}_{\text{PartnerB}})$$ Derived purposes (Personal, Social, and Spiritual) and the combined Chakra energy table are calculated dynamically using these compatibility coordinates.


Request Lifecycle & Sync Mechanics

When a presenter interacts with a node, the application triggers a real-time event pipeline:

stateDiagram-v2
    [*] --> NodeClicked: Presenter clicks SVG Node (e.g. Node A)
    NodeClicked --> HighlightUI: Main dashboard outlines Node A and opens sliding drawer
    HighlightUI --> BroadcastEvent: Dashboard posts 'select_position' event to BroadcastChannel
    BroadcastEvent --> ReceiveEvent: Script Board listener catches message
    ReceiveEvent --> SyncScriptBoard: Script Board highlights Node A in sidebar and scrolls to text card
    SyncScriptBoard --> [*]

Tech Stack


Quick Start

  1. Launch the Server:

  2. Open the Pop-out Script Board:

    • Click ** Script Board** on the main navigation bar.
    • Drag script_board.html to your second monitor or capture it as an overlay inside OBS.
  3. Modify Interpretations:


Internal Module Structure

The sync engine handles data separation based on worksheet origins:


Build & Deployment Pipeline

To package clean production bundles for end-users, follow the packaging workflow:

graph TD
    classDef run fill:#252a36,stroke:#b088f0,color:#fff;
    classDef file fill:#183233,stroke:#5cdec8,color:#fff;

    Start[Start Build Script]:::run --> Clean[Delete previous .zip release]:::run
    Clean --> Copy[Copy directories: src/, data/, tools/, batch files]:::run
    Copy --> Exclude[Filter out temporary backup csv files & .git folder]:::run
    Exclude --> Compress[Zip remaining structures into releases/SoulMatrix.zip]:::file

Contribution Guidelines

New enhancements and optimizations are welcomed to make the tool more versatile for presenters.

  1. Fork the repository.
  2. Create a clean feature branch (feature/your-addition).
  3. Keep code comments minimal and document technical logic inside documentation files.
  4. Verify changes by executing run_update.bat to confirm no compiler regressions are introduced.
  5. Submit a Pull Request.

SoulMatrix is dedicated to the study of self-discovery and destiny calculation. Developed with precision by Ahmad Hassan (B-Ted).

SoulMatrix (AhmadHassan-BTed/SoulMatrix)

gui
Searching Database…

What is this?SoulMatrix is a local-first live-reading dashboard for Destiny Matrix (Soul Blueprint) numerology: it calculates a client's matrix octagram from their birth date, renders it as an interactive SVG chart, and loads detailed interpretations from an Excel database for use during live or streamed sessions.
Is this a hosted web app or something I run locally?It's a local-first web app: you run it by starting a small local HTTP server on your own machine and opening the dashboard in Chrome, not a hosted cloud service.
How do I get it running?Double-click runlocally.bat, which starts a local HTTP server and opens soulmatrix.html in Chrome, then open the pop-out Script Board from the main navigation bar and drag it to a second monitor or OBS overlay.
What do I need to edit the reading content?Interpretations live in interpretations.xlsx, which you edit with Excel; syncing changes uses Python 3 with openpyxl, or falls back to native Windows PowerShell plus COM Automation if you don't want extra dependencies.
Does this work on Mac or Linux too?The launch and sync tools are Windows batch files (runlocally.bat, runupdate.bat), and the dependency-free sync fallback relies on Windows PowerShell COM Automation, so the project is built around Windows.
Does any of my client data leave my machine?No — the app is designed to run entirely local-first with zero external dependencies, keeping reading sessions private.
What's the pop-out Script Board for?It's a second window a presenter can drag to another monitor or into an OBS overlay; it syncs instantly and offline with the main matrix view via the BroadcastChannel API, so selecting a node on one screen updates the other.
How is couples compatibility calculated?Each partner's matrix node values are added together and reduced using modulo-22 Major Arcana reduction, producing combined tabs for General, Love Dynamics, Relationship Karma and Shared Finance.
Can I change the interpretation text myself?Yes — all readings live in interpretations.xlsx; edit it in Excel, then double-click runupdate.bat to resync before reloading the dashboard.
What does the Age Timeline show?It plots decadic life-milestone labels (0 to 80) plus 56 intermediate clickable age nodes around the octagram's perimeter, each linked to its own forecast reading.
Size
22.3 MB
Stars
1.2K
Updated
CommitAug 20
Age
3mo
Commits · 90 Days