Skip to content

TheMehranKhan/particulus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Particulus

Particle physics collision simulator in JavaScript

A lightweight 2D particle collision simulator demonstrating elastic collisions with momentum and kinetic energy conservation.

Physics

Momentum Conservation

Total momentum is conserved in all collisions:

$$ \vec{p}_{total} = \sum_i m_i \vec{v}_i = \text{constant} $$

Elastic Collision Formula

For two particles $m_1$ and $m_2$ colliding:

$$ \vec{v}_1' = \vec{v}_1 - \frac{2m_2}{m_1+m_2} \frac{\langle \vec{v}_1 - \vec{v}_2, \vec{r}_1 - \vec{r}_2 \rangle}{||\vec{r}_1 - \vec{r}_2||^2} (\vec{r}_1 - \vec{r}_2) $$

$$ \vec{v}_2' = \vec{v}_2 - \frac{2m_1}{m_1+m_2} \frac{\langle \vec{v}_2 - \vec{v}_1, \vec{r}_2 - \vec{r}_1 \rangle}{||\vec{r}_2 - \vec{r}_1||^2} (\vec{r}_2 - \vec{r}_1) $$

Kinetic Energy Conservation

For elastic collisions:

$$ E_k = \sum_i \frac{1}{2} m_i v_i^2 = \text{constant} $$

Usage

Simply open index.html in a browser. Particles will spawn and collide automatically.

Features

  • ✅ Elastic collisions with momentum & energy conservation
  • ✅ Wall bouncing with energy loss
  • ✅ Variable mass & radius based on particle properties
  • ✅ Beautiful trail effects with gradient coloring
  • ✅ Real-time physics stats display
  • ✅ Interactive controls (pause, speed, trails)
  • ✅ Click to add particles
  • ✅ Drag to attract particles

Controls

  • Click - Add new particle at cursor
  • Drag - Attract particles toward cursor
  • Speed slider - Adjust simulation speed (0.1x - 3x)
  • Pause - Freeze simulation
  • Trails - Toggle particle trails
  • Clear - Remove all particles
  • Reset - Reset to initial state

License

MIT

About

2D particle physics collision simulator demonstrating elastic collisions with momentum and kinetic energy conservation

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages