atom generation