Soda
From prompt to page.
A little wild. A lot of fizz. An independent static interpretation of the archived GetLayers brief.
01 / Read the brief
The text source is 03-SODA-3D-INTERACTIVE-HERO.md. Reference media could not be inspected in this environment. This is not a pixel-identical reconstruction.
02 / Establish a visual system
Background #260b1b, foreground #fff5ed, accent #ff92b2, surface #3b152d. Local fonts, a responsive 1320 px maximum grid, and a site-specific hero composition establish the hierarchy.
03 / Build the signature mechanism
A lathed aluminum can with a canvas-drawn label, torus rims, pull-tab, condensation beads, and orbiting fruit. Pointer springs tilt the whole rig; flavor selection updates label texture, fruit, and CSS palette. A click applies a decaying radial particle burst.
04 / Make it interactive
- Switch all three flavors and inspect can label and background
- Build 12- and 24-can bundles; changing berry must clamp citrus to remaining capacity
- Add a bundle and verify cart count and price
05 / Record the adaptations
Original procedural product artwork rather than a downloaded commercial model. One mixed bundle in local memory; no checkout, persistence, prebiotic health claim, or inventory service.
Shared architecture: local Three.js, native scrolling, a single frame scheduler, capped pixel density, offscreen/hidden-tab suspension, reduced-motion support, CSS fallback, and no backend.
06 / Validate honestly
See the actual validation record for test results. Automated checks do not replace manual screen-reader testing or reference-image comparison. All readouts and submissions are illustrative and local.
07 / Reproduce the build
python3 -m http.server 8080 --bind 0.0.0.0 # Open /getlayersai/sites/soda/ cd getlayersai python3 tools/build.py python3 tools/verify.py npm ci npm test
Edit this site's record in tools/catalog.py before rebuilding. Shared rendering and interactions are in shared/scenes.js and shared/interactions.js. Generated HTML and documentation will be overwritten on regeneration.