# One model. Every measure.

Independent article case study. Domain: website consumer / Design Engineering presentation.

A local data model owns grams per bar, quantity and demonstration units per gram. Total mass and total price are derived by multiplication; original SVG bar dimensions, count and labels update together. No market-data, financial-quote or provider API is involved.

## Attribution and evidence

Studied: [Making Animations Smarter with Data Binding: Creating a Dynamic Gold Calculator in Rive](https://tympanus.net/codrops/2025/07/15/making-animations-smarter-with-data-binding-creating-a-dynamic-gold-calculator-in-rive/), Daria Nevezhyna. Article SHA-256: 71bc685f7c4fb60e6d3476f37027328bb5b6c0befa86b3f62d35e7a4cb3a2bab. Analysis SHA-256: b8992910ba265f1fcb92eaa89361ef287374bc3f49ea3b3e28e36aae85a03247. Source revision: 11d04b70d999c35f311c1a4d8ca0978e32c543236ce86cf6929a7376519bd4b0. The revision hashes the article/analysis hashes, the analyst principle and code-block evidence references; it identifies studied evidence, not a claim that the original demo executes.

Original acquisition: unresolved. Original license: unverified. originalSourceAcquired: false. The public article explains Rive variables/converters for a manually priced calculator, but supplies no code blocks, .riv file or complete runnable export.

No original article prose, code, artwork, source project or screenshot is distributed here. The authored-code MIT notice applies only to the independent implementation. Use total = unit price × grams per bar × quantity. The article's prose formulas contain a '+' inconsistency; do not reproduce that arithmetic error. Label the input as demonstration data, not a live market quote.

## Initial state and controls

Choose a bar size, a quantity, and a made-up unit price. The stack, total mass and arithmetic all come from the same three inputs.

The page starts stationary. Play motion, where present, advances this study’s presentation until paused; text, bounce, portrait, orbit, strand and mascot motion loops, while the event composer stops at its endpoint. Scroll studies advance through ordinary document scroll or their chapter buttons. Static view stops time-based motion; manual controls still inspect values. The three scroll studies instead show every chapter in ordinary reading flow. Pointer parallax centers its decorative layers.

Initial control values:

| Control key | Value |
| --- | --- |
| grams | 10 |
| quantity | 3 |
| price | 72 |

## Running and editing

Open index.html directly. It contains all runtime code and visuals and needs no package install, account, network, remote asset or browser-origin storage. Edit its inline style and script to change the downloaded page. styles.css and script.js are reference copies of the inline source; changing those copies alone does not change the running page. Repository regeneration overwrites index.html and all generated copies, including any manual edits. Keep a separate copy when editing a download. The repository authoring modules in vendor/codrops-article-studies/scenes-*.mjs and runtime.mjs regenerate these copies through node scripts/build-codrops-article-studies.mjs. Repository regeneration also needs the private source evidence; downloaded-page execution does not.

## Verification boundary

This generation passed the captured article/analysis hash checks, exact ID membership, local canonical Markdown anchor/hash checks, implementation-symbol checks, JavaScript parsing, semantic main/title counts, duplicate-ID checks and runtime URL/storage exclusion. The manifest codeFiles entries identify every emitted file by SHA-256. Each code symbol is a searchable named function, not a claimed executed call trace. Proposed checks are in KNOWLEDGE.json. runtime_verified: false. SG artifact capture proves only a recorded initial render; no interactive runtime, keyboard, accessibility, comfort or performance result is claimed.

Manual Chrome interaction is blocked by extension UI in this session. No alternate browser-control route was used. Preview sizing is native responsive width. Initial-render captures are tracked separately at site/artifacts/full-import/preview-posters/index.json and site/artifacts/full-import/preview-posters/visual-review.json in the repository. No capture receipt is bundled with this download. The bounded initial-render matrix requests all 21 studies at 320 pixels and three representative studies at 1280 pixels; the separate poster surface is 640 × 420. The authored CSS also adapts at 375 and 768 pixels, without claiming those widths were captured. A width request does not mean that capture exists or passed. Motion starts on explicit playback; system reduced motion and the Static view switch stop it.

consumer_reference: consumer-reference/agent-native/registry.json
