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

0% Statements 0/125
0% Branches 0/1
0% Functions 0/1
0% Lines 0/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 126                                                                                                                                                                                                                                                           
/**
 * 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',
  },
]