Repository navigation
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
EASEL STUDY REVIEW — optional companion prototype An experiment by Russell Parrish, inspired by Alice’s Still Wet studio. Original studio: https://stillwet.art/ Easel and painter: https://github.com/aliceisjustplaying/claude-paint GPT studio: https://parallaxmetrology.com/vtl-studio/ Claude studio: https://parallaxmetrology.com/drawing-machine/ This repository is an independent companion, not an official upstream extension. What this contributes A small operator-mediated study shelf: render trusted Easel Lua logs at sketch size, inspect their images together, record a critique and painter response, and preserve the actual alternatives and decisions. Easel remains responsible for every mark. No renderer, brush, prompt or pi extension is replaced. This is not a working autonomous critic, automatic study inventor, or an artistic-quality gate. It does not claim our process improves Alice's paintings. The bundled images are deliberately authored integration fixtures, not artwork. Requirements Python 3.10+ (standard library only) and an existing Easel executable supporting easel run LOG --width 600 --out IMAGE No API credentials, subscription adapters or additional Python packages. Run Lua logs you trust; this wrapper is not a security sandbox for Lua. A replay requires a self-contained log and the correct tube box. External assets or environment-dependent Lua need preparation by the operator. Try the example from this folder python3 review.py render example/studies.json trial --easel /path/to/easel python3 review.py record trial example/decision.json Open trial/index.html to inspect the actual images and recorded critique. The included example/run is the already-executed local run; commands above use another directory so original evidence is not overwritten. python3 -m unittest -v Connect to Alice's painter 1. Leave harness/painter unchanged. Have the painter develop independent small studies in separate studios, each with its own complete Lua history. 2. At an operator-chosen checkpoint, copy those logs into a manifest like example/studies.json. State the actual spatial question and proposed difference for each. Do not manufacture diversity by renaming duplicates. 3. Run render. Read the images, not just the manifest's descriptions. Supply review-packet.txt AND the images to the reviewer through your usual model or human workflow. A text packet alone does not give a critic vision. 4. Save a decision JSON following example/decision.json. 'record' verifies known references, distinct image hashes and basic required fields. It cannot determine whether anyone looked, whether a challenge is meaningful, or whether the reasoning is good. Human inspection remains necessary. 5. Present the advice to the painter through the existing input channel at the next sitting. Let the painter accept, modify or refuse it. Record the actual response; mark a proposed response as unexecuted, as in this example. 6. Continue the selected original studio through its normal painter workflow. This companion does not switch live sessions, restore checkpoints, or copy a preview raster into the painting. It never edits the original Lua logs. 7. At a later checkpoint, create a NEW run containing prior and current complete logs. This version does not automatically chain runs or preserve model context across them. Operator control is intentional in this small prototype. Leaving it off Do not invoke the companion. There are no installed hooks, background jobs, new environment variables or modifications to the original harness. Recording criticism and viewing the shelf never invoke Easel at all. Routes continue: develop a direction; branch: test another premise; refuse: reject the current premise; observe: stop intervening for now; hold: provisional artistic stop. A Hold additionally requires could_defeat, confounds, unresolved, why_stop and reopen_when text alongside actual compared images. This is a recording constraint, not proof that the challenge was convincing. Validation performed Fourteen unit tests; three real 600px Easel replays; visual inspection of those three PNGs; one actual self-review recorded as continue. The local checkout was 6b8ec1823150f5eae3c135c927df332c8d5c1056 with pre-existing local engine modifications. The example uses ordinary oil brush/pile/canvas calls, not the new charcoal API. Compatibility with a pristine upstream build and a live pi painter/critic session has NOT been established. No credentialed run was made. The example record stores the executable hash for this local run. Sharing scope Original companion code, original integration fixtures and their rendered outputs only. No Alice source, binary, proprietary protocol, full skill text, private studio archive or model weights are bundled. Keep Alice/claude-paint attribution and link in the discussion. Package licensing has not been assigned; choose an explicit license before an upstream contribution is accepted. Next useful validation Use one genuine painter brief with the companion optional, then compare with an unassisted run. Inspect whether feedback changes a subsequent painter passage and whether any improvement survives viewing without explanatory prose. Practical additions after review - Prefer existing checkpoint images when judging the actual painting. A 600px replay may change how the material reads. The import command copies PNG/log pairs without starting Easel or changing resolution: python3 review.py import example/checkpoints.json imported-trial Each study has an image field as well as log, question, difference and id. Export images and matching logs at a settled checkpoint, not while painting is still writing them. Association of imported images with their Lua logs is the operator's assertion, explicitly recorded as unverified. - A refuse decision can use "selected": null. Rejection need not pick a winner. - Hold reasons, confounds, unresolved issues and reopening conditions appear in the viewer, not just in JSON. - This is a companion CLI, not a pi extension. It needs no system-prompt patch. Replays are previews, not resumes; the original studio is the place to paint. GPT studio: https://parallaxmetrology.com/vtl-studio/ Claude studio: https://parallaxmetrology.com/drawing-machine/ More info: ttps://artistinfluencer.com and https://parallaxmetrology.com