forked from: WaveParticle

