All files / web/src/components/toys/number-line/constants/demos piDemoNarration.ts

100% Statements 125/125
100% Branches 0/0
100% Functions 0/0
100% Lines 125/125

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 1261x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
/**
 * Pi Demo Narration Segments
 *
 * Matches the piDemo.ts animation: a circle with diameter 1 is
 * constructed on the number line, then rolls one full turn.
 * The distance it rolls is pi.
 *
 * Progress ranges from piDemo.ts:
 *   CONSTRUCTION (0.00–0.30):
 *     Highlight  0.00–0.06  "1 across" glows on axis
 *     Pivot      0.06–0.15  segment swings to vertical
 *     Sweep      0.15–0.255 arc traces full circle
 *     Treads     0.255–0.30 tire marks sprout
 *   ROLLING (0.30–0.82):
 *     Circle rolls rightward, circumference unrolls onto axis
 *   LABELS (0.82–0.90):
 *     "pi", "one turn", "C = pid" fade in
 *   ZOOM (0.90–1.00):
 *     Irrationality zoom — digits never end
 */
 
import type { DemoNarrationSegment } from './useConstantDemoNarration'
 
/** Shared voice direction for the pi demo narrator. */
export const PI_DEMO_TONE =
  'You are a playful, encouraging teacher for a really smart 5-year-old. ' +
  'Use everyday objects like cookies, wheels, and toys. Be amazed and delighted by everything.'
 
export const PI_DEMO_SEGMENTS: DemoNarrationSegment[] = [
  // ── Construction ──────────────────────────────────────────────
  {
    // Seg 0: Highlight — the red "1 across" stick appears
    ttsText:
      'See that red stick on the number line? ' +
      'It goes from zero all the way to one. ' +
      "That's exactly one unit long — like one cookie across!",
    startProgress: 0.0,
    endProgress: 0.06,
    animationDurationMs: 5000,
    scrubberLabel: 'The red stick',
  },
  {
    // Seg 1: Pivot — stick swings up to become vertical diameter
    ttsText:
      "Now watch! Let's tip that stick straight up — boing! " +
      'That stick is going to be the width of a wheel.',
    startProgress: 0.06,
    endProgress: 0.15,
    animationDurationMs: 4000,
    scrubberLabel: 'Tip it up',
  },
  {
    // Seg 2: Sweep — blue arc traces the full circle
    ttsText:
      "Let's trace around it and make a circle — " +
      'like drawing around a cookie with a crayon! ' +
      'See? A perfect little wheel, one cookie wide.',
    startProgress: 0.15,
    endProgress: 0.255,
    animationDurationMs: 5000,
    scrubberLabel: 'Draw the circle',
  },
  {
    // Seg 3: Treads appear — transition naturally from circle to wheel
    ttsText:
      "Now let's make it a real wheel! " +
      'See those little bumps? Those are the tire treads — now it can grip the ground.',
    startProgress: 0.255,
    endProgress: 0.3,
    animationDurationMs: 3000,
    scrubberLabel: 'Tire treads',
  },
 
  // ── Rolling ───────────────────────────────────────────────────
  {
    // Seg 4: First half of roll
    ttsText:
      'Here it goes! The wheel is rolling along the number line. ' +
      'Watch the blue paint it leaves behind on the ground — ' +
      "that's how far it's traveled!",
    startProgress: 0.3,
    endProgress: 0.55,
    animationDurationMs: 6000,
    scrubberLabel: 'Rolling!',
  },
  {
    // Seg 5: Second half of roll, approaching pi
    ttsText:
      'Keep rolling, keep rolling... almost done with one full spin. ' +
      'Where will it stop? ' +
      'A little bit past three!',
    startProgress: 0.55,
    endProgress: 0.82,
    animationDurationMs: 6000,
    scrubberLabel: 'Almost there',
  },
 
  // ── Labels ────────────────────────────────────────────────────
  {
    // Seg 6: Pi reveal
    ttsText:
      'Three and a little bit more! That special number is called pi. ' +
      'Whenever a wheel makes one full turn, it rolls exactly pi times its width. ' +
      'Every wheel in the whole world follows that rule!',
    startProgress: 0.82,
    endProgress: 0.9,
    animationDurationMs: 7000,
    scrubberLabel: "It's pi!",
  },
 
  // ── Irrationality zoom ────────────────────────────────────────
  {
    // Seg 7: Zoom in on the digits
    ttsText:
      "But here's the really amazing thing. " +
      'If we zoom in close, pi is past three point one four. ' +
      'Even closer — past three point one four one five nine! ' +
      'The numbers keep going and never, ever stop. ' +
      'Pi is a truly special number that goes on forever!',
    startProgress: 0.9,
    endProgress: 1.0,
    animationDurationMs: 7000,
    scrubberLabel: 'Digits go forever',
  },
]