Uzumaki is an interactive spiral visualization app that renders ten mathematical spiral algorithms across web and Apple platforms. From the elegant Fibonacci golden spiral to the chaotic Uzumaki pattern, each algorithm produces mesmerizing animated artwork.
Spiral Algorithms
Each spiral follows a specific mathematical formula in polar coordinates:
| Spiral | Formula | Natural Examples |
|---|---|---|
| Fibonacci | r = a * phi^(2*theta/PI) | Nautilus shells, galaxies |
| Vogel | theta = n * 137.5 deg | Sunflower seeds, pinecones |
| Archimedean | r = a + b * theta | Watch springs, coiled rope |
| Fermat | r = a * sqrt(theta) | Optical lenses |
| Logarithmic | r = a * e^(b*theta) | Hurricane formations |
| Curlicue | phi = 2PIphi*n^2 | Fractal art |
Technical Implementation
The web app uses Web Workers with TypedArrays for parallel spiral generation:
function generateSpiralTyped(params: SpiralParams): TypedSpiralPoints {
const points = createTypedPoints(numSteps);
const rotation = time * spinRate;
for (let i = 0; i < numSteps; i++) {
const theta = i * stepSize + rotation;
const r = calculateRadius(i * stepSize, params);
setPoint(points, i, r * Math.cos(theta), r * Math.sin(theta));
}
return points;
}
The Swift implementation uses SIMD for vectorized math operations, achieving the same 60fps performance on Apple devices.
Platform Features
- Web/PWA: Shareable URLs, keyboard shortcuts, PNG export
- iOS/iPadOS: Pinch-to-zoom, pan gestures, full-screen mode
- macOS: Menu bar integration, keyboard shortcuts
- watchOS: Digital Crown zoom, swipe navigation, complications