[split] Volvelles or Disks
#51
Ciao Julian and Eggyk!

Btw Julian how do you feel knowing that you predicted the future? I did not expect you to replay but thank you : )

Of course there are rules, otherwise it wouldn't be fun. As many of you assume, gallows are not letters, they are mode markers. They indicate which mode or how the Volvella operates. When you select a gallow, you restrict which glyphs are available.

But don't take my word for it. Do you have a Python terminal and the EVA transcript handy? If so, run the following code and see for yourself. Python is mechanical, deterministic, no AI haha!

EVA: You are not allowed to view links. Register or Login to view.

Phyton script: 
Code:
import os import re import numpy as np import matplotlib.pyplot as plt import seaborn as sns from collections import Counter # --- HARDWARE CONFIGURATION --- # Rotor A: 6 Sectors (5 Mode Selectors + 1 Empty/Neutral) ROTOR_A = ['qo', 'k', 't', 'p', 'f'] # Rotor B: 26 Atomic Matter Sectors ROTOR_B = ['o', 'y', 'd', 'k', 'e', 'ch', 'l', 't', 'ee', 'sh', 'a', 'r', 's', 'i', 'c', 'h', 'm', 'p', 'q', 'g', 'f', 'v', 'b', 'j', 'x', 'n'] # Stator C: 9 Context/Exit States STATOR_C = ['aiin', 'ain', 'al', 'ar', 'chey', 'chy', 'ody', 'or', 'dy', 'y'] ATOM_POSITIONS = {atom: idx for idx, atom in enumerate(ROTOR_B)} DISK_SIZE = len(ROTOR_B) # Full Hardware Lock Table (Rotor A Mode -> Blocked Atoms in Rotor B) LOCK_A_TO_B = {     'qo': ['j', 'v', 'x'],        # Boiling Mode: Blocks direct fire/crucibles     'k':  ['b', 'j', 'v'],        # Heating Mode: Blocks water baths/direct fire     't':  ['j', 'v'],            # Grinding Mode: Blocks liquids/fire     'p':  ['b', 'g', 'j', 'q', 'v', 'x'], # Prep Mode: High restriction safety lock     'f':  ['b', 'g', 'j', 'v', 'x'],      # Execution Mode: Selective filtration     'NONE': []                    # Neutral Sector: Full hardware access } def clean_eva_text(filepath):     cleaned_words = []     if not os.path.exists(filepath): return None     with open(filepath, 'r', encoding='utf-8') as file:         for line in file:             if line.startswith('#'): continue             line = re.sub(r'<[^>]+>', ' ', line)             line = re.sub(r'[^a-zA-Z.,]', ' ', line)             words = re.split(r'[.,\s]+', line)             for w in words:                 w = w.lower().strip()                 if len(w) > 2: cleaned_words.append(w)     return cleaned_words def parse_volvella(word):     action, matter = 'NONE', word     for g in sorted(ROTOR_A, key=len, reverse=True):         if matter.startswith(g): action = g; matter = matter[len(g):]; break     atoms = []     i = 0     while i < len(matter):         if i < len(matter) - 1 and matter[i:i+2] in ['ch', 'sh', 'ee']:             atoms.append(matter[i:i+2]); i += 2         elif matter[i] in ROTOR_B:             atoms.append(matter[i]); i += 1         else: i += 1     return action, atoms def run_pro_audit():     files = [f for f in os.listdir('.') if f.endswith('.txt')]     if not files: return print("❌ Error: Please upload your .txt file to Colab.")     file_path = files[0]     words = clean_eva_text(file_path)         matrix = np.zeros((DISK_SIZE, DISK_SIZE))     jump_distances = []     violations = 0     mode_distribution = Counter()         for word in words:         action, atoms = parse_volvella(word)         mode_distribution[action] += 1         if action in LOCK_A_TO_B and any(a in LOCK_A_TO_B[action] for a in atoms):             violations += 1                 for i in range(len(atoms)-1):             if atoms[i] in ATOM_POSITIONS and atoms[i+1] in ATOM_POSITIONS:                 p1, p2 = ATOM_POSITIONS[atoms[i]], ATOM_POSITIONS[atoms[i+1]]                 matrix[p1][p2] += 1                 dist = abs(p1 - p2)                 jump_distances.append(min(dist, DISK_SIZE - dist))     # --- VISUAL REPORTING ---     plt.style.use('dark_background')     fig = plt.figure(figsize=(18, 10))         # 1. HEATMAP: The Mechanical Footprint     ax1 = plt.subplot2grid((2, 2), (0, 0), rowspan=2)     sns.heatmap(matrix, annot=False, cmap="magma", cbar=True, ax=ax1,                 xticklabels=ROTOR_B, yticklabels=ROTOR_B)     ax1.set_title("MECHANICAL TRANSITION MATRIX\nEvidence of Sequential Ratcheting", fontsize=15, color='cyan')     ax1.set_xlabel("Next Atom Position", fontsize=12)     ax1.set_ylabel("Current Atom Position", fontsize=12)     # 2. INERTIA: MS 408 vs RANDOM     ax2 = plt.subplot2grid((2, 2), (0, 1))     jumps_count = Counter(jump_distances)     total_jumps = sum(jumps_count.values())     x_jumps = range(14)     y_voynich = [jumps_count[d]/total_jumps * 100 for d in x_jumps]     y_random = [100/13] * 14         ax2.plot(x_jumps, y_voynich, color="cyan", marker='o', linewidth=2, label="MS 408 (Observed)")     ax2.plot(x_jumps, y_random, color="white", linestyle='--', alpha=0.5, label="Random Alphabet Theory")     ax2.fill_between(x_jumps, y_voynich, color="cyan", alpha=0.1)     ax2.set_title("ERGONOMIC INERTIA: Physical Proximity Bias", fontsize=13)     ax2.set_ylabel("% Frequency")     ax2.set_xlabel("Sectors Traversed on Wheel")     ax2.legend()     # 3. LOCK POWER: Hardware Constraints     ax3 = plt.subplot2grid((2, 2), (1, 1))     all_modes = ['qo', 'k', 't', 'p', 'f', 'NONE']     lock_vals = [len(LOCK_A_TO_B[k]) for k in all_modes]     colors = ['crimson' if v > 0 else 'gray' for v in lock_vals]     ax3.bar(all_modes, lock_vals, color=colors)     ax3.set_title("HARDWARE LOCK POWER: Mode Selector Constraints", fontsize=13)     ax3.set_ylabel("Number of Blocked Atoms")     ax3.set_xlabel("Gallow Mode")     plt.tight_layout()     plt.show()     # --- CONSOLE AUDIT ---     print(f"\nAUDIT REPORT FOR: {file_path}")     print("="*50)     print(f"Hardware Compliance: {((len(words)-violations)/len(words))*100:.2f}%")     print(f"Mechanical Efficiency (Short Jumps 0-3): {sum(y_voynich[:4]):.1f}%")     print("-" * 50)     print("MODE SELECTOR DEFINITIONS & CONSTRAINTS:")     for mode in all_modes:         blocked = LOCK_A_TO_B[mode]         status = f"BLOCKS: {blocked}" if blocked else "NEUTRAL / BYPASS"         print(f" - MODE [{mode.upper():<4}]: {status}")     print("="*50) run_pro_audit()

Best regards,
Alicia
Reply


Messages In This Thread
[split] Volvelles or Disks - by AliciaNelPresente - 14-02-2026, 02:36 PM
RE: [split] Volvelles or Disks - by nablator - 14-02-2026, 04:29 PM
RE: [split] Volvelles or Disks - by Rafal - 14-02-2026, 04:59 PM
RE: [split] Volvelles or Disks - by DG97EEB - 14-02-2026, 05:11 PM
RE: [split] Volvelles or Disks - by RobGea - 14-02-2026, 05:33 PM
RE: [split] Volvelles or Disks - by tavie - 14-02-2026, 08:13 PM
RE: [split] Volvelles or Disks - by Bluetoes101 - 15-02-2026, 12:12 AM
RE: [split] Volvelles or Disks - by Mauro - 14-02-2026, 09:31 PM
RE: [split] Volvelles or Disks - by Rafal - 14-02-2026, 10:24 PM
RE: [split] Volvelles or Disks - by RobGea - 14-02-2026, 11:06 PM
RE: [split] Volvelles or Disks - by Bluetoes101 - 15-02-2026, 12:41 AM
RE: [split] Volvelles or Disks - by RobGea - 15-02-2026, 01:08 AM
RE: [split] Volvelles or Disks - by DG97EEB - 15-02-2026, 11:49 AM
RE: [split] Volvelles or Disks - by DG97EEB - 15-02-2026, 05:32 PM
RE: [split] Volvelles or Disks - by nablator - 15-02-2026, 01:17 PM
RE: [split] Volvelles or Disks - by nablator - 15-02-2026, 07:05 PM
RE: [split] Volvelles or Disks - by Rafal - 15-02-2026, 07:27 PM
RE: [split] Volvelles or Disks - by nablator - 15-02-2026, 08:12 PM
RE: [split] Volvelles or Disks - by DG97EEB - 15-02-2026, 09:12 PM
RE: [split] Volvelles or Disks - by DG97EEB - 15-02-2026, 10:37 PM
RE: [split] Volvelles or Disks - by Yavernoxia - 15-02-2026, 10:54 PM
RE: [split] Volvelles or Disks - by Rafal - 16-02-2026, 12:20 PM
RE: [split] Volvelles or Disks - by Koen G - 17-02-2026, 10:29 AM
RE: [split] Volvelles or Disks - by julian - 24-02-2026, 05:17 AM
RE: [split] Volvelles or Disks - by Koen G - 24-02-2026, 09:52 AM
RE: [split] Volvelles or Disks - by eggyk - 24-02-2026, 06:06 PM
RE: [split] Volvelles or Disks - by julian - 24-02-2026, 07:53 PM
RE: [split] Volvelles or Disks - by AliciaNelPresente - 24-02-2026, 08:26 PM
RE: [split] Volvelles or Disks - by eggyk - 25-02-2026, 12:49 AM
RE: [split] Volvelles or Disks - by DG97EEB - 24-02-2026, 11:35 PM
RE: [split] Volvelles or Disks - by Skoove - 25-02-2026, 03:48 AM
RE: [split] Volvelles or Disks - by nablator - 26-02-2026, 04:15 PM
RE: [split] Volvelles or Disks - by nablator - 26-02-2026, 08:52 PM
RE: [split] Volvelles or Disks - by pjburkshire - 12-03-2026, 02:14 AM
RE: [split] Volvelles or Disks - by Rafal - 12-03-2026, 02:03 PM
RE: [split] Volvelles or Disks - by eggyk - 12-03-2026, 04:48 PM
RE: [split] Volvelles or Disks - by tavie - 12-03-2026, 03:56 PM
RE: [split] Volvelles or Disks - by tavie - 12-03-2026, 05:02 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)