Python implementation and visualisation of Particle Swarm Opitimisation, compared with Gradient Descent. Experiments, observations and conclusions of PSO discussed. Benchmark functions - Rosenbrock, Rastrigin.