import React, { useState, useMemo } from 'react'; const DynamicHorizonSimulator = () => { // WILL Relational Geometry Primitives const [beta, setBeta] = useState(0.40); // Kinematic projection (velocity scale) const [ec, setEc] = useState(0.60); // Closure defect (eccentricity) const [cycles, setCycles] = useState(5); const { points, isSuperHorizon, shiftRate, deltaO } = useMemo(() => { // Exact algebraic evaluation of the relational state const betaSq = beta * beta; const tauYSq = 3 * betaSq - 2 * betaSq * betaSq; // tau_Y^2 const ecSq = ec * ec; const shapeFactor = 1 - ecSq; // 1 - e_c^2 // Geometric Accumulation const rate = tauYSq / shapeFactor; const delta_o = 2 * Math.PI * rate; const superHorizonActive = rate >= 1; // Precession outpaces orbital velocity const pts = []; const stepsPerCycle = 500; const totalSteps = stepsPerCycle * cycles; // Dynamic visual scaling based on maximum possible apoapsis const r_max = shapeFactor / (1 - ec); const scale = Math.min(200 / r_max, 180); for (let i = 0; i <= totalSteps; i++) { const o = (i / stepsPerCycle) * 2 * Math.PI; // Orbital phase (true anomaly) // w_shift = (tau_Y^2 * o) / (1 - e_c^2) const w_shift = rate * o; // Exact relational trajectory geometry const r = shapeFactor / (1 + ec * Math.cos(o - w_shift)); // Cartesian projection: O_p = (r * cos(o), r * sin(o)) const x = r * Math.cos(o) * scale; const y = r * Math.sin(o) * scale; pts.push(`${x},${y}`); } return { points: pts.join(' '), isSuperHorizon: superHorizonActive, shiftRate: rate, deltaO: delta_o }; }, [beta, ec, cycles]); return (

WILL RG: Dynamic Horizon / Phase Evolution

setBeta(parseFloat(e.target.value))} style={{ width: '100%', accentColor: '#58a6ff' }} />
setEc(parseFloat(e.target.value))} style={{ width: '100%', accentColor: '#58a6ff' }} />
Phase Shift Rate (ω_shift / o): {shiftRate.toFixed(4)}
Precession per Orbit (Δ_o): {(deltaO / Math.PI).toFixed(2)}π rad
{isSuperHorizon && (
⚠ SUPER-HORIZON KINEMATIC LOCKOUT (Rate ≥ 1)
Periodic closure broken. Trajectory in retrograde evolution.
)}
setCycles(parseInt(e.target.value))} style={{ width: '100%', accentColor: '#8b949e' }} />
{/* Reference Grid */} {/* Origin / Focal Point */} {/* Exact Geometric Trajectory */}
); }; export default DynamicHorizonSimulator;