# Presentation patterns — library 0.7.0 Four generic scenes extracted from an authorized presentation reference. Open the [registry gallery](../assets/animejs/presentation-patterns/index.html) from the [overall gallery](../assets/animejs/index.html). All previews embed the same individual document: catalog metadata and one canonical renderer module, not forks. | ID | Question / use | Avoid | |---|---|---| | `presentation-patterns-expressive-robot` | How can an agent acknowledge, think and respond? Finite blink → articulated scratch → smile. | Anthropomorphic claims or perpetual decoration. | | `presentation-patterns-approval-gate` | Why must a proposal wait? Wait → approval → leaves clear lane → cross → evidence return. | Using visual state as operational permission. | | `presentation-patterns-delivery-cycle` | How do parallel designs join delivery? Split → join → acceptance → release → learning. | Treating the diagram as a scheduler or measured outcome. | | `presentation-patterns-connected-memory` | What differs between learning, knowledge and instructions? Capture → retain → human review → later reuse; independent source access. | Unreviewed self-modification or a source-to-source pipeline. | ## Provenance and extraction limits The user-authorized reference presentation, revision 7.2.1, was inspected directly. Its `hermesRobot` / `closingScene` use a silver rounded head, dark visor, copper ears, antenna, quadratic smile and local-coordinate shoulder/elbow/hand articulation. These proportions are retained, but the periodic clock is replaced by a finite Anime.js 4.5 timeline with two blinks and a bounded scratch. Its `gate` uses a horizontal lane intersecting a vertical split sliding barrier, a waiting envelope and an evidence-return route. Those relationships are retained: opening completes before passage. Its `cycle` has parallel architecture and experience design branches, a join, acceptance/release and a return path. Its `memory` distinguishes an open knowledge book from stacked instruction sheets and connects independent sources to an access trunk ending on the agent. Those actual vector techniques are generalized here, rather than replaced by unrelated effects. No source deck, embedded fonts, logos, artwork, customer screenshots, private links, account details or branding are bundled. Timings, approval, knowledge review and outcomes are conceptual. This is not runtime authorization, measured productivity, a knowledge connector or evidence of production behavior. ## Configuration and lifecycle Edit `assets/animejs/catalogs/presentation-patterns.json`, then run `python3 scripts/build-gallery.py`. Shared renderer: `assets/animejs/industries/presentation-patterns.js`. Duration is clamped to 3000–18000 ms (default 6000); named beats scale on mount. Robot `scale` is clamped to 2.5–4 (default 3.7), `smileDepth` to 8–14 (default 12). Gate `travelPx` is clamped to 380–450 (default 420), preserving waiting and destination bounds. Invalid nonnumeric values use defaults. Labels are authored in the renderer; retest bounds after changing them. Topology is intentionally fixed: source independence and gate sequencing are not configurable away. ## Real integration hook Load the vendored Anime UMD, catalog data, the patterns module and gallery runtime in that order in a gallery-compatible page. The actual `animeGallery.mount(host, descriptor)` API returns the same lifecycle controller used by individual pages: ```js const descriptor = structuredClone(animeExamples.find( e => e.id === 'presentation-patterns-approval-gate')); descriptor.config.duration = 9000; const controller = animeGallery.mount(document.querySelector('#demo'), descriptor); // Connect these to the host application's actual slide/component lifecycle: function onSlideEnter() { controller.replay(); } function onSlideLeave() { controller.settle(); } function onUnmount() { controller.destroy(); } ``` Mount starts complete; explicit Replay starts a single finite performance. Seeking pauses and clamps. Reduced motion, print, page hiding and departure settle. Destroy aborts listeners and reverts its owned timeline. Do not mount twice into the same host without destroying its previous controller. Standalone scene integrations may call a registered renderer directly, but must provide equivalent lifecycle and reduced-motion ownership themselves. Approval text is not an authorization API; the host must independently enforce any real permission. ## Verification and limits `npm test` builds the full library, runs the existing source/dist normal/reduced-motion suite and `scripts/test-presentation-patterns.mjs`. The latter checks real speed-1 playback, a frozen-renderer negative control, exact forward/back seek, visor blinks, articulated scratch, smile, closed-gate exclusion, return evidence, independent complete source routes, edited configuration, offline requests and screenshots. Evidence is in `evidence/presentation-patterns-report.json` and `evidence/presentation-patterns-*.png`. Headless Chromium and self-inspected screenshots are not cross-browser, screen-reader, projector or independent production acceptance. No operational or measured result is asserted.