Skip to content

Release 1.7.0: ask first - #7

Merged
nolanbaxter merged 14 commits into
mainfrom
develop
Oct 9, 2026
Merged

nolanbaxter merged 14 commits into
mainfrom
develop

Conversation

@nolanbaxter

Copy link
Copy Markdown
Owner

Ask first. Winding.supported() says whether an engine can be made here, so a page can show
something else where WebGPU is missing. The README has a face now -- a walker robot, rendered in
Winding, waving beside the name -- and its engine comparison is a slideshow, a chart at a time. And
CI checks only what a change reaches: a docs change in seconds, a full run split across four runners.

Added

  • Winding.supported(): whether Winding.create can work in
    this browser -- WebGPU, and a GPU it will hand out -- as true or false, never a throw. Ask
    before creating an engine and show a still, a video or a message where the answer is no; the
    README's install section shows how.

npm install winding-engine

🤖 Generated with Claude Code

nolanbaxter and others added 14 commits October 9, 2026 12:34
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…styped)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
.github/affected.js plans each push: Node suites by import graph (and
new URL() reads), the type check when declarations change, and GPU checks
by test/gpu-map.json -- per function in src/, which checks run it ('*' for
the shared setup) -- carrying changed lines back to the map's commit
through git diff. Chosen checks are split across up to four runners,
balanced by recorded time. Uncertain cases (CI or suite changes, new src
files, no map) run everything; a version-only package.json change, docs
and benchmarks run no GPU checks.

ci.yml: a plan job, then test (20/22/24) running the chosen suites and a
gpu job per shard. Pushes to any branch but main; same-repo pull requests
are not checked again, and main (pull requests only) not at all.

gpu.test.js: checks have ids (FNV of their name); ?steps= and ?shard=
choose them; the first five always run; checks the map does not know run
in shard 0. gpu.ci.js: GPU_STEPS, GPU_SHARD, and --map to record coverage
per function (refuses a dirty src/).

Locally: two DOF checks alone in 12 s; the full suite in four shards of
12-18 s each, every check accounted for.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gpu.ci.js prints each check's id and time; .github/ci-times.js reads a
run's log back into test/gpu-map.json (ciMs), and the planner balances by
it, falling back to the real-GPU time x7. The first run balanced by
real-GPU times spread four runners over 113-227 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
So CI can spread them across runners and run only those a change reaches;
as one check it was 145 of a full run's 491 s on CI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
navigator.gpu, and an adapter: a core adapter has every limit the
renderer needs, so that is all create could refuse a page for. Never
throws. Documented with the fallback pattern, in the README's install
section beside a plain "WebGPU only" and why; typed; checked in Node
against stand-in navigators and on a real device in the GPU suite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One animated SVG, a chart a slide, seven seconds each with a short fade
and dots to say which; held on the first for prefers-reduced-motion.
760 x 400 where the stacked chart was 760 x 668, and more comparisons
are more slides at the same size. Same numbers as before: the desktop
and the laptop, a slide each. The footnote says it turns, that every
number is in the description, and that Winding is WebGPU only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A 28 KB geometric robot made for this project (MIT): 48 nodes, 30 drawn
parts on 5 meshes and 4 materials, 18 named joints to pose by node.
Loads and draws on develop with no device errors. The folder's README
records each file's origin and licence; nothing there is published.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
His upper body, rendered in Winding from test/assets/walker.glb and cut
out with a true alpha (rendered before a black backdrop and a white one;
the difference is his coverage), so he sits on GitHub's light and dark
pages alike. Floated right of the wordmark, his hand turned flat to the
camera.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…he name

What is uploaded as the repository's social preview (Settings > Social
preview); kept here as its source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The logo sat 152 px from the left edge and his hand 220 px from the
right; now 220 each side, and centred top to bottom.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nolanbaxter
nolanbaxter merged commit defba26 into main Oct 9, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant