3v324v23 commited on
Commit
ee6bcf6
ยท
1 Parent(s): e5e6234

Update demo video duration and enhance logo animation

Browse files

- Updated the demo video duration from 82 seconds to 97 seconds in README.md.
- Adjusted the logo animation timing in record.py to ensure it holds until the dots settle.
- Enhanced the SVG logo animation with new keyframes and clip paths for improved visual effects.
- Updated service worker cache version from v19 to v21 for better asset management.

scripts/demo_video/README.md CHANGED
@@ -1,6 +1,6 @@
1
  # Students' feature video
2
 
3
- An 82-second vertical (1080ร—1920) silent walkthrough for Reels/TikTok/WhatsApp status, with Hebrew captions:
4
  the path โ†’ new words โ†’ a spoken answer with a ื— mistake, its tip, the retry โ†’ a story โ†’ streak and beads โ†’
5
  daily practice โ†’ verbs โ†’ games (a round of the memory game) โ†’ the logo.
6
 
 
1
  # Students' feature video
2
 
3
+ A 97-second vertical (1080ร—1920) walkthrough for Reels/TikTok/WhatsApp status, with Hebrew captions:
4
  the path โ†’ new words โ†’ a spoken answer with a ื— mistake, its tip, the retry โ†’ a story โ†’ streak and beads โ†’
5
  daily practice โ†’ verbs โ†’ games (a round of the memory game) โ†’ the logo.
6
 
scripts/demo_video/record.py CHANGED
@@ -23,6 +23,7 @@ sys.path.insert(0, str(HERE))
23
  from script import LINES
24
 
25
  W, H, DPR, FPS = 432, 768, 2.5, 30 # 9:16 viewport -> 1080x1920 frames
 
26
 
27
 
28
  def hold(text, sub):
@@ -208,9 +209,11 @@ async def run(url, takes, voice, out, music_gain, music_file, sound, keep_frames
208
  await pg.goto(url, wait_until="networkidle")
209
  await rec.start()
210
 
211
- # 1 ยท opening: the logo animation
 
212
  await wait(1200)
213
  await line("intro"); await spoken(0.5)
 
214
  await tap("#practiceBtn", 700)
215
  await pg.evaluate("ME_PERMISSIONS=new Set(['practice.use','exercises.use','path.use','games.use','tutor.use'])")
216
  if await pg.locator("#guideTipClose").is_visible():
@@ -319,9 +322,11 @@ async def run(url, takes, voice, out, music_gain, music_file, sound, keep_frames
319
  await pg.evaluate("__demo.caption('')")
320
  await pg.evaluate("""__demo.card(`<img src="/static/logo-intro.svg?v=${Date.now()}" alt="">
321
  <h2>ื™ืืœืœื”, ืžืชื—ื™ืœื™ื!</h2><p>ืคื•ืชื—ื™ื ืืช ื”ืืคืœื™ืงืฆื™ื”<br>ื•ืžืชืจื’ืœื™ื ื›ืžื” ื“ืงื•ืช ื‘ื™ื•ื</p>`)""")
 
322
  await wait(700)
323
  await line("outro"); await spoken()
324
- await wait(2400)
 
325
 
326
  await rec.stop()
327
  await wait(500) # the last sounds' data
 
23
  from script import LINES
24
 
25
  W, H, DPR, FPS = 432, 768, 2.5, 30 # 9:16 viewport -> 1080x1920 frames
26
+ LOGO_SECONDS = 7.4 # static/logo-intro.svg's animation, to the dots' last bounce
27
 
28
 
29
  def hold(text, sub):
 
209
  await pg.goto(url, wait_until="networkidle")
210
  await rec.start()
211
 
212
+ # 1 ยท opening: the logo animation, held until its dots have bounced off the lameds and settled (~7.2s)
213
+ logo_start = time.monotonic()
214
  await wait(1200)
215
  await line("intro"); await spoken(0.5)
216
+ await asyncio.sleep(max(0.0, logo_start + LOGO_SECONDS - time.monotonic()))
217
  await tap("#practiceBtn", 700)
218
  await pg.evaluate("ME_PERMISSIONS=new Set(['practice.use','exercises.use','path.use','games.use','tutor.use'])")
219
  if await pg.locator("#guideTipClose").is_visible():
 
322
  await pg.evaluate("__demo.caption('')")
323
  await pg.evaluate("""__demo.card(`<img src="/static/logo-intro.svg?v=${Date.now()}" alt="">
324
  <h2>ื™ืืœืœื”, ืžืชื—ื™ืœื™ื!</h2><p>ืคื•ืชื—ื™ื ืืช ื”ืืคืœื™ืงืฆื™ื”<br>ื•ืžืชืจื’ืœื™ื ื›ืžื” ื“ืงื•ืช ื‘ื™ื•ื</p>`)""")
325
+ card_start = time.monotonic()
326
  await wait(700)
327
  await line("outro"); await spoken()
328
+ await asyncio.sleep(max(0.0, card_start + LOGO_SECONDS - time.monotonic()))
329
+ await wait(1200)
330
 
331
  await rec.stop()
332
  await wait(500) # the last sounds' data
static/logo-intro.svg CHANGED
static/service-worker.js CHANGED
@@ -1,4 +1,4 @@
1
- const CACHE = "ihki-shell-v19";
2
  const SHELL = [
3
  "/static/manifest.webmanifest",
4
  "/static/icons/icon-192.png?v=2",
 
1
+ const CACHE = "ihki-shell-v21";
2
  const SHELL = [
3
  "/static/manifest.webmanifest",
4
  "/static/icons/icon-192.png?v=2",