×
Brownian Motion Simulation
What is Brownian Motion?
Brownian motion is the random movement of particles suspended in a fluid (liquid or gas) resulting from their collision with fast-moving molecules in the fluid. This simulation demonstrates the physics of particle interactions, including:
- Particle collisions: Particles repel each other when they get too close
- Brownian forces: Random forces that cause particles to move erratically
- Boundary interactions: Particles bounce off the walls of the container
- Gravity: Optional gravitational force can be applied
Controls:
- ⏯️ Playback: Reverse time direction, Pause/Resume, increase/decrease simulation speed (×2, ÷2)
- ⚙️ dt (Time Step): Adjust precision - Reset, ×2, ×10, ÷2, ÷10. Smaller dt = more accurate but slower
- 👁️ Display: Toggle particle visibility
- 🔷 Object: Create predefined shapes:
- None: No object
- HV Shape (small): Small H-V pattern
- Geometric Shapes: Hexagon, Spiral, Flower, Diamond, Plus, Pentagon, Octagon
- Rings: Double Ring, Big Ring
- Spiral Star: Star-shaped spiral pattern
- Fractal Tree: Starfish-like fractal pattern
Set object radius (R) before creating
- ⚛️ Particles:
- Count: Number of particles (0-10000)
- Layout: Grid (ordered) or Random placement
- Radius: Particle size
- Zero velocity: Start particles with zero initial velocity
- 🌍 Gravity: Enable and set X/Y components (default Y=60 for downward gravity)
- ⚙️ Integration Method:
- Euler (Semi-Implicit): Fast, good for most cases, stable
- Runge-Kutta 4 (RK4): More accurate, better for complex dynamics, slower
- Verlet: Best energy conservation, ideal for long simulations, symplectic
- 💥 Collision Model:
- Elastic (Spring): Particles repel with spring-like forces, energy conserved (default)
- Inelastic (Damped): Damped spring forces, energy dissipates over time
- Hard Body: Instantaneous impulse-based collisions, perfect momentum transfer, no overlap
- 🔄 Actions: Restart simulation, Show Help
- 👋 HotHand: Click on canvas to create a particle manipulator. Click and drag to move particles, click again to release
Status Bar:
- Left side: Legend showing particle types (Normal, Under Force, HotHand)
- Right side: Real-time statistics:
- Particles: Current particle count
- Time Step: Current dt value
- Kinetic Energy: Total kinetic energy (0.5 × m × v²)
- Potential Energy: Total potential energy from particle compressions
- Total Energy: Sum of kinetic + potential energy
Tips:
- Start with default settings (36 particles, Euler, Elastic) to see basic Brownian motion
- Create different shapes and watch how they interact with particles - shapes are made of particles too!
- Enable gravity (Y=60) to see particles fall and settle at the bottom
- Use HotHand to push particles around and observe their reactions
- Try different integration methods: Euler for speed, RK4 for accuracy, Verlet for energy conservation
- Hard Body collisions work best with RK4 or Verlet integration - particles won't stick to boundaries
- Watch the energy statistics - in Elastic mode with Verlet, total energy should remain relatively constant
- Adjust dt for faster (larger dt, less accurate) or slower (smaller dt, more accurate) simulations
- Try creating a Fractal Tree object with many particles for interesting dynamics
- Use "Zero velocity" checkbox to start particles at rest, then watch them accelerate due to collisions
(c) kusaku 2001 - Brownian Motion Simulation
No rights reserved - Modernized for modern browsers