What problem does it solve? Writing animation logic often requires repetitive math for clamping values, mapping ranges, snapping to grids, and randomizing parameters, and hand-rolled helpers are error-prone and inconsistent across a codebase. ## Core Features & Use Cases - Range and Math Utilities: Use clamp, mapRange, normalize, interpolate, wrap, and wrapYoyo to transform values for scroll-driven or progress-driven animations. - Randomization and Snapping: Generate random values with optional snap increments, shuffle arrays, and distribute values across targets with grid and ease support. - DOM and Unit Helpers: Convert selectors and NodeLists with toArray, scope selectors to components with selector, and parse colors or units with splitColor, getUnit, and unitize. - Use Case: When building a scroll-based animation, map scroll progress (0-1) to a rotation range with mapRange, snap positions to a 20px grid, and randomize stagger delays across elements. ## Quick Start Use the gsap-utils skill to map scroll progress from 0 to 1 into a 0 to 360 degree rotation and snap the result to 15 degree increments.