University of Michigan Logo

HOOMD-blue is a general-purpose particle simulation toolkit, implementing molecular dynamics and hard particle Monte Carlo optimized for fast execution on both GPUs and CPUs. As a Python package, HOOMD-blue gives you the flexibility to create custom initialization routines, control simulation parameters, perform in situ analysis, use interactive notebooks, and more.

Download, read the tutorial and start using HOOMD-blue today. See the documentation for full usage information. Please cite HOOMD-blue if you use it in published work.

import hoomd
gpu = hoomd.device.GPU()
sim = hoomd.Simulation(device=gpu, seed=1)
mc = hoomd.hpmc.integrate.ConvexPolyhedron()
mc.shape['octahedron'] = dict(vertices=[
    (-0.5, 0, 0), (0.5, 0, 0),
    (0, -0.5, 0), (0, 0.5, 0),
    (0, 0, -0.5), (0, 0, 0.5)])
sim.operations.integrator = mc

Fast GPU performance

On a single NVIDIA GPU, HOOMD-blue performs an order of magnitude faster than a multi-core CPU for typical simulations. Obtain faster time to solution, execute larger simulations than were previously possible, or increase job throughput.


HOOMD-blue scales to thousands of GPUs on Summit, one of the the largest GPU accelerated supercomputers in the world. It runs just as efficiently from one to dozens of GPUs on smaller clusters like Expanse, Bridges-2, or your local GPU cluster.


HOOMD-blue supports a variety of Molecular Dynamics, Dissipative Particle Dynamics, active matter, and hard particle Monte Carlo simulation methods. Add custom actions to the simulation with C++ plugins or Python code.

Molecular dynamics

  • Rigid bodies.
  • Anisotropic particles.
  • Multiple neighbor list algorithms.
  • Active matter forces.
  • Many pair, bond, angle, dihedral, improper, wall, and external potentials.

Hard particle Monte Carlo

  • Many classes of shapes.
  • Free energy calculation.
  • Grand canonical ensemble.
  • Wall constraints.
  • Pairwise energy term.

Other features

  • Full Python API.
  • 2D or 3D triclinic simulation box.
  • Read and write GSD files.
  • Zero-copy access to particle data arrays in Python.