# When drops become one.

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

An independently authored native WebGL ray marcher evaluates a smooth union of sphere signed-distance fields. A bounded pointer trail supplies sphere centers; finite-difference surface normals support shaded, normal and distance views. No original custom-licensed implementation is redistributed.

## Attribution and evidence

Studied: [How to Create Interactive, Droplet-like Metaballs with Three.js and GLSL](https://tympanus.net/codrops/2025/06/09/how-to-create-interactive-droplet-like-metaballs-with-three-js-and-glsl/), Yuki Kojima. Article SHA-256: 79b2715c5865c95423ba2f50a05bf25526268b01369a9660576046bdbe189717. Analysis SHA-256: 9697b03a904d65765ac388450a24c6304a5d61f8f993cc08e97dc4c8ef0770df. Source revision: f3d6667da2c7c6bc86ebd1a0e812bf2e009b9d7c7aacefab0147e86cf2e5e112. 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: LicenseRef-IntegratedUse-NoAsIsRedistribution. originalSourceAcquired: false. Original source has an explicit integrated-use license that forbids as-is redistribution. An adapted implementation must be evaluated against that actual grant.

No original article prose, code, artwork, source project or screenshot is distributed here. The authored-code MIT notice applies only to the independent implementation. The original integrated-use license is retained in the acquisition record. This package contains a new ray marcher, independent shader expression and original visual treatment; it does not copy the restricted demo as-is.

## Initial state and controls

Twelve sphere centers follow a damped trail. A ray marcher finds their blended surface, then a numerical normal turns the shape into reflected light.

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 |
| --- | --- |
| x | 10 |
| y | 0 |
| blend | 0.3 |
| radius | 0.28 |
| damping | 5 |
| view | shade |

## 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
