trick/trick_sims/SIM_billiards
Jacqueline Deans 9c8799610f
Variable Server - var_send_once and integration test (#1330)
* Adds the send_once command and message type, which allows a user to request a variable to be sent immediately and only once (intended to replace the var_add, var_send, var_clear idiom that is commonly used for this purpose)
* Minor refactoring of variable server internals to reduce repeated code
* Adds SIM_test_varserv to integration test to test basic variable server functionality
* Changes graphics client for SIM_billiards to use var_send_once as an example of intended use
* Add documentation for var_send_once in docs and tutorial
* Set exit_code_enabled in trick unit tests to be true by default
* Patch for failing bookworm build
2022-08-18 10:47:07 -05:00
..
models Variable Server - var_send_once and integration test (#1330) 2022-08-18 10:47:07 -05:00
Modified_data Minor improvement to SIM_billiards 2022-07-20 15:56:02 -05:00
RUN_break Refactor graphics client to run in a single thread; remove extraneous files 2022-07-14 16:07:14 -05:00
RUN_hexagon Refactor graphics client to run in a single thread; remove extraneous files 2022-07-14 16:07:14 -05:00
RUN_test Refactor graphics client to run in a single thread; remove extraneous files 2022-07-14 16:07:14 -05:00
README.md Minor improvement to SIM_billiards 2022-07-20 15:56:02 -05:00
S_define Refactor graphics client to run in a single thread; remove extraneous files 2022-07-14 16:07:14 -05:00
S_overrides.mk Refactor graphics client to run in a single thread; remove extraneous files 2022-07-14 16:07:14 -05:00

Billiards Sim

Playable simulation of a billiards table. Includes friction, impulse collision handling, and cue forces currently.

Angular forces on cue ball, user control of parameters, and detailed physics writeup coming soon :)



Pool Table Display

Located in models/graphics/cpp, uses the Libigl library for visualization.

Compile

libigl must be downloaded from Github : https://github.com/libigl/libigl

Clone it somewhere accessible, like your home directory. It does not need to be compiled.

libigl depends on Eigen3, which may (or may not) need to be downloaded and installed : https://eigen.tuxfamily.org/index.php?title=Main_Page

To compile:

cd models/graphics/cpp
mkdir build
cd build
cmake ..
make

The provided input files will automatically run and connect to the display.