A molecular dynamics simulation implement in Haskell + Vulkan, using FIR.
Example: (Unrealistically) supercooled gas condensing. Clusters of larger atoms form, and lose heat by emitting small atoms.
supercooled_gas.mp4
Space: Pause/Run simulation Escape: Close
- use (implemented) automatic differentiation to make compute shaders simpler and easier to experiment with different potentials
- implement ReaxFF to facilitate creating and breaking covalent bonds
- Implement more elements, with realistic properties (currently existing are essentially Hydrogen+Carbon)
- Implement neighbor list to improve performance with large number of atoms
- Make it possible to add/remove/drag atoms at runtime