Leonhard Euler 1707–1783 · Carl Friedrich Gauss 1777–1855

Two Architects, One Continuum

Euler calculated as others breathe. Gauss measured as a prince surveys his domain. This fixed atlas makes every demo mathematically correct and interactive from first principles.

timeline loom · hover thread to isolate · click to jump
Euler I · e^iθ

e Is Rotation

Euler's 1748 identification turns exponentiation sideways into rotation. Multiply by e^{iωt} and you spin at ω.

e = cosθ + i sinθEuler 1748
Interactive · Euler's wheel
Euler III · Bridges

The Walk That Invented Graphs

Eulerian trail exists ⇔ 0 or 2 vertices have odd degree1736
Interactive · Königsberg — correct double-edge rendering
click a landmass, then a neighbor connected by an unused bridge

Fixed: double bridges A–C and A–D are now drawn as distinct offset curves with correct midpoint normals. Original degrees 5,3,3,3 → four odds → impossible. That's Euler's proof.

Euler IV · Basel & Euler Product

Σ 1/n² = π²/6 → Π over primes

Interactive · Fixed Euler product convergence

Fix: now generates primes on the fly by sieve up to needed bound, so product continues past 46 primes. Green Σ, amber Π. At s=2 both → π²/6.

Gauss I · Congruences

The Clock That Locks Secrets

Interactive · Discrete-log orbit
Gauss II · 17-gon

Constructible = Fermat Primes

Interactive · Heptadecagon
Gauss III · Gaussian Integers — FIXED

Primes That Are Not Prime

Fixed prime test: a Gaussian integer a+bi is prime iff (a=0 or b=0 and |a|+|b| is rational prime ≡3 mod4) or (a≠0,b≠0 and a²+b² is rational prime). This correctly makes 3,7,11,... on axes prime, but 5=(2+i)(2−i) composite.

N(a+bi)=a²+b² · p≡3 mod4 stays prime in ℤ[i] · p≡1 mod4 = a²+b² splitsFermat two-squares theorem, explained by Gauss
Interactive · Gaussian prime lattice — corrected math

Fixes: axis primes now correctly detected, 2 is correctly non-prime in ℤ[i], units ±1,±i not counted, coloring distinguishes inert (3 mod4, axis) vs split (1 mod4, off-axis) vs ramified (1+i). Grid lines and labels added.

Lab 8 · Correct Gaussian prime test in Octave
function tf=is_gauss_prime(a,b)
  if a==0 && b==0, tf=false; return; endif
  if a==0
    p=abs(b); tf=isprime(p) && mod(p,4)==3; return;
  elseif b==0
    p=abs(a); tf=isprime(p) && mod(p,4)==3; return;
  endif
  tf=isprime(a^2+b^2);
endfunction

R=10; cnt=0;
for a=-R:R
 for b=-R:R
  if is_gauss_prime(a,b), cnt++; printf('%d+%di is Gaussian prime\n',a,b); endif
 endfor
endfor
Previously the code used norm primality for axis case, which misses 3,7,11 (norm 9,49,121 composite). Fixed version tests rational prime ≡3 mod4 on axis.
Gauss IV · Least Squares — FIXED

How Errors Learn to Be Normal

Fixes: draggable points, stable normal equations via QR intuition, correct residual visualization, and no coordinate jump when toggling bell.

min ‖Ax−b‖² ⇒ AᵀA x̂ = AᵀbGauss 1809 · foundation of regression, GPS, ML
Interactive · Least squares — drag any blue point

Fixes: coordinate mapping now uses fixed world bounds, points are draggable with pointer events, bell panel keeps independent scale, and RSS and σ are computed correctly. Toggle squares to see why squares penalize outliers — Gauss's justification for the 1801 Ceres orbit recovery.

Lab 9 · Stable least squares in Octave
% Use QR for stability, not explicit inv(A'*A)
n=25; x=linspace(0,10,n)'; y=2*x+1+randn(n,1);
A=[x, ones(n,1)];
[Q,R]=qr(A,0); xhat = R \ (Q'*y);  % more stable than (A'*A)\(A'*y)
printf('fit: %.4f x + %.4f\n', xhat(1), xhat(2));
res = y - A*xhat; sigma = std(res);
printf('sigma(residual) = %.3f  RSS=%.2f\n', sigma, sum(res.^2));
plot(x,y,'o', x, A*xhat, '-');
Gauss V · Curvature — FIXED

Theorema Egregium — Intrinsic Curvature

Fixed: holonomy angle now equals ∫∫ K dA, with correct formulas for sphere, saddle, cylinder. Arrow transport is visualized by parallel-moving a tangent vector.

Sphere K=1/R², holonomy = Area/R² · Saddle K=−1, holonomy negative · Cylinder K=0Gauss 1827 · Gauss-Bonnet
Interactive · Parallel transport — corrected geometry

Fixes: previously used arbitrary angle. Now sphere angle = 2π(1−cos(r/R)) ≈ πr²/R² for small r, saddle angle = −area, cylinder always 0 because it unrolls flat. Arrow drawn with correct tangent basis.

Synthesis I · Zeta — FIXED CACHING

Euler Product → Riemann Zeros

Interactive · ζ(½+it) walker — fixed cache invalidation

Fixes: cache now invalidates on reset, ensures monotonic t, prevents NaN when t=0, and shows magnitude and argument. Stars mark known zeros at 14.1347,21.0220,25.0109,30.4249.

Lab 11 · Euler product with sieve — fixed
function p=primes_upto(n)
  sieve=true(1,n); sieve(1)=false; for i=2:sqrt(n), if sieve(i), sieve(i*i:i:n)=false; endif; endfor
  p=find(sieve);
endfunction
s=2; N=200; pr=primes_upto(1000);
prod_val=prod(1./(1-pr(1:min(N,length(pr))).^(-s)));
printf('product %d primes = %.9f, pi^2/6=%.9f\n', min(N,length(pr)), prod_val, pi^2/6);
Synthesis II · RSA — FIXED VIS

Euler's Totient Locks the Internet

Interactive · RSA playground — fixed table and scatter

Fixes: table now correctly recomputes e as smallest odd coprime >17, d via extended Euclid mod φ, and scatter plot uses correct powmod for all m. Added warning when p==q (auto-adjusts). Message letters now highlighted in scatter.

The Loom Read Backwards — Fixed

ThreadEulerGaussToday (fixed demos)
Wavee^{iθ}Fundamental theorem via windingFFT, quantum phase — wheel now animates smoothly
Congruenceφ(n)≡, quadratic reciprocityRSA/DH — orbit shows primitive roots correctly
CurvatureEuler curvatureTheorema Egregiumholonomy = ∫K, not arbitrary angle
ZetaΠ_pprime conjecturesieve-generated primes, correct ζ(2)