A beautiful web application that generates truly random numbers using the chaotic motion of the gravitational 3-body problem combined with prime number theory.
- 3-Body Physics Simulation: Real-time gravitational simulation using Runge-Kutta 4th order integration
- Prime Number Theory: Utilizes prime generation, gaps, and patterns for additional entropy
- Multiple Mixing Algorithms: XOR, modular arithmetic, hash-based, and entropy-weighted mixing
- Beautiful Visualizations:
- Animated 3-body orbits with trails
- Ulam prime spiral visualization
- Real-time distribution histograms
- Statistical Analysis: Quality metrics, autocorrelation, and distribution analysis
- Pastel UI/UX: Smooth animations and calming color palette
- Export Functionality: Save generated numbers to JSON
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run buildOpen http://localhost:5173/ in your browser.
The gravitational 3-body problem is a chaotic system with extreme sensitivity to initial conditions. The simulator:
- Uses Runge-Kutta 4th order integration for accurate physics
- Extracts chaos values from positions, velocities, and inter-body distances
- Creates unpredictable patterns ideal for randomness
Prime numbers add mathematical structure and additional entropy:
- Sieve of Eratosthenes for prime generation
- Miller-Rabin primality testing
- Prime gaps and twin primes
- Prime-based hashing functions
Four different methods combine chaos and primes:
- XOR Mixing: Bitwise XOR operations for fast mixing
- Modular Arithmetic: Uses Mersenne primes for modular reduction
- Hash-based: String hashing with prime multiplication
- Entropy-weighted: Dynamic weighting based on simulation entropy
- Generate Random Number: Create a single random number
- Generate Batch: Create multiple numbers at once
- Min/Max Values: Set the output range
- Mixing Algorithm: Choose how chaos and primes are combined
- Simulation Steps: Control how much the simulation advances (higher = more chaos)
- Reset Simulation: Start with new random initial conditions
The output panel shows:
- Mean & Variance: Distribution metrics
- Quality Score: Chi-square test for uniformity (0-100%)
- Autocorrelation: Measures independence between consecutive numbers
- Distribution Histogram: Visual representation of number distribution
- 3-Body Simulation: Watch the chaotic orbits in real-time
- Click "Clear Trails" to reset the trail visualization
- Ulam Spiral: See prime number patterns
- Twin primes highlighted with pink outlines
Click "Export Numbers" to download all generated numbers as JSON.
ThreeBodySimulator.ts: Physics engine with RK4 integrationPrimeGenerator.ts: Prime number utilities and testsRandomGenerator.ts: Mixing algorithms and statisticsThreeBodyCanvas.tsx: Canvas-based 3-body visualizationPrimeVisualizer.tsx: Ulam spiral rendererRandomOutput.tsx: Statistics and distribution displayControlPanel.tsx: User controls and configuration
- Simulation runs at 60 FPS
- Batch generation up to 10,000 numbers
- Efficient prime caching
- Canvas-based rendering for smooth animations
The UI features:
- Pastel color palette (purples, pinks, blues, greens)
- Smooth CSS transitions and animations
- Responsive grid layouts
- Glassmorphism effects
- Gradient backgrounds
The generator provides high-quality randomness suitable for:
- Simulations and Monte Carlo methods
- Game development
- Educational demonstrations
- Art and generative design
Note: While this provides excellent randomness, it's not cryptographically secure. For cryptographic applications, use crypto.getRandomValues().
The 3-body problem has no closed-form solution and exhibits:
- Sensitive dependence on initial conditions
- Non-periodic trajectories
- Positive Lyapunov exponents
- Prime Number Theorem for distribution estimates
- Miller-Rabin for probabilistic primality testing
- Prime gaps and irregularities add entropy
Contributions welcome! Areas to explore:
- Additional mixing algorithms
- More visualization options
- Different chaotic systems (Lorenz attractor, double pendulum)
- Advanced statistical tests (NIST suite)
- WebGL rendering for performance
MIT License - feel free to use in your projects!
Built with:
- React + TypeScript
- Vite
- Canvas API
- Pure mathematical chaos ✨
Enjoy generating random numbers through the beautiful dance of gravitational chaos! 🌌