Repository navigation
S10: The player, visibly bionic - #374
Merged
Merged
Conversation
The player's figure with every combination of the hydraulic legs, the datajack and the infrared eye, in every pose. Each part is painted once on every frame as a FLUX edit of the whole player's frame, checked, and laid over the whole player's frames where it changed them, so every combination is the same player but for its parts. The side view's player wears whichever combination player_state says is fitted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
Changes requested. The art and the overlay approach hold up. Three fixes and a docstring trim. What I checked:
Changes
Notes for the user, not blockers
|
…ught up - The legs check asked for 6% steel, which the whole player's sneakers nearly reach; it asks for 12%, and a test checks the whole player shows no part. - A lens wider than 17% of the head is too big: the standing and sitting eyes are painted again to the walk's size. - The side view's player wears the fitted figure if the body changed while its first atlas loaded, and SpriteFigure.wear and SideDoll's following are tested with a stand-in Phaser. - One-line docstrings; the detail is in content/dolls/README.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 22, 2026
Merged
Contributor
Author
|
Approved. All four items are fixed. Re-checked at
Non-blocking: |
jamescrosswell
marked this pull request as ready for review
October 22, 2026 17:46
This was referenced Oct 22, 2026
Merged
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.
The player's figure in every combination of the hydraulic legs, the datajack and the infrared eye, in every pose, made from the player's whole-FLUX figure. The side view shows whichever combination
player_statesays is fitted, and swaps it when that changes. Residents' figures are untouched.Closes #357
Please look at
?harness=sideview with aplayer_statedispatched for each body:The previews branch also has each screenshot on its own, and the scripts and the full-edit pipeline that made them.
Full edits or overlays: overlays, and that's what ships
I made both:
bionics.changed,bionics.laid). This is "painted once" per frame, not once overall: the legs are drawn differently in every pose.At play size, the full edits' best frames look about as good as the overlays. The overlays' seams are feathered and I can't see them. I recommend overlays, so the pipeline ships them. The full-edit code is on the previews branch if you'd rather have them.
The overlays are laid at build time, so the client still just swaps one atlas per combination. If later stages add many bionics, the same layers could be laid in the client instead, so the art grows by parts rather than combinations.
The eye's side
Both eyes show in three-quarter view, and the client mirrors every figure to face west. One painting per combination, with the eye in the near socket, by the ear, means the eye swaps sockets as the player turns. Every figure's hair parting and leading leg already do the same. Painting the far socket too would need the eye painted again on every frame, plus a figure chosen by facing. The eye would also show only as a red speck by the nose whenever the player faced away from its socket. The eye costs the most socially, so I'd rather it always shows. Either socket gets the same figure (
playerFigureId).How it's checked
Every part's frame gets #337's colour, face and scale checks against the whole player's standing figure. It also has to show its part (
bionics.missing), or it's painted again:Three changes make those checks work for the parts:
test_content.pyruns all of this on the committed atlases, along with the residents' existing checks. It also checks that:Notes
world/assets.tskeeps the fitted body fromplayer_state(playerBody), anddollFor('player')picks the figure for it.SideDollwears the new figure when it changes, through a newSpriteFigure.wear. It also catches up if the body changed while its first atlas loaded.dolls/phaser.fixture.ts).side-doll.tsandposes.tsaren't S5's, soside-scene.tsis untouched.playerState.latest.world/assets.tssubscribes at module load as well, so it doesn't depend on it.simile dolls paintnow waits for the GPU (flux.wait_for_gpu). It waits while another mflux,simile papercraftorsimile dollsrun, or an Ollama model, is using it, but not for itself or theuv runthat started it.content/dolls/player.build.REROLLS):🤖 Generated with Claude Code