The usage of GPUs (Graphics Processing Units) in graphics is essential due to their parallel feature to perform operations. In this work we implement a particle simulation program using shading languages to improve the interaction among particles. We implement a parallel algorithm to detect collisions among animated particles. Particles are stored in a linear buffer with several threads using the Compute Shader (CS). To parallelize the process data are arranged in workgroups with specified size, which represent the threads. We compare the performance of the algorithm implemented in shading languages against the sequential version. We also demonstrate how programmable GPUs are a powerful tool to display large point datasets (particles) at interactive frame rate. We research the possibilities that GPUs and shading languages offer for rendering particles and the improvements in speed and quality using instance rendering.