public void tick() {
        if (running) {
            List<Integer> delete = new ArrayList<Integer>();

            for (int i = 0; i < particles.size(); i++) {
                Particle3D p = particles.get(i);
                if (p.getY() < 0) {
                    delete.add(i);
                }
                p.tick();
            }

            for (int i = 0; i < delete.size(); i++) {
                particles.remove(delete.get(i) - i);
            }
        }
    }