Skip to content

Repository files navigation

3-Body Random Generator

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 Random Generator

🌟 Features

  • 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

🚀 Quick Start

# Install dependencies
npm install

# Run development server
npm run dev

# Build for production
npm run build

Open http://localhost:5173/ in your browser.

📖 How It Works

3-Body Problem

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 Number Theory

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

Mixing Algorithms

Four different methods combine chaos and primes:

  1. XOR Mixing: Bitwise XOR operations for fast mixing
  2. Modular Arithmetic: Uses Mersenne primes for modular reduction
  3. Hash-based: String hashing with prime multiplication
  4. Entropy-weighted: Dynamic weighting based on simulation entropy

🎮 Usage

Control Panel

  • 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

Statistics

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

Visualizations

  • 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

Export

Click "Export Numbers" to download all generated numbers as JSON.

🛠️ Technical Details

Core Components

  • ThreeBodySimulator.ts: Physics engine with RK4 integration
  • PrimeGenerator.ts: Prime number utilities and tests
  • RandomGenerator.ts: Mixing algorithms and statistics
  • ThreeBodyCanvas.tsx: Canvas-based 3-body visualization
  • PrimeVisualizer.tsx: Ulam spiral renderer
  • RandomOutput.tsx: Statistics and distribution display
  • ControlPanel.tsx: User controls and configuration

Performance

  • Simulation runs at 60 FPS
  • Batch generation up to 10,000 numbers
  • Efficient prime caching
  • Canvas-based rendering for smooth animations

🎨 Design

The UI features:

  • Pastel color palette (purples, pinks, blues, greens)
  • Smooth CSS transitions and animations
  • Responsive grid layouts
  • Glassmorphism effects
  • Gradient backgrounds

📊 Randomness Quality

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().

🧮 Mathematical Background

Chaos Theory

The 3-body problem has no closed-form solution and exhibits:

  • Sensitive dependence on initial conditions
  • Non-periodic trajectories
  • Positive Lyapunov exponents

Prime Number Theory

  • Prime Number Theorem for distribution estimates
  • Miller-Rabin for probabilistic primality testing
  • Prime gaps and irregularities add entropy

🤝 Contributing

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

📝 License

MIT License - feel free to use in your projects!

🌟 Credits

Built with:

  • React + TypeScript
  • Vite
  • Canvas API
  • Pure mathematical chaos ✨

Enjoy generating random numbers through the beautiful dance of gravitational chaos! 🌌

About

A beautiful web application that generates truly random numbers using the chaotic motion of the gravitational 3-body problem combined with prime number theory.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages