Repository navigation
pixel: craft and motion checks on sprites, pixel look, and a workflow in rounds - #177
Closed
SandroMaglione wants to merge 10 commits into
Closed
SandroMaglione wants to merge 10 commits into
SandroMaglione wants to merge 10 commits into
Conversation
Agents drawing pixel art could not see what fx already measured on effects: broken steps, thickened lines, pinholes. Nor could they watch a sheet play. The craft rules move to pixel/core/craft.ts, shared by `fx check` and `pixel lint`/`check`/`fix`/`render`/`sheet`. Sheets also get flicker on lone pixels and motion checks (area, a foot that skates, a loop seam), with the numbers in the report, including the ground speed that keeps the planted foot still. `pixel look` draws the pieces at display size on the game's backdrop beside its player, then up close with each warning's pixels ringed, so an agent judges the read before a person does. pixel.config.json gains scale, backdrops, standIn, and accept (warnings judged deliberate, with why; errors cannot be accepted). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNacJCbqZbVLaQUvuyd
A brief written before the first pixel, then check (fix or accept with why), `pixel look`, motion read as numbers, and the person's notes, the same shape as the ritmo-fx loop. Adds a table of what a person sees and the usual fix, each row traced in PIXEL-ART.md to the principle and sources behind it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNacJCbqZbVLaQUvuyd
Pictures of one frame share a row and each animation gets its own, in cells the size of their own art; up close a tile backdrop becomes its main color so it does not hide the art; the stand-in is not drawn twice when it is one of the pieces. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNacJCbqZbVLaQUvuyd
A brief, four code-drawn pieces (player, slime, chest, floor tile), and an image generator's run cycle fixed with pixel sheet, each checked and looked at together. Samples for review: the spirit still fails the size check on purpose, as the round's finding. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNacJCbqZbVLaQUvuyd
Member
Author
|
Performance regressions failed on one case: This PR changes no runtime code. Its diff touches only I'll re-run the failed job once when the rest of the workflow finishes; GitHub refuses a re-run while the workflow is still running. If it fails a second time, I'll treat it as real. Generated by Claude Code |
Shrinking a detailed reference copies its pixels, and at a game's sizes that is noise. A parts plan ranks the subject's parts and measures each as a simple shape on the reference; the tool draws each size from it with pixel rules, keeping only what that size can hold. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNacJCbqZbVLaQUvuyd
The maintainer rejected resampling a reference and asked for the main parts to be decided first, asking the person when unsure. The skill gets that procedure, with its sources. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNacJCbqZbVLaQUvuyd
Both references are free to ship (CC0 and public domain). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNacJCbqZbVLaQUvuyd
…for dropped parts Two agents used the skill with no other pointer and tripped on the same things: a given orange turned dark brown under matte, two given colors shared one ramp, a bust got an outline where the reference crops it, sprites failed the project's square sizes, and nothing said why a part was left out. Polygons and lines attached to an enlarged ring now follow it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNacJCbqZbVLaQUvuyd
…zes, hand edits From the skill's first test with fresh agents: rank the parts yourself and write it down when no one can be asked, give the smallest size its own plan, keep hand edits in a copy, and the render command's real file names. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNacJCbqZbVLaQUvuyd
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNacJCbqZbVLaQUvuyd
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.
Requested by Sandro · project thread
Brings the loop
ritmo-tools fxalready runs on effects to sprites, tiles, and animation sheets. The patterns come from a study of agent skills that draw machines and animations (Anatomy, claude-animation, rossark-motion): plan before drawing, checks that name the pixels, look before the owner does, and read motion as numbers.Tools (
@typeonce/ritmo-tools)craft.tsmoves fromfx/coretopixel/core.pixel lint,check,fix,render, andsheetnow warn on jaggies, doubles, and holes, each with its pixels. Doubles are read on the silhouette and on the outline's own color, and a box corner is no longer counted as a double (this applies tofxtoo).motiongives the area per frame, the foot's steps, andground.pixelsPerSecond, the speed the game must move the sprite at to keep the foot planted.pixel lintreads a written sprite sheet's.json.pixel look <files...>writes one PNG. The top row shows every piece at display size on the game's backdrop (a color, or a tile repeated), beside the stand-in player, all standing on one ground line. Below that, each frame is shown up close, with each warning's pixels ringed in magenta.pixel.config.jsonfields.scale,backdrops, andstandInforlook.accepttakes warnings judged deliberate, per file, each with a reason. Errors cannot be accepted, and reports list accepted warnings underaccepted.Skill (
@typeonce/ritmo)ritmo-pixel-artnow works in Rounds: write a brief in the design notes before the first pixel, then check (fix, or accept with a reason), look, read motion as numbers, and act on the person's notes. It also gets a "what you see, and the usual fix" table.PIXEL-ART.mdtraces every new rule to its principle and its sources. It adds Rickett's "Walk Cycles" on slippage, and notes that the rounds are the skill's one procedure, asked for by the maintainer.Samples (last commit, for review)
packages/tools/examples/pixel/holds one round of the workflow:pixel sheet;look.pngandlook.report.json.The fire spirit deliberately still fails the size check, since that was the round's finding. Drop or rework this commit after review.
Not in this PR
fxbanks keep their ownbackdropsandstandIn. Moving them intopixel.config.jsonwould change the bank format, so it is left for a follow-up.Checks
pnpm run checkpasses.pnpm pack:checkpasses.pnpm --dir website buildpasses.packages/tools/test/craft.test.ts.Generated by Claude Code