Zero-Vortex: A Geo-Arithmetic Paradigm for the Yang-Mills Mass Gap
Description
The Standard Model of particle physics describes fundamental particles but fails to explain the origin of their mass hierarchy. This paper introduces the "Zero-Vortex," a new paradigm positing that the particle mass spectrum is a direct manifestation of the geometry of the Riemann Zeta function's non-trivial zeros. The geometric 3d model, termed the 'Pirolo Vortex,' once calibrated using the experimental masses of two anchor particles (e.g., the Electron and Quark Up), successfully reproduces the masses of the 10 remaining fundamental particles with an average accuracy exceeding 98%. Furthermore, this paradigm suggests a geometric mechanism for the Yang-Mills mass gap, where the existence of a minimal mass is determined by the position of the first non-trivial Riemann zero.
This work presents a novel and robust connection between number theory and the fundamental structure of our universe.
News: electron mass predicted successfully.
Please be aware that this is a pre-print version and contains some formatting errors, notably with table rendering and figure numbering. A fully corrected and professionally formatted Version 2.0 will be uploaded to this record shortly. The scientific content, data, and conclusions presented herein are accurate. Thank you for your understanding.
Author's Note & Call for Collaboration:
As an independent researcher, my primary goal is to share these findings with the scientific community for review and further development.
To facilitate a broader discussion among mathematicians and physicists, I am currently in the process of submitting this manuscript to the arXiv preprint server. The final barrier for an independent researcher is the endorsement requirement for the `math.NT` (Number Theory) category.
I would be grateful for any guidance or support from established members of the community in navigating this final procedural step. If you are qualified to endorse new authors on arXiv and find this work to be a serious contribution worthy of discussion, your endorsement would be invaluable.
The necessary information provided by arXiv at link below
Endorsement Code: 8W9JAY
For feedback, criticism, or collaboration, please feel free to contact me at:
andrespirolo@gmail.com
Thank you for your time and consideration.
Related Work
Other preprints by this author:
https://zenodo.org/records/17267849
https://zenodo.org/records/17239094
https://zenodo.org/records/17204948
https://zenodo.org/records/17096978
Contact
andrespirolo@gmail.com
Methods
# ===================================================================
# SELF-CONTAINED SCRIPT: ORDER VS. CHAOS
# (The Bifurcation Visualizer)
# -------------------------------------------------------------------
# Author: Andrés Sebastián Pirolo
# Date: September 26, 2025
#
# Welcome, researchers!
#
# This script provides a standalone demonstration of a core principle
# from the "Zero-Vortex" paradigm. It visually explores how a simple,
# ordered system (primes mapped through trivial harmonics) collapses,
# but then "bifurcates" into a complex, segregated structure when a
# small amount of "chaos" from the Riemann Zeros is introduced.
#
# This is designed to be a conceptual proof-of-concept that anyone
# can run without needing large external datasets.
#
# Feel free to experiment with the parameters in the CONFIG section!
#
# Dependencies: numpy, matplotlib, sympy
# To install sympy, run in your terminal:
# pip install sympy contact: andrespirolo@gmail.com
# ===================================================================
import numpy as np
import matplotlib.pyplot as plt
from sympy import primerange, jacobi_symbol
print("Initializing the 'Order vs. Chaos Visualizer'...")
# --- EMBEDDED DATA (To be self-sufficient) ---
# The first 30 non-trivial zeros of the Riemann Zeta Function (imaginary part)
# Source: Andrew Odlyzko
HARDCODED_NON_TRIVIAL_ZEROS = np.array([
14.134725, 21.022040, 25.010858, 30.424876, 32.935062,
37.586178, 40.918719, 43.327073, 48.005151, 49.773832,
52.970321, 56.446248, 59.347044, 60.831779, 65.092149,
67.079811, 69.546402, 72.067158, 75.704691, 77.144840,
79.337375, 82.910381, 84.735493, 87.425275, 88.809111,
92.491899, 94.651344, 95.870634, 98.831194, 101.317851
])
# --- CONFIGURATION PANEL ---
CONFIG = {
'PRIME_LIMIT': 50000,
'JACOBI_BASES': [3, 5],
'NUM_TRIVIAL_HARMONICS': 100,
'CONTAMINATION_RATIO': 0.05, # 5% chaotic influence
}
# --- CORE FUNCTIONS ---
def calculate_jacobi_signatures(primes, bases):
signatures = np.zeros(len(primes), dtype=int)
for i, p in enumerate(primes):
if p > 2 and p not in bases:
prod = 1
for b in bases:
prod *= jacobi_symbol(b, p)
signatures[i] = prod
return signatures
def map_to_vortex(numbers, basis):
log_nums = np.log(numbers.astype(np.float64))
args = np.outer(basis, log_nums)
x = np.tanh(np.mean(np.cos(args), axis=0))
y = np.tanh(np.mean(np.sin(args), axis=0))
z = np.log10(numbers.astype(np.float64))
return np.stack((x, y, z), axis=-1)
# --- MAIN EXECUTION FLOW ---
# Phase 1: Preparation
print("\n--- Phase 1: Generating Primes and Calculating Signatures ---")
primes = np.array(list(primerange(1, CONFIG['PRIME_LIMIT'])))
signatures = calculate_jacobi_signatures(primes, CONFIG['JACOBI_BASES'])
mask_plus_one = (signatures == 1)
mask_minus_one = (signatures == -1)
# Phase 2: Pure Order Experiment
print("\n--- Phase 2: Projecting with Pure Order Lens (Trivial Harmonics) ---")
trivial_basis = np.array([1 / (2 * n) for n in range(1, CONFIG['NUM_TRIVIAL_HARMONICS'] + 1)])
coords_pure_order = map_to_vortex(primes, trivial_basis)
# Phase 3: Hybrid Chaos Experiment
print("\n--- Phase 3: Projecting with Hybrid Chaos Lens ---")
num_chaotic_to_use = int(len(trivial_basis) * CONFIG['CONTAMINATION_RATIO'])
chaotic_basis = np.random.choice(HARDCODED_NON_TRIVIAL_ZEROS, num_chaotic_to_use, replace=False)
hybrid_lens = np.concatenate([trivial_basis, chaotic_basis])
coords_hybrid_chaos = map_to_vortex(primes, hybrid_lens)
print(f"Hybrid lens created with {len(trivial_basis)} order + {len(chaotic_basis)} chaos elements.")
# Phase 4: Comparative Visualization
print("\n--- Phase 4: Generating Comparative Visualization ---")
fig = plt.figure(figsize=(24, 12))
fig.patch.set_facecolor('black')
plt.rcParams['legend.fontsize'] = 12
# Plot 1: PURE ORDER
ax1 = fig.add_subplot(1, 2, 1, projection='3d')
ax1.set_facecolor('black')
ax1.scatter(coords_pure_order[mask_plus_one, 0], coords_pure_order[mask_plus_one, 1], coords_pure_order[mask_plus_one, 2], c='#00aaff', label='Signature +1', s=5, alpha=0.7)
ax1.scatter(coords_pure_order[mask_minus_one, 0], coords_pure_order[mask_minus_one, 1], coords_pure_order[mask_minus_one, 2], c='#ff3864', label='Signature -1', s=5, alpha=0.7)
ax1.set_title('1. Pure Helix (0% Chaos)\nResult: Collapse into Universal Attractor', color='white', fontsize=18)
legend1 = ax1.legend(facecolor='black', edgecolor='gray')
for text in legend1.get_texts(): text.set_color('white')
# Plot 2: HYBRID CHAOS
ax2 = fig.add_subplot(1, 2, 2, projection='3d')
ax2.set_facecolor('black')
ax2.scatter(coords_hybrid_chaos[mask_plus_one, 0], coords_hybrid_chaos[mask_plus_one, 1], coords_hybrid_chaos[mask_plus_one, 2], c='#00aaff', label='Signature +1', s=5, alpha=0.7)
ax2.scatter(coords_hybrid_chaos[mask_minus_one, 0], coords_hybrid_chaos[mask_minus_one, 1], coords_hybrid_chaos[mask_minus_one, 2], c='#ff3864', label='Signature -1', s=5, alpha=0.7)
contamination_percent = CONFIG['CONTAMINATION_RATIO'] * 100
ax2.set_title(f'2. Hybrid Helix ({contamination_percent:.0f}% Chaos)\nResult: Bifurcation and Segregation', color='white', fontsize=18)
legend2 = ax2.legend(facecolor='black', edgecolor='gray')
for text in legend2.get_texts(): text.set_color('white')
# Axis styling for both plots
for ax in [ax1, ax2]:
ax.xaxis.pane.set_facecolor('black'); ax.yaxis.pane.set_facecolor('black'); ax.zaxis.pane.set_facecolor('black')
ax.grid(color='gray', linestyle='--', linewidth=0.5, alpha=0.3)
ax.tick_params(colors='gray')
ax.set_xlabel('X Component', color='gray', fontsize=12); ax.set_ylabel('Y Component', color='gray', fontsize=12); ax.set_zlabel('Z Component (log scale)', color='gray', fontsize=12)
plt.tight_layout()
plt.show()
Files
Pirolo-Arithmetic for the YMills_8.pdf
Files
(4.8 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:58a4b3ba26fab105a7c01a973ee7f94b
|
4.8 MB | Preview Download |