Rename the project to Pocket Physics, and make the play link work - #2
Merged
Conversation
"CueAI" led with the part of the project that matters least. The learned
surrogate is one tier of four, and an -AI suffix reads as a wrapper around
someone else's model rather than a validated simulator with a measured
speedup. Pocket billiards is the sport, and "pocket" is also the claim:
a rack shot that costs 4.6 s to integrate fits in 0.60 ms and a browser tab.
The import path moves cueai -> pocket, the distribution becomes
pocket-physics, and the console scripts become pocket-{ui,train,api}.
__version__ now comes from the installed metadata instead of a literal that
had drifted to 0.1.0 against 0.3.0 in pyproject.
The repository URL is deliberately untouched, so every link still resolves.
Co-authored-by: BruceMoseti <BruceMoseti@users.noreply.github.com>
The published page starts with the table, but nothing linked to it: the README buried the link under a heading, the page's own nav offered the repository and the explainer but not the game, and there was no way back up from the bottom of the explainer. The game area is now an anchor, so a link can land on the table rather than the masthead, and the README, the design doc and the page nav all point at it. The two published URLs are reference links defined in one place, so renaming the repository is a one-line change rather than a hunt. Also states in one line what the project is, since "Pocket Physics" does not say it on its own. Co-authored-by: BruceMoseti <BruceMoseti@users.noreply.github.com>
The deploy job has failed on every push to main since the page existed: configure-pages asks the API for the Pages site, the repository never had one, and the published link in the README pointed at a 404. Setting enablement lets the workflow create the site itself with the permissions it already holds, so the link works without anyone opening the settings page. Co-authored-by: BruceMoseti <BruceMoseti@users.noreply.github.com>
The clip and the stills carried the old name in the masthead, so they are re-recorded. While doing it the inspector still came out showing a cue ball that had dropped after rebounding off a rail: the 5/7 handover it exists to illustrate was there, but the panel was captioned POCKETED and the trace stopped mid-roll. The aim already refuses headings that run at a pocket, which only covers the path to the first rail, so the outcome is now checked too and a scratch buys another attempt. Co-authored-by: BruceMoseti <BruceMoseti@users.noreply.github.com>
The play link is one attribute away from scrolling nowhere, and nothing would have noticed: the page still loads, the game still plays. The browser test now resolves every in-page href and checks that #play is the element containing the table, rather than merely existing somewhere on the page. Co-authored-by: BruceMoseti <BruceMoseti@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Two problems with how the project introduced itself.
The name led with the weakest claim. "CueAI" put the learned model in the title, when the surrogate is one tier of four and the interesting work is the validated simulator underneath it. To the audience this repository is aimed at, an
-AIsuffix reads as a wrapper around someone else's model rather than a physics engine with a measured speedup.The play link was a 404. The README has advertised a playable page since it existed, and the deploy job has failed on every push to
main:configure-pagesasks the API for a Pages site, the repository never had one, and nobody was told.What changed
Renamed to Pocket Physics. Pocket billiards is the sport — the same term the references use, Marlow's The Physics of Pocket Billiards among them — and "pocket" is also the claim: a rack shot that costs 4.6 s to integrate fits in 0.60 ms and a browser tab. The import path moves
cueai→pocket, the distribution becomespocket-physics, the console scripts becomepocket-{ui,train,api}, and__version__now comes from the installed metadata instead of a literal that had drifted to0.1.0against0.3.0inpyproject.toml.The repository URL is deliberately untouched, so every link, badge and clone line still resolves.
The rebranded masthead above the table, mid-game
The game is now one click away from every front door. The table is an anchor, so a link lands on it rather than on the masthead; the README leads with it, the design doc points at it, the page nav offers Play first, and the bottom of the explainer has a way back up. Both published URLs are reference links defined in one place, so renaming the repository is a one-line change rather than a hunt.
The deploy can now publish.
configure-pagesgetsenablement: true, so the workflow creates the Pages site with permissions the job already holds.Two things found on the way.
POCKETEDand the trace stopped mid-roll. The aim already refuses headings that run at a pocket, which only covers the path to the first rail, so the capture now checks the outcome too and a scratch buys another attempt. The still it settles for is below: measured roll speed 2.26 m/s against 5/7·v₀ = 2.26 m/s predicted.hrefand asserts that#playis the element containing the table. Confirmed it fails when the attribute is removed, rather than passing vacuously.The cue-ball inspector showing the slip-to-roll handover landing on the predicted speed
Checks
Everything run locally on the committed tree:
ruff,mypy,pytestsite_facts.py --checkexport_parity_cases.py --checkparity.mjsselfplay.mjs --games 6browser.mjsinput.mjsOne thing left for a human
Renaming the GitHub repository to
pocket-physicswould finish the job. GitHub redirects the old clone and badge URLs, but the Pages URL follows the repository name, sobrucemoseti.github.io/cueai/would becomebrucemoseti.github.io/pocket-physics/. That is the one line at the bottom of the README (and the same URL indocs/DESIGN.md) — nothing else depends on it.To show artifacts inline, enable in settings.