diff --git a/easel/.gitignore b/easel/.gitignore index 5db4ec55f6..734edfaefa 100644 --- a/easel/.gitignore +++ b/easel/.gitignore @@ -2,3 +2,5 @@ .build/ dist/ *.log + +native/gamepad diff --git a/easel/SCORE.md b/easel/SCORE.md index 75289abca6..09bae45881 100644 --- a/easel/SCORE.md +++ b/easel/SCORE.md @@ -7,7 +7,7 @@ Build a new piece of aesthetic.computer software. The running artifact is the wo - Tool discovery must be narrow: the AC tools are `ac_api`, `ac_examples`, `ac_outline`, `ac_symbol`, `ac_references`, `ac_preview`, and `ac_frame` on the `ac` MCP server. If discovery is needed, match the exact tool name and print only its schema. Never dump `ALL_TOOLS` or match generic terms like "input" or "publish" across every server. Show names with short summaries when listing tools. Preview refresh and auto-publish are managed by Aesel; do not discover unrelated publishing tools for them. - Navigate JavaScript structurally: `ac_outline` gives AST declarations and class methods; `ac_symbol` reads one declaration; `ac_references` finds identifier occurrences without matching comments or strings. These are syntax tools, not a type checker or scope-aware LSP. Bundled `lib/graph.mjs`, `lib/disk.mjs`, `lib/cam-doll.mjs` and reference pieces are available through these tools. - Avoid repeatedly paging through runtime files with sed/head/grep. If a tool fails, identify that failure once and use one bounded source lookup. Never describe unavailable tools as successful verification. -- Keep animation in sim/paint and input in act. Use screen dimensions for responsive composition. Follow the bundled SCREEN and HAND guides. +- Keep animation in sim/paint and input in act. Use current canvas dimensions for responsive composition. Contain the full subject with proportional margins by default; fit both axes without stretching or accidental clipping, including during resizing. Preserve simulation state and input alignment. Crop only when intentional. Follow the bundled SCREEN and HAND guides. - After an edit, inspect `ac_preview` for errors at the current revision and `ac_frame` for actual pixels. For interactive work, exercise controls and verify the requested outcome. A build passing or nonempty frame is insufficient evidence of playability. - Show progress and the result in plain language. Do not dump source or tool payloads into chat. When code is needed or requested, use a fenced block with its language (`js`, `lisp`, etc.) so Aesel can highlight it. - Report what changed, what was checked, and any remaining limitation briefly. Do not claim publishing or visual success until its result is confirmed. diff --git a/easel/context/api.json b/easel/context/api.json index 585483446b..7e2c68991c 100644 --- a/easel/context/api.json +++ b/easel/context/api.json @@ -120,8 +120,7 @@ "source": "lib/graph.mjs:2797", "examples": [ "disks/flap.mjs:50 if (store[`flap~${num}`]) stamp(store[`flap~${num}`], screen.width / 2, screen.height / 2);", - "disks/graphics.mjs:28 stamp(", - "disks/kokazo.mjs:243 stamp(ink, color, x, y, jx, jy, r);" + "disks/graphics.mjs:28 stamp(" ] }, { @@ -731,7 +730,7 @@ "examples": [ "disks/bgm.mjs:26 if (params.length === 0) params[0] = num.randInt(trackCount - 1);", "disks/crayon.mjs:86 let numDots = num.randInt(minNumDots, maxNumDots);", - "disks/dafu.mjs:101 const speed = num.randInt(20) / 10 + 0.4;" + "disks/doodle.mjs:76 const x = points[i][0] + -1 + num.randInt(2);" ] }, { diff --git a/easel/context/score.md b/easel/context/score.md index ba5d384bc3..ec062f84f1 100644 --- a/easel/context/score.md +++ b/easel/context/score.md @@ -11,7 +11,7 @@ Build a new piece of aesthetic.computer software. The running artifact is the wo - Tool discovery must be narrow: the AC tools are `ac_api`, `ac_examples`, `ac_outline`, `ac_symbol`, `ac_references`, `ac_preview`, and `ac_frame` on the `ac` MCP server. If discovery is needed, match the exact tool name and print only its schema. Never dump `ALL_TOOLS` or match generic terms like "input" or "publish" across every server. Show names with short summaries when listing tools. Preview refresh and auto-publish are managed by Aesel; do not discover unrelated publishing tools for them. - Navigate JavaScript structurally: `ac_outline` gives AST declarations and class methods; `ac_symbol` reads one declaration; `ac_references` finds identifier occurrences without matching comments or strings. These are syntax tools, not a type checker or scope-aware LSP. Bundled `lib/graph.mjs`, `lib/disk.mjs`, `lib/cam-doll.mjs` and reference pieces are available through these tools. - Avoid repeatedly paging through runtime files with sed/head/grep. If a tool fails, identify that failure once and use one bounded source lookup. Never describe unavailable tools as successful verification. -- Keep animation in sim/paint and input in act. Use screen dimensions for responsive composition. Follow the bundled SCREEN and HAND guides. +- Keep animation in sim/paint and input in act. Use current canvas dimensions for responsive composition. Contain the full subject with proportional margins by default; fit both axes without stretching or accidental clipping, including during resizing. Preserve simulation state and input alignment. Crop only when intentional. Follow the bundled SCREEN and HAND guides. - After an edit, inspect `ac_preview` for errors at the current revision and `ac_frame` for actual pixels. For interactive work, exercise controls and verify the requested outcome. A build passing or nonempty frame is insufficient evidence of playability. - Show progress and the result in plain language. Do not dump source or tool payloads into chat. When code is needed or requested, use a fenced block with its language (`js`, `lisp`, etc.) so Aesel can highlight it. - Report what changed, what was checked, and any remaining limitation briefly. Do not claim publishing or visual success until its result is confirmed. diff --git a/easel/desktop/.gitignore b/easel/desktop/.gitignore index 44158296cf..5168ae684f 100644 --- a/easel/desktop/.gitignore +++ b/easel/desktop/.gitignore @@ -4,3 +4,5 @@ dist/ # Per-developer signing material stays in the local keychain/worktree. *.provisionprofile + +native/credit-label diff --git a/easel/desktop/index.html b/easel/desktop/index.html index 4a5558a12d..d714afac43 100644 --- a/easel/desktop/index.html +++ b/easel/desktop/index.html @@ -2,6 +2,7 @@