I made procedural fireworks using geo-nodes and faking simulations using scene data and attributes. Rendered in Eevee and instancing a lot of ico spheres to save on performance.