static {
   Core.update.forEach(
       dt -> {
         Iterator<Particle> it = ALL.iterator();
         while (it.hasNext()) {
           Particle p = it.next();
           p.vel = p.vel.add(p.gra.multiply(dt));
           p.pos = p.pos.add(p.vel.multiply(dt));
           p.lifeTime -= dt;
           if (p.lifeTime < 0 || CubeMap.isSolid(p.pos)) {
             it.remove();
           }
         }
       });
   Sprite s = new Sprite("ball");
   Core.render.onEvent(
       () -> {
         ALL.forEach(
             p -> {
               s.scale = new Vec2(p.size);
               s.color = p.color;
               Vec3 towardsSprite = p.pos.subtract(Window3D.pos);
               s.draw(
                   p.pos.subtract(towardsSprite.cross(Window3D.UP).withLength(-s.scale.x / 2)),
                   -towardsSprite.direction2() + Math.PI / 2,
                   towardsSprite.direction() + Math.PI / 2);
             });
       });
 }