@kenkaiiii/ggcoder 5.65.0 → 5.66.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/README.md +3 -3
- package/assets/motion/BRAG-LICENSE +21 -0
- package/assets/motion/HYPERFRAMES-LICENSE +190 -0
- package/assets/motion/THIRD-PARTY.md +52 -0
- package/assets/motion/assets/music/README.md +20 -0
- package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-1-by-ende-dot-app.music-cues.json +3846 -0
- package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-1-by-ende-dot-app.music-cues.md +35 -0
- package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-10-by-ende-dot-app.music-cues.json +1826 -0
- package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-10-by-ende-dot-app.music-cues.md +35 -0
- package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-11-by-ende-dot-app.music-cues.json +2266 -0
- package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-11-by-ende-dot-app.music-cues.md +35 -0
- package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-12-by-ende-dot-app.music-cues.json +2806 -0
- package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-12-by-ende-dot-app.music-cues.md +35 -0
- package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-9-by-ende-dot-app.music-cues.json +2796 -0
- package/assets/motion/assets/music/cues/happy-beats-business-moves-vol-9-by-ende-dot-app.music-cues.md +35 -0
- package/assets/motion/assets/music/happy-beats-business-moves-vol-1-by-ende-dot-app.mp3 +0 -0
- package/assets/motion/assets/music/happy-beats-business-moves-vol-10-by-ende-dot-app.mp3 +0 -0
- package/assets/motion/assets/music/happy-beats-business-moves-vol-11-by-ende-dot-app.mp3 +0 -0
- package/assets/motion/assets/music/happy-beats-business-moves-vol-12-by-ende-dot-app.mp3 +0 -0
- package/assets/motion/assets/music/happy-beats-business-moves-vol-9-by-ende-dot-app.mp3 +0 -0
- package/assets/motion/assets/sfx/casino/card-fan-1.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-fan-2.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-place-1.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-place-2.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-place-3.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-place-4.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-shove-1.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-shove-2.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-shove-3.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-shove-4.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-shuffle.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-slide-1.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-slide-2.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-slide-3.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-slide-4.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-slide-5.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-slide-6.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-slide-7.ogg +0 -0
- package/assets/motion/assets/sfx/casino/card-slide-8.ogg +0 -0
- package/assets/motion/assets/sfx/casino/cards-pack-open-1.ogg +0 -0
- package/assets/motion/assets/sfx/casino/cards-pack-open-2.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chip-lay-1.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chip-lay-2.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chip-lay-3.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-collide-1.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-collide-2.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-collide-3.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-collide-4.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-handle-1.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-handle-2.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-handle-3.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-handle-4.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-handle-6.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-stack-1.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-stack-2.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-stack-3.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-stack-4.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-stack-5.ogg +0 -0
- package/assets/motion/assets/sfx/casino/chips-stack-6.ogg +0 -0
- package/assets/motion/assets/sfx/casino/dice-grab-1.ogg +0 -0
- package/assets/motion/assets/sfx/casino/dice-grab-2.ogg +0 -0
- package/assets/motion/assets/sfx/casino/dice-shake-1.ogg +0 -0
- package/assets/motion/assets/sfx/casino/dice-shake-2.ogg +0 -0
- package/assets/motion/assets/sfx/casino/dice-shake-3.ogg +0 -0
- package/assets/motion/assets/sfx/casino/dice-throw-1.ogg +0 -0
- package/assets/motion/assets/sfx/casino/dice-throw-2.ogg +0 -0
- package/assets/motion/assets/sfx/casino/dice-throw-3.ogg +0 -0
- package/assets/motion/assets/sfx/casino/die-throw-1.ogg +0 -0
- package/assets/motion/assets/sfx/casino/die-throw-2.ogg +0 -0
- package/assets/motion/assets/sfx/casino/die-throw-3.ogg +0 -0
- package/assets/motion/assets/sfx/casino/die-throw-4.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_carpet_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_carpet_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_carpet_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_concrete_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_concrete_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_concrete_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_concrete_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_concrete_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_grass_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_grass_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_grass_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_grass_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_grass_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_snow_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_snow_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_snow_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_snow_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_snow_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_wood_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_wood_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_wood_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_wood_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/footstep_wood_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactBell_heavy_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactBell_heavy_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactBell_heavy_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactGeneric_light_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactGeneric_light_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactGeneric_light_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactGeneric_light_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactGeneric_light_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactGlass_heavy_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactGlass_light_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactGlass_light_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactGlass_light_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactGlass_medium_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactGlass_medium_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactGlass_medium_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactMetal_heavy_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactMetal_heavy_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactMetal_heavy_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactMetal_light_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactMetal_light_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactMetal_medium_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactMetal_medium_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactMetal_medium_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactMetal_medium_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactMetal_medium_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactMining_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlank_medium_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlank_medium_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlank_medium_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlank_medium_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlank_medium_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_heavy_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_heavy_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_heavy_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_heavy_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_heavy_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_light_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_light_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_light_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_light_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_light_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_medium_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_medium_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_medium_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_medium_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPlate_medium_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPunch_heavy_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPunch_heavy_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPunch_heavy_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPunch_heavy_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPunch_heavy_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPunch_medium_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPunch_medium_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPunch_medium_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPunch_medium_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactPunch_medium_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactSoft_heavy_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactSoft_heavy_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactSoft_heavy_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactSoft_heavy_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactSoft_heavy_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactSoft_medium_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactSoft_medium_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactSoft_medium_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactSoft_medium_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactSoft_medium_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactTin_medium_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactTin_medium_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactTin_medium_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactTin_medium_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactTin_medium_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_heavy_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_heavy_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_heavy_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_heavy_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_heavy_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_light_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_light_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_light_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_light_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_light_004.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_medium_000.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_medium_001.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_medium_002.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_medium_003.ogg +0 -0
- package/assets/motion/assets/sfx/impact/impactWood_medium_004.ogg +0 -0
- package/assets/motion/assets/sfx/interface/bong_001.ogg +0 -0
- package/assets/motion/assets/sfx/interface/click_001.ogg +0 -0
- package/assets/motion/assets/sfx/interface/click_002.ogg +0 -0
- package/assets/motion/assets/sfx/interface/click_003.ogg +0 -0
- package/assets/motion/assets/sfx/interface/click_004.ogg +0 -0
- package/assets/motion/assets/sfx/interface/click_005.ogg +0 -0
- package/assets/motion/assets/sfx/interface/drop_001.ogg +0 -0
- package/assets/motion/assets/sfx/interface/drop_002.ogg +0 -0
- package/assets/motion/assets/sfx/interface/drop_003.ogg +0 -0
- package/assets/motion/assets/sfx/interface/error_005.ogg +0 -0
- package/assets/motion/assets/sfx/interface/error_006.ogg +0 -0
- package/assets/motion/assets/sfx/interface/glitch_002.ogg +0 -0
- package/assets/motion/assets/sfx/interface/glitch_004.ogg +0 -0
- package/assets/motion/assets/sfx/interface/select_008.ogg +0 -0
- package/assets/motion/assets/sfx/interface/switch_001.ogg +0 -0
- package/assets/motion/assets/sfx/interface/switch_002.ogg +0 -0
- package/assets/motion/assets/sfx/interface/switch_004.ogg +0 -0
- package/assets/motion/assets/sfx/interface/switch_005.ogg +0 -0
- package/assets/motion/assets/sfx/interface/switch_006.ogg +0 -0
- package/assets/motion/assets/sfx/interface/switch_007.ogg +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-001.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-002.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-003.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-004.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-005.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-006.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-007.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-008.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-009.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-010.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-011.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-012.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-013.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-014.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-015.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-016.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-017.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-018.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-019.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-020.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-021.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-022.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-023.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-024.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-025.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-026.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-027.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-028.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-029.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-030.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-031.wav +0 -0
- package/assets/motion/assets/sfx/keyboard/keypress-032.wav +0 -0
- package/assets/motion/assets/sfx/sfx-analysis.json +15584 -0
- package/assets/motion/assets/sfx/sfx-analysis.md +75 -0
- package/assets/motion/assets/sfx/ui/click1.ogg +0 -0
- package/assets/motion/assets/sfx/ui/click2.ogg +0 -0
- package/assets/motion/assets/sfx/ui/click3.ogg +0 -0
- package/assets/motion/assets/sfx/ui/click4.ogg +0 -0
- package/assets/motion/assets/sfx/ui/click5.ogg +0 -0
- package/assets/motion/assets/sfx/ui/mouseclick1.ogg +0 -0
- package/assets/motion/assets/sfx/ui/rollover1.ogg +0 -0
- package/assets/motion/assets/sfx/ui/rollover2.ogg +0 -0
- package/assets/motion/assets/sfx/ui/rollover4.ogg +0 -0
- package/assets/motion/assets/sfx/ui/rollover5.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch1.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch10.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch11.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch12.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch13.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch14.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch15.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch16.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch17.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch18.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch19.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch2.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch20.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch21.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch22.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch23.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch24.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch25.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch26.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch27.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch28.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch29.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch3.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch30.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch31.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch32.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch33.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch34.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch35.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch36.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch37.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch38.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch4.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch5.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch6.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch7.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch8.ogg +0 -0
- package/assets/motion/assets/sfx/ui/switch9.ogg +0 -0
- package/assets/motion/bin/contact-sheet.mjs +87 -0
- package/assets/motion/bin/fonts.mjs +111 -0
- package/assets/motion/bin/hyperframes.mjs +122 -0
- package/assets/motion/bin/library.mjs +210 -0
- package/assets/motion/bin/media-binaries.mjs +49 -0
- package/assets/motion/bin/motion-check.mjs +250 -0
- package/assets/motion/bin/pdf-extract.mjs +133 -0
- package/assets/motion/bin/reveal.mjs +76 -0
- package/assets/motion/bin/review-frames.mjs +328 -0
- package/assets/motion/bin/score-synth.mjs +486 -0
- package/assets/motion/bin/three.mjs +55 -0
- package/assets/motion/fonts/anybody/OFL.txt +93 -0
- package/assets/motion/fonts/anybody/anybody-normal.woff2 +0 -0
- package/assets/motion/fonts/archivo/OFL.txt +93 -0
- package/assets/motion/fonts/archivo/archivo-normal.woff2 +0 -0
- package/assets/motion/fonts/big-shoulders/OFL.txt +93 -0
- package/assets/motion/fonts/big-shoulders/big-shoulders-normal.woff2 +0 -0
- package/assets/motion/fonts/bricolage-grotesque/OFL.txt +93 -0
- package/assets/motion/fonts/bricolage-grotesque/bricolage-grotesque-normal.woff2 +0 -0
- package/assets/motion/fonts/doto/OFL.txt +93 -0
- package/assets/motion/fonts/doto/doto-normal.woff2 +0 -0
- package/assets/motion/fonts/finger-paint/OFL.txt +93 -0
- package/assets/motion/fonts/finger-paint/finger-paint-normal.woff2 +0 -0
- package/assets/motion/fonts/fonts.json +265 -0
- package/assets/motion/fonts/fraunces/OFL.txt +93 -0
- package/assets/motion/fonts/fraunces/fraunces-italic.woff2 +0 -0
- package/assets/motion/fonts/fraunces/fraunces-normal.woff2 +0 -0
- package/assets/motion/fonts/funnel-display/OFL.txt +93 -0
- package/assets/motion/fonts/funnel-display/funnel-display-normal.woff2 +0 -0
- package/assets/motion/fonts/gloock/OFL.txt +93 -0
- package/assets/motion/fonts/gloock/gloock-normal.woff2 +0 -0
- package/assets/motion/fonts/host-grotesk/OFL.txt +93 -0
- package/assets/motion/fonts/host-grotesk/host-grotesk-normal.woff2 +0 -0
- package/assets/motion/fonts/hubot-sans/OFL.txt +93 -0
- package/assets/motion/fonts/hubot-sans/hubot-sans-normal.woff2 +0 -0
- package/assets/motion/fonts/martian-mono/OFL.txt +93 -0
- package/assets/motion/fonts/martian-mono/martian-mono-normal.woff2 +0 -0
- package/assets/motion/fonts/mona-sans/OFL.txt +93 -0
- package/assets/motion/fonts/mona-sans/mona-sans-normal.woff2 +0 -0
- package/assets/motion/fonts/newsreader/OFL.txt +93 -0
- package/assets/motion/fonts/newsreader/newsreader-italic.woff2 +0 -0
- package/assets/motion/fonts/newsreader/newsreader-normal.woff2 +0 -0
- package/assets/motion/fonts/schibsted-grotesk/OFL.txt +93 -0
- package/assets/motion/fonts/schibsted-grotesk/schibsted-grotesk-normal.woff2 +0 -0
- package/assets/motion/fonts/short-stack/OFL.txt +94 -0
- package/assets/motion/fonts/short-stack/short-stack-normal.woff2 +0 -0
- package/assets/motion/fonts/sora/OFL.txt +93 -0
- package/assets/motion/fonts/sora/sora-normal.woff2 +0 -0
- package/assets/motion/fonts/specimen.jpg +0 -0
- package/assets/motion/fonts/unbounded/OFL.txt +93 -0
- package/assets/motion/fonts/unbounded/unbounded-normal.woff2 +0 -0
- package/assets/motion/fonts/young-serif/OFL.txt +93 -0
- package/assets/motion/fonts/young-serif/young-serif-normal.woff2 +0 -0
- package/assets/motion/library/README.md +106 -0
- package/assets/motion/library/library.json +1384 -0
- package/assets/motion/library/looks/acid-poster/look.md +82 -0
- package/assets/motion/library/looks/acid-poster/meta.json +11 -0
- package/assets/motion/library/looks/acid-poster/preview.jpg +0 -0
- package/assets/motion/library/looks/acid-poster/sample.html +177 -0
- package/assets/motion/library/looks/acid-poster/tokens.css +16 -0
- package/assets/motion/library/looks/blueprint/look.md +22 -0
- package/assets/motion/library/looks/blueprint/meta.json +11 -0
- package/assets/motion/library/looks/blueprint/preview.jpg +0 -0
- package/assets/motion/library/looks/blueprint/sample.html +301 -0
- package/assets/motion/library/looks/blueprint/tokens.css +16 -0
- package/assets/motion/library/looks/dark-studio/look.md +85 -0
- package/assets/motion/library/looks/dark-studio/meta.json +11 -0
- package/assets/motion/library/looks/dark-studio/preview.jpg +0 -0
- package/assets/motion/library/looks/dark-studio/sample.html +324 -0
- package/assets/motion/library/looks/dark-studio/tokens.css +16 -0
- package/assets/motion/library/looks/data-desk/look.md +19 -0
- package/assets/motion/library/looks/data-desk/meta.json +9 -0
- package/assets/motion/library/looks/data-desk/preview.jpg +0 -0
- package/assets/motion/library/looks/data-desk/sample.html +17 -0
- package/assets/motion/library/looks/data-desk/tokens.css +15 -0
- package/assets/motion/library/looks/duotone-broadcast/look.md +53 -0
- package/assets/motion/library/looks/duotone-broadcast/meta.json +11 -0
- package/assets/motion/library/looks/duotone-broadcast/preview.jpg +0 -0
- package/assets/motion/library/looks/duotone-broadcast/sample.html +45 -0
- package/assets/motion/library/looks/duotone-broadcast/tokens.css +16 -0
- package/assets/motion/library/looks/editorial-ink/look.md +80 -0
- package/assets/motion/library/looks/editorial-ink/meta.json +11 -0
- package/assets/motion/library/looks/editorial-ink/preview.jpg +0 -0
- package/assets/motion/library/looks/editorial-ink/sample.html +203 -0
- package/assets/motion/library/looks/editorial-ink/tokens.css +16 -0
- package/assets/motion/library/looks/mono-luxe/look.md +19 -0
- package/assets/motion/library/looks/mono-luxe/meta.json +9 -0
- package/assets/motion/library/looks/mono-luxe/preview.jpg +0 -0
- package/assets/motion/library/looks/mono-luxe/sample.html +12 -0
- package/assets/motion/library/looks/mono-luxe/tokens.css +15 -0
- package/assets/motion/library/looks/soft-light-ad/look.md +63 -0
- package/assets/motion/library/looks/soft-light-ad/meta.json +39 -0
- package/assets/motion/library/looks/soft-light-ad/preview.jpg +0 -0
- package/assets/motion/library/looks/soft-light-ad/sample.html +44 -0
- package/assets/motion/library/looks/soft-light-ad/tokens.css +17 -0
- package/assets/motion/library/looks/sunlit-consumer/look.md +19 -0
- package/assets/motion/library/looks/sunlit-consumer/meta.json +9 -0
- package/assets/motion/library/looks/sunlit-consumer/preview.jpg +0 -0
- package/assets/motion/library/looks/sunlit-consumer/sample.html +12 -0
- package/assets/motion/library/looks/sunlit-consumer/tokens.css +15 -0
- package/assets/motion/library/looks/swiss-grid/look.md +81 -0
- package/assets/motion/library/looks/swiss-grid/meta.json +11 -0
- package/assets/motion/library/looks/swiss-grid/preview.jpg +0 -0
- package/assets/motion/library/looks/swiss-grid/sample.html +209 -0
- package/assets/motion/library/looks/swiss-grid/tokens.css +16 -0
- package/assets/motion/library/looks/terminal-phosphor/look.md +77 -0
- package/assets/motion/library/looks/terminal-phosphor/meta.json +11 -0
- package/assets/motion/library/looks/terminal-phosphor/preview.jpg +0 -0
- package/assets/motion/library/looks/terminal-phosphor/sample.html +182 -0
- package/assets/motion/library/looks/terminal-phosphor/tokens.css +16 -0
- package/assets/motion/library/pieces/animated-beam/LICENSE +21 -0
- package/assets/motion/library/pieces/animated-beam/meta.json +16 -0
- package/assets/motion/library/pieces/animated-beam/piece.html +273 -0
- package/assets/motion/library/pieces/animated-beam/preview.jpg +0 -0
- package/assets/motion/library/pieces/animated-list/LICENSE +21 -0
- package/assets/motion/library/pieces/animated-list/meta.json +16 -0
- package/assets/motion/library/pieces/animated-list/piece.html +189 -0
- package/assets/motion/library/pieces/animated-list/preview.jpg +0 -0
- package/assets/motion/library/pieces/before-after-split/meta.json +12 -0
- package/assets/motion/library/pieces/before-after-split/piece.html +262 -0
- package/assets/motion/library/pieces/before-after-split/preview.jpg +0 -0
- package/assets/motion/library/pieces/blueprint-grid/meta.json +12 -0
- package/assets/motion/library/pieces/blueprint-grid/piece.html +209 -0
- package/assets/motion/library/pieces/blueprint-grid/preview.jpg +0 -0
- package/assets/motion/library/pieces/broadcast-frame/meta.json +12 -0
- package/assets/motion/library/pieces/broadcast-frame/piece.html +100 -0
- package/assets/motion/library/pieces/broadcast-frame/preview.jpg +0 -0
- package/assets/motion/library/pieces/browser-window/meta.json +12 -0
- package/assets/motion/library/pieces/browser-window/piece.html +331 -0
- package/assets/motion/library/pieces/browser-window/preview.jpg +0 -0
- package/assets/motion/library/pieces/chapter-card/meta.json +6 -0
- package/assets/motion/library/pieces/chapter-card/piece.html +12 -0
- package/assets/motion/library/pieces/chapter-card/preview.jpg +0 -0
- package/assets/motion/library/pieces/chat-thread/meta.json +12 -0
- package/assets/motion/library/pieces/chat-thread/piece.html +272 -0
- package/assets/motion/library/pieces/chat-thread/preview.jpg +0 -0
- package/assets/motion/library/pieces/clay-drop-3d/meta.json +13 -0
- package/assets/motion/library/pieces/clay-drop-3d/piece.html +224 -0
- package/assets/motion/library/pieces/clay-drop-3d/preview.jpg +0 -0
- package/assets/motion/library/pieces/color-flip-field/meta.json +12 -0
- package/assets/motion/library/pieces/color-flip-field/piece.html +81 -0
- package/assets/motion/library/pieces/color-flip-field/preview.jpg +0 -0
- package/assets/motion/library/pieces/color-wipe/meta.json +6 -0
- package/assets/motion/library/pieces/color-wipe/piece.html +10 -0
- package/assets/motion/library/pieces/color-wipe/preview.jpg +0 -0
- package/assets/motion/library/pieces/command-palette/meta.json +12 -0
- package/assets/motion/library/pieces/command-palette/piece.html +339 -0
- package/assets/motion/library/pieces/command-palette/preview.jpg +0 -0
- package/assets/motion/library/pieces/comparison-bars/meta.json +12 -0
- package/assets/motion/library/pieces/comparison-bars/piece.html +191 -0
- package/assets/motion/library/pieces/comparison-bars/preview.jpg +0 -0
- package/assets/motion/library/pieces/counter-number/meta.json +12 -0
- package/assets/motion/library/pieces/counter-number/piece.html +131 -0
- package/assets/motion/library/pieces/counter-number/preview.jpg +0 -0
- package/assets/motion/library/pieces/cursor-click/meta.json +12 -0
- package/assets/motion/library/pieces/cursor-click/piece.html +242 -0
- package/assets/motion/library/pieces/cursor-click/preview.jpg +0 -0
- package/assets/motion/library/pieces/dock-magnify/LICENSE +21 -0
- package/assets/motion/library/pieces/dock-magnify/meta.json +16 -0
- package/assets/motion/library/pieces/dock-magnify/piece.html +234 -0
- package/assets/motion/library/pieces/dock-magnify/preview.jpg +0 -0
- package/assets/motion/library/pieces/donut-fill/meta.json +12 -0
- package/assets/motion/library/pieces/donut-fill/piece.html +156 -0
- package/assets/motion/library/pieces/donut-fill/preview.jpg +0 -0
- package/assets/motion/library/pieces/dot-grid-field/meta.json +12 -0
- package/assets/motion/library/pieces/dot-grid-field/piece.html +61 -0
- package/assets/motion/library/pieces/dot-grid-field/preview.jpg +0 -0
- package/assets/motion/library/pieces/ease-curve/meta.json +12 -0
- package/assets/motion/library/pieces/ease-curve/piece.html +103 -0
- package/assets/motion/library/pieces/ease-curve/preview.jpg +0 -0
- package/assets/motion/library/pieces/end-card/meta.json +6 -0
- package/assets/motion/library/pieces/end-card/piece.html +11 -0
- package/assets/motion/library/pieces/end-card/preview.jpg +0 -0
- package/assets/motion/library/pieces/film-grain/meta.json +12 -0
- package/assets/motion/library/pieces/film-grain/piece.html +93 -0
- package/assets/motion/library/pieces/film-grain/preview.jpg +0 -0
- package/assets/motion/library/pieces/flickering-grid/LICENSE +21 -0
- package/assets/motion/library/pieces/flickering-grid/meta.json +16 -0
- package/assets/motion/library/pieces/flickering-grid/piece.html +112 -0
- package/assets/motion/library/pieces/flickering-grid/preview.jpg +0 -0
- package/assets/motion/library/pieces/flow-nodes/meta.json +12 -0
- package/assets/motion/library/pieces/flow-nodes/piece.html +230 -0
- package/assets/motion/library/pieces/flow-nodes/preview.jpg +0 -0
- package/assets/motion/library/pieces/highlight-sweep/meta.json +12 -0
- package/assets/motion/library/pieces/highlight-sweep/piece.html +132 -0
- package/assets/motion/library/pieces/highlight-sweep/preview.jpg +0 -0
- package/assets/motion/library/pieces/iris-circle/meta.json +6 -0
- package/assets/motion/library/pieces/iris-circle/piece.html +6 -0
- package/assets/motion/library/pieces/iris-circle/preview.jpg +0 -0
- package/assets/motion/library/pieces/kinetic-letters/meta.json +12 -0
- package/assets/motion/library/pieces/kinetic-letters/piece.html +103 -0
- package/assets/motion/library/pieces/kinetic-letters/preview.jpg +0 -0
- package/assets/motion/library/pieces/light-leak-soft/meta.json +12 -0
- package/assets/motion/library/pieces/light-leak-soft/piece.html +102 -0
- package/assets/motion/library/pieces/light-leak-soft/preview.jpg +0 -0
- package/assets/motion/library/pieces/line-stack-reveal/meta.json +12 -0
- package/assets/motion/library/pieces/line-stack-reveal/piece.html +98 -0
- package/assets/motion/library/pieces/line-stack-reveal/preview.jpg +0 -0
- package/assets/motion/library/pieces/lower-third/meta.json +6 -0
- package/assets/motion/library/pieces/lower-third/piece.html +11 -0
- package/assets/motion/library/pieces/lower-third/preview.jpg +0 -0
- package/assets/motion/library/pieces/marquee-strip/meta.json +12 -0
- package/assets/motion/library/pieces/marquee-strip/piece.html +132 -0
- package/assets/motion/library/pieces/marquee-strip/preview.jpg +0 -0
- package/assets/motion/library/pieces/mesh-gradient/meta.json +12 -0
- package/assets/motion/library/pieces/mesh-gradient/piece.html +131 -0
- package/assets/motion/library/pieces/mesh-gradient/preview.jpg +0 -0
- package/assets/motion/library/pieces/orbiting-circles/LICENSE +21 -0
- package/assets/motion/library/pieces/orbiting-circles/meta.json +16 -0
- package/assets/motion/library/pieces/orbiting-circles/piece.html +185 -0
- package/assets/motion/library/pieces/orbiting-circles/preview.jpg +0 -0
- package/assets/motion/library/pieces/phone-frame/meta.json +12 -0
- package/assets/motion/library/pieces/phone-frame/piece.html +252 -0
- package/assets/motion/library/pieces/phone-frame/preview.jpg +0 -0
- package/assets/motion/library/pieces/pricing-toggle/meta.json +6 -0
- package/assets/motion/library/pieces/pricing-toggle/piece.html +18 -0
- package/assets/motion/library/pieces/pricing-toggle/preview.jpg +0 -0
- package/assets/motion/library/pieces/retro-grid/LICENSE +21 -0
- package/assets/motion/library/pieces/retro-grid/meta.json +16 -0
- package/assets/motion/library/pieces/retro-grid/piece.html +139 -0
- package/assets/motion/library/pieces/retro-grid/preview.jpg +0 -0
- package/assets/motion/library/pieces/scale-through-word/meta.json +12 -0
- package/assets/motion/library/pieces/scale-through-word/piece.html +139 -0
- package/assets/motion/library/pieces/scale-through-word/preview.jpg +0 -0
- package/assets/motion/library/pieces/serif-quote/meta.json +12 -0
- package/assets/motion/library/pieces/serif-quote/piece.html +145 -0
- package/assets/motion/library/pieces/serif-quote/preview.jpg +0 -0
- package/assets/motion/library/pieces/slam-word/meta.json +12 -0
- package/assets/motion/library/pieces/slam-word/piece.html +72 -0
- package/assets/motion/library/pieces/slam-word/preview.jpg +0 -0
- package/assets/motion/library/pieces/soft-light-field/meta.json +12 -0
- package/assets/motion/library/pieces/soft-light-field/piece.html +83 -0
- package/assets/motion/library/pieces/soft-light-field/preview.jpg +0 -0
- package/assets/motion/library/pieces/sparkline-draw/meta.json +12 -0
- package/assets/motion/library/pieces/sparkline-draw/piece.html +204 -0
- package/assets/motion/library/pieces/sparkline-draw/preview.jpg +0 -0
- package/assets/motion/library/pieces/stack-layers/meta.json +12 -0
- package/assets/motion/library/pieces/stack-layers/piece.html +239 -0
- package/assets/motion/library/pieces/stack-layers/preview.jpg +0 -0
- package/assets/motion/library/pieces/stat-grid/meta.json +12 -0
- package/assets/motion/library/pieces/stat-grid/piece.html +200 -0
- package/assets/motion/library/pieces/stat-grid/preview.jpg +0 -0
- package/assets/motion/library/pieces/studio-backdrop/meta.json +12 -0
- package/assets/motion/library/pieces/studio-backdrop/piece.html +83 -0
- package/assets/motion/library/pieces/studio-backdrop/preview.jpg +0 -0
- package/assets/motion/library/pieces/tile-flip/meta.json +6 -0
- package/assets/motion/library/pieces/tile-flip/piece.html +6 -0
- package/assets/motion/library/pieces/tile-flip/preview.jpg +0 -0
- package/assets/motion/library/pieces/timeline-track/meta.json +12 -0
- package/assets/motion/library/pieces/timeline-track/piece.html +227 -0
- package/assets/motion/library/pieces/timeline-track/preview.jpg +0 -0
- package/assets/motion/library/pieces/toast-stack/meta.json +12 -0
- package/assets/motion/library/pieces/toast-stack/piece.html +185 -0
- package/assets/motion/library/pieces/toast-stack/preview.jpg +0 -0
- package/assets/motion/library/pieces/typewriter-caption/meta.json +12 -0
- package/assets/motion/library/pieces/typewriter-caption/piece.html +112 -0
- package/assets/motion/library/pieces/typewriter-caption/preview.jpg +0 -0
- package/assets/motion/library/pieces/ui-stack-3d/meta.json +12 -0
- package/assets/motion/library/pieces/ui-stack-3d/piece.html +236 -0
- package/assets/motion/library/pieces/ui-stack-3d/preview.jpg +0 -0
- package/assets/motion/library/pieces/vignette/meta.json +12 -0
- package/assets/motion/library/pieces/vignette/piece.html +85 -0
- package/assets/motion/library/pieces/vignette/preview.jpg +0 -0
- package/assets/motion/library/pieces/word-swap/meta.json +12 -0
- package/assets/motion/library/pieces/word-swap/piece.html +122 -0
- package/assets/motion/library/pieces/word-swap/preview.jpg +0 -0
- package/assets/motion/library/sheets/3d.jpg +0 -0
- package/assets/motion/library/sheets/background.jpg +0 -0
- package/assets/motion/library/sheets/data.jpg +0 -0
- package/assets/motion/library/sheets/diagram.jpg +0 -0
- package/assets/motion/library/sheets/frame.jpg +0 -0
- package/assets/motion/library/sheets/looks.jpg +0 -0
- package/assets/motion/library/sheets/texture.jpg +0 -0
- package/assets/motion/library/sheets/transition.jpg +0 -0
- package/assets/motion/library/sheets/type.jpg +0 -0
- package/assets/motion/library/sheets/ui.jpg +0 -0
- package/assets/motion/plugin.json +5 -0
- package/assets/motion/references/README.md +20 -0
- package/assets/motion/references/index.json +25 -0
- package/assets/motion/references/motion-language.md +90 -0
- package/assets/motion/references/runtime/data-attributes.md +78 -0
- package/assets/motion/references/runtime/determinism-rules.md +53 -0
- package/assets/motion/references/runtime/doctor-browser.md +57 -0
- package/assets/motion/references/runtime/gsap-easing-and-stagger.md +199 -0
- package/assets/motion/references/runtime/gsap-timeline-and-labels.md +96 -0
- package/assets/motion/references/runtime/gsap-transforms-and-perf.md +129 -0
- package/assets/motion/references/runtime/gsap.md +105 -0
- package/assets/motion/references/runtime/inputs-and-assets.md +62 -0
- package/assets/motion/references/runtime/lint-validate-inspect.md +131 -0
- package/assets/motion/references/runtime/minimal-composition.md +69 -0
- package/assets/motion/references/runtime/preview-render.md +156 -0
- package/assets/motion/references/runtime/sub-compositions.md +176 -0
- package/assets/motion/references/runtime/tracks-and-clips.md +87 -0
- package/assets/motion/references/runtime/variables-and-media.md +107 -0
- package/assets/motion/references/signal-study.html +39 -0
- package/assets/motion/references/signal-temporal.jpg +0 -0
- package/assets/motion/references/type-temporal.jpg +0 -0
- package/assets/motion/skills/brand-kit/SKILL.md +70 -0
- package/assets/motion/skills/motion/SKILL.md +87 -0
- package/assets/motion/skills/source-ingest/SKILL.md +45 -0
- package/assets/motion/skills/video-qa/SKILL.md +67 -0
- package/assets/motion/vendor/three/LICENSE +21 -0
- package/assets/motion/vendor/three/addons/environments/RoomEnvironment.js +182 -0
- package/assets/motion/vendor/three/addons/geometries/RoundedBoxGeometry.js +216 -0
- package/assets/motion/vendor/three/addons/geometries/TextGeometry.js +84 -0
- package/assets/motion/vendor/three/addons/lights/RectAreaLightTexturesLib.js +127 -0
- package/assets/motion/vendor/three/addons/lights/RectAreaLightUniformsLib.js +40 -0
- package/assets/motion/vendor/three/addons/loaders/FontLoader.js +260 -0
- package/assets/motion/vendor/three/addons/loaders/GLTFLoader.js +4892 -0
- package/assets/motion/vendor/three/addons/loaders/HDRLoader.js +486 -0
- package/assets/motion/vendor/three/addons/loaders/SVGLoader.js +3267 -0
- package/assets/motion/vendor/three/addons/math/SimplexNoise.js +470 -0
- package/assets/motion/vendor/three/addons/objects/Reflector.js +338 -0
- package/assets/motion/vendor/three/addons/postprocessing/BokehPass.js +218 -0
- package/assets/motion/vendor/three/addons/postprocessing/EffectComposer.js +363 -0
- package/assets/motion/vendor/three/addons/postprocessing/FilmPass.js +113 -0
- package/assets/motion/vendor/three/addons/postprocessing/MaskPass.js +195 -0
- package/assets/motion/vendor/three/addons/postprocessing/OutputPass.js +139 -0
- package/assets/motion/vendor/three/addons/postprocessing/Pass.js +191 -0
- package/assets/motion/vendor/three/addons/postprocessing/RenderPass.js +183 -0
- package/assets/motion/vendor/three/addons/postprocessing/ShaderPass.js +135 -0
- package/assets/motion/vendor/three/addons/postprocessing/UnrealBloomPass.js +494 -0
- package/assets/motion/vendor/three/addons/renderers/CSS3DRenderer.js +454 -0
- package/assets/motion/vendor/three/addons/shaders/BokehShader.js +151 -0
- package/assets/motion/vendor/three/addons/shaders/CopyShader.js +52 -0
- package/assets/motion/vendor/three/addons/shaders/FilmShader.js +72 -0
- package/assets/motion/vendor/three/addons/shaders/LuminosityHighPassShader.js +68 -0
- package/assets/motion/vendor/three/addons/shaders/OutputShader.js +103 -0
- package/assets/motion/vendor/three/addons/utils/BufferGeometryUtils.js +1435 -0
- package/assets/motion/vendor/three/build/three.core.min.js +6 -0
- package/assets/motion/vendor/three/build/three.module.min.js +6 -0
- package/assets/motion/vendor/three/three.json +54 -0
- package/dist/app-sidecar-sessions.js +5 -0
- package/dist/app-sidecar-sessions.js.map +1 -1
- package/dist/app-sidecar.js +52 -16
- package/dist/app-sidecar.js.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/core/agent-session.d.ts +26 -0
- package/dist/core/agent-session.js +104 -2
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-providers.js +2 -2
- package/dist/core/auth-providers.js.map +1 -1
- package/dist/core/completion-review.d.ts +24 -0
- package/dist/core/completion-review.js +2 -0
- package/dist/core/completion-review.js.map +1 -0
- package/dist/core/context-limits.d.ts +6 -0
- package/dist/core/context-limits.js +8 -0
- package/dist/core/context-limits.js.map +1 -1
- package/dist/core/fast-apply-benchmark.d.ts +1 -1
- package/dist/core/fast-apply-benchmark.js +2 -2
- package/dist/core/fast-apply-benchmark.js.map +1 -1
- package/dist/core/lsp/pool.d.ts +2 -0
- package/dist/core/lsp/pool.js +4 -0
- package/dist/core/lsp/pool.js.map +1 -1
- package/dist/core/project-discovery.js +2 -0
- package/dist/core/project-discovery.js.map +1 -1
- package/dist/core/semantic-search-benchmark.d.ts +1 -1
- package/dist/core/semantic-search-benchmark.js +2 -2
- package/dist/core/semantic-search-benchmark.js.map +1 -1
- package/dist/core/session-export.d.ts +2 -2
- package/dist/core/session-export.js +6 -2
- package/dist/core/session-export.js.map +1 -1
- package/dist/core/skills.d.ts +15 -0
- package/dist/core/skills.js +35 -1
- package/dist/core/skills.js.map +1 -1
- package/dist/core/subagent-policy.js +1 -1
- package/dist/core/subagent-policy.js.map +1 -1
- package/dist/modes/json-mode.js +11 -2
- package/dist/modes/json-mode.js.map +1 -1
- package/dist/modes/subagent-worker-mode.d.ts +18 -0
- package/dist/modes/subagent-worker-mode.js +32 -27
- package/dist/modes/subagent-worker-mode.js.map +1 -1
- package/dist/motion-agent/motion-agent.d.ts +35 -0
- package/dist/motion-agent/motion-agent.js +117 -0
- package/dist/motion-agent/motion-agent.js.map +1 -0
- package/dist/motion-agent/motion-check-tool.d.ts +23 -0
- package/dist/motion-agent/motion-check-tool.js +318 -0
- package/dist/motion-agent/motion-check-tool.js.map +1 -0
- package/dist/motion-agent/motion-prompt.d.ts +2 -0
- package/dist/motion-agent/motion-prompt.js +44 -0
- package/dist/motion-agent/motion-prompt.js.map +1 -0
- package/dist/motion-agent/motion-review-coverage.d.ts +12 -0
- package/dist/motion-agent/motion-review-coverage.js +33 -0
- package/dist/motion-agent/motion-review-coverage.js.map +1 -0
- package/dist/motion-agent/motion-review-gate.d.ts +48 -0
- package/dist/motion-agent/motion-review-gate.js +88 -0
- package/dist/motion-agent/motion-review-gate.js.map +1 -0
- package/dist/motion-agent/motion-review-session.d.ts +65 -0
- package/dist/motion-agent/motion-review-session.js +418 -0
- package/dist/motion-agent/motion-review-session.js.map +1 -0
- package/dist/motion-agent/motion-review.d.ts +76 -0
- package/dist/motion-agent/motion-review.js +225 -0
- package/dist/motion-agent/motion-review.js.map +1 -0
- package/dist/motion-agent/motion-studio-context.d.ts +44 -0
- package/dist/motion-agent/motion-studio-context.js +65 -0
- package/dist/motion-agent/motion-studio-context.js.map +1 -0
- package/dist/system-prompt.d.ts +3 -0
- package/dist/system-prompt.js +5 -1
- package/dist/system-prompt.js.map +1 -1
- package/dist/tools/read.js +15 -2
- package/dist/tools/read.js.map +1 -1
- package/dist/tools/subagent-shared.d.ts +14 -0
- package/dist/tools/subagent-shared.js +25 -0
- package/dist/tools/subagent-shared.js.map +1 -1
- package/dist/ui/components/Footer.js +2 -2
- package/dist/ui/components/Footer.js.map +1 -1
- package/package.json +7 -4
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: video-qa
|
|
3
|
+
description: One output-checking pass for a rendered Motion video. Use motion_check for technical checks and rendered images, inspect them in this session, fix concrete defects and deliver. No independent AI reviewer or creative approval ceremony.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Check the actual output once
|
|
7
|
+
|
|
8
|
+
Judge the render against the plan in `frame.md` (its `Concept` and `Language`) and the approved inputs, not an alternative creative direction. The check finds defects; it is not an invitation to add effects, retime the motion or redesign the layout.
|
|
9
|
+
|
|
10
|
+
## 1. Check the current export
|
|
11
|
+
|
|
12
|
+
Call `motion_check` with:
|
|
13
|
+
|
|
14
|
+
- `project`: the current HyperFrames project folder.
|
|
15
|
+
- `output`: the actual rendered MP4, inside the workspace.
|
|
16
|
+
- `windows`: representative motion/transition windows, each with `label`, `start` and `end` in seconds. Use the video's own timings; each window spans at least two frames and at most ten seconds, up to twelve windows.
|
|
17
|
+
- `holds`: only when the video has a deliberate static section (an end card, reading hold or pause you designed), the path to its render-bound hold plan (format below). Write it before this first call; an undeclared deliberate hold is flagged as frozen and costs a second full check.
|
|
18
|
+
- `slideshowRequested`: true only when the user actually requested a slideshow; never use it to hide broken motion.
|
|
19
|
+
- `range`: only for an export longer than 180 seconds or a targeted diagnostic, a start/end range of at most 180 seconds. Report the inspected range honestly; do not claim full-video visual coverage.
|
|
20
|
+
|
|
21
|
+
The tool runs HyperFrames `check` (which already includes lint), decoded-pixel analysis with `motion-check.mjs` including canvas/WebGL, and audio analysis only when audio exists. It returns technical results and actual rendered overview, phone-size and consecutive-frame images **to you**, the working agent.
|
|
22
|
+
|
|
23
|
+
Do not precede or follow it with another lint/check/audio/frame-extraction checklist. Do not call the legacy `motion_review` prepare/submit workflow. No subagent, separate model critique, approval score or chapter registration is needed.
|
|
24
|
+
|
|
25
|
+
## 2. Inspect what was returned
|
|
26
|
+
|
|
27
|
+
Check the attached images for:
|
|
28
|
+
|
|
29
|
+
- Correct user text, images, branding and permitted substitutions.
|
|
30
|
+
- Missing media, overflow, clipping and unreadable text.
|
|
31
|
+
- The planned motion and timing, including intended holds.
|
|
32
|
+
- Representative entrance, active and exit frames for each scene.
|
|
33
|
+
- The plan: the motif carries through, colours stay on palette, transitions are deliberate and type stays readable.
|
|
34
|
+
|
|
35
|
+
Still images do not prove pacing at normal speed or that audio was heard. Use actual playback/listening only when needed and available; state the limit otherwise. Technical success is not proof of visual quality. Missing evidence is unverified, not PASS.
|
|
36
|
+
|
|
37
|
+
If the tool fails, its check details list each problem with where and when it occurs, plus renderer notes such as undeclared fonts. Use them to diagnose the concrete problem; do not rerun the check by hand to see them. Runtime command details live in [technical diagnostics](../../references/runtime/lint-validate-inspect.md); they are troubleshooting references, not an extra mandatory pass. Never introduce generic drift, extra effects or layout changes just to satisfy a heuristic. If a real accessibility requirement conflicts with the plan, fix the accessibility problem.
|
|
38
|
+
|
|
39
|
+
## 3. Fix only a concrete defect
|
|
40
|
+
|
|
41
|
+
A failed check or visibly wrong output warrants a targeted fix, a new versioned render and a check of that changed output. An unchanged export does not need checking again. Do not iterate toward subjective perfection or route the result to another reviewer. Report an unresolved blocker as draft/unverified rather than looping indefinitely or declaring success.
|
|
42
|
+
|
|
43
|
+
The tool measures audio and rejects non-finite levels or clipping; it does not normalize the file. Follow the user's delivery loudness target when they give one. Do not add audio to silent work or force every supplied animation through a generic -14 LUFS mix.
|
|
44
|
+
|
|
45
|
+
### Intentional holds
|
|
46
|
+
|
|
47
|
+
Declare only deliberate static intervals: an end card, a reading hold or another still section you designed on purpose. The hold plan binds to the current video, so an old plan cannot excuse freezes in a changed export:
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"version": 1,
|
|
52
|
+
"videoSha256": "<SHA-256 of this exact export>",
|
|
53
|
+
"holds": [{ "start": 13, "end": 15, "reason": "End card hold" }]
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Do not mark the whole video as a hold to suppress broken animation. Retain any existing meaningful motion assertions; do not invent a new assertion sidecar for every video.
|
|
58
|
+
|
|
59
|
+
## 4. Deliver
|
|
60
|
+
|
|
61
|
+
Deliver the actual versioned MP4, then reveal it:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
<node> "<motion bin>/reveal.mjs" renders/<file>.mp4
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
State concrete remaining limits. Do not claim full playback or audio listening from sampled images. No automatic posters, share copy, extra formats or launch packages.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License
|
|
2
|
+
|
|
3
|
+
Copyright © 2010-2025 three.js authors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BackSide,
|
|
3
|
+
BoxGeometry,
|
|
4
|
+
InstancedMesh,
|
|
5
|
+
Mesh,
|
|
6
|
+
MeshLambertMaterial,
|
|
7
|
+
MeshStandardMaterial,
|
|
8
|
+
PointLight,
|
|
9
|
+
Scene,
|
|
10
|
+
Object3D,
|
|
11
|
+
} from 'three';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* This class represents a scene with a basic room setup that can be used as
|
|
15
|
+
* input for {@link PMREMGenerator#fromScene}. The resulting PMREM represents the room's
|
|
16
|
+
* lighting and can be used for Image Based Lighting by assigning it to {@link Scene#environment}
|
|
17
|
+
* or directly as an environment map to PBR materials.
|
|
18
|
+
*
|
|
19
|
+
* The implementation is based on the [EnvironmentScene](https://github.com/google/model-viewer/blob/master/packages/model-viewer/src/three-components/EnvironmentScene.ts)
|
|
20
|
+
* component from the `model-viewer` project.
|
|
21
|
+
*
|
|
22
|
+
* ```js
|
|
23
|
+
* const environment = new RoomEnvironment();
|
|
24
|
+
* const pmremGenerator = new THREE.PMREMGenerator( renderer );
|
|
25
|
+
*
|
|
26
|
+
* const envMap = pmremGenerator.fromScene( environment ).texture;
|
|
27
|
+
* scene.environment = envMap;
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @augments Scene
|
|
31
|
+
* @three_import import { RoomEnvironment } from 'three/addons/environments/RoomEnvironment.js';
|
|
32
|
+
*/
|
|
33
|
+
class RoomEnvironment extends Scene {
|
|
34
|
+
|
|
35
|
+
constructor() {
|
|
36
|
+
|
|
37
|
+
super();
|
|
38
|
+
|
|
39
|
+
const geometry = new BoxGeometry();
|
|
40
|
+
geometry.deleteAttribute( 'uv' );
|
|
41
|
+
|
|
42
|
+
const roomMaterial = new MeshStandardMaterial( { side: BackSide } );
|
|
43
|
+
const boxMaterial = new MeshStandardMaterial();
|
|
44
|
+
|
|
45
|
+
const mainLight = new PointLight( 0xffffff, 900, 28, 2 );
|
|
46
|
+
mainLight.position.set( 0.418, 16.199, 0.300 );
|
|
47
|
+
this.add( mainLight );
|
|
48
|
+
|
|
49
|
+
const room = new Mesh( geometry, roomMaterial );
|
|
50
|
+
room.position.set( - 0.757, 13.219, 0.717 );
|
|
51
|
+
room.scale.set( 31.713, 28.305, 28.591 );
|
|
52
|
+
this.add( room );
|
|
53
|
+
|
|
54
|
+
const boxes = new InstancedMesh( geometry, boxMaterial, 6 );
|
|
55
|
+
const transform = new Object3D();
|
|
56
|
+
|
|
57
|
+
// box1
|
|
58
|
+
transform.position.set( - 10.906, 2.009, 1.846 );
|
|
59
|
+
transform.rotation.set( 0, - 0.195, 0 );
|
|
60
|
+
transform.scale.set( 2.328, 7.905, 4.651 );
|
|
61
|
+
transform.updateMatrix();
|
|
62
|
+
boxes.setMatrixAt( 0, transform.matrix );
|
|
63
|
+
|
|
64
|
+
// box2
|
|
65
|
+
transform.position.set( - 5.607, - 0.754, - 0.758 );
|
|
66
|
+
transform.rotation.set( 0, 0.994, 0 );
|
|
67
|
+
transform.scale.set( 1.970, 1.534, 3.955 );
|
|
68
|
+
transform.updateMatrix();
|
|
69
|
+
boxes.setMatrixAt( 1, transform.matrix );
|
|
70
|
+
|
|
71
|
+
// box3
|
|
72
|
+
transform.position.set( 6.167, 0.857, 7.803 );
|
|
73
|
+
transform.rotation.set( 0, 0.561, 0 );
|
|
74
|
+
transform.scale.set( 3.927, 6.285, 3.687 );
|
|
75
|
+
transform.updateMatrix();
|
|
76
|
+
boxes.setMatrixAt( 2, transform.matrix );
|
|
77
|
+
|
|
78
|
+
// box4
|
|
79
|
+
transform.position.set( - 2.017, 0.018, 6.124 );
|
|
80
|
+
transform.rotation.set( 0, 0.333, 0 );
|
|
81
|
+
transform.scale.set( 2.002, 4.566, 2.064 );
|
|
82
|
+
transform.updateMatrix();
|
|
83
|
+
boxes.setMatrixAt( 3, transform.matrix );
|
|
84
|
+
|
|
85
|
+
// box5
|
|
86
|
+
transform.position.set( 2.291, - 0.756, - 2.621 );
|
|
87
|
+
transform.rotation.set( 0, - 0.286, 0 );
|
|
88
|
+
transform.scale.set( 1.546, 1.552, 1.496 );
|
|
89
|
+
transform.updateMatrix();
|
|
90
|
+
boxes.setMatrixAt( 4, transform.matrix );
|
|
91
|
+
|
|
92
|
+
// box6
|
|
93
|
+
transform.position.set( - 2.193, - 0.369, - 5.547 );
|
|
94
|
+
transform.rotation.set( 0, 0.516, 0 );
|
|
95
|
+
transform.scale.set( 3.875, 3.487, 2.986 );
|
|
96
|
+
transform.updateMatrix();
|
|
97
|
+
boxes.setMatrixAt( 5, transform.matrix );
|
|
98
|
+
|
|
99
|
+
this.add( boxes );
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
// -x right
|
|
103
|
+
const light1 = new Mesh( geometry, createAreaLightMaterial( 50 ) );
|
|
104
|
+
light1.position.set( - 16.116, 14.37, 8.208 );
|
|
105
|
+
light1.scale.set( 0.1, 2.428, 2.739 );
|
|
106
|
+
this.add( light1 );
|
|
107
|
+
|
|
108
|
+
// -x left
|
|
109
|
+
const light2 = new Mesh( geometry, createAreaLightMaterial( 50 ) );
|
|
110
|
+
light2.position.set( - 16.109, 18.021, - 8.207 );
|
|
111
|
+
light2.scale.set( 0.1, 2.425, 2.751 );
|
|
112
|
+
this.add( light2 );
|
|
113
|
+
|
|
114
|
+
// +x
|
|
115
|
+
const light3 = new Mesh( geometry, createAreaLightMaterial( 17 ) );
|
|
116
|
+
light3.position.set( 14.904, 12.198, - 1.832 );
|
|
117
|
+
light3.scale.set( 0.15, 4.265, 6.331 );
|
|
118
|
+
this.add( light3 );
|
|
119
|
+
|
|
120
|
+
// +z
|
|
121
|
+
const light4 = new Mesh( geometry, createAreaLightMaterial( 43 ) );
|
|
122
|
+
light4.position.set( - 0.462, 8.89, 14.520 );
|
|
123
|
+
light4.scale.set( 4.38, 5.441, 0.088 );
|
|
124
|
+
this.add( light4 );
|
|
125
|
+
|
|
126
|
+
// -z
|
|
127
|
+
const light5 = new Mesh( geometry, createAreaLightMaterial( 20 ) );
|
|
128
|
+
light5.position.set( 3.235, 11.486, - 12.541 );
|
|
129
|
+
light5.scale.set( 2.5, 2.0, 0.1 );
|
|
130
|
+
this.add( light5 );
|
|
131
|
+
|
|
132
|
+
// +y
|
|
133
|
+
const light6 = new Mesh( geometry, createAreaLightMaterial( 100 ) );
|
|
134
|
+
light6.position.set( 0.0, 20.0, 0.0 );
|
|
135
|
+
light6.scale.set( 1.0, 0.1, 1.0 );
|
|
136
|
+
this.add( light6 );
|
|
137
|
+
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Frees internal resources. This method should be called
|
|
142
|
+
* when the environment is no longer required.
|
|
143
|
+
*/
|
|
144
|
+
dispose() {
|
|
145
|
+
|
|
146
|
+
const resources = new Set();
|
|
147
|
+
|
|
148
|
+
this.traverse( ( object ) => {
|
|
149
|
+
|
|
150
|
+
if ( object.isMesh ) {
|
|
151
|
+
|
|
152
|
+
resources.add( object.geometry );
|
|
153
|
+
resources.add( object.material );
|
|
154
|
+
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
} );
|
|
158
|
+
|
|
159
|
+
for ( const resource of resources ) {
|
|
160
|
+
|
|
161
|
+
resource.dispose();
|
|
162
|
+
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function createAreaLightMaterial( intensity ) {
|
|
170
|
+
|
|
171
|
+
// create an emissive-only material. see #31348
|
|
172
|
+
const material = new MeshLambertMaterial( {
|
|
173
|
+
color: 0x000000,
|
|
174
|
+
emissive: 0xffffff,
|
|
175
|
+
emissiveIntensity: intensity
|
|
176
|
+
} );
|
|
177
|
+
|
|
178
|
+
return material;
|
|
179
|
+
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export { RoomEnvironment };
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BoxGeometry,
|
|
3
|
+
Vector3
|
|
4
|
+
} from 'three';
|
|
5
|
+
|
|
6
|
+
const _tempNormal = new Vector3();
|
|
7
|
+
|
|
8
|
+
function getUv( faceDirVector, normal, uvAxis, projectionAxis, radius, sideLength ) {
|
|
9
|
+
|
|
10
|
+
const totArcLength = 2 * Math.PI * radius / 4;
|
|
11
|
+
|
|
12
|
+
// length of the planes between the arcs on each axis
|
|
13
|
+
const centerLength = Math.max( sideLength - 2 * radius, 0 );
|
|
14
|
+
const halfArc = Math.PI / 4;
|
|
15
|
+
|
|
16
|
+
// Get the vector projected onto the Y plane
|
|
17
|
+
_tempNormal.copy( normal );
|
|
18
|
+
_tempNormal[ projectionAxis ] = 0;
|
|
19
|
+
_tempNormal.normalize();
|
|
20
|
+
|
|
21
|
+
// total amount of UV space alloted to a single arc
|
|
22
|
+
const arcUvRatio = 0.5 * totArcLength / ( totArcLength + centerLength );
|
|
23
|
+
|
|
24
|
+
// the distance along one arc the point is at
|
|
25
|
+
const arcAngleRatio = 1.0 - ( _tempNormal.angleTo( faceDirVector ) / halfArc );
|
|
26
|
+
|
|
27
|
+
if ( Math.sign( _tempNormal[ uvAxis ] ) === 1 ) {
|
|
28
|
+
|
|
29
|
+
return arcAngleRatio * arcUvRatio;
|
|
30
|
+
|
|
31
|
+
} else {
|
|
32
|
+
|
|
33
|
+
// total amount of UV space alloted to the plane between the arcs
|
|
34
|
+
const lenUv = centerLength / ( totArcLength + centerLength );
|
|
35
|
+
return lenUv + arcUvRatio + arcUvRatio * ( 1.0 - arcAngleRatio );
|
|
36
|
+
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* A special type of box geometry with rounded corners and edges.
|
|
43
|
+
*
|
|
44
|
+
* ```js
|
|
45
|
+
* const geometry = new THREE.RoundedBoxGeometry();
|
|
46
|
+
* const material = new THREE.MeshStandardMaterial( { color: 0x00ff00 } );
|
|
47
|
+
* const cube = new THREE.Mesh( geometry, material );
|
|
48
|
+
* scene.add( cube );
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @augments BoxGeometry
|
|
52
|
+
* @three_import import { RoundedBoxGeometry } from 'three/addons/geometries/RoundedBoxGeometry.js';
|
|
53
|
+
*/
|
|
54
|
+
class RoundedBoxGeometry extends BoxGeometry {
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Constructs a new rounded box geometry.
|
|
58
|
+
*
|
|
59
|
+
* @param {number} [width=1] - The width. That is, the length of the edges parallel to the X axis.
|
|
60
|
+
* @param {number} [height=1] - The height. That is, the length of the edges parallel to the Y axis.
|
|
61
|
+
* @param {number} [depth=1] - The depth. That is, the length of the edges parallel to the Z axis.
|
|
62
|
+
* @param {number} [segments=2] - Number of segments that form the rounded corners.
|
|
63
|
+
* @param {number} [radius=0.1] - The radius of the rounded corners.
|
|
64
|
+
*/
|
|
65
|
+
constructor( width = 1, height = 1, depth = 1, segments = 2, radius = 0.1 ) {
|
|
66
|
+
|
|
67
|
+
// calculate total segments needed &
|
|
68
|
+
// ensure it's odd so that we have a plane connecting the rounded corners
|
|
69
|
+
const totalSegments = segments * 2 + 1;
|
|
70
|
+
|
|
71
|
+
// ensure radius isn't bigger than shortest side
|
|
72
|
+
radius = Math.min( width / 2, height / 2, depth / 2, radius );
|
|
73
|
+
|
|
74
|
+
// start with a unit box geometry, its vertices will be modified to form the rounded box
|
|
75
|
+
super( 1, 1, 1, totalSegments, totalSegments, totalSegments );
|
|
76
|
+
|
|
77
|
+
this.type = 'RoundedBoxGeometry';
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Holds the constructor parameters that have been
|
|
81
|
+
* used to generate the geometry. Any modification
|
|
82
|
+
* after instantiation does not change the geometry.
|
|
83
|
+
*
|
|
84
|
+
* @type {Object}
|
|
85
|
+
*/
|
|
86
|
+
this.parameters = {
|
|
87
|
+
width: width,
|
|
88
|
+
height: height,
|
|
89
|
+
depth: depth,
|
|
90
|
+
segments: segments,
|
|
91
|
+
radius: radius,
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
// if totalSegments is 1, no rounding is needed - return regular box
|
|
95
|
+
if ( totalSegments === 1 ) return;
|
|
96
|
+
|
|
97
|
+
const geometry2 = this.toNonIndexed();
|
|
98
|
+
|
|
99
|
+
this.index = null;
|
|
100
|
+
this.attributes.position = geometry2.attributes.position;
|
|
101
|
+
this.attributes.normal = geometry2.attributes.normal;
|
|
102
|
+
this.attributes.uv = geometry2.attributes.uv;
|
|
103
|
+
|
|
104
|
+
//
|
|
105
|
+
|
|
106
|
+
const position = new Vector3();
|
|
107
|
+
const normal = new Vector3();
|
|
108
|
+
|
|
109
|
+
const box = new Vector3( width, height, depth ).divideScalar( 2 ).subScalar( radius );
|
|
110
|
+
|
|
111
|
+
const positions = this.attributes.position.array;
|
|
112
|
+
const normals = this.attributes.normal.array;
|
|
113
|
+
const uvs = this.attributes.uv.array;
|
|
114
|
+
|
|
115
|
+
const faceTris = positions.length / 6;
|
|
116
|
+
const faceDirVector = new Vector3();
|
|
117
|
+
const halfSegmentSize = 0.5 / totalSegments;
|
|
118
|
+
|
|
119
|
+
for ( let i = 0, j = 0; i < positions.length; i += 3, j += 2 ) {
|
|
120
|
+
|
|
121
|
+
position.fromArray( positions, i );
|
|
122
|
+
normal.copy( position );
|
|
123
|
+
normal.x -= Math.sign( normal.x ) * halfSegmentSize;
|
|
124
|
+
normal.y -= Math.sign( normal.y ) * halfSegmentSize;
|
|
125
|
+
normal.z -= Math.sign( normal.z ) * halfSegmentSize;
|
|
126
|
+
normal.normalize();
|
|
127
|
+
|
|
128
|
+
positions[ i + 0 ] = box.x * Math.sign( position.x ) + normal.x * radius;
|
|
129
|
+
positions[ i + 1 ] = box.y * Math.sign( position.y ) + normal.y * radius;
|
|
130
|
+
positions[ i + 2 ] = box.z * Math.sign( position.z ) + normal.z * radius;
|
|
131
|
+
|
|
132
|
+
normals[ i + 0 ] = normal.x;
|
|
133
|
+
normals[ i + 1 ] = normal.y;
|
|
134
|
+
normals[ i + 2 ] = normal.z;
|
|
135
|
+
|
|
136
|
+
const side = Math.floor( i / faceTris );
|
|
137
|
+
|
|
138
|
+
switch ( side ) {
|
|
139
|
+
|
|
140
|
+
case 0: // right
|
|
141
|
+
|
|
142
|
+
// generate UVs along Z then Y
|
|
143
|
+
faceDirVector.set( 1, 0, 0 );
|
|
144
|
+
uvs[ j + 0 ] = getUv( faceDirVector, normal, 'z', 'y', radius, depth );
|
|
145
|
+
uvs[ j + 1 ] = 1.0 - getUv( faceDirVector, normal, 'y', 'z', radius, height );
|
|
146
|
+
break;
|
|
147
|
+
|
|
148
|
+
case 1: // left
|
|
149
|
+
|
|
150
|
+
// generate UVs along Z then Y
|
|
151
|
+
faceDirVector.set( - 1, 0, 0 );
|
|
152
|
+
uvs[ j + 0 ] = 1.0 - getUv( faceDirVector, normal, 'z', 'y', radius, depth );
|
|
153
|
+
uvs[ j + 1 ] = 1.0 - getUv( faceDirVector, normal, 'y', 'z', radius, height );
|
|
154
|
+
break;
|
|
155
|
+
|
|
156
|
+
case 2: // top
|
|
157
|
+
|
|
158
|
+
// generate UVs along X then Z
|
|
159
|
+
faceDirVector.set( 0, 1, 0 );
|
|
160
|
+
uvs[ j + 0 ] = 1.0 - getUv( faceDirVector, normal, 'x', 'z', radius, width );
|
|
161
|
+
uvs[ j + 1 ] = getUv( faceDirVector, normal, 'z', 'x', radius, depth );
|
|
162
|
+
break;
|
|
163
|
+
|
|
164
|
+
case 3: // bottom
|
|
165
|
+
|
|
166
|
+
// generate UVs along X then Z
|
|
167
|
+
faceDirVector.set( 0, - 1, 0 );
|
|
168
|
+
uvs[ j + 0 ] = 1.0 - getUv( faceDirVector, normal, 'x', 'z', radius, width );
|
|
169
|
+
uvs[ j + 1 ] = 1.0 - getUv( faceDirVector, normal, 'z', 'x', radius, depth );
|
|
170
|
+
break;
|
|
171
|
+
|
|
172
|
+
case 4: // front
|
|
173
|
+
|
|
174
|
+
// generate UVs along X then Y
|
|
175
|
+
faceDirVector.set( 0, 0, 1 );
|
|
176
|
+
uvs[ j + 0 ] = 1.0 - getUv( faceDirVector, normal, 'x', 'y', radius, width );
|
|
177
|
+
uvs[ j + 1 ] = 1.0 - getUv( faceDirVector, normal, 'y', 'x', radius, height );
|
|
178
|
+
break;
|
|
179
|
+
|
|
180
|
+
case 5: // back
|
|
181
|
+
|
|
182
|
+
// generate UVs along X then Y
|
|
183
|
+
faceDirVector.set( 0, 0, - 1 );
|
|
184
|
+
uvs[ j + 0 ] = getUv( faceDirVector, normal, 'x', 'y', radius, width );
|
|
185
|
+
uvs[ j + 1 ] = 1.0 - getUv( faceDirVector, normal, 'y', 'x', radius, height );
|
|
186
|
+
break;
|
|
187
|
+
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Factory method for creating an instance of this class from the given
|
|
196
|
+
* JSON object.
|
|
197
|
+
*
|
|
198
|
+
* @param {Object} data - A JSON object representing the serialized geometry.
|
|
199
|
+
* @returns {RoundedBoxGeometry} A new instance.
|
|
200
|
+
*/
|
|
201
|
+
static fromJSON( data ) {
|
|
202
|
+
|
|
203
|
+
return new RoundedBoxGeometry(
|
|
204
|
+
data.width,
|
|
205
|
+
data.height,
|
|
206
|
+
data.depth,
|
|
207
|
+
data.segments,
|
|
208
|
+
data.radius
|
|
209
|
+
);
|
|
210
|
+
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
export { RoundedBoxGeometry };
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ExtrudeGeometry
|
|
3
|
+
} from 'three';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A class for generating text as a single geometry. It is constructed by providing a string of text, and a set of
|
|
7
|
+
* parameters consisting of a loaded font and extrude settings.
|
|
8
|
+
*
|
|
9
|
+
* See the {@link FontLoader} page for additional details.
|
|
10
|
+
*
|
|
11
|
+
* `TextGeometry` uses [typeface.json](http://gero3.github.io/facetype.js/) generated fonts.
|
|
12
|
+
* Some existing fonts can be found located in `/examples/fonts`.
|
|
13
|
+
*
|
|
14
|
+
* ```js
|
|
15
|
+
* const loader = new FontLoader();
|
|
16
|
+
* const font = await loader.loadAsync( 'fonts/helvetiker_regular.typeface.json' );
|
|
17
|
+
* const geometry = new TextGeometry( 'Hello three.js!', {
|
|
18
|
+
* font: font,
|
|
19
|
+
* size: 80,
|
|
20
|
+
* depth: 5,
|
|
21
|
+
* curveSegments: 12
|
|
22
|
+
* } );
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @augments ExtrudeGeometry
|
|
26
|
+
* @three_import import { TextGeometry } from 'three/addons/geometries/TextGeometry.js';
|
|
27
|
+
*/
|
|
28
|
+
class TextGeometry extends ExtrudeGeometry {
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Constructs a new text geometry.
|
|
32
|
+
*
|
|
33
|
+
* @param {string} text - The text that should be transformed into a geometry.
|
|
34
|
+
* @param {TextGeometry~Options} [parameters] - The text settings.
|
|
35
|
+
*/
|
|
36
|
+
constructor( text, parameters = {} ) {
|
|
37
|
+
|
|
38
|
+
const font = parameters.font;
|
|
39
|
+
|
|
40
|
+
if ( font === undefined ) {
|
|
41
|
+
|
|
42
|
+
super(); // generate default extrude geometry
|
|
43
|
+
|
|
44
|
+
} else {
|
|
45
|
+
|
|
46
|
+
const shapes = font.generateShapes( text, parameters.size, parameters.direction );
|
|
47
|
+
|
|
48
|
+
// defaults
|
|
49
|
+
|
|
50
|
+
if ( parameters.depth === undefined ) parameters.depth = 50;
|
|
51
|
+
if ( parameters.bevelThickness === undefined ) parameters.bevelThickness = 10;
|
|
52
|
+
if ( parameters.bevelSize === undefined ) parameters.bevelSize = 8;
|
|
53
|
+
if ( parameters.bevelEnabled === undefined ) parameters.bevelEnabled = false;
|
|
54
|
+
|
|
55
|
+
super( shapes, parameters );
|
|
56
|
+
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
this.type = 'TextGeometry';
|
|
60
|
+
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Represents the `options` type of the geometry's constructor.
|
|
67
|
+
*
|
|
68
|
+
* @typedef {Object} TextGeometry~Options
|
|
69
|
+
* @property {Font} [font] - The font.
|
|
70
|
+
* @property {number} [size=100] - The text size.
|
|
71
|
+
* @property {number} [depth=50] - Depth to extrude the shape.
|
|
72
|
+
* @property {number} [curveSegments=12] - Number of points on the curves.
|
|
73
|
+
* @property {number} [steps=1] - Number of points used for subdividing segments along the depth of the extruded spline.
|
|
74
|
+
* @property {boolean} [bevelEnabled=false] - Whether to beveling to the shape or not.
|
|
75
|
+
* @property {number} [bevelThickness=10] - How deep into the original shape the bevel goes.
|
|
76
|
+
* @property {number} [bevelSize=8] - Distance from the shape outline that the bevel extends.
|
|
77
|
+
* @property {number} [bevelOffset=0] - Distance from the shape outline that the bevel starts.
|
|
78
|
+
* @property {number} [bevelSegments=3] - Number of bevel layers.
|
|
79
|
+
* @property {string} [direction='ltr'] - Char direction: ltr(left to right), rtl(right to left) & tb(top bottom).
|
|
80
|
+
* @property {?Curve} [extrudePath=null] - A 3D spline path along which the shape should be extruded. Bevels not supported for path extrusion.
|
|
81
|
+
* @property {Object} [UVGenerator] - An object that provides UV generator functions for custom UV generation.
|
|
82
|
+
**/
|
|
83
|
+
|
|
84
|
+
export { TextGeometry };
|