Confirm or retune the aterm creature background numbers against a live window #1418

Closed
opened 2026-08-29 15:27:24 +00:00 by coilyco-ops · 2 comments
Owner

What landed

#1417 puts each role's creature in its own aterm window background: background_tint=0.91, the art at 26% of the window width, anchored bottom right with an 8% inset, on a 16:10 plate that cscaled maps onto the window.

Those four numbers are one seat's judgement, not a measurement. They were picked against the real identity card, at 16:10 and 16:9, with the creature required to lose to the session text at a glance. Kai has not seen a live window yet.

What a change costs

  • Presence and width share are constants in aterm/creature.go. Either moves in one line, and the plate cache name already hashes the geometry, so a stale plate cannot survive the edit.
  • Anchor is the one that is not a constant. composeCreaturePlate hardcodes bottom right, so any other corner needs the origin calculation parameterised. Small, but it is code rather than a number.
  • Aspect is 16:10 because that is what a fullscreen window is on Kai's displays. cscaled covers and crops, so a 16:9 screen loses a band top and bottom; the 8% inset absorbs it today and would not at a smaller inset.

Resuming

  • The reasoning and the kitty mechanics: docs/aterm.md, the creature paragraph.
  • The compositing is reproducible from kitty's own kitty/shaders/bgimage.slang: alpha_blend(image, background) then a tint pass at background_tint, which is why one number controls presence.
  • aterm --dry-run <role> prints the plate path, so the file the window will draw can be opened directly.
  • --no-creature and ATERM_NO_CREATURE are the off switch if the answer turns out to be "not at all".
## What landed #1417 puts each role's creature in its own aterm window background: `background_tint=0.91`, the art at 26% of the window width, anchored bottom right with an 8% inset, on a 16:10 plate that `cscaled` maps onto the window. Those four numbers are one seat's judgement, not a measurement. They were picked against the real identity card, at 16:10 and 16:9, with the creature required to lose to the session text at a glance. Kai has not seen a live window yet. ## What a change costs * **Presence** and **width share** are constants in `aterm/creature.go`. Either moves in one line, and the plate cache name already hashes the geometry, so a stale plate cannot survive the edit. * **Anchor** is the one that is not a constant. `composeCreaturePlate` hardcodes bottom right, so any other corner needs the origin calculation parameterised. Small, but it is code rather than a number. * **Aspect** is 16:10 because that is what a fullscreen window is on Kai's displays. `cscaled` covers and crops, so a 16:9 screen loses a band top and bottom; the 8% inset absorbs it today and would not at a smaller inset. ## Resuming * The reasoning and the kitty mechanics: `docs/aterm.md`, the creature paragraph. * The compositing is reproducible from kitty's own `kitty/shaders/bgimage.slang`: `alpha_blend(image, background)` then a tint pass at `background_tint`, which is why one number controls presence. * `aterm --dry-run <role>` prints the plate path, so the file the window will draw can be opened directly. * `--no-creature` and `ATERM_NO_CREATURE` are the off switch if the answer turns out to be "not at all".
Author
Owner

Decided

Kai read the tuner and picked 20% opacity, 60% width, top right. Landed in #1419: creaturePresence 0.20, creatureWidthShare 0.60, and composeCreaturePlate anchoring the top instead of the bottom.

So the three numbers this issue was holding open are settled, and what is left is narrower than the title.

What is still open

At 60% width a square creature is 96% of a 16:10 window's height, so the 8% top inset is clamped to the 4% that is left and there is no vertical slack to give. cscaled covers rather than fits, so a window wider than 16:10 crops 5% off each end. Rendered from the real baked plate at 1440x900 and 1600x900: on 16:10 the whole creature fits, on 16:9 the head survives and the feet clip.

That is deliberate rather than a bug. Protecting the head over the feet is the right trade, since a clipped head reads as broken where clipped feet read as standing on the edge.

The question is whether any window Kai actually opens is 16:9. aterm opens fullscreen and the MacBook's own display is 16:10, where the geometry is exact. An external monitor is where this would show up, and that is not something the code can find out.

What each exit costs

  • Nothing. Correct if aterm is only ever fullscreen on a 16:10 display.
  • A smaller width share. Ends the crop by leaving vertical slack, and spends the size Kai just chose.
  • scaled in place of cscaled. Ends the crop on every aspect, at the cost of stretching the art 11% on 16:9. One line in aterm/plan.go. Worth naming that this is the one thing the seat-creature work in agentic-os-xxx spent the most effort not doing, so it is a real trade rather than a free fix.

Resuming: the creature paragraphs in docs/aterm.md carry the mechanics and both exits.

## Decided Kai read the tuner and picked **20% opacity, 60% width, top right**. Landed in #1419: `creaturePresence` 0.20, `creatureWidthShare` 0.60, and `composeCreaturePlate` anchoring the top instead of the bottom. So the three numbers this issue was holding open are settled, and what is left is narrower than the title. ## What is still open At 60% width a square creature is 96% of a 16:10 window's height, so the 8% top inset is clamped to the 4% that is left and there is no vertical slack to give. `cscaled` covers rather than fits, so a window wider than 16:10 crops 5% off each end. Rendered from the real baked plate at 1440x900 and 1600x900: on 16:10 the whole creature fits, on 16:9 the head survives and the feet clip. That is deliberate rather than a bug. Protecting the head over the feet is the right trade, since a clipped head reads as broken where clipped feet read as standing on the edge. **The question is whether any window Kai actually opens is 16:9.** aterm opens fullscreen and the MacBook's own display is 16:10, where the geometry is exact. An external monitor is where this would show up, and that is not something the code can find out. ## What each exit costs * **Nothing.** Correct if aterm is only ever fullscreen on a 16:10 display. * **A smaller width share.** Ends the crop by leaving vertical slack, and spends the size Kai just chose. * **`scaled` in place of `cscaled`.** Ends the crop on every aspect, at the cost of stretching the art 11% on 16:9. One line in `aterm/plan.go`. Worth naming that this is the one thing the seat-creature work in `agentic-os-xxx` spent the most effort not doing, so it is a real trade rather than a free fix. Resuming: the creature paragraphs in `docs/aterm.md` carry the mechanics and both exits.
Author
Owner

Closed by an answer rather than a change

Kai: no 16:9 display at present.

So the crop this issue narrowed to cannot happen on any window she opens. aterm defaults to fullscreen, every display in use is 16:10, and the plate is cut 16:10, which is the case where cscaled maps one onto the other exactly and no band is trimmed from either end. The whole creature is on screen.

No code moves. creaturePresence 0.20, creatureWidthShare 0.60, top right, cscaled all stand as #1419 landed them.

What would reopen this

A 16:9 display entering the fleet. The failure is cosmetic and self-announcing rather than silent: the creature's feet clip at the bottom edge of the window, 5% of the plate height. The fix is one line in aterm/plan.go, cscaled to scaled, which ends the crop on every aspect by stretching the art 11% instead. docs/aterm.md carries that exit and the reason it was not taken pre-emptively.

## Closed by an answer rather than a change Kai: no 16:9 display at present. So the crop this issue narrowed to cannot happen on any window she opens. aterm defaults to fullscreen, every display in use is 16:10, and the plate is cut 16:10, which is the case where `cscaled` maps one onto the other exactly and no band is trimmed from either end. The whole creature is on screen. No code moves. `creaturePresence` 0.20, `creatureWidthShare` 0.60, top right, `cscaled` all stand as #1419 landed them. ## What would reopen this A 16:9 display entering the fleet. The failure is cosmetic and self-announcing rather than silent: the creature's feet clip at the bottom edge of the window, 5% of the plate height. The fix is one line in `aterm/plan.go`, `cscaled` to `scaled`, which ends the crop on every aspect by stretching the art 11% instead. `docs/aterm.md` carries that exit and the reason it was not taken pre-emptively.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/agentic-os#1418
No description provided.