@biunow/agent-biuvibe 0.0.0-stage → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/server.js +325 -0
- package/data/columns.json +230 -0
- package/engine/.claude/skills/weilanx-creator-blackgold-video/SKILL.md +116 -0
- package/engine/.claude/skills/weilanx-creator-blackgold-video/references//345/215/241/347/202/271/344/270/216/351/237/263/346/225/210.md +56 -0
- package/engine/.claude/skills/weilanx-creator-blackgold-video/references//345/260/201/351/235/242/344/270/216/345/217/221/345/270/203.md +68 -0
- package/engine/.claude/skills/weilanx-creator-blackgold-video/references//347/224/273/351/235/242/344/270/216/351/225/234/345/244/264.md +56 -0
- package/engine/.claude/skills/weilanx-creator-blackgold-video/references//351/200/211/351/242/230/344/270/216/350/204/232/346/234/254.md +59 -0
- package/engine/.claude/skills/weilanx-creator-blackgold-video/scripts/qa.mjs +98 -0
- package/engine/.claude/skills/weilanx-creator-blackgold-video/scripts/subtitles.mjs +53 -0
- package/engine/.claude/skills/weilanx-creator-desk-video/SKILL.md +124 -0
- package/engine/.claude/skills/weilanx-creator-desk-video/references//345/267/245/347/250/213/346/250/241/346/235/277.md +278 -0
- package/engine/.claude/skills/weilanx-creator-desk-video/references//347/224/273/351/235/242/351/205/215/346/226/271.md +94 -0
- package/engine/.claude/skills/weilanx-creator-distill-video/SKILL.md +98 -0
- package/engine/.claude/skills/weilanx-creator-distill-video/references//346/213/206/350/247/243/346/226/271/346/263/225.md +42 -0
- package/engine/.claude/skills/weilanx-creator-distill-video/references//351/205/215/346/226/271/345/215/241/346/250/241/346/235/277.md +66 -0
- package/engine/.claude/skills/weilanx-creator-distill-video/scripts/analyze.py +211 -0
- package/engine/.claude/skills/weilanx-creator-distill-video/scripts/strip.py +52 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/SKILL.md +155 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/references//345/215/241/347/202/271/344/270/216/351/237/263/346/225/210.md +82 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/references//345/260/201/351/235/242/344/270/216/345/217/221/345/270/203.md +89 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/references//346/225/260/346/215/256/345/244/215/347/233/230.md +36 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/references//347/224/273/351/235/242/344/270/216/351/225/234/345/244/264.md +60 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/references//351/200/211/351/242/230/344/270/216/345/217/231/344/272/213.md +61 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/scripts/qa.mjs +94 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/scripts/stats.py +57 -0
- package/engine/.claude/skills/weilanx-creator-fps-video/scripts/subtitle-doc.mjs +37 -0
- package/engine/.claude/skills/weilanx-creator-gilded-video/SKILL.md +102 -0
- package/engine/.claude/skills/weilanx-creator-gilded-video/references//345/217/231/344/272/213/344/270/216/345/255/227/345/271/225.md +64 -0
- package/engine/.claude/skills/weilanx-creator-gilded-video/references//347/224/273/351/235/242/344/270/216/350/275/254/345/234/272.md +80 -0
- package/engine/.claude/skills/weilanx-creator-gilded-video/references//351/205/215/344/271/220/344/270/216/345/215/241/347/202/271.md +56 -0
- package/engine/.claude/skills/weilanx-creator-gilded-video/scripts/beats.py +99 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/SKILL.md +124 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/references//345/217/231/344/272/213/344/270/216/345/215/241/347/202/271.md +90 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/references//345/260/201/351/235/242/344/270/216/345/217/221/345/270/203.md +67 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/references//347/224/273/351/235/242/344/270/216/351/225/234/345/244/264.md +57 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/references//351/200/211/351/242/230/344/270/216/345/217/262/346/226/231.md +76 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/scripts/beat_accents.py +45 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/scripts/shot_frames.py +17 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/scripts/subtitle_doc.py +29 -0
- package/engine/.claude/skills/weilanx-creator-lamplight-video/scripts/timeline_lib.py +57 -0
- package/engine/.claude/skills/weilanx-creator-pixel-video/SKILL.md +132 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/SKILL.md +124 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/references//347/224/273/351/235/242.md +63 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/references//347/264/240/346/235/220.md +35 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/references//350/257/255/346/260/224/344/270/216/345/206/231/347/250/277.md +43 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/references//351/205/215/344/271/220.md +37 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/scripts/commons.py +67 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/scripts/tts_expressive.py +71 -0
- package/engine/.claude/skills/weilanx-creator-vox-video/scripts/voice_stats.py +54 -0
- package/engine/AGENTS.md +118 -0
- package/engine/CLAUDE.md +1 -0
- package/engine/LICENSE +21 -0
- package/engine/README.md +282 -0
- package/engine/README.zh-CN.md +282 -0
- package/engine/audio/bgm.mjs +191 -0
- package/engine/audio/episodes/ep00-demo.mjs +10 -0
- package/engine/audio/episodes/ep01-agent.mjs +22 -0
- package/engine/audio/episodes/ep02-llm.mjs +20 -0
- package/engine/audio/episodes/ep03-cc.mjs +19 -0
- package/engine/audio/episodes/ep04-opus55.mjs +15 -0
- package/engine/audio/episodes/ep05-token.mjs +18 -0
- package/engine/audio/episodes/ep06-context.mjs +16 -0
- package/engine/audio/episodes/ep07-agent.mjs +16 -0
- package/engine/audio/episodes/ep08-hallucination.mjs +15 -0
- package/engine/audio/episodes/ep09-prompt.mjs +16 -0
- package/engine/audio/episodes/ep10-multimodal.mjs +16 -0
- package/engine/audio/episodes/ep11-mcp.mjs +17 -0
- package/engine/audio/episodes/ep12-skill.mjs +16 -0
- package/engine/audio/episodes/ep13-subagent.mjs +17 -0
- package/engine/audio/episodes/ep14-agent-permission.mjs +16 -0
- package/engine/audio/episodes/ep15-prompt-injection.mjs +17 -0
- package/engine/audio/episodes/ep16-agent-done.mjs +16 -0
- package/engine/audio/episodes/ep17-sycophancy.mjs +16 -0
- package/engine/audio/episodes/ep18-ai-history.mjs +323 -0
- package/engine/audio/episodes/ep19-apple-history.mjs +311 -0
- package/engine/audio/episodes/ep20-nvidia-history.mjs +276 -0
- package/engine/audio/episodes/ep21-nobel-physics.mjs +151 -0
- package/engine/audio/episodes/ep22-nobel-chemistry.mjs +143 -0
- package/engine/audio/episodes/ep23-wheat-chessboard.mjs +23 -0
- package/engine/audio/episodes/ep24-birthday-paradox.mjs +25 -0
- package/engine/audio/episodes/ep25-behind-cover.mjs +11 -0
- package/engine/audio/episodes/ep26-opus-video.mjs +14 -0
- package/engine/audio/episodes/ep27-opus-video-full.mjs +17 -0
- package/engine/audio/episodes/ep28-express-relay.mjs +16 -0
- package/engine/audio/episodes/ep29-footsteps.mjs +14 -0
- package/engine/audio/episodes/ep30-tang-divorce.mjs +16 -0
- package/engine/audio/episodes/ep31-rigged.mjs +11 -0
- package/engine/audio/episodes/ep32-love-lasts.mjs +36 -0
- package/engine/audio/episodes/ep33-teammates.mjs +11 -0
- package/engine/audio/episodes/ep34-song-takeout.mjs +16 -0
- package/engine/audio/episodes/ep35-choke.mjs +11 -0
- package/engine/audio/episodes/ep36-boxed-pigs.mjs +43 -0
- package/engine/audio/episodes/ep37-bhop.mjs +11 -0
- package/engine/audio/episodes/ep38-butterfly.mjs +43 -0
- package/engine/audio/episodes/ep39-latency.mjs +11 -0
- package/engine/audio/episodes/ep40-counter-strafe.mjs +11 -0
- package/engine/audio/episodes/ep41-flying-money.mjs +16 -0
- package/engine/audio/episodes/ep42-tap-fire.mjs +11 -0
- package/engine/audio/episodes/ep43-one-more-game.mjs +11 -0
- package/engine/audio/episodes/ep45-callouts.mjs +11 -0
- package/engine/audio/episodes/ep46-song-ice.mjs +16 -0
- package/engine/audio/episodes/ep47-spotlight.mjs +11 -0
- package/engine/audio/episodes/ep48-jiggle-peek.mjs +11 -0
- package/engine/audio/episodes/ep49-ad-strafe.mjs +11 -0
- package/engine/audio/episodes/ep50-late-night.mjs +11 -0
- package/engine/audio/episodes/ep51-practice.mjs +11 -0
- package/engine/audio/episodes/library-halftone.mjs +32 -0
- package/engine/audio/music.mjs +45 -0
- package/engine/audio/score.mjs +209 -0
- package/engine/audio/sfx-lamplight.mjs +54 -0
- package/engine/audio/sfx-tactical.mjs +76 -0
- package/engine/audio/synth.mjs +510 -0
- package/engine/package-lock.json +5177 -0
- package/engine/package.json +26 -0
- package/engine/public/fonts/LICENSES.md +12 -0
- package/engine/public/fonts/ZCOOLKuaiLe-Regular.ttf +0 -0
- package/engine/public/fonts/vox/Anton-400.woff +0 -0
- package/engine/public/fonts/vox/Caveat-600.woff +0 -0
- package/engine/public/fonts/vox/EBGaramond-400.woff +0 -0
- package/engine/public/fonts/vox/EBGaramond-600.woff +0 -0
- package/engine/public/fonts/vox/LICENSES.md +10 -0
- package/engine/public/fonts/vox/NotoSansSC-900.woff +0 -0
- package/engine/public/fonts/vox/OFL.txt +94 -0
- package/engine/public/fonts/vox/PlayfairDisplay-700.woff +0 -0
- package/engine/public/fonts/vox/PlayfairDisplay-700i.woff +0 -0
- package/engine/public/music/README.md +16 -0
- package/engine/remotion.config.ts +5 -0
- package/engine/scripts/ep-dir.sh +49 -0
- package/engine/scripts/export.sh +28 -0
- package/engine/scripts/mix-stems.sh +17 -0
- package/engine/scripts/srt2json.mjs +29 -0
- package/engine/src/Root.tsx +244 -0
- package/engine/src/episodes/ep00-demo/Ep00Demo.tsx +97 -0
- package/engine/src/episodes/ep00-demo/components/AdjustPanel.tsx +68 -0
- package/engine/src/episodes/ep00-demo/components/Buddy.tsx +58 -0
- package/engine/src/episodes/ep00-demo/components/EditorUI.tsx +39 -0
- package/engine/src/episodes/ep00-demo/components/Icons.tsx +50 -0
- package/engine/src/episodes/ep00-demo/components/MediaPanel.tsx +129 -0
- package/engine/src/episodes/ep00-demo/components/Outro.tsx +123 -0
- package/engine/src/episodes/ep00-demo/components/Phone.tsx +88 -0
- package/engine/src/episodes/ep00-demo/components/SceneArt.tsx +196 -0
- package/engine/src/episodes/ep00-demo/components/Timeline.tsx +206 -0
- package/engine/src/episodes/ep00-demo/lib/buddy.ts +147 -0
- package/engine/src/episodes/ep00-demo/lib/camera.ts +55 -0
- package/engine/src/episodes/ep00-demo/lib/state.ts +231 -0
- package/engine/src/episodes/ep00-demo/lib/timeline.ts +98 -0
- package/engine/src/episodes/ep01-agent/Ep01Agent.tsx +16 -0
- package/engine/src/episodes/ep01-agent/cues.json +530 -0
- package/engine/src/episodes/ep01-agent/cues.ts +8 -0
- package/engine/src/episodes/ep01-agent/scenes/finale.tsx +174 -0
- package/engine/src/episodes/ep01-agent/scenes/index.ts +28 -0
- package/engine/src/episodes/ep01-agent/scenes/intro.tsx +235 -0
- package/engine/src/episodes/ep01-agent/scenes/loop.tsx +284 -0
- package/engine/src/episodes/ep01-agent/scenes/safety.tsx +249 -0
- package/engine/src/episodes/ep01-agent/scenes/setup.tsx +250 -0
- package/engine/src/episodes/ep02-llm/Ep02Llm.tsx +17 -0
- package/engine/src/episodes/ep02-llm/cues.json +254 -0
- package/engine/src/episodes/ep02-llm/cues.ts +5 -0
- package/engine/src/episodes/ep02-llm/scenes/index.ts +21 -0
- package/engine/src/episodes/ep02-llm/scenes/part1.tsx +444 -0
- package/engine/src/episodes/ep02-llm/scenes/part2.tsx +303 -0
- package/engine/src/episodes/ep03-cc/Ep03Cc.tsx +30 -0
- package/engine/src/episodes/ep03-cc/cues.json +692 -0
- package/engine/src/episodes/ep03-cc/cues.ts +5 -0
- package/engine/src/episodes/ep03-cc/scenes/aroll.tsx +265 -0
- package/engine/src/episodes/ep03-cc/scenes/broll1.tsx +343 -0
- package/engine/src/episodes/ep03-cc/scenes/broll2.tsx +571 -0
- package/engine/src/episodes/ep03-cc/scenes/index.ts +30 -0
- package/engine/src/episodes/ep04-opus55/Ep04Opus55.tsx +30 -0
- package/engine/src/episodes/ep04-opus55/cues.json +368 -0
- package/engine/src/episodes/ep04-opus55/cues.ts +5 -0
- package/engine/src/episodes/ep04-opus55/scenes/index.ts +25 -0
- package/engine/src/episodes/ep04-opus55/scenes/part1.tsx +487 -0
- package/engine/src/episodes/ep04-opus55/scenes/part2.tsx +282 -0
- package/engine/src/episodes/ep05-token/Ep05Token.tsx +32 -0
- package/engine/src/episodes/ep05-token/cues.json +314 -0
- package/engine/src/episodes/ep05-token/cues.ts +5 -0
- package/engine/src/episodes/ep05-token/scenes/index.ts +22 -0
- package/engine/src/episodes/ep05-token/scenes/part1.tsx +355 -0
- package/engine/src/episodes/ep05-token/scenes/part2.tsx +385 -0
- package/engine/src/episodes/ep06-context/Ep06Context.tsx +32 -0
- package/engine/src/episodes/ep06-context/Ep06ContextTall.tsx +35 -0
- package/engine/src/episodes/ep06-context/cues.json +332 -0
- package/engine/src/episodes/ep06-context/cues.ts +5 -0
- package/engine/src/episodes/ep06-context/scenes/index.ts +20 -0
- package/engine/src/episodes/ep06-context/scenes/part1.tsx +360 -0
- package/engine/src/episodes/ep06-context/scenes/part2.tsx +256 -0
- package/engine/src/episodes/ep06-context/tall/Cover.tsx +69 -0
- package/engine/src/episodes/ep06-context/tall/index.ts +20 -0
- package/engine/src/episodes/ep06-context/tall/part1.tsx +374 -0
- package/engine/src/episodes/ep06-context/tall/part2.tsx +272 -0
- package/engine/src/episodes/ep07-agent/Ep07Agent.tsx +32 -0
- package/engine/src/episodes/ep07-agent/Ep07AgentTall.tsx +35 -0
- package/engine/src/episodes/ep07-agent/cues.json +302 -0
- package/engine/src/episodes/ep07-agent/cues.ts +5 -0
- package/engine/src/episodes/ep07-agent/scenes/index.ts +18 -0
- package/engine/src/episodes/ep07-agent/scenes/part1.tsx +307 -0
- package/engine/src/episodes/ep07-agent/scenes/part2.tsx +188 -0
- package/engine/src/episodes/ep07-agent/tall/Cover.tsx +59 -0
- package/engine/src/episodes/ep07-agent/tall/index.ts +18 -0
- package/engine/src/episodes/ep07-agent/tall/part1.tsx +306 -0
- package/engine/src/episodes/ep07-agent/tall/part2.tsx +187 -0
- package/engine/src/episodes/ep08-hallucination/Ep08Hallucination.tsx +32 -0
- package/engine/src/episodes/ep08-hallucination/Ep08HallucinationTall.tsx +35 -0
- package/engine/src/episodes/ep08-hallucination/cues.json +314 -0
- package/engine/src/episodes/ep08-hallucination/cues.ts +5 -0
- package/engine/src/episodes/ep08-hallucination/scenes/index.ts +19 -0
- package/engine/src/episodes/ep08-hallucination/scenes/part1.tsx +282 -0
- package/engine/src/episodes/ep08-hallucination/scenes/part2.tsx +246 -0
- package/engine/src/episodes/ep08-hallucination/tall/Cover.tsx +63 -0
- package/engine/src/episodes/ep08-hallucination/tall/index.ts +19 -0
- package/engine/src/episodes/ep08-hallucination/tall/part1.tsx +273 -0
- package/engine/src/episodes/ep08-hallucination/tall/part2.tsx +247 -0
- package/engine/src/episodes/ep09-prompt/Ep09Prompt.tsx +35 -0
- package/engine/src/episodes/ep09-prompt/cues.json +308 -0
- package/engine/src/episodes/ep09-prompt/cues.ts +5 -0
- package/engine/src/episodes/ep09-prompt/scenes/Cover.tsx +65 -0
- package/engine/src/episodes/ep09-prompt/scenes/index.ts +21 -0
- package/engine/src/episodes/ep09-prompt/scenes/part1.tsx +315 -0
- package/engine/src/episodes/ep09-prompt/scenes/part2.tsx +320 -0
- package/engine/src/episodes/ep10-multimodal/Ep10Multimodal.tsx +35 -0
- package/engine/src/episodes/ep10-multimodal/cues.json +308 -0
- package/engine/src/episodes/ep10-multimodal/cues.ts +5 -0
- package/engine/src/episodes/ep10-multimodal/scenes/Cover.tsx +53 -0
- package/engine/src/episodes/ep10-multimodal/scenes/index.ts +21 -0
- package/engine/src/episodes/ep10-multimodal/scenes/part1.tsx +343 -0
- package/engine/src/episodes/ep10-multimodal/scenes/part2.tsx +437 -0
- package/engine/src/episodes/ep11-mcp/Ep11Mcp.tsx +35 -0
- package/engine/src/episodes/ep11-mcp/cues.json +332 -0
- package/engine/src/episodes/ep11-mcp/cues.ts +5 -0
- package/engine/src/episodes/ep11-mcp/scenes/Cover.tsx +67 -0
- package/engine/src/episodes/ep11-mcp/scenes/index.ts +21 -0
- package/engine/src/episodes/ep11-mcp/scenes/part1.tsx +336 -0
- package/engine/src/episodes/ep11-mcp/scenes/part2.tsx +327 -0
- package/engine/src/episodes/ep12-skill/Ep12Skill.tsx +35 -0
- package/engine/src/episodes/ep12-skill/cues.json +332 -0
- package/engine/src/episodes/ep12-skill/cues.ts +5 -0
- package/engine/src/episodes/ep12-skill/scenes/Cover.tsx +55 -0
- package/engine/src/episodes/ep12-skill/scenes/index.ts +21 -0
- package/engine/src/episodes/ep12-skill/scenes/part1.tsx +368 -0
- package/engine/src/episodes/ep12-skill/scenes/part2.tsx +274 -0
- package/engine/src/episodes/ep13-subagent/Ep13Subagent.tsx +35 -0
- package/engine/src/episodes/ep13-subagent/cues.json +344 -0
- package/engine/src/episodes/ep13-subagent/cues.ts +5 -0
- package/engine/src/episodes/ep13-subagent/scenes/Cover.tsx +61 -0
- package/engine/src/episodes/ep13-subagent/scenes/index.ts +21 -0
- package/engine/src/episodes/ep13-subagent/scenes/part1.tsx +383 -0
- package/engine/src/episodes/ep13-subagent/scenes/part2.tsx +317 -0
- package/engine/src/episodes/ep14-agent-permission/Ep14AgentPermission.tsx +35 -0
- package/engine/src/episodes/ep14-agent-permission/cues.json +326 -0
- package/engine/src/episodes/ep14-agent-permission/cues.ts +5 -0
- package/engine/src/episodes/ep14-agent-permission/scenes/Cover.tsx +62 -0
- package/engine/src/episodes/ep14-agent-permission/scenes/index.ts +20 -0
- package/engine/src/episodes/ep14-agent-permission/scenes/part1.tsx +302 -0
- package/engine/src/episodes/ep14-agent-permission/scenes/part2.tsx +309 -0
- package/engine/src/episodes/ep15-prompt-injection/Ep15PromptInjection.tsx +35 -0
- package/engine/src/episodes/ep15-prompt-injection/cues.json +302 -0
- package/engine/src/episodes/ep15-prompt-injection/cues.ts +5 -0
- package/engine/src/episodes/ep15-prompt-injection/scenes/Cover.tsx +60 -0
- package/engine/src/episodes/ep15-prompt-injection/scenes/index.ts +20 -0
- package/engine/src/episodes/ep15-prompt-injection/scenes/part1.tsx +307 -0
- package/engine/src/episodes/ep15-prompt-injection/scenes/part2.tsx +253 -0
- package/engine/src/episodes/ep16-agent-done/Ep16AgentDone.tsx +35 -0
- package/engine/src/episodes/ep16-agent-done/cues.json +320 -0
- package/engine/src/episodes/ep16-agent-done/cues.ts +5 -0
- package/engine/src/episodes/ep16-agent-done/scenes/Cover.tsx +66 -0
- package/engine/src/episodes/ep16-agent-done/scenes/index.ts +19 -0
- package/engine/src/episodes/ep16-agent-done/scenes/part1.tsx +271 -0
- package/engine/src/episodes/ep16-agent-done/scenes/part2.tsx +253 -0
- package/engine/src/episodes/ep17-sycophancy/Ep17Sycophancy.tsx +35 -0
- package/engine/src/episodes/ep17-sycophancy/cues.json +320 -0
- package/engine/src/episodes/ep17-sycophancy/cues.ts +5 -0
- package/engine/src/episodes/ep17-sycophancy/scenes/Cover.tsx +60 -0
- package/engine/src/episodes/ep17-sycophancy/scenes/index.ts +19 -0
- package/engine/src/episodes/ep17-sycophancy/scenes/part1.tsx +236 -0
- package/engine/src/episodes/ep17-sycophancy/scenes/part2.tsx +250 -0
- package/engine/src/episodes/ep18-ai-history/Cover.tsx +60 -0
- package/engine/src/episodes/ep18-ai-history/CoverTall.tsx +29 -0
- package/engine/src/episodes/ep18-ai-history/Ep18AiHistory.tsx +27 -0
- package/engine/src/episodes/ep18-ai-history/art.tsx +141 -0
- package/engine/src/episodes/ep18-ai-history/cues.json +626 -0
- package/engine/src/episodes/ep18-ai-history/cues.ts +5 -0
- package/engine/src/episodes/ep18-ai-history/film.tsx +910 -0
- package/engine/src/episodes/ep18-ai-history/scrapbook.tsx +762 -0
- package/engine/src/episodes/ep18-ai-history/timeline.ts +63 -0
- package/engine/src/episodes/ep19-apple-history/Cover.tsx +45 -0
- package/engine/src/episodes/ep19-apple-history/CoverTall.tsx +29 -0
- package/engine/src/episodes/ep19-apple-history/Ep19AppleHistory.tsx +27 -0
- package/engine/src/episodes/ep19-apple-history/art.tsx +302 -0
- package/engine/src/episodes/ep19-apple-history/cues.json +470 -0
- package/engine/src/episodes/ep19-apple-history/cues.ts +5 -0
- package/engine/src/episodes/ep19-apple-history/film.tsx +1245 -0
- package/engine/src/episodes/ep19-apple-history/timeline.ts +82 -0
- package/engine/src/episodes/ep20-nvidia-history/Cover.tsx +46 -0
- package/engine/src/episodes/ep20-nvidia-history/CoverTall.tsx +30 -0
- package/engine/src/episodes/ep20-nvidia-history/Ep20NvidiaHistory.tsx +27 -0
- package/engine/src/episodes/ep20-nvidia-history/art.tsx +244 -0
- package/engine/src/episodes/ep20-nvidia-history/cues.json +482 -0
- package/engine/src/episodes/ep20-nvidia-history/cues.ts +5 -0
- package/engine/src/episodes/ep20-nvidia-history/film.tsx +1088 -0
- package/engine/src/episodes/ep20-nvidia-history/timeline.ts +78 -0
- package/engine/src/episodes/ep21-nobel-physics/Cover.tsx +75 -0
- package/engine/src/episodes/ep21-nobel-physics/Ep21NobelPhysics.tsx +27 -0
- package/engine/src/episodes/ep21-nobel-physics/cues.json +218 -0
- package/engine/src/episodes/ep21-nobel-physics/cues.ts +5 -0
- package/engine/src/episodes/ep21-nobel-physics/film.tsx +627 -0
- package/engine/src/episodes/ep22-nobel-chemistry/Cover.tsx +64 -0
- package/engine/src/episodes/ep22-nobel-chemistry/Ep22NobelChemistry.tsx +27 -0
- package/engine/src/episodes/ep22-nobel-chemistry/cues.json +212 -0
- package/engine/src/episodes/ep22-nobel-chemistry/cues.ts +5 -0
- package/engine/src/episodes/ep22-nobel-chemistry/film.tsx +563 -0
- package/engine/src/episodes/ep23-wheat-chessboard/Ep23Wheat.tsx +322 -0
- package/engine/src/episodes/ep23-wheat-chessboard/timeline.ts +89 -0
- package/engine/src/episodes/ep24-birthday-paradox/Cover.tsx +53 -0
- package/engine/src/episodes/ep24-birthday-paradox/Ep24Birthday.tsx +233 -0
- package/engine/src/episodes/ep24-birthday-paradox/ring.tsx +164 -0
- package/engine/src/episodes/ep24-birthday-paradox/scenes.tsx +460 -0
- package/engine/src/episodes/ep24-birthday-paradox/timeline.ts +216 -0
- package/engine/src/episodes/ep25-behind-cover/Ep25Cover.tsx +306 -0
- package/engine/src/episodes/ep25-behind-cover/scenes.tsx +416 -0
- package/engine/src/episodes/ep25-behind-cover/timeline.ts +209 -0
- package/engine/src/episodes/ep26-opus-video/Cover.tsx +18 -0
- package/engine/src/episodes/ep26-opus-video/Ep26OpusVideo.tsx +53 -0
- package/engine/src/episodes/ep26-opus-video/cues.json +140 -0
- package/engine/src/episodes/ep26-opus-video/cues.ts +6 -0
- package/engine/src/episodes/ep26-opus-video/scenes.tsx +301 -0
- package/engine/src/episodes/ep27-opus-video-full/Cover.tsx +18 -0
- package/engine/src/episodes/ep27-opus-video-full/Ep27OpusVideoFull.tsx +65 -0
- package/engine/src/episodes/ep27-opus-video-full/assets.ts +36 -0
- package/engine/src/episodes/ep27-opus-video-full/cues.json +860 -0
- package/engine/src/episodes/ep27-opus-video-full/cues.ts +6 -0
- package/engine/src/episodes/ep27-opus-video-full/scenes/index.tsx +730 -0
- package/engine/src/episodes/ep27-opus-video-full/scenes/kit.tsx +334 -0
- package/engine/src/episodes/ep28-express-relay/CoverTall.tsx +98 -0
- package/engine/src/episodes/ep28-express-relay/Ep28Relay.tsx +453 -0
- package/engine/src/episodes/ep28-express-relay/scenes.tsx +2 -0
- package/engine/src/episodes/ep28-express-relay/timeline.ts +261 -0
- package/engine/src/episodes/ep29-footsteps/Ep29Footsteps.tsx +328 -0
- package/engine/src/episodes/ep29-footsteps/scenes.tsx +418 -0
- package/engine/src/episodes/ep29-footsteps/timeline.ts +250 -0
- package/engine/src/episodes/ep30-tang-divorce/CoverTall.tsx +85 -0
- package/engine/src/episodes/ep30-tang-divorce/Ep30Divorce.tsx +453 -0
- package/engine/src/episodes/ep30-tang-divorce/timeline.ts +235 -0
- package/engine/src/episodes/ep31-rigged/Ep31Rigged.tsx +334 -0
- package/engine/src/episodes/ep31-rigged/scenes.tsx +175 -0
- package/engine/src/episodes/ep31-rigged/timeline.ts +273 -0
- package/engine/src/episodes/ep32-love-lasts/Ep32Love.tsx +228 -0
- package/engine/src/episodes/ep32-love-lasts/scenes.tsx +219 -0
- package/engine/src/episodes/ep32-love-lasts/timeline.ts +165 -0
- package/engine/src/episodes/ep33-teammates/Ep33Teammates.tsx +304 -0
- package/engine/src/episodes/ep33-teammates/scenes.tsx +395 -0
- package/engine/src/episodes/ep33-teammates/timeline.ts +239 -0
- package/engine/src/episodes/ep34-song-takeout/CoverTall.tsx +70 -0
- package/engine/src/episodes/ep34-song-takeout/Ep34Takeout.tsx +362 -0
- package/engine/src/episodes/ep34-song-takeout/timeline.ts +219 -0
- package/engine/src/episodes/ep35-choke/Ep35Choke.tsx +318 -0
- package/engine/src/episodes/ep35-choke/scenes.tsx +252 -0
- package/engine/src/episodes/ep35-choke/timeline.ts +230 -0
- package/engine/src/episodes/ep36-boxed-pigs/CoverTall.tsx +65 -0
- package/engine/src/episodes/ep36-boxed-pigs/Ep36Pigs.tsx +519 -0
- package/engine/src/episodes/ep36-boxed-pigs/scenes.tsx +18 -0
- package/engine/src/episodes/ep36-boxed-pigs/timeline.ts +192 -0
- package/engine/src/episodes/ep37-bhop/Ep37Bhop.tsx +379 -0
- package/engine/src/episodes/ep37-bhop/scenes.tsx +166 -0
- package/engine/src/episodes/ep37-bhop/timeline.ts +232 -0
- package/engine/src/episodes/ep38-butterfly/CoverTall.tsx +55 -0
- package/engine/src/episodes/ep38-butterfly/Ep38Butterfly.tsx +434 -0
- package/engine/src/episodes/ep38-butterfly/timeline.ts +218 -0
- package/engine/src/episodes/ep39-latency/Ep39Latency.tsx +461 -0
- package/engine/src/episodes/ep39-latency/scenes.tsx +194 -0
- package/engine/src/episodes/ep39-latency/timeline.ts +248 -0
- package/engine/src/episodes/ep40-counter-strafe/Ep40CounterStrafe.tsx +410 -0
- package/engine/src/episodes/ep40-counter-strafe/scenes.tsx +124 -0
- package/engine/src/episodes/ep40-counter-strafe/timeline.ts +277 -0
- package/engine/src/episodes/ep41-flying-money/CoverTall.tsx +50 -0
- package/engine/src/episodes/ep41-flying-money/Ep41FlyingMoney.tsx +447 -0
- package/engine/src/episodes/ep41-flying-money/timeline.ts +239 -0
- package/engine/src/episodes/ep42-tap-fire/Ep42TapFire.tsx +376 -0
- package/engine/src/episodes/ep42-tap-fire/scenes.tsx +174 -0
- package/engine/src/episodes/ep42-tap-fire/timeline.ts +262 -0
- package/engine/src/episodes/ep43-one-more-game/Ep43OneMoreGame.tsx +376 -0
- package/engine/src/episodes/ep43-one-more-game/scenes.tsx +202 -0
- package/engine/src/episodes/ep43-one-more-game/timeline.ts +241 -0
- package/engine/src/episodes/ep45-callouts/Ep45Callouts.tsx +435 -0
- package/engine/src/episodes/ep45-callouts/scenes.tsx +170 -0
- package/engine/src/episodes/ep45-callouts/timeline.ts +260 -0
- package/engine/src/episodes/ep46-song-ice/CoverTall.tsx +51 -0
- package/engine/src/episodes/ep46-song-ice/Ep46SongIce.tsx +414 -0
- package/engine/src/episodes/ep46-song-ice/scenes.tsx +172 -0
- package/engine/src/episodes/ep46-song-ice/timeline.ts +257 -0
- package/engine/src/episodes/ep47-spotlight/Ep47Spotlight.tsx +416 -0
- package/engine/src/episodes/ep47-spotlight/scenes.tsx +146 -0
- package/engine/src/episodes/ep47-spotlight/timeline.ts +272 -0
- package/engine/src/episodes/ep48-jiggle-peek/Ep48JigglePeek.tsx +468 -0
- package/engine/src/episodes/ep48-jiggle-peek/scenes.tsx +86 -0
- package/engine/src/episodes/ep48-jiggle-peek/timeline.ts +264 -0
- package/engine/src/episodes/ep49-ad-strafe/Ep49AdStrafe.tsx +392 -0
- package/engine/src/episodes/ep49-ad-strafe/scenes.tsx +89 -0
- package/engine/src/episodes/ep49-ad-strafe/timeline.ts +266 -0
- package/engine/src/episodes/ep50-late-night/Ep50LateNight.tsx +380 -0
- package/engine/src/episodes/ep50-late-night/scenes.tsx +161 -0
- package/engine/src/episodes/ep50-late-night/timeline.ts +253 -0
- package/engine/src/episodes/ep51-practice/Ep51Practice.tsx +402 -0
- package/engine/src/episodes/ep51-practice/scenes.tsx +122 -0
- package/engine/src/episodes/ep51-practice/timeline.ts +241 -0
- package/engine/src/index.ts +4 -0
- package/engine/src/library/README.md +205 -0
- package/engine/src/library/Show.tsx +107 -0
- package/engine/src/library/Subtitles.tsx +105 -0
- package/engine/src/library/anim.ts +49 -0
- package/engine/src/library/blackgold/chaos.tsx +203 -0
- package/engine/src/library/blackgold/charts.tsx +578 -0
- package/engine/src/library/blackgold/pen.tsx +331 -0
- package/engine/src/library/blackgold/props.tsx +176 -0
- package/engine/src/library/blackgold/stage.tsx +262 -0
- package/engine/src/library/blackgold/theme.ts +62 -0
- package/engine/src/library/character/Accessories.tsx +172 -0
- package/engine/src/library/character/Arm.tsx +16 -0
- package/engine/src/library/character/BuddyFigure.tsx +127 -0
- package/engine/src/library/character/Char.tsx +71 -0
- package/engine/src/library/character/PixelBuddy.tsx +150 -0
- package/engine/src/library/character/types.ts +2 -0
- package/engine/src/library/cues.ts +49 -0
- package/engine/src/library/editor-room/canvas.tsx +264 -0
- package/engine/src/library/editor-room/mascots.tsx +92 -0
- package/engine/src/library/editor-room/stage.tsx +400 -0
- package/engine/src/library/editor-room/theme.ts +66 -0
- package/engine/src/library/fonts.ts +24 -0
- package/engine/src/library/fx.tsx +233 -0
- package/engine/src/library/gilded/charts.tsx +283 -0
- package/engine/src/library/gilded/props.tsx +245 -0
- package/engine/src/library/gilded/stage.tsx +312 -0
- package/engine/src/library/gilded/theme.ts +62 -0
- package/engine/src/library/halftone/props.tsx +332 -0
- package/engine/src/library/halftone/stage.tsx +435 -0
- package/engine/src/library/halftone/suspect.tsx +86 -0
- package/engine/src/library/halftone/theme.ts +71 -0
- package/engine/src/library/icons.tsx +318 -0
- package/engine/src/library/items/apps.tsx +161 -0
- package/engine/src/library/items/media.tsx +80 -0
- package/engine/src/library/items/objects.tsx +252 -0
- package/engine/src/library/lamplight/charts.tsx +530 -0
- package/engine/src/library/lamplight/ice.tsx +401 -0
- package/engine/src/library/lamplight/props.tsx +1072 -0
- package/engine/src/library/lamplight/scenes.tsx +187 -0
- package/engine/src/library/lamplight/stage.tsx +451 -0
- package/engine/src/library/lamplight/theme.ts +81 -0
- package/engine/src/library/previews/BlackGoldDemo.tsx +195 -0
- package/engine/src/library/previews/EditorRoomDemo.tsx +190 -0
- package/engine/src/library/previews/GildedDemo.tsx +185 -0
- package/engine/src/library/previews/HalftoneDemo.tsx +426 -0
- package/engine/src/library/previews/LamplightDemo.tsx +202 -0
- package/engine/src/library/previews/PixelWardrobe.tsx +39 -0
- package/engine/src/library/previews/TacticalDemo.tsx +280 -0
- package/engine/src/library/previews/Wardrobe.tsx +49 -0
- package/engine/src/library/previews/WarmDeskDemo.tsx +291 -0
- package/engine/src/library/previews/WarmDeskShowDemo.tsx +79 -0
- package/engine/src/library/sets/Studio.tsx +164 -0
- package/engine/src/library/tactical/attention.tsx +340 -0
- package/engine/src/library/tactical/charts.tsx +373 -0
- package/engine/src/library/tactical/hearing.tsx +189 -0
- package/engine/src/library/tactical/movement.tsx +163 -0
- package/engine/src/library/tactical/pipeline.tsx +236 -0
- package/engine/src/library/tactical/practice.tsx +84 -0
- package/engine/src/library/tactical/range.tsx +338 -0
- package/engine/src/library/tactical/ranked.tsx +267 -0
- package/engine/src/library/tactical/reward.tsx +204 -0
- package/engine/src/library/tactical/sleep.tsx +90 -0
- package/engine/src/library/tactical/spread.tsx +200 -0
- package/engine/src/library/tactical/stage.tsx +379 -0
- package/engine/src/library/tactical/theme.ts +48 -0
- package/engine/src/library/tactical/tracking.tsx +146 -0
- package/engine/src/library/tactical/vectors.tsx +161 -0
- package/engine/src/library/tactical/window.tsx +93 -0
- package/engine/src/library/theme.ts +55 -0
- package/engine/src/library/types.ts +11 -0
- package/engine/src/library/ui.tsx +137 -0
- package/engine/src/library/vox/CoverTall.tsx +92 -0
- package/engine/src/library/vox/VoxShow.tsx +136 -0
- package/engine/src/library/vox/desk.tsx +31 -0
- package/engine/src/library/vox/footage.tsx +74 -0
- package/engine/src/library/vox/hud.tsx +51 -0
- package/engine/src/library/vox/portrait.tsx +80 -0
- package/engine/src/library/vox/props.tsx +256 -0
- package/engine/src/library/vox/shots.tsx +66 -0
- package/engine/src/library/vox/stickers.tsx +132 -0
- package/engine/src/library/vox/theme.ts +77 -0
- package/engine/src/library/warm-desk/CoverTall.tsx +111 -0
- package/engine/src/library/warm-desk/DeskShow.tsx +127 -0
- package/engine/src/library/warm-desk/HostCam.tsx +30 -0
- package/engine/src/library/warm-desk/Slot.tsx +67 -0
- package/engine/src/library/warm-desk/immersive.tsx +105 -0
- package/engine/src/library/warm-desk/mascot.tsx +48 -0
- package/engine/src/library/warm-desk/motifs.tsx +277 -0
- package/engine/src/library/warm-desk/props.tsx +318 -0
- package/engine/src/library/warm-desk/stage.tsx +268 -0
- package/engine/src/library/warm-desk/theme.ts +83 -0
- package/engine/styles/LICENSE-huashu-art-motion +21 -0
- package/engine/styles/README.md +143 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/203/217/347/264/240/346/211/213/347/273/230/351/243/216/README.md +18 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/203/217/347/264/240/346/211/213/347/273/230/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/203/217/347/264/240/350/264/264/347/272/270/351/243/216/README.md +37 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/203/217/347/264/240/350/264/264/347/272/270/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/215/217/344/275/234/345/211/252/350/276/221/345/217/260/351/243/216/README.md +59 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//345/215/217/344/275/234/345/211/252/350/276/221/345/217/260/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/210/230/346/234/257/345/261/217/347/247/221/346/231/256/351/243/216/README.md +64 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/210/230/346/234/257/345/261/217/347/247/221/346/231/256/351/243/216//347/210/206/346/254/276/350/247/243/346/236/220.md +62 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/210/230/346/234/257/345/261/217/347/247/221/346/231/256/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/232/226/347/272/270/345/267/245/344/275/234/345/217/260/351/243/216/README.md +54 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/232/226/347/272/270/345/267/245/344/275/234/345/217/260/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/232/227/351/207/221/346/226/207/347/214/256/351/243/216/README.md +30 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//346/232/227/351/207/221/346/226/207/347/214/256/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/201/257/347/201/253/345/217/262/350/257/235/351/243/216/README.md +55 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/201/257/347/201/253/345/217/262/350/257/235/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/237/242/351/207/217/346/211/213/347/273/230/351/243/216/README.md +19 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/237/242/351/207/217/346/211/213/347/273/230/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/275/221/347/202/271/346/241/243/346/241/210/351/243/216/README.md +50 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//347/275/221/347/202/271/346/241/243/346/241/210/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//351/273/221/351/207/221/345/205/211/345/275/261/351/243/216/README.md +70 -0
- package/engine/styles//346/210/221/347/232/204/351/243/216/346/240/274//351/273/221/351/207/221/345/205/211/345/275/261/351/243/216//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/01_cave_/346/264/236/347/251/264/345/262/251/347/224/273//345/234/272/346/231/257/344/273/243/347/240/201.js +364 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/01_cave_/346/264/236/347/251/264/345/262/251/347/224/273//351/205/215/346/226/271/345/215/241.md +46 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/01_cave_/346/264/236/347/251/264/345/262/251/347/224/273//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/02_egypt_/345/237/203/345/217/212/345/243/201/347/224/273//345/234/272/346/231/257/344/273/243/347/240/201.js +524 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/02_egypt_/345/237/203/345/217/212/345/243/201/347/224/273//351/205/215/346/226/271/345/215/241.md +64 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/02_egypt_/345/237/203/345/217/212/345/243/201/347/224/273//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/03_greek_/345/217/244/345/270/214/350/205/212/351/273/221/347/273/230//345/234/272/346/231/257/344/273/243/347/240/201.js +448 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/03_greek_/345/217/244/345/270/214/350/205/212/351/273/221/347/273/230//351/205/215/346/226/271/345/215/241.md +50 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/03_greek_/345/217/244/345/270/214/350/205/212/351/273/221/347/273/230//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/04_roman_/347/275/227/351/251/254/351/251/254/350/265/233/345/205/213//345/234/272/346/231/257/344/273/243/347/240/201.js +555 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/04_roman_/347/275/227/351/251/254/351/251/254/350/265/233/345/205/213//351/205/215/346/226/271/345/215/241.md +99 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/04_roman_/347/275/227/351/251/254/351/251/254/350/265/233/345/205/213//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/05_gothic_/345/223/245/347/211/271/346/211/213/346/212/204/346/234/254//345/234/272/346/231/257/344/273/243/347/240/201.js +522 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/05_gothic_/345/223/245/347/211/271/346/211/213/346/212/204/346/234/254//351/205/215/346/226/271/345/215/241.md +32 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/05_gothic_/345/223/245/347/211/271/346/211/213/346/212/204/346/234/254//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/17_ink_/346/260/264/345/242/250/345/206/231/346/204/217//345/234/272/346/231/257/344/273/243/347/240/201.js +273 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/17_ink_/346/260/264/345/242/250/345/206/231/346/204/217//351/205/215/346/226/271/345/215/241.md +50 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/17_ink_/346/260/264/345/242/250/345/206/231/346/204/217//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/20_dunhuang_/346/225/246/347/205/214/345/243/201/347/224/273//345/234/272/346/231/257/344/273/243/347/240/201.js +215 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/20_dunhuang_/346/225/246/347/205/214/345/243/201/347/224/273//351/205/215/346/226/271/345/215/241.md +49 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/20_dunhuang_/346/225/246/347/205/214/345/243/201/347/224/273//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/34_shadowpuppet_/347/232/256/345/275/261//345/234/272/346/231/257/344/273/243/347/240/201.js +195 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/34_shadowpuppet_/347/232/256/345/275/261//351/205/215/346/226/271/345/215/241.md +40 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/01_/345/217/244/344/273/243/344/270/216/344/274/240/347/273/237/34_shadowpuppet_/347/232/256/345/275/261//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/06_renaissance_/346/226/207/350/211/272/345/244/215/345/205/264//345/234/272/346/231/257/344/273/243/347/240/201.js +338 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/06_renaissance_/346/226/207/350/211/272/345/244/215/345/205/264//351/205/215/346/226/271/345/215/241.md +41 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/06_renaissance_/346/226/207/350/211/272/345/244/215/345/205/264//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/32_rembrandt_/344/274/246/345/213/203/346/234/227/346/230/216/346/232/227//345/234/272/346/231/257/344/273/243/347/240/201.js +217 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/32_rembrandt_/344/274/246/345/213/203/346/234/227/346/230/216/346/232/227//351/205/215/346/226/271/345/215/241.md +29 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/02_/345/217/244/345/205/270/346/262/271/347/224/273/32_rembrandt_/344/274/246/345/213/203/346/234/227/346/230/216/346/232/227//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/08_impressionism_/345/215/260/350/261/241/346/264/276//345/234/272/346/231/257/344/273/243/347/240/201.js +206 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/08_impressionism_/345/215/260/350/261/241/346/264/276//351/205/215/346/226/271/345/215/241.md +34 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/08_impressionism_/345/215/260/350/261/241/346/264/276//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/09_postimp_/346/242/265/351/253/230//345/234/272/346/231/257/344/273/243/347/240/201.js +183 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/09_postimp_/346/242/265/351/253/230//351/205/215/346/226/271/345/215/241.md +17 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/09_postimp_/346/242/265/351/253/230//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/28_monet_/350/216/253/345/245/210//345/234/272/346/231/257/344/273/243/347/240/201.js +176 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/28_monet_/350/216/253/345/245/210//351/205/215/346/226/271/345/215/241.md +39 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/28_monet_/350/216/253/345/245/210//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/29_seurat_/344/277/256/346/213/211/347/202/271/345/275/251//345/234/272/346/231/257/344/273/243/347/240/201.js +104 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/29_seurat_/344/277/256/346/213/211/347/202/271/345/275/251//351/205/215/346/226/271/345/215/241.md +31 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/03_/345/215/260/350/261/241/346/264/276/344/270/216/345/220/216/345/215/260/350/261/241/29_seurat_/344/277/256/346/213/211/347/202/271/345/275/251//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/10_nouveau_/346/205/225/345/244/217/346/226/260/350/211/272/346/234/257//345/234/272/346/231/257/344/273/243/347/240/201.js +334 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/10_nouveau_/346/205/225/345/244/217/346/226/260/350/211/272/346/234/257//351/205/215/346/226/271/345/215/241.md +31 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/10_nouveau_/346/205/225/345/244/217/346/226/260/350/211/272/346/234/257//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/11_cubism_/347/253/213/344/275/223/344/270/273/344/271/211//345/234/272/346/231/257/344/273/243/347/240/201.js +265 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/11_cubism_/347/253/213/344/275/223/344/270/273/344/271/211//351/205/215/346/226/271/345/215/241.md +30 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/11_cubism_/347/253/213/344/275/223/344/270/273/344/271/211//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/12_bauhaus_/345/214/205/350/261/252/346/226/257//345/234/272/346/231/257/344/273/243/347/240/201.js +214 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/12_bauhaus_/345/214/205/350/261/252/346/226/257//351/205/215/346/226/271/345/215/241.md +30 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/12_bauhaus_/345/214/205/350/261/252/346/226/257//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/18_klimt_/345/205/213/351/207/214/345/247/206/347/211/271//345/234/272/346/231/257/344/273/243/347/240/201.js +227 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/18_klimt_/345/205/213/351/207/214/345/247/206/347/211/271//351/205/215/346/226/271/345/215/241.md +37 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/18_klimt_/345/205/213/351/207/214/345/247/206/347/211/271//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/19_munch_/350/222/231/345/205/213//345/234/272/346/231/257/344/273/243/347/240/201.js +153 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/19_munch_/350/222/231/345/205/213//351/205/215/346/226/271/345/215/241.md +42 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/19_munch_/350/222/231/345/205/213//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/22_constructivism_/346/236/204/346/210/220/344/270/273/344/271/211//345/234/272/346/231/257/344/273/243/347/240/201.js +205 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/22_constructivism_/346/236/204/346/210/220/344/270/273/344/271/211//351/205/215/346/226/271/345/215/241.md +35 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/22_constructivism_/346/236/204/346/210/220/344/270/273/344/271/211//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/23_dali_/350/276/276/345/210/251/350/266/205/347/216/260/345/256/236//345/234/272/346/231/257/344/273/243/347/240/201.js +221 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/23_dali_/350/276/276/345/210/251/350/266/205/347/216/260/345/256/236//351/205/215/346/226/271/345/215/241.md +29 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/23_dali_/350/276/276/345/210/251/350/266/205/347/216/260/345/256/236//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/24_hopper_/351/234/215/347/217/200//345/234/272/346/231/257/344/273/243/347/240/201.js +150 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/24_hopper_/351/234/215/347/217/200//351/205/215/346/226/271/345/215/241.md +30 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/24_hopper_/351/234/215/347/217/200//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/30_matisse_/351/251/254/350/222/202/346/226/257/345/211/252/347/272/270//345/234/272/346/231/257/344/273/243/347/240/201.js +151 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/30_matisse_/351/251/254/350/222/202/346/226/257/345/211/252/347/272/270//351/205/215/346/226/271/345/215/241.md +26 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/30_matisse_/351/251/254/350/222/202/346/226/257/345/211/252/347/272/270//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/36_picasso_blue_/346/257/225/345/212/240/347/264/242/350/223/235/350/211/262/346/227/266/346/234/237//345/234/272/346/231/257/344/273/243/347/240/201.js +123 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/36_picasso_blue_/346/257/225/345/212/240/347/264/242/350/223/235/350/211/262/346/227/266/346/234/237//351/205/215/346/226/271/345/215/241.md +25 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/04_/347/216/260/344/273/243/344/270/273/344/271/211/36_picasso_blue_/346/257/225/345/212/240/347/264/242/350/223/235/350/211/262/346/227/266/346/234/237//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/13_pop_/346/263/242/346/231/256/350/211/272/346/234/257//345/234/272/346/231/257/344/273/243/347/240/201.js +269 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/13_pop_/346/263/242/346/231/256/350/211/272/346/234/257//351/205/215/346/226/271/345/215/241.md +29 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/13_pop_/346/263/242/346/231/256/350/211/272/346/234/257//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/21_kusama_/350/215/211/351/227/264/345/274/245/347/224/237/346/263/242/347/202/271//345/234/272/346/231/257/344/273/243/347/240/201.js +124 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/21_kusama_/350/215/211/351/227/264/345/274/245/347/224/237/346/263/242/347/202/271//351/205/215/346/226/271/345/215/241.md +32 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/21_kusama_/350/215/211/351/227/264/345/274/245/347/224/237/346/263/242/347/202/271//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/27_kirby_/346/274/253/345/250/201Kirby//345/234/272/346/231/257/344/273/243/347/240/201.js +255 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/27_kirby_/346/274/253/345/250/201Kirby//351/205/215/346/226/271/345/215/241.md +30 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/27_kirby_/346/274/253/345/250/201Kirby//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/31_haring_/345/223/210/346/236/227/346/266/202/351/270/246//345/234/272/346/231/257/344/273/243/347/240/201.js +109 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/31_haring_/345/223/210/346/236/227/346/266/202/351/270/246//351/205/215/346/226/271/345/215/241.md +22 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/05_/346/263/242/346/231/256/344/270/216/350/241/227/345/244/264/31_haring_/345/223/210/346/236/227/346/266/202/351/270/246//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/16_2026_/345/275/223/344/273/243/346/211/201/345/271/263/346/217/222/347/224/273//345/234/272/346/231/257/344/273/243/347/240/201.js +565 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/16_2026_/345/275/223/344/273/243/346/211/201/345/271/263/346/217/222/347/224/273//351/205/215/346/226/271/345/215/241.md +55 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/16_2026_/345/275/223/344/273/243/346/211/201/345/271/263/346/217/222/347/224/273//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/25_ghibli_/345/220/211/345/215/234/345/212/233/346/260/264/345/275/251//345/234/272/346/231/257/344/273/243/347/240/201.js +251 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/25_ghibli_/345/220/211/345/215/234/345/212/233/346/260/264/345/275/251//351/205/215/346/226/271/345/215/241.md +31 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/25_ghibli_/345/220/211/345/215/234/345/212/233/346/260/264/345/275/251//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/33_rubberhose_/346/251/241/347/232/256/347/256/241/345/215/241/351/200/232//345/234/272/346/231/257/344/273/243/347/240/201.js +219 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/33_rubberhose_/346/251/241/347/232/256/347/256/241/345/215/241/351/200/232//351/205/215/346/226/271/345/215/241.md +31 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/33_rubberhose_/346/251/241/347/232/256/347/256/241/345/215/241/351/200/232//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/35_shinkai_/346/226/260/346/265/267/350/257/232/345/205/211/345/275/261//345/234/272/346/231/257/344/273/243/347/240/201.js +197 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/35_shinkai_/346/226/260/346/265/267/350/257/232/345/205/211/345/275/261//351/205/215/346/226/271/345/215/241.md +34 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/06_/345/215/241/351/200/232/344/270/216/345/212/250/347/224/273/35_shinkai_/346/226/260/346/265/267/350/257/232/345/205/211/345/275/261//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/14_8bit_8-bit/345/203/217/347/264/240//345/234/272/346/231/257/344/273/243/347/240/201.js +238 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/14_8bit_8-bit/345/203/217/347/264/240//351/205/215/346/226/271/345/215/241.md +27 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/14_8bit_8-bit/345/203/217/347/264/240//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/15_raytrace_/346/227/251/346/234/237/345/205/211/350/277/275CGI//345/234/272/346/231/257/344/273/243/347/240/201.js +300 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/15_raytrace_/346/227/251/346/234/237/345/205/211/350/277/275CGI//351/205/215/346/226/271/345/215/241.md +32 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/15_raytrace_/346/227/251/346/234/237/345/205/211/350/277/275CGI//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/26_vaporwave_/350/222/270/346/261/275/346/263/242//345/234/272/346/231/257/344/273/243/347/240/201.js +191 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/26_vaporwave_/350/222/270/346/261/275/346/263/242//351/205/215/346/226/271/345/215/241.md +27 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274/07_/346/225/260/345/255/227/344/270/216/345/203/217/347/264/240/26_vaporwave_/350/222/270/346/261/275/346/263/242//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274//345/216/237/347/211/210/346/200/273/347/264/242/345/274/225.md +47 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274//350/275/254/345/234/272_/350/277/201/347/247/273/346/265/213/350/257/225.md +53 -0
- package/engine/styles//350/211/272/346/234/257/351/243/216/346/240/274//351/237/263/350/275/250_/350/211/272/346/234/257/345/217/262/351/200/237/351/200/232.md +135 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//345/217/202/346/225/260/347/244/272/344/276/213.json +20 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/211/207/346/256/265/344/273/243/347/240/201.js +197 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +11 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/244/272/350/214/203/345/267/245/347/250/213/t1_s1.js +101 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/244/272/350/214/203/345/267/245/347/250/213/t1_s2.js +74 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//347/244/272/350/214/203/345/267/245/347/250/213/t1_s3.js +65 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//350/257/255/346/263/225/345/215/241.md +114 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/t1_3b1b_3Blue1Brown//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//345/217/202/346/225/260/347/244/272/344/276/213.json +18 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//347/211/207/346/256/265/344/273/243/347/240/201.js +143 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +10 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//347/244/272/350/214/203/345/267/245/347/250/213/kurzgesagt.js +347 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//350/257/255/346/263/225/345/215/241.md +183 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y1_kurzgesagt_Kurzgesagt//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//345/217/202/346/225/260/347/244/272/344/276/213.json +17 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//347/211/207/346/256/265/344/273/243/347/240/201.js +206 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +10 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//347/244/272/350/214/203/345/267/245/347/250/213/whiteboard.js +162 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//350/257/255/346/263/225/345/215/241.md +182 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/01_/347/247/221/346/231/256/345/233/276/350/247/243/y3_whiteboard_/347/231/275/346/235/277//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//345/217/202/346/225/260/347/244/272/344/276/213.json +17 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/211/207/346/256/265/344/273/243/347/240/201.js +243 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +10 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/244/272/350/214/203/345/267/245/347/250/213/t2_s1.js +57 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/244/272/350/214/203/345/267/245/347/250/213/t2_s2.js +70 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//347/244/272/350/214/203/345/267/245/347/250/213/t2_s3.js +61 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//350/257/255/346/263/225/345/215/241.md +109 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t2_keynote_ui_/345/217/221/345/270/203/344/274/232//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//345/217/202/346/225/260/347/244/272/344/276/213.json +27 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/211/207/346/256/265/344/273/243/347/240/201.js +174 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +11 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/244/272/350/214/203/345/267/245/347/250/213/t3_s1.js +48 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/244/272/350/214/203/345/267/245/347/250/213/t3_s2.js +42 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//347/244/272/350/214/203/345/267/245/347/250/213/t3_s3.js +51 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//350/257/255/346/263/225/345/215/241.md +107 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/t3_finance_chart_/350/264/242/347/273/217/345/233/276/350/241/250//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//345/217/202/346/225/260/347/244/272/344/276/213.json +14 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//347/211/207/346/256/265/344/273/243/347/240/201.js +141 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +10 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//347/244/272/350/214/203/345/267/245/347/250/213/vox.js +240 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//350/257/255/346/263/225/345/215/241.md +185 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/02_/346/226/260/351/227/273/344/270/216/346/225/260/346/215/256/y2_vox_Vox//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//345/217/202/346/225/260/347/244/272/344/276/213.json +14 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/211/207/346/256/265/344/273/243/347/240/201.js +168 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +14 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s1_desk.js +18 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s2_screen.js +82 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s3_react.js +39 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s4_wide.js +16 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/s5_close.js +18 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/story.js +25 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/vo_env.js +2 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//347/244/272/350/214/203/345/267/245/347/250/213/world.js +73 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//350/257/255/346/263/225/345/215/241.md +166 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y4_storytime_Storytime//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//345/217/202/346/225/260/347/244/272/344/276/213.json +14 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/211/207/346/256/265/344/273/243/347/240/201.js +126 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/eras.js +16 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/k1_title.js +38 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/k2_complete.js +55 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/k3_chat.js +47 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/k4_agent.js +49 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//347/244/272/350/214/203/345/267/245/347/250/213/kinetic.js +52 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//350/257/255/346/263/225/345/215/241.md +150 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y5_kinetic_type_/345/212/250/346/200/201/346/226/207/345/255/227//351/242/204/350/247/210.jpg +0 -0
- package/engine/styles//350/247/243/350/257/264/350/257/255/346/263/225/03_/350/212/202/345/245/217/344/270/216/344/272/272/347/211/251/y6_presenter_explainer_/350/256/262/350/247/243/345/221/230//350/257/255/346/263/225/345/215/241.md +24 -0
- package/engine/tests/episodes/ep00-demo.test.ts +69 -0
- package/engine/tests/episodes/ep01-agent-cues.test.ts +25 -0
- package/engine/tests/episodes/ep01-agent-scenes.test.ts +25 -0
- package/engine/tests/episodes/ep02-llm.test.ts +31 -0
- package/engine/tests/episodes/ep03-cc.test.ts +24 -0
- package/engine/tests/episodes/ep04-opus55.test.ts +24 -0
- package/engine/tests/episodes/ep05-token.test.ts +24 -0
- package/engine/tests/episodes/ep06-context.test.ts +24 -0
- package/engine/tests/episodes/ep07-agent.test.ts +24 -0
- package/engine/tests/episodes/ep08-hallucination.test.ts +24 -0
- package/engine/tests/episodes/ep09-prompt.test.ts +24 -0
- package/engine/tests/episodes/ep10-multimodal.test.ts +24 -0
- package/engine/tests/episodes/ep11-mcp.test.ts +24 -0
- package/engine/tests/episodes/ep12-skill.test.ts +24 -0
- package/engine/tests/episodes/ep13-subagent.test.ts +24 -0
- package/engine/tests/episodes/ep14-agent-permission.test.ts +24 -0
- package/engine/tests/episodes/ep15-prompt-injection.test.ts +24 -0
- package/engine/tests/episodes/ep16-agent-done.test.ts +24 -0
- package/engine/tests/episodes/ep17-sycophancy.test.ts +24 -0
- package/engine/tests/episodes/ep18-ai-history.test.ts +19 -0
- package/engine/tests/episodes/ep19-apple-history.test.ts +19 -0
- package/engine/tests/episodes/ep20-nvidia-history.test.ts +19 -0
- package/engine/tests/episodes/ep21-nobel-physics.test.ts +19 -0
- package/engine/tests/episodes/ep22-nobel-chemistry.test.ts +19 -0
- package/engine/tests/episodes/ep23-wheat-chessboard.test.ts +55 -0
- package/engine/tests/episodes/ep24-birthday-paradox.test.ts +140 -0
- package/engine/tests/episodes/ep25-behind-cover.test.ts +83 -0
- package/engine/tests/episodes/ep26-opus-video.test.ts +39 -0
- package/engine/tests/episodes/ep27-opus-video-full.test.ts +51 -0
- package/engine/tests/episodes/ep28-express-relay.test.ts +107 -0
- package/engine/tests/episodes/ep29-footsteps.test.ts +101 -0
- package/engine/tests/episodes/ep30-tang-divorce.test.ts +101 -0
- package/engine/tests/episodes/ep31-rigged.test.ts +108 -0
- package/engine/tests/episodes/ep32-love-lasts.test.ts +104 -0
- package/engine/tests/episodes/ep33-teammates.test.ts +113 -0
- package/engine/tests/episodes/ep34-song-takeout.test.ts +98 -0
- package/engine/tests/episodes/ep35-choke.test.ts +109 -0
- package/engine/tests/episodes/ep36-boxed-pigs.test.ts +98 -0
- package/engine/tests/episodes/ep37-bhop.test.ts +114 -0
- package/engine/tests/episodes/ep38-butterfly.test.ts +118 -0
- package/engine/tests/episodes/ep39-latency.test.ts +150 -0
- package/engine/tests/episodes/ep40-counter-strafe.test.ts +145 -0
- package/engine/tests/episodes/ep41-flying-money.test.ts +97 -0
- package/engine/tests/episodes/ep42-tap-fire.test.ts +137 -0
- package/engine/tests/episodes/ep43-one-more-game.test.ts +129 -0
- package/engine/tests/episodes/ep45-callouts.test.ts +150 -0
- package/engine/tests/episodes/ep46-song-ice.test.ts +117 -0
- package/engine/tests/episodes/ep47-spotlight.test.ts +159 -0
- package/engine/tests/episodes/ep48-jiggle-peek.test.ts +154 -0
- package/engine/tests/episodes/ep49-ad-strafe.test.ts +139 -0
- package/engine/tests/episodes/ep50-late-night.test.ts +156 -0
- package/engine/tests/episodes/ep51-practice.test.ts +117 -0
- package/engine/tests/library/anim.test.ts +37 -0
- package/engine/tests/library/bgm.test.ts +29 -0
- package/engine/tests/library/blackgold.test.ts +37 -0
- package/engine/tests/library/halftone.test.ts +40 -0
- package/engine/tests/library/lamplight.test.ts +60 -0
- package/engine/tests/library/srt.test.ts +13 -0
- package/engine/tests/library/subtitles.test.ts +12 -0
- package/engine/tests/library/synth.test.ts +29 -0
- package/engine/tests/library/tactical.test.ts +37 -0
- package/engine/tests/library/warm-desk.test.ts +25 -0
- package/engine/tsconfig.json +15 -0
- package/engine/vitest.config.ts +3 -0
- package/lib/host.mjs +654 -0
- package/manifest.json +51 -0
- package/package.json +8 -4
- package/skills/biuvibe/SKILL.md +28 -0
- package/studio/app.js +258 -0
- package/studio/assert-panel-permit.mjs +67 -0
- package/studio/composer.css +438 -0
- package/studio/composer.js +307 -0
- package/studio/index.html +82 -0
- package/studio/select-menu.js +433 -0
- package/studio/styles.css +2 -0
- package/studio/thumbs/blackgold.jpg +0 -0
- package/studio/thumbs/desk.jpg +0 -0
- package/studio/thumbs/editor.jpg +0 -0
- package/studio/thumbs/fps.jpg +0 -0
- package/studio/thumbs/gilded.jpg +0 -0
- package/studio/thumbs/halftone.jpg +0 -0
- package/studio/thumbs/lamplight.jpg +0 -0
- package/studio/thumbs/pixel-hand.jpg +0 -0
- package/studio/thumbs/pixel-sticker.jpg +0 -0
- package/studio/thumbs/vector.jpg +0 -0
- package/studio/thumbs/vox-cut.jpg +0 -0
- package/studio/thumbs/vox-timeline.jpg +0 -0
- package/README.md +0 -3
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ep50 凌晨打排位,手感去哪了?(战术屏科普风,无口播,约 2 分 18 秒,配乐 we-never 从第 0 秒开始)
|
|
3
|
+
* 冤 → 翻案 → 招:凌晨两点还在排,枪越打越飘,你以为是手感玄学、状态不对;其实是醒得太久——
|
|
4
|
+
* 醒着 17–19 小时,有些表现和血液酒精 0.05% 一样差;缺觉会累积,而你自己几乎察觉不到;最先坏掉的是注意力的「走神」;
|
|
5
|
+
* 练完睡一觉,动作技能反而变强。招:定下线时间、晚了连输就别开、新技巧睡前练、别连着熬。锚词「离线」。
|
|
6
|
+
* 第 8 小节(17.45 秒)标题砸出,第 48 小节(102.52 秒)砸出「离线」。片尾停在评论区问题,不做下期预告。
|
|
7
|
+
* 事实出处(都只读到摘要):
|
|
8
|
+
* Williamson & Feyer 2000《Moderate sleep deprivation produces impairments in cognitive and motor performance equivalent to
|
|
9
|
+
* legally prescribed levels of alcohol intoxication》Occup Environ Med 57(10):649–655:39 人(运输业 30、军队 9)、28 小时不睡 +
|
|
10
|
+
* 喝到约 0.1% BAC;醒着 17–19 小时(22:30 和 01:00)时有些测试相当于或差于 0.05% BAC,反应最多慢 50%。
|
|
11
|
+
* Van Dongen, Maislin, Mullington & Dinges 2003《The cumulative cost of additional wakefulness》Sleep 26(2):117–126:48 人;
|
|
12
|
+
* 每晚 8 / 6 / 4 小时连续 14 天,或 3 晚完全不睡;每晚 ≤ 6 小时造成的认知缺陷最多相当于 2 晚完全不睡;受试者基本没察觉;
|
|
13
|
+
* 清醒超过 15.84 小时后,注意力失误几乎随累积清醒时间线性增加。
|
|
14
|
+
* Lim & Dinges 2010《A meta-analysis of the impact of short-term sleep deprivation on cognitive variables》Psychol Bull 136(3):375–389:
|
|
15
|
+
* 70 篇文章、147 项测试;效应量从推理准确率 g = −0.125(不显著)到简单注意力失误 g = −0.776。
|
|
16
|
+
* Walker, Brakefield, Morgan, Hobson & Stickgold 2002《Practice with sleep makes perfect: sleep-dependent motor skill learning》
|
|
17
|
+
* Neuron 35(1):205–211:睡一晚动作速度提高 20% 且准确度不降,同样时长醒着没有显著提升。
|
|
18
|
+
* 「早上 8 点起、凌晨 2 点就醒了 18 小时」是自己算的;四招是建议。
|
|
19
|
+
*/
|
|
20
|
+
export const FPS = 30;
|
|
21
|
+
export const W = 1920;
|
|
22
|
+
export const H = 1080;
|
|
23
|
+
|
|
24
|
+
/** we-never 网格(与 ep25 相同):两个重拍 17.45 秒和 102.52 秒相隔正好 40 小节 */
|
|
25
|
+
export const BAR = (102.52 - 17.45) / 40;
|
|
26
|
+
export const BAR0 = 17.45 - 8 * BAR;
|
|
27
|
+
export const BEAT = BAR / 4;
|
|
28
|
+
export const beatSec = (b: number) => BAR0 + BEAT * b;
|
|
29
|
+
export const fr = (sec: number) => Math.round(sec * FPS);
|
|
30
|
+
/** 第 b 拍的帧(小节 k 就是 fbt(4k)) */
|
|
31
|
+
export const fbt = (b: number) => fr(beatSec(b));
|
|
32
|
+
export const fb = (k: number) => fbt(4 * k);
|
|
33
|
+
|
|
34
|
+
export const HIT = fb(8);
|
|
35
|
+
export const HIT2 = fb(48);
|
|
36
|
+
export const DARK_FROM = fr(16.7);
|
|
37
|
+
export const DARK_FROM2 = fr(101.75);
|
|
38
|
+
export const FREEZE = 3;
|
|
39
|
+
export const DURATION = fr(beatSec(256) + 1);
|
|
40
|
+
|
|
41
|
+
/** 开场三次重音(第 7、10、15 拍):被反手带走、表盘「醒了 18 小时」、分屏「下午 2 点 / 凌晨 2 点」 */
|
|
42
|
+
export const DEATH = fbt(7);
|
|
43
|
+
export const DIAL = fbt(10);
|
|
44
|
+
export const SPLIT = fbt(15);
|
|
45
|
+
/** 开场你打空的三枪(拍号) */
|
|
46
|
+
export const OPEN_SHOTS = [3, 4, 6];
|
|
47
|
+
|
|
48
|
+
export const SERIES = 'FPS 原理课';
|
|
49
|
+
export const EP = 'EP.15';
|
|
50
|
+
export const TOPIC = '缺觉';
|
|
51
|
+
export const TITLE = '凌晨打排位,手感去哪了?';
|
|
52
|
+
export const HOOK_LINE = '凌晨两点还在排,你的〖手感为什么没了〗?';
|
|
53
|
+
export const ANCHOR = '离线';
|
|
54
|
+
export const TERM2 = '睡眠巩固 · Sleep-dependent Consolidation';
|
|
55
|
+
/** 大字卡(不走字幕) */
|
|
56
|
+
export const QUESTION_LINE = '你不觉得困,\n为什么〔枪越来越飘〕?';
|
|
57
|
+
export const BIG_LINE = '你不觉得困,\n不代表〔你没变菜〕';
|
|
58
|
+
export const FLIP_LINE = '你不是手感没了,\n是〔大脑该下线了〕';
|
|
59
|
+
export const ASK_LINE = '你最晚的一把排位,\n是几点开的?';
|
|
60
|
+
|
|
61
|
+
/** 章节:[起始小节, 名字];HUD 右上角和底部进度条用 */
|
|
62
|
+
export const CHAPTERS: [number, string][] = [
|
|
63
|
+
[0, '开场'],
|
|
64
|
+
[9, '醒了多久'],
|
|
65
|
+
[16, '感觉不到'],
|
|
66
|
+
[24, '掉线'],
|
|
67
|
+
[32, '睡一觉'],
|
|
68
|
+
[40, '怎么办'],
|
|
69
|
+
[48, '结尾'],
|
|
70
|
+
];
|
|
71
|
+
export const chapterAt = (f: number) => {
|
|
72
|
+
let i = 0;
|
|
73
|
+
CHAPTERS.forEach(([b], k) => {
|
|
74
|
+
if (f >= fb(b)) i = k;
|
|
75
|
+
});
|
|
76
|
+
return i;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
/** 字幕:[拍号, 文字]。【】青 〖〗红 〔〕橙;每句停到下一句开始;null 表示这段放大字卡或标题卡 */
|
|
80
|
+
export const CUES: [number, string | null][] = [
|
|
81
|
+
// 开场:重演挫败
|
|
82
|
+
[0, '凌晨两点,你还在排位。'],
|
|
83
|
+
[3, '一个站着不动的人,你打了三枪。'],
|
|
84
|
+
[7, '〖你被他反手带走了〗。'],
|
|
85
|
+
[10, '你觉得是手感玄学,今天状态不对。'],
|
|
86
|
+
[15, '可你一点都不觉得困,'],
|
|
87
|
+
[19, '还想着「再打一把就睡」。'],
|
|
88
|
+
[24, '队友说你在梦游,你自己也想不通。'],
|
|
89
|
+
[28, '问题不在手感,在你醒了多久——'],
|
|
90
|
+
[32, null], // 标题卡
|
|
91
|
+
// 醒了多久
|
|
92
|
+
[36, '2000 年,澳大利亚的研究者做了个实验。'],
|
|
93
|
+
[40, '39 个人一直不睡,隔一阵就测一次反应。'],
|
|
94
|
+
[44, '另一天,同一批人喝酒,测同样的项目。'],
|
|
95
|
+
[48, '结果:醒着 17 到 19 个小时,'],
|
|
96
|
+
[52, '有些测试,和血液酒精 0.05% 一样差。'],
|
|
97
|
+
[56, '反应速度,最多慢了 50%。'],
|
|
98
|
+
[60, '早上 8 点起床,凌晨 2 点就醒了 18 个小时。'],
|
|
99
|
+
// 感觉不到
|
|
100
|
+
[68, '大脑也要【离线】,可你一直没让它下线。'],
|
|
101
|
+
[72, '2003 年的实验更狠:连续 14 天,'],
|
|
102
|
+
[76, '分组每晚只让睡 8、6、4 个小时。'],
|
|
103
|
+
[80, '每晚只睡 6 小时的人,两周后,'],
|
|
104
|
+
[84, '表现最多掉到跟〖两晚完全不睡〗一样。'],
|
|
105
|
+
[88, '可他们自己,并没有觉得越来越困。'],
|
|
106
|
+
[92, '你在变菜,你的困意却没跟着报警。'],
|
|
107
|
+
// 掉线
|
|
108
|
+
[100, '缺觉最先坏掉的,是哪一样?'],
|
|
109
|
+
[104, '2010 年一项元分析,汇总了 70 篇研究。'],
|
|
110
|
+
[108, '影响最大的,是简单注意力里的「走神」。'],
|
|
111
|
+
[112, '眼睛开着,大脑却断线了一小下。'],
|
|
112
|
+
[116, '醒着超过约 16 小时,走神就越来越多。'],
|
|
113
|
+
[120, '对枪时那一下断线,〖就是你被带走的那一下〗。'],
|
|
114
|
+
[124, '不是手感玄学,是大脑在〔掉线〕。'],
|
|
115
|
+
// 睡一觉
|
|
116
|
+
[132, '还有个反直觉的事:练完睡一觉会变强。'],
|
|
117
|
+
[136, '2002 年的实验:让人练一个动作技能。'],
|
|
118
|
+
[140, '隔同样久、但一直醒着:没有显著进步。'],
|
|
119
|
+
[144, '中间睡一晚再测:速度快了 20%。'],
|
|
120
|
+
[148, '准确度也没掉,睡着时大脑在偷偷整理。'],
|
|
121
|
+
[152, null], // 大字:你不觉得困,不代表你没变菜
|
|
122
|
+
// 怎么办(配乐回落段)
|
|
123
|
+
[160, '别跟困意较劲,试试这四招:'],
|
|
124
|
+
[164, '① 定一个下线时间,到点就停。'],
|
|
125
|
+
[168, '② 很晚了还连输,就别再开下一把。'],
|
|
126
|
+
[172, '③ 新技巧睡前练,睡一觉再上分。'],
|
|
127
|
+
[176, '④ 别连着几晚熬,缺觉会累积。'],
|
|
128
|
+
[180, '你睡着的那几个小时,也算在练枪。'],
|
|
129
|
+
[188, '让手感回来的,不是再来一把,是那段——'],
|
|
130
|
+
[192, null], // 第二个爆点「离线」
|
|
131
|
+
// 结尾
|
|
132
|
+
[200, '睡饱的你,和凌晨两点的你,'],
|
|
133
|
+
[204, '不是同一个人。'],
|
|
134
|
+
[208, '第二天下午,同一个靶位。'],
|
|
135
|
+
[216, '这一次,〔一枪就够了〕。'],
|
|
136
|
+
[224, null], // 情绪翻转大字
|
|
137
|
+
[236, null], // 大字:评论区问题(放到片尾)
|
|
138
|
+
];
|
|
139
|
+
export const cueStart = (i: number) => fbt(CUES[i][0]);
|
|
140
|
+
export const cueEnd = (i: number) => (i + 1 < CUES.length ? cueStart(i + 1) : DURATION);
|
|
141
|
+
/** 话说一半的两句(爆点前一句):随收暗退场 */
|
|
142
|
+
export const HALF_BEATS = [28, 188];
|
|
143
|
+
|
|
144
|
+
/** 镜头(全部硬切,按拍 / 小节对齐),首尾相接 */
|
|
145
|
+
export const SHOTS = {
|
|
146
|
+
hook: [0, DEATH], // 3D:凌晨两点,准星飘,站着不动的人打三枪都空
|
|
147
|
+
death: [DEATH, DIAL], // 被反手带走:红屏裂纹
|
|
148
|
+
dial: [DIAL, SPLIT], // 24 小时表盘:从早上 8 点醒到凌晨 2 点
|
|
149
|
+
split: [SPLIT, fb(6)], // 分屏:下午 2 点的准星稳 / 凌晨 2 点的准星飘
|
|
150
|
+
question: [fb(6), HIT], // 大字提问;DARK_FROM 起收暗
|
|
151
|
+
title: [HIT, fb(9)], // 标题卡砸出
|
|
152
|
+
equiv: [fb(9), fb(14)], // 两把尺子:醒着的小时数 ↔ 血液酒精浓度
|
|
153
|
+
slow: [fb(14), fb(15)], // 反应最多慢 50%
|
|
154
|
+
awake: [fb(15), fb(16)], // 表盘:18 小时
|
|
155
|
+
offline: [fb(16), fb(18)], // 章节卡 + 锚词:大脑在线 18 小时
|
|
156
|
+
days: [fb(18), fb(22)], // 14 天三条线(示意):6 小时那条掉到「两晚不睡」
|
|
157
|
+
unaware: [fb(22), fb(24)], // 两根柱(示意):实际变菜 ↑、自己觉得困 —
|
|
158
|
+
meta: [fb(24), fb(28)], // 章节卡 + 效应量:走神 0.776 vs 推理 0.125
|
|
159
|
+
lapse: [fb(28), fb(32)], // 一天的注意力:超过约 16 小时后断线越来越密(示意)
|
|
160
|
+
sleep: [fb(32), fb(38)], // 章节卡 + 醒着 vs 睡一晚 +20%
|
|
161
|
+
bigline: [fb(38), fb(40)], // 大字
|
|
162
|
+
steps: [fb(40), fb(45)], // 章节卡 + 四招
|
|
163
|
+
build: [fb(45), HIT2], // 回落段:表盘走到下线时间,屏幕熄灭,收暗
|
|
164
|
+
hit2: [HIT2, fb(50)], // 「离线」砸出
|
|
165
|
+
outro: [fb(50), fb(56)], // 暖色射击场:下午 2 点,准星稳,一枪爆头
|
|
166
|
+
flipline: [fb(56), fb(59)], // 情绪翻转大字
|
|
167
|
+
ask: [fb(59), DURATION], // 评论区问题,放到片尾
|
|
168
|
+
} as const;
|
|
169
|
+
|
|
170
|
+
/** 结尾:准星稳下来、开枪 */
|
|
171
|
+
export const OUT_KILL = fbt(216);
|
|
172
|
+
|
|
173
|
+
/* ---------------- 片中的事实(原文,测试核对) ---------------- */
|
|
174
|
+
|
|
175
|
+
/** Williamson & Feyer 2000 */
|
|
176
|
+
export const WF_YEAR = 2000;
|
|
177
|
+
export const WF_N = 39;
|
|
178
|
+
export const WF_HOURS: [number, number] = [17, 19];
|
|
179
|
+
export const WF_BAC = 0.05;
|
|
180
|
+
export const WF_SLOWER = 50;
|
|
181
|
+
/** Van Dongen 等 2003 */
|
|
182
|
+
export const VD_YEAR = 2003;
|
|
183
|
+
export const VD_N = 48;
|
|
184
|
+
export const VD_DAYS = 14;
|
|
185
|
+
export const VD_DOSES = [8, 6, 4];
|
|
186
|
+
export const VD_EQUIV_NIGHTS = 2;
|
|
187
|
+
export const VD_THRESHOLD_H = 15.84;
|
|
188
|
+
export const VD_QUOTE = 'Sleepiness ratings suggest that subjects were largely unaware of these increasing cognitive deficits';
|
|
189
|
+
/** Lim & Dinges 2010 */
|
|
190
|
+
export const LD_YEAR = 2010;
|
|
191
|
+
export const LD_ARTICLES = 70;
|
|
192
|
+
export const LD_TESTS = 147;
|
|
193
|
+
export const LD_LAPSES_G = 0.776;
|
|
194
|
+
export const LD_REASON_G = 0.125;
|
|
195
|
+
/** Walker 等 2002 */
|
|
196
|
+
export const WALKER_YEAR = 2002;
|
|
197
|
+
export const WALKER_GAIN = 20;
|
|
198
|
+
/** 自己算的:早上 8 点醒,到凌晨 2 点 */
|
|
199
|
+
export const WAKE_AT = 8;
|
|
200
|
+
export const NOW_AT = 26; // 次日 2 点
|
|
201
|
+
export const AWAKE_H = NOW_AT - WAKE_AT;
|
|
202
|
+
|
|
203
|
+
/** 音效:[文件, 帧, 音量] */
|
|
204
|
+
const A = 'audio/ep50-late-night';
|
|
205
|
+
export const SFX: [string, number, number][] = [
|
|
206
|
+
// 开场:三枪打空 → 被带走 → 表盘 → 分屏
|
|
207
|
+
...OPEN_SHOTS.map((b): [string, number, number] => [`${A}/gunshot.wav`, fbt(b), 0.75]),
|
|
208
|
+
[`${A}/gunshot.wav`, DEATH, 0.72],
|
|
209
|
+
[`${A}/crack.wav`, DEATH + 2, 0.65],
|
|
210
|
+
[`${A}/impact.wav`, DIAL, 0.55],
|
|
211
|
+
['audio/sfx/whoosh.wav', SPLIT, 0.4],
|
|
212
|
+
[`${A}/tick.wav`, fbt(19), 0.45],
|
|
213
|
+
[`${A}/tick.wav`, fbt(24), 0.5],
|
|
214
|
+
[`${A}/riser.wav`, fr(beatSec(32) - 2), 0.6],
|
|
215
|
+
[`${A}/impact.wav`, HIT, 0.7],
|
|
216
|
+
// 醒了多久
|
|
217
|
+
[`${A}/tick.wav`, fbt(48), 0.5],
|
|
218
|
+
[`${A}/impact.wav`, fbt(52), 0.6],
|
|
219
|
+
['audio/sfx/whoosh.wav', fb(14), 0.35],
|
|
220
|
+
['audio/sfx/whoosh.wav', fb(15), 0.35],
|
|
221
|
+
[`${A}/tick.wav`, fbt(60), 0.5],
|
|
222
|
+
// 感觉不到
|
|
223
|
+
['audio/sfx/whoosh.wav', fb(16), 0.45],
|
|
224
|
+
[`${A}/chapter.wav`, fb(16), 0.6],
|
|
225
|
+
[`${A}/impact.wav`, fbt(68), 0.5],
|
|
226
|
+
['audio/sfx/whoosh.wav', fb(18), 0.35],
|
|
227
|
+
[`${A}/impact.wav`, fbt(84), 0.6],
|
|
228
|
+
['audio/sfx/whoosh.wav', fb(22), 0.35],
|
|
229
|
+
// 掉线
|
|
230
|
+
['audio/sfx/whoosh.wav', fb(24), 0.45],
|
|
231
|
+
[`${A}/chapter.wav`, fb(24), 0.6],
|
|
232
|
+
[`${A}/tick.wav`, fbt(108), 0.5],
|
|
233
|
+
['audio/sfx/whoosh.wav', fb(28), 0.35],
|
|
234
|
+
[`${A}/impact.wav`, fbt(120), 0.6],
|
|
235
|
+
// 睡一觉
|
|
236
|
+
['audio/sfx/whoosh.wav', fb(32), 0.45],
|
|
237
|
+
[`${A}/chapter.wav`, fb(32), 0.6],
|
|
238
|
+
[`${A}/tick.wav`, fbt(140), 0.5],
|
|
239
|
+
['audio/sfx/ding.wav', fbt(144), 0.45],
|
|
240
|
+
['audio/sfx/whoosh.wav', fb(38), 0.35],
|
|
241
|
+
[`${A}/impact.wav`, fb(38), 0.5],
|
|
242
|
+
// 怎么办
|
|
243
|
+
['audio/sfx/whoosh.wav', fb(40), 0.35],
|
|
244
|
+
[`${A}/chapter.wav`, fb(40), 0.5],
|
|
245
|
+
...[164, 168, 172, 176].map((b): [string, number, number] => [`${A}/tick.wav`, fbt(b), 0.55]),
|
|
246
|
+
[`${A}/riser.wav`, fr(beatSec(192) - 2), 0.65],
|
|
247
|
+
[`${A}/impact.wav`, HIT2, 0.7],
|
|
248
|
+
// 结尾
|
|
249
|
+
[`${A}/gunshot.wav`, OUT_KILL, 0.8],
|
|
250
|
+
['audio/sfx/ding.wav', OUT_KILL + 3, 0.4],
|
|
251
|
+
[`${A}/impact.wav`, fb(56), 0.5],
|
|
252
|
+
[`${A}/tick.wav`, fb(59), 0.5],
|
|
253
|
+
];
|
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {AbsoluteFill, Audio, Sequence, staticFile, useCurrentFrame} from 'remotion';
|
|
3
|
+
import {clamp01, rand} from '../../library/anim';
|
|
4
|
+
import {MsBars, NeonLine} from '../../library/tactical/charts';
|
|
5
|
+
import {AimGrid, TimeBlocks} from '../../library/tactical/practice';
|
|
6
|
+
import {AnswerReveal, BigWord, ChapterCard, HookBanner, HudFrame, StepGrid, TacBg, TCaption, TitleCard} from '../../library/tactical/stage';
|
|
7
|
+
import {glowF, T, TF} from '../../library/tactical/theme';
|
|
8
|
+
import {OutroRange, PaintRow, PairBars, PerfLearn} from './scenes';
|
|
9
|
+
import {
|
|
10
|
+
ANCHOR,
|
|
11
|
+
ASK_LINE,
|
|
12
|
+
BAR,
|
|
13
|
+
BIG_LINE,
|
|
14
|
+
CEPEDA_ARTICLES,
|
|
15
|
+
CEPEDA_ASSESSMENTS,
|
|
16
|
+
CEPEDA_EXPERIMENTS,
|
|
17
|
+
chapterAt,
|
|
18
|
+
CHAPTERS,
|
|
19
|
+
CUES,
|
|
20
|
+
cueEnd,
|
|
21
|
+
cueStart,
|
|
22
|
+
CURVE,
|
|
23
|
+
DARK_FROM,
|
|
24
|
+
DARK_FROM2,
|
|
25
|
+
DAY1_SCORE,
|
|
26
|
+
DAY30_SCORE,
|
|
27
|
+
DURATION,
|
|
28
|
+
EP,
|
|
29
|
+
FATIGUE,
|
|
30
|
+
fb,
|
|
31
|
+
fbt,
|
|
32
|
+
FLIP_LINE,
|
|
33
|
+
FPS,
|
|
34
|
+
FREEZE,
|
|
35
|
+
HALF_BEATS,
|
|
36
|
+
HIT,
|
|
37
|
+
HIT2,
|
|
38
|
+
HOOK_LINE,
|
|
39
|
+
MOULTON_N,
|
|
40
|
+
OUT_KILL,
|
|
41
|
+
OUT_RANGE,
|
|
42
|
+
QUESTION_LINE,
|
|
43
|
+
SCORE,
|
|
44
|
+
SERIES,
|
|
45
|
+
SFX,
|
|
46
|
+
SHOTS,
|
|
47
|
+
TERM2,
|
|
48
|
+
TITLE,
|
|
49
|
+
TOPIC,
|
|
50
|
+
WALKER_GAIN,
|
|
51
|
+
} from './timeline';
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* ep51 天天练枪,怎么还不涨?(战术屏科普风,无口播)
|
|
55
|
+
* 镜头全部硬切、卡在拍子上;重拍之后每个小节的第一拍画面轻轻一顶(回落段减半),音效对准重拍。
|
|
56
|
+
* 开场前 17 秒顶部挂 HookBanner;片尾停在评论区问题。
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
const inShot = (f: number, s: readonly [number, number]) => f >= s[0] && f < s[1];
|
|
60
|
+
|
|
61
|
+
/** 小节冲击:每个小节第一拍放大 1.2%,7 帧回落;重拍前不顶,回落段(40–47 小节)减半;两个爆点 4%、10 帧 */
|
|
62
|
+
const punch = (f: number) => {
|
|
63
|
+
if (f < HIT) return 0;
|
|
64
|
+
const k = Math.floor((f / FPS - (17.45 - 8 * BAR)) / BAR);
|
|
65
|
+
const t = f - fb(k);
|
|
66
|
+
if (f >= HIT && f < HIT + 10) return 0.04 * (1 - (f - HIT) / 10);
|
|
67
|
+
if (f >= HIT2 && f < HIT2 + 10) return 0.04 * (1 - (f - HIT2) / 10);
|
|
68
|
+
const amp = k >= 40 && k < 48 ? 0.006 : 0.012;
|
|
69
|
+
return t >= 0 && t < 7 ? amp * (1 - t / 7) : 0;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const label = (text: string, top: number, color: string = T.gray, opacity = 1) => (
|
|
73
|
+
<div style={{position: 'absolute', left: 0, right: 0, top, textAlign: 'center', fontFamily: TF.mono, fontWeight: 700, fontSize: 24, letterSpacing: 3, color, opacity}}>{text}</div>
|
|
74
|
+
);
|
|
75
|
+
const head = (text: string, x: number, top: number, color: string, opacity = 1, size = 40) => (
|
|
76
|
+
<div style={{position: 'absolute', left: x - 500, width: 1000, top, textAlign: 'center', fontFamily: TF.sans, fontSize: size, color, opacity}}>{text}</div>
|
|
77
|
+
);
|
|
78
|
+
const at = (x: number, y: number, children: React.ReactNode) => <div style={{position: 'absolute', left: x, top: y}}>{children}</div>;
|
|
79
|
+
|
|
80
|
+
/** 示意数据 */
|
|
81
|
+
const DAYS30 = Array.from({length: 30}, (_, i) => DAY1_SCORE + (rand(500 + i) - 0.5) * 260 + (i === 29 ? DAY30_SCORE - DAY1_SCORE : 0));
|
|
82
|
+
const SESSION = Array.from({length: 24}, (_, i) => 70 + Math.min(i, 10) * 1.6 - Math.max(0, i - 14) * 2.6 + (rand(700 + i) - 0.5) * 4);
|
|
83
|
+
const WEEKS_UP = [62, 63, 66, 68, 71, 73, 76, 79];
|
|
84
|
+
const T60 = Array.from({length: 60}, (_, i) => i / 59);
|
|
85
|
+
/** 左图:学到了、表现没变;右图:表现涨了、没学进去(示意) */
|
|
86
|
+
const PERF_FLAT = T60.map((u) => 0.35 + Math.sin(u * 30) * 0.02);
|
|
87
|
+
const LEARN_UP = T60.map((u) => 0.2 + 0.6 * u);
|
|
88
|
+
const PERF_UP = T60.map((u) => (u < 0.6 ? 0.2 + 1.1 * u : 0.86 - (u - 0.6) * 1.6));
|
|
89
|
+
const LEARN_FLAT = T60.map((u) => 0.22 + 0.08 * u);
|
|
90
|
+
|
|
91
|
+
export const Ep51Practice: React.FC = () => {
|
|
92
|
+
const f = useCurrentFrame();
|
|
93
|
+
const dark1 = f >= HIT ? 0 : Math.pow(clamp01((f - DARK_FROM) / (HIT - FREEZE - DARK_FROM)), 0.7) * 0.94;
|
|
94
|
+
const dark2 = f >= HIT2 || f < DARK_FROM2 ? 0 : Math.pow(clamp01((f - DARK_FROM2) / (HIT2 - FREEZE - DARK_FROM2)), 0.7) * 0.94;
|
|
95
|
+
const ff = f >= DARK_FROM && f < HIT ? Math.min(f, HIT - FREEZE) : f >= DARK_FROM2 && f < HIT2 ? Math.min(f, HIT2 - FREEZE) : f;
|
|
96
|
+
const ch = chapterAt(f);
|
|
97
|
+
const showHud = !inShot(f, SHOTS.title) && !inShot(f, SHOTS.hit2);
|
|
98
|
+
const s = 1 + punch(f);
|
|
99
|
+
const buildP = clamp01((ff - SHOTS.build[0]) / 40);
|
|
100
|
+
|
|
101
|
+
return (
|
|
102
|
+
<AbsoluteFill style={{background: T.bg, fontFamily: TF.sans, overflow: 'hidden'}}>
|
|
103
|
+
<Audio src={staticFile('audio/ep51-practice/bgm.wav')} />
|
|
104
|
+
{SFX.map(([file, t, vol], i) => (
|
|
105
|
+
<Sequence key={i} from={Math.max(0, t)} durationInFrames={75}>
|
|
106
|
+
<Audio src={staticFile(file)} volume={vol} />
|
|
107
|
+
</Sequence>
|
|
108
|
+
))}
|
|
109
|
+
|
|
110
|
+
<AbsoluteFill style={{transform: `scale(${s})`}}>
|
|
111
|
+
{/* ---------- 开场:重演挫败 ---------- */}
|
|
112
|
+
{inShot(f, SHOTS.hook) && (
|
|
113
|
+
<>
|
|
114
|
+
<TacBg />
|
|
115
|
+
<AimGrid f={f} at={fbt(1.6)} per={8} count0={2860} y={300} h={460} />
|
|
116
|
+
{label('第 30 天 · 已练 01:58:40 · 原创靶场示意', 240, T.gray)}
|
|
117
|
+
</>
|
|
118
|
+
)}
|
|
119
|
+
{inShot(f, SHOTS.score) && (
|
|
120
|
+
<>
|
|
121
|
+
<TacBg tone="red" />
|
|
122
|
+
<div style={{position: 'absolute', left: 0, right: 0, top: 300, textAlign: 'center', opacity: clamp01((f - SCORE) / 4)}}>
|
|
123
|
+
<div style={{fontFamily: TF.sans, fontSize: 40, color: T.gray}}>今天的得分</div>
|
|
124
|
+
<div style={{fontFamily: TF.mono, fontWeight: 700, fontSize: 180, color: T.white, filter: glowF(T.white, 8)}}>{DAY30_SCORE.toLocaleString('en-US')}</div>
|
|
125
|
+
<div style={{fontFamily: TF.sans, fontSize: 40, color: T.red}}>第 1 天:{DAY1_SCORE.toLocaleString('en-US')} · 示意</div>
|
|
126
|
+
</div>
|
|
127
|
+
</>
|
|
128
|
+
)}
|
|
129
|
+
{inShot(f, SHOTS.curve) && (
|
|
130
|
+
<>
|
|
131
|
+
<TacBg />
|
|
132
|
+
{label('30 天的靶场得分 · 示意', 230, T.dim)}
|
|
133
|
+
{at(410, 330, <NeonLine f={f} at={CURVE} data={DAYS30} w={1100} h={400} min={6000} max={10000} yLabel="得分" xLabel="第 1 → 30 天" dur={30} tag="平线" />)}
|
|
134
|
+
</>
|
|
135
|
+
)}
|
|
136
|
+
{inShot(f, SHOTS.fatigue) && (
|
|
137
|
+
<>
|
|
138
|
+
<TacBg />
|
|
139
|
+
{label('一次练两小时,每 5 分钟的得分 · 示意', 230, T.dim)}
|
|
140
|
+
{at(410, 330, <NeonLine f={f} at={FATIGUE} data={SESSION} w={1100} h={400} redFrom={15} yLabel="得分" xLabel="0 → 2 小时" dur={50} />)}
|
|
141
|
+
</>
|
|
142
|
+
)}
|
|
143
|
+
{inShot(f, SHOTS.question) && (
|
|
144
|
+
<>
|
|
145
|
+
<TacBg />
|
|
146
|
+
<BigWord f={ff} at={SHOTS.question[0]} text={QUESTION_LINE} size={108} y={450} />
|
|
147
|
+
</>
|
|
148
|
+
)}
|
|
149
|
+
|
|
150
|
+
{/* ---------- 标题卡 ---------- */}
|
|
151
|
+
{inShot(f, SHOTS.title) && (
|
|
152
|
+
<>
|
|
153
|
+
<TacBg />
|
|
154
|
+
<TitleCard f={f} at={HIT - 8} label={`${SERIES} · ${EP}`} title={TITLE} tag={TOPIC} per={1} />
|
|
155
|
+
<AbsoluteFill style={{background: 'radial-gradient(circle at 50% 45%, rgba(220,240,250,0.85), rgba(66,198,223,0.25) 45%, rgba(0,0,0,0) 75%)', opacity: 1 - clamp01((f - HIT) / 10), pointerEvents: 'none'}} />
|
|
156
|
+
</>
|
|
157
|
+
)}
|
|
158
|
+
|
|
159
|
+
{/* ---------- 看不见 ---------- */}
|
|
160
|
+
{inShot(f, SHOTS.gap) && (
|
|
161
|
+
<>
|
|
162
|
+
<TacBg />
|
|
163
|
+
{f < fbt(48) ? (
|
|
164
|
+
<>
|
|
165
|
+
{head('练的时候的成绩', 600, 420, T.orange, clamp01((f - fbt(40)) / 6), 52)}
|
|
166
|
+
{head('≠', 960, 410, T.white, clamp01((f - fbt(40) - 6) / 6), 80)}
|
|
167
|
+
{head('你学到的', 1320, 420, T.cyan, clamp01((f - fbt(40) - 10) / 6), 52)}
|
|
168
|
+
{label('Soderstrom & Bjork 2015 · Perspectives on Psychological Science', 600, T.dim, clamp01((f - fbt(44)) / 6))}
|
|
169
|
+
</>
|
|
170
|
+
) : (
|
|
171
|
+
<>
|
|
172
|
+
{label('Soderstrom & Bjork 2015 · 两种错位 · 曲线为示意', 200, T.dim)}
|
|
173
|
+
<PerfLearn f={f} at={fbt(48)} x={200} y={340} perf={PERF_FLAT} learn={LEARN_UP} title="学到了,成绩没变" titleColor={T.cyan} />
|
|
174
|
+
<PerfLearn f={f} at={fbt(52)} x={1040} y={340} perf={PERF_UP} learn={LEARN_FLAT} title="成绩涨了,没学进去" titleColor={T.orange} />
|
|
175
|
+
</>
|
|
176
|
+
)}
|
|
177
|
+
</>
|
|
178
|
+
)}
|
|
179
|
+
|
|
180
|
+
{/* ---------- 间隔 ---------- */}
|
|
181
|
+
{inShot(f, SHOTS.spacing) && (
|
|
182
|
+
<>
|
|
183
|
+
<TacBg />
|
|
184
|
+
{f < fb(17) ? (
|
|
185
|
+
<ChapterCard f={f} at={fb(16)} n={2} title="间隔" sub="SPACING" />
|
|
186
|
+
) : (
|
|
187
|
+
<>
|
|
188
|
+
{head('同样两小时', 960, 250, T.white, 1, 44)}
|
|
189
|
+
<TimeBlocks blocks={[[0, 4]]} span={12} y={380} label="一口气" color={T.gray} />
|
|
190
|
+
<TimeBlocks blocks={[[0, 1], [3, 1], [6, 1], [9, 1]]} span={12} y={540} label="拆开练" color={T.cyan} progress={clamp01((f - fbt(68)) / 16)} />
|
|
191
|
+
</>
|
|
192
|
+
)}
|
|
193
|
+
</>
|
|
194
|
+
)}
|
|
195
|
+
{inShot(f, SHOTS.rct) && (
|
|
196
|
+
<>
|
|
197
|
+
<TacBg />
|
|
198
|
+
{label(`Moulton 等 2006 · Annals of Surgery · 随机对照 · ${MOULTON_N} 名外科住院医生 · 柱高为示意`, 170, T.dim)}
|
|
199
|
+
{f < fbt(84) ? (
|
|
200
|
+
<>
|
|
201
|
+
<TimeBlocks blocks={[[0, 4]]} span={28} y={380} label="一天练完" color={T.gray} />
|
|
202
|
+
<TimeBlocks blocks={[[0, 1], [7, 1], [14, 1], [21, 1]]} span={28} y={540} label="每周一次" color={T.cyan} progress={clamp01((f - fbt(80)) / 16)} note="总练习时长一样" />
|
|
203
|
+
</>
|
|
204
|
+
) : (
|
|
205
|
+
<PairBars
|
|
206
|
+
f={f}
|
|
207
|
+
at={fbt(84)}
|
|
208
|
+
names={['一天练完', '每周一次']}
|
|
209
|
+
groups={[
|
|
210
|
+
['刚练完', 0.6, 0.62, fbt(84)],
|
|
211
|
+
['一个月后', 0.38, 0.72, fbt(88)],
|
|
212
|
+
['活体手术', 0.34, 0.7, fbt(92)],
|
|
213
|
+
]}
|
|
214
|
+
/>
|
|
215
|
+
)}
|
|
216
|
+
</>
|
|
217
|
+
)}
|
|
218
|
+
|
|
219
|
+
{/* ---------- 存进去 ---------- */}
|
|
220
|
+
{inShot(f, SHOTS.meta) && (
|
|
221
|
+
<>
|
|
222
|
+
<TacBg />
|
|
223
|
+
{f < fb(25) ? (
|
|
224
|
+
<ChapterCard f={f} at={fb(24)} n={3} title="存进去" sub="CONSOLIDATION" />
|
|
225
|
+
) : (
|
|
226
|
+
<>
|
|
227
|
+
{label('Cepeda 等 2006 · Psychological Bulletin · 元分析(多为言语记忆任务)', 200, T.dim)}
|
|
228
|
+
<div style={{position: 'absolute', left: 0, right: 0, top: 320, display: 'flex', justifyContent: 'center', gap: 120, opacity: clamp01((f - fbt(104)) / 8)}}>
|
|
229
|
+
{[
|
|
230
|
+
[CEPEDA_ARTICLES, '篇文章'],
|
|
231
|
+
[CEPEDA_EXPERIMENTS, '个实验'],
|
|
232
|
+
[CEPEDA_ASSESSMENTS, '次评估'],
|
|
233
|
+
].map(([n, u]) => (
|
|
234
|
+
<div key={u} style={{textAlign: 'center'}}>
|
|
235
|
+
<div style={{fontFamily: TF.mono, fontWeight: 700, fontSize: 130, color: n === CEPEDA_EXPERIMENTS ? T.orange : T.gray, filter: n === CEPEDA_EXPERIMENTS ? glowF(T.orange, 10) : undefined}}>{n}</div>
|
|
236
|
+
<div style={{fontFamily: TF.sans, fontSize: 36, color: T.white}}>{u}</div>
|
|
237
|
+
</div>
|
|
238
|
+
))}
|
|
239
|
+
</div>
|
|
240
|
+
{head('隔开练,记得更牢', 960, 660, T.cyan, clamp01((f - fbt(108)) / 8), 52)}
|
|
241
|
+
</>
|
|
242
|
+
)}
|
|
243
|
+
</>
|
|
244
|
+
)}
|
|
245
|
+
{inShot(f, SHOTS.store) && (
|
|
246
|
+
<>
|
|
247
|
+
<TacBg />
|
|
248
|
+
{label('Walker 等 2002 · Neuron(上一期)', 200, T.dim)}
|
|
249
|
+
<div style={{position: 'absolute', left: 170, top: 380, transform: 'scale(1.4)', transformOrigin: '0 0'}}>
|
|
250
|
+
<MsBars f={f} at={fbt(120)} rows={[['一直醒着(不显著)', 0, T.gray]]} max={30} w={600} unit="%" labelW={300} />
|
|
251
|
+
<MsBars f={f} at={fbt(120) + 10} rows={[['中间睡一晚', WALKER_GAIN, T.cyan]]} max={30} w={600} unit="%" labelW={300} />
|
|
252
|
+
</div>
|
|
253
|
+
{f < fbt(120) && head('一口气猛练:当场熟,留下少', 960, 460, T.orange, clamp01((f - fbt(116)) / 6), 48)}
|
|
254
|
+
</>
|
|
255
|
+
)}
|
|
256
|
+
|
|
257
|
+
{/* ---------- 错觉 ---------- */}
|
|
258
|
+
{inShot(f, SHOTS.illusion) && (
|
|
259
|
+
<>
|
|
260
|
+
<TacBg />
|
|
261
|
+
{f < fb(33) ? (
|
|
262
|
+
<ChapterCard f={f} at={fb(32)} n={4} title="错觉" sub="THE FEELING LIES" />
|
|
263
|
+
) : f < fbt(144) ? (
|
|
264
|
+
<>
|
|
265
|
+
{label('Kornell & Bjork 2008 · Psychological Science · 原创色块代表不同画家', 200, T.dim)}
|
|
266
|
+
<PaintRow f={f} at={fbt(136)} order="AAAABBBBCCCC" y={340} label="连着看" color={T.gray} />
|
|
267
|
+
<PaintRow f={f} at={fbt(140)} order="ABCABCABCABC" y={560} label="穿插看" color={T.cyan} />
|
|
268
|
+
</>
|
|
269
|
+
) : (
|
|
270
|
+
<>
|
|
271
|
+
{label('Kornell & Bjork 2008 · 柱高为示意,只画方向', 200, T.dim)}
|
|
272
|
+
<PairBars
|
|
273
|
+
f={f}
|
|
274
|
+
at={fbt(144)}
|
|
275
|
+
names={['连着看', '穿插看']}
|
|
276
|
+
colors={[T.gray, T.cyan]}
|
|
277
|
+
groups={[
|
|
278
|
+
['考试成绩', 0.45, 0.7, fbt(144)],
|
|
279
|
+
['自己觉得有多有效', 0.75, 0.45, fbt(148)],
|
|
280
|
+
]}
|
|
281
|
+
/>
|
|
282
|
+
</>
|
|
283
|
+
)}
|
|
284
|
+
</>
|
|
285
|
+
)}
|
|
286
|
+
{inShot(f, SHOTS.bigline) && (
|
|
287
|
+
<>
|
|
288
|
+
<TacBg />
|
|
289
|
+
<BigWord f={f} at={SHOTS.bigline[0]} text={BIG_LINE} size={100} y={440} />
|
|
290
|
+
</>
|
|
291
|
+
)}
|
|
292
|
+
|
|
293
|
+
{/* ---------- 怎么办(配乐回落段) ---------- */}
|
|
294
|
+
{inShot(f, SHOTS.steps) && (
|
|
295
|
+
<>
|
|
296
|
+
<TacBg />
|
|
297
|
+
{f < fb(41) ? (
|
|
298
|
+
<ChapterCard f={f} at={fb(40)} n={5} title="怎么办" sub="SPACE IT OUT" />
|
|
299
|
+
) : (
|
|
300
|
+
<StepGrid
|
|
301
|
+
f={f}
|
|
302
|
+
ats={[fbt(164), fbt(168), fbt(172), fbt(176)]}
|
|
303
|
+
titles={['两小时拆几段', '每天练一点', '隔天再测', '睡一觉再验收']}
|
|
304
|
+
colors={[T.cyan, T.orange, T.green, T.red]}
|
|
305
|
+
icons={[
|
|
306
|
+
(c) => (
|
|
307
|
+
<>
|
|
308
|
+
{[0, 1, 2, 3].map((k) => (
|
|
309
|
+
<rect key={k} x={30 + k * 50} y={55} width={36} height={40} rx={5} fill={c} />
|
|
310
|
+
))}
|
|
311
|
+
</>
|
|
312
|
+
),
|
|
313
|
+
(c) => (
|
|
314
|
+
<>
|
|
315
|
+
{[0, 1, 2, 3, 4, 5, 6].map((k) => (
|
|
316
|
+
<rect key={k} x={25 + k * 28} y={60} width={20} height={30} rx={3} fill={c} opacity={0.4 + (k % 2) * 0.6} />
|
|
317
|
+
))}
|
|
318
|
+
</>
|
|
319
|
+
),
|
|
320
|
+
(c) => (
|
|
321
|
+
<>
|
|
322
|
+
<rect x={60} y={30} width={120} height={100} rx={8} fill="none" stroke={c} strokeWidth={5} />
|
|
323
|
+
<path d="M60 60 H180 M90 20 V45 M150 20 V45" stroke={c} strokeWidth={5} />
|
|
324
|
+
</>
|
|
325
|
+
),
|
|
326
|
+
(c) => <path d="M150 30 A50 50 0 1 0 190 110 A40 40 0 1 1 150 30 Z" fill={c} opacity={0.9} />,
|
|
327
|
+
]}
|
|
328
|
+
/>
|
|
329
|
+
)}
|
|
330
|
+
</>
|
|
331
|
+
)}
|
|
332
|
+
{inShot(f, SHOTS.build) && (
|
|
333
|
+
<>
|
|
334
|
+
<TacBg />
|
|
335
|
+
<TimeBlocks blocks={buildP < 1 ? [[0, 4]] : [[0, 1], [3, 1], [6, 1], [9, 1]]} span={12} y={460} label="两小时" color={T.cyan} moons />
|
|
336
|
+
<AbsoluteFill style={{background: 'rgba(5,11,20,0.35)'}} />
|
|
337
|
+
</>
|
|
338
|
+
)}
|
|
339
|
+
|
|
340
|
+
{/* ---------- 第二个爆点:间隔 ---------- */}
|
|
341
|
+
{inShot(f, SHOTS.hit2) && (
|
|
342
|
+
<>
|
|
343
|
+
<TacBg />
|
|
344
|
+
<AnswerReveal f={f} at={HIT2} label="你缺的,是练习之间的" text={ANCHOR} dark={0} />
|
|
345
|
+
<div style={{position: 'absolute', left: 0, right: 0, top: 700, textAlign: 'center', fontFamily: TF.mono, fontWeight: 700, fontSize: 28, letterSpacing: 4, color: T.gray, opacity: clamp01((f - HIT2 - 18) / 12)}}>{TERM2}</div>
|
|
346
|
+
</>
|
|
347
|
+
)}
|
|
348
|
+
|
|
349
|
+
{/* ---------- 结尾:暖色 ---------- */}
|
|
350
|
+
{inShot(f, SHOTS.outro) &&
|
|
351
|
+
(f < OUT_RANGE ? (
|
|
352
|
+
<>
|
|
353
|
+
<TacBg tone="warm" />
|
|
354
|
+
{label('拆开练之后,每周的得分 · 示意', 230, '#ffd9a8')}
|
|
355
|
+
{at(410, 330, <NeonLine f={f} at={SHOTS.outro[0] + 4} data={WEEKS_UP} w={1100} h={400} yLabel="得分" xLabel="第 1 → 8 周" dur={60} />)}
|
|
356
|
+
</>
|
|
357
|
+
) : (
|
|
358
|
+
<OutroRange f={f} kill={OUT_KILL} />
|
|
359
|
+
))}
|
|
360
|
+
{inShot(f, SHOTS.flipline) && (
|
|
361
|
+
<>
|
|
362
|
+
<TacBg tone="warm" />
|
|
363
|
+
<BigWord f={f} at={SHOTS.flipline[0]} text={FLIP_LINE} size={104} y={430} />
|
|
364
|
+
</>
|
|
365
|
+
)}
|
|
366
|
+
{inShot(f, SHOTS.ask) && (
|
|
367
|
+
<>
|
|
368
|
+
<TacBg />
|
|
369
|
+
<BigWord f={f} at={SHOTS.ask[0]} text={ASK_LINE} size={100} y={430} />
|
|
370
|
+
<div style={{position: 'absolute', left: 0, right: 0, top: 660, textAlign: 'center', fontFamily: TF.sans, fontSize: 34, color: T.cyan, opacity: clamp01((f - SHOTS.ask[0] - 40) / 12), filter: glowF(T.cyan, 4)}}>评论区聊聊 ↓</div>
|
|
371
|
+
</>
|
|
372
|
+
)}
|
|
373
|
+
</AbsoluteFill>
|
|
374
|
+
|
|
375
|
+
{showHud && (
|
|
376
|
+
<HudFrame
|
|
377
|
+
series={SERIES}
|
|
378
|
+
ep={EP}
|
|
379
|
+
topic={TOPIC}
|
|
380
|
+
chapter={[ch, CHAPTERS.length - 1, CHAPTERS[ch][1]]}
|
|
381
|
+
progress={f / DURATION}
|
|
382
|
+
ticks={CHAPTERS.slice(1).map(([b]) => fb(b) / DURATION)}
|
|
383
|
+
hp={inShot(f, SHOTS.outro) && f >= OUT_RANGE ? 100 : undefined}
|
|
384
|
+
ammo={inShot(f, SHOTS.outro) && f >= OUT_RANGE ? [25, 25] : undefined}
|
|
385
|
+
/>
|
|
386
|
+
)}
|
|
387
|
+
<HookBanner f={f} text={HOOK_LINE} out={DARK_FROM} />
|
|
388
|
+
|
|
389
|
+
<AbsoluteFill style={{background: '#000', opacity: Math.max(dark1, dark2), pointerEvents: 'none'}} />
|
|
390
|
+
|
|
391
|
+
{CUES.map(([beat, text], i) => {
|
|
392
|
+
if (!text) return null;
|
|
393
|
+
const st = cueStart(i);
|
|
394
|
+
const out = beat === HALF_BEATS[0] ? DARK_FROM : beat === HALF_BEATS[1] ? DARK_FROM2 : cueEnd(i) - 6;
|
|
395
|
+
if (f < st - 2 || f > out + 10) return null;
|
|
396
|
+
return <TCaption key={i} f={f} at={st} out={out} text={text} />;
|
|
397
|
+
})}
|
|
398
|
+
|
|
399
|
+
<AbsoluteFill style={{background: '#000', opacity: clamp01((f - (DURATION - 30)) / 30), pointerEvents: 'none'}} />
|
|
400
|
+
</AbsoluteFill>
|
|
401
|
+
);
|
|
402
|
+
};
|