Releases: ekiefl/pooltool
Releases · ekiefl/pooltool
v0.5.0
Dependency changes
- Dropped support for Python 3.10
- Added support for Python 3.13 (dev version is now 3.13)
- Bumped poetry dev version from 1.8.3 -> 1.8.4
Misc
- Typing conventions updated (
List->list,Optional[str]->str | None, etc) - Split
pooltool.ani.__init__intopooltool.ani.constantsandpooltool.config.settings - Added
interpolate_ball_statesto calculate exact ball states at arbitrary timestamps - Removed
terminal.pyand replaced stdout progress bars/info utilities withrich
Interface changes
- Instructions are displayed whenever held-key actions are performed (e.g. when holding g, the message "Select a ball to move. Click to confirm while holding 'g'." appears on screen
- Parallel playback has been implemented. Press enter to toggle between single and parallel playback
Menu system
- Settings are stored as YAML and isomorphically structured as attrs classes. A settings proxy will lazily load settings so that values changed dynamically will be reflected whenever accessed during runtime.
- Attrs field metadata is used as directives to build the menu GUI, with the following menu element possibilities: title, heading, button, entry, dropdown, checkbox.
- Physics settings remain inaccessible through the GUI and must be modified by directly modifying the physics YAML
Documentation changes
- Rehauled docs
- Dropped jupytext -- .ipynb files are now directly comitted to the repo
- Added
make docs-live(live preview) andmake docs-with-notebooks(executes, rather than merely rendering, notebooks) - Updated API hierarchy (breaking changes)
- Fixed all broken cross-references in notebooks, markdown, and docstrings.
- Added developer guide
PRs
- Correct dimensions by @erdo100 in #199
- Headstring + vectorize() by @ekiefl in #200
- Fix invalid quadratic roots in ball_linear_cushion_collision_time by @derek-mcblane in #201
- Parallel multisystem playback by @ekiefl in #202
- Add test for overlapping racks by @ekiefl in #203
- Fix structuring when history is empty by @ekiefl in #204
- Fix parallel playback speed controls by @ekiefl in #207
- Fix Alciatore Ball-Ball Friction by @derek-mcblane in #205
- Game mode on-screen instructions by @ekiefl in #208
- Buff Makefile/precommit/CI + h11 security fix by @ekiefl in #209
- Bump to 3.13 and drop 3.9 by @ekiefl in #211
- Fix FrictionalInelastic Incorrect Spin for No-Slip by @derek-mcblane in #212
- Docstring buff by @ekiefl in #216
- Maintenance by @ekiefl in #220
- Ek/0.5 release prep by @ekiefl in #221
- Introduction of SceneController for granular asset loading and unloading by @ekiefl in #222
- Add menu options by @ekiefl in #223
- Esc unfocuses DirectEntry by @ekiefl in #224
- Pin poetry version in dev deps so it isn't bumped by @ekiefl in #225
Full Changelog: v0.4.4...v0.5.0
v0.4.4
What's Changed
- Consolidate config options by @ekiefl in #189
- Fix numerical stability of Mathavan + make default by @ekiefl in #192
- Demo fix by @ekiefl in #193
- Billiard cushion height buff by @ekiefl in #194
- fix LICENSE link in CONTRIBUTING.md by @derek-mcblane in #190
- Change default ball-ball by @ekiefl in #198
Full Changelog: v0.4.3...v0.4.4
v0.4.3
What's Changed
- Add simple frictional inelastic ball-ball collision model by @derek-mcblane in #155
- Fix Error in Ball-Ball Frictional Inelastic No-Slip Velocity Calculation by @derek-mcblane in #157
- Fixes for Cuestick-Ball Collision by @derek-mcblane in #163
- Safeguard cue ball ID mismatch by @ekiefl in #164
- Fix example by @ekiefl in #165
- Two players by default by @ekiefl in #168
- Visualisation carom balls by @erdo100 in #169
- Add is_point to three_cushion ruleset by @ekiefl in #172
- Fix is_point in ruleset.three_cushion by @erdo100 in #173
- Add some get_* methods to API by @ekiefl in #174
- Update examples by @ekiefl in #175
- Fix Error in Ball-Ball Frictional Inelastic No-Slip Velocity Calculation (Again) by @derek-mcblane in #177
- Refactor Resolver serialization + ball ball friction sub models by @ekiefl in #171
- Account for Tip Geometry to Determine Contact Point by @derek-mcblane in #182
- Fix cue contact point offset coordinate system mismatch between GUI and physics by @derek-mcblane in #181
- Add Mathavan 2010 as WIP by @ekiefl in #183
- Fix 184 by @ekiefl in #185
- Catch near-zero case in quadratic solver by @ekiefl in #186
New Contributors
Full Changelog: v0.4.2...v0.4.3
v0.4.2
What's Changed
Physics realism of the ball-ball collision has been significantly increased via the introduction of the Mathavan model.
New Contributors
Full Changelog: v0.4.1...v0.4.2
v0.4.1
What's Changed
- README has been overhauled
- Docs have been overhauled (https://pooltool.readthedocs.io/en/latest/), and now support an Examples section of rendered notebooks
- Installation instructions are clear and simplified
- Test files no longer exist in the package, and are found in a mirroring directory
tests - Event caching speeds up simulation times considerably: #133
- Numba functions are compiled when the user first enters the interactive interface. A corresponding translucent menu now pops up
- Add deflection angle physics (squirt): #139
- The
ShotViewerclass has a new abstraction,pooltool.showand window management is automatically handled. No more idle window when there is nothing being visualized.
Full Changelog: v0.4.0...v0.4.1
v0.4.0
v0.3.3
v0.3.2
v0.3.1
v0.3.0
What's changed?
This release marks the maturation of pooltool into a proper python library, and comes in anticipation for its submission to pyOpenSci and JOSS.
- Docstrings have been added for core of the library
- Documentation, including an API reference, are available on readthedocs
- The API hierarchy has been modified with design in mind. The most common objects are surfaced to the top-level API layer (
import pooltool as pt; pt.System) and nearly all other objects can be accessed by subpackage cascading (import pooltool as pt; pt.ruleset.utils.respot) - Continuous integration has been implemented to encourage code standards regardless of contributor.
- The transition from mypy to pyright for type-checking is now complete
isortandblackhave been replaced with the far fasterruff
PRs
- Camera changes by @ekiefl in #108
- Table specs improvement by @ekiefl in #109
- Get started with Sphinx and readthedocs by @ekiefl in #111
- Use Napolean for Google -> RST conversion by @ekiefl in #112
- Autodoc touchups by @ekiefl in #113
- Essential docstring coverage by @ekiefl in #115
- CI by @ekiefl in #116
- rm vscode by @ekiefl in #117
- Notebook for validating 30 degree rule by @zhaodong-wang in #119
- Api redesign by @ekiefl in #120
New Contributors
- @zhaodong-wang made their first contribution in #119