11 · Art-direction modes: HD/modern graphics + web-native animation (CSS/SVG/JS), not everything is pixel art #24

Open
opened 2026-07-25 17:09:32 -04:00 by cmoriarty · 0 comments
Owner

Trog builds web games, but the pipeline currently assumes every game is retro pixel art: the style block REQUIRES a Grid, every image rides the pixel post-pass (downscale → palette quantize), animation means sprite sheets through the Wan i2v seat, and the critics judge by pixel craft. Not every game should look like that. A web game can ship clean modern high-definition graphics — and it can animate with the whole JS/HTML/CSS toolbox instead of only generated frames.

Two capabilities, one mode switch

1. Art-direction modes in the spec. The style block declares the game's visual mode:

  • pixel — today's pipeline exactly (grid, palette, pixel post-pass, craft judging via the existing Craft opt-in).
  • hd (name TBD) — high-definition modern art: full-res renders delivered as-is (no downscale, no palette quantize), style block describes look without a Grid (parser currently hard-requires Grid — relaxes per mode), critics judge on brief/style fit without the pixel-craft line (already gated, #20).

Generation notes for hd: FLUX.2-dev is already the quality seat at 1024², so the seat doesn't change — the post-pass and the spec contract do. Transparent-background handling, target sizes, and format (PNG vs SVG below) need decisions.

2. Web-native animation. Much motion doesn't need a video model at all — it needs code the brain can already write:

  • CSS keyframes/transitions/3D transforms (the #17/#20 twice-failed card flip is a trivial CSS rotateY — a video model was the wrong tool)
  • SVG graphics + animation (resolution-independent HD assets the brain can author or edit directly as text)
  • JS tweening / canvas / WAAPI for game-feel motion (easing, squash-stretch, parallax)

The game template/framework choice (#7-#10 studio work, game scaffold) should expose these as first-class options the brain reaches for, with the animate seat reserved for motion that genuinely needs generated frames (organic character cycles).

Touchpoints (investigate-then-wire, the usual pattern)

  • assets.py parser: mode field; Grid required only in pixel mode; craft suffixes pixel-only (already opt-in)
  • comfy_item / pixel_post: post-pass becomes mode-aware (hd = passthrough or light sharpen only)
  • templates: style-block guidance per mode; brief vocabulary for hd (composition/lighting language instead of cluster/outline language)
  • critics: hd style vocabulary so judging matches the declared mode
  • game scaffold: CSS/SVG/JS animation idioms available to the brain, documented so specs can request "animate via CSS" for UI/props
  • review page: hd assets shown at native res (no pixel-true upscale/speck)

Decision output

Mode contract in the spec template + one hd-mode game generated end-to-end as the acceptance test (the walking-skeleton pattern), with a side-by-side against a pixel-mode game to prove both modes coexist.

Trog builds web games, but the pipeline currently assumes every game is retro pixel art: the style block REQUIRES a Grid, every image rides the pixel post-pass (downscale → palette quantize), animation means sprite sheets through the Wan i2v seat, and the critics judge by pixel craft. Not every game should look like that. A web game can ship clean modern high-definition graphics — and it can animate with the whole JS/HTML/CSS toolbox instead of only generated frames. ### Two capabilities, one mode switch **1. Art-direction modes in the spec.** The style block declares the game's visual mode: - `pixel` — today's pipeline exactly (grid, palette, pixel post-pass, craft judging via the existing **Craft** opt-in). - `hd` (name TBD) — high-definition modern art: full-res renders delivered as-is (no downscale, no palette quantize), style block describes look without a Grid (parser currently hard-requires Grid — relaxes per mode), critics judge on brief/style fit without the pixel-craft line (already gated, #20). Generation notes for hd: FLUX.2-dev is already the quality seat at 1024², so the seat doesn't change — the post-pass and the spec contract do. Transparent-background handling, target sizes, and format (PNG vs SVG below) need decisions. **2. Web-native animation.** Much motion doesn't need a video model at all — it needs code the brain can already write: - CSS keyframes/transitions/3D transforms (the #17/#20 twice-failed card flip is a trivial CSS `rotateY` — a video model was the wrong tool) - SVG graphics + animation (resolution-independent HD assets the brain can author or edit directly as text) - JS tweening / canvas / WAAPI for game-feel motion (easing, squash-stretch, parallax) The game template/framework choice (#7-#10 studio work, game scaffold) should expose these as first-class options the brain reaches for, with the animate seat reserved for motion that genuinely needs generated frames (organic character cycles). ### Touchpoints (investigate-then-wire, the usual pattern) - `assets.py` parser: mode field; Grid required only in pixel mode; craft suffixes pixel-only (already opt-in) - `comfy_item` / `pixel_post`: post-pass becomes mode-aware (hd = passthrough or light sharpen only) - templates: style-block guidance per mode; brief vocabulary for hd (composition/lighting language instead of cluster/outline language) - critics: hd style vocabulary so judging matches the declared mode - game scaffold: CSS/SVG/JS animation idioms available to the brain, documented so specs can request "animate via CSS" for UI/props - review page: hd assets shown at native res (no pixel-true upscale/speck) ### Decision output Mode contract in the spec template + one hd-mode game generated end-to-end as the acceptance test (the walking-skeleton pattern), with a side-by-side against a pixel-mode game to prove both modes coexist.
Sign in to join this conversation.
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
cmoriarty/trog#24
No description provided.