Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages