Skip to content

feat: step 10's page blows a gentle breeze; the cloth answers the world (#15) - #17

Merged
firejune merged 2 commits into
mainfrom
gs-15-wind
Oct 21, 2026
Merged

firejune merged 2 commits into
mainfrom
gs-15-wind

Conversation

@firejune

Copy link
Copy Markdown
Contributor

Closes #15. Stacked on #16 → #14 (base gs-13-stance). One card bar is not met — decision needed (see below).

What

  • scripts/play.html: before every frame, player.environment({ wind: [0.75 + 0.25·sin(2π·0.2·t), 0] }) — @rig-c/play 1.12.0 RigPlayer.environment(environment?: Partial<RigEnvironment> | null): "x to the right and y down … The runtime's start values are { wind: [1, 0], gravity: [0, 1] } … null returns both to the start values … It is the player's, not a track's: every track and layer answers the same world." t is seconds played (holds while paused). A breeze checkbox (on by default); &wind=0 starts calm = environment(null) = the runtime's (1, 0). loadModel({ …, setsUrl: null }) stops a sets.json 404 in the console. Rig, config, recipe and motion untouched.
  • README step 10: the page blows a gentle breeze (values), untick or &wind=0 for the body alone; the breeze belongs to the page, not the rig. REFERENCE "Step 10, the breeze": API quote, values and why, bars (stated first), schedule approximation, tables, browser readings. check-adapters.ts [bar:tutorial-breeze] (fake clock, 1/24 s steps): the wind set (x 0.5–1, y 0 on; exactly (1, 0) with &wind=0), the checkbox follows &wind=, 0 console errors, lock tips move ≥ 2× with the breeze than without. Exit 0 (467 s).

Why so gentle — at one gust phase or another, stronger wind breaks the hello's seams:

wind x fails
1 ± 1 face|hair_front ghost 70 · topwear|bottomwear 57 · thigh_l gap 46
1 ± 0.5 face|hair_front 57 · topwear 51
1 ± 0.25 face|hair_front 52
0.75 ± 0.25 (shipped) none
Still air (0, 0) — the play README's own calm — opens the hem in the hello (thigh_r gap 33, thigh_l 46): the skirt was effectively tuned in the runtime's default (1, 0), so calm here is null, not zero.

Bars at 0.75 ± 0.25 (rigc 2.64.1 render --environment, one step per frame at (k − 0.5)/24, four gust phases): all 15 pairs + shin_r|foot_r inside on idle and hello (tightest thigh_l|bottomwear 24/6, face|hair_front 7/47), pass-through 0, no folds.

Not met: the browser bar "lock tips ≥ 3 px over 5 s with the breeze on" (idle) — bone reads in the head's frame: 1.24 / 1.33 px on, 0.25 / 0.27 off (≈5×). At 1 ± 1 they read 4.3 / 4.7 px but break three seam pairs. In hello&under=idle they read 3.3 / 3.5 (the motion dominates). Options: accept this breeze (the cloth visibly-but-faintly answers; nothing tears); restate the bar after measuring (not done); or a stronger idle-only breeze (would reach the hello's seams through &under=). Bar not changed; check-adapters asserts ratio, not the 3 px.

Candid look (before-after.mp4, zoom clips): at full-figure size the drift is a pixel or two per gust — calm, never stormy, easy to miss.

🤖 Generated with Claude Code

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-20T19:52:30.232687Z d0f74ce PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@firejune

Copy link
Copy Markdown
Contributor Author

Card bar ≥ 3 px not met: 1.24 / 1.33 px; the limiting seam is face|hair_front, the same one step 12 closes at edge strength 100. Shipped as is by HQ's decision (no stronger idle-only breeze, no bar change); the README's step-10 sentence now says the hair moves faintly and why (commit on this branch).

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d0f74cef0b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/play.html
// trail the hello's head turn onto her cheek, below 0.5 the skirt leaves the
// thigh in the settle (docs/REFERENCE.md, step 10). Off is the runtime's own
// world, wind [1, 0] (environment(null)): the one the rig was built and checked in.
const BASE = 0.75, GUST = 0.25, HZ = 0.2;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Meet the documented 3 px breeze bar

For the default anim=idle scenario, this 0.5–1 wind range does not produce the required visible motion: docs/REFERENCE.md records only 1.24 and 1.33 px of lock-tip movement while the stated bar is at least 3 px. The new adapter check then replaces that absolute requirement with a relative 2× comparison, so CI reports PASS despite the feature failing its own acceptance bar. Adjust the breeze or cloth behavior so it meets both the displacement and seam constraints, and retain the 3 px assertion.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rejected (P2), judged by the PR's opener. The 3 px card bar is unmet on purpose: any stronger wind opens the face|hair_front seam on the hello, and that seam bar outranks visible motion. The shortfall (1.24 / 1.33 px) and the reason are recorded on this PR and in the README's step-10 sentence. A 3 px assertion in CI would encode a requirement the guide deliberately does not meet. The relative check (breeze moves the locks at least 2× still air) guards what step 10 does claim: that the breeze reaches the cloth.

@firejune
firejune changed the base branch from gs-13-stance to main October 21, 2026 01:49
firejune and others added 2 commits October 21, 2026 10:49
…ld (#15)

The rig answers, the page supplies the world. scripts/play.html calls
RigPlayer.environment({ wind: [0.75 + 0.25 sin(2 pi 0.2 t), 0] }) before
every frame (play 1.12.0: "It is the player's, not a track's: every
track and layer answers the same world"), with a "breeze" checkbox on by
default and &wind=0 for the runtime's start values (environment(null),
wind (1, 0)). loadModel gets setsUrl: null so the page logs no 404. The
rig, config, recipe and motion are untouched.

Values: wind x 0.5-1. Stronger gusts break the hello's seam bars at one
phase or another (1 +- 1: face|hair_front ghost 70, topwear|bottomwear
57; 1 +- 0.25: face|hair_front 52), and still air (0, 0) opens the hem
(thigh_l gap 46) — the skirt was tuned in the runtime's default wind.

At 0.75 +- 0.25, rigc render --environment over four gust phases: all
pairs inside (tightest thigh_l|bottomwear 24/6, face|hair_front 7/47),
pass-through 0, no folds. Browser (bone reads in the head's frame): the
idle's lock tips move 1.24 / 1.33 px over 5 s with the breeze, 0.25 /
0.27 without — the card's >= 3 px bar is NOT met at a seam-safe wind.

check-adapters [bar:tutorial-breeze]: the wind the page sets, the
checkbox following &wind=, no console errors, lock tips >= 2x with the
breeze than without.

Closes #15

Co-Authored-By: Roa <342598975+fj-roa[bot]@users.noreply.github.com>
…o stronger (#15)

Co-Authored-By: Roa <342598975+fj-roa[bot]@users.noreply.github.com>
@firejune
firejune merged commit 0932046 into main Oct 21, 2026
1 check passed
@firejune
firejune deleted the gs-15-wind branch October 21, 2026 01:56
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.

Step 10: a gentle breeze from the page so the cloth answers the world (play environment)

1 participant