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

No releases published

Packages

 
 
 

Contributors

Languages