WIP, not stable.
sudo apt install mesa-utils-extra
sudo apt install imagemagick graphviz -y
pip install cython pillow shapely msgpack_numpy pi3d gprof2dot
cd speed
python setup.py build_ext -i
python -m cProfile -o result.out -s cumulative run_env.py
gprof2dot -f pstats result.out | dot -Tpng -o result.png
from billiard_env.utils import DisplaySwitch
DisplaySwitch.use_display()
from billiard_env.pool_env import Env
Env.set_speed(999)
state = Env.get_state()
Env.act(angle=0.0, v_cue=2.0)
Env.plot_table('test1.jpg')
Env.set_state(state)
Env.plot_table('test2.jpg')
e5-2680v2 single core, ~13 shoot per seconds. no need for display
from billiard_env.pool_env import Env
import random
from tqdm import tqdm
Env.set_speed(999)
for _ in tqdm(range(100)):
Env.reset()
Env.act(angle=0.0, v_cue=1.0 + random.random())
from billiard_env.utils import DisplaySwitch
DisplaySwitch.use_display()
from billiard_env.pool_env import Env
Env.set_speed(0.032) # 1 / 0.0032 = 31.25 fps
state = Env.get_state()
Env.act(angle=0.0, v_cue=2.0, gif_filename='test.gif')
Env.plot_table('test.jpg')