Tasmota/lib/libesp32/berry_animation/anim_examples/plasma_wave.anim
2025-08-01 19:34:23 +02:00

57 lines
1.7 KiB
Plaintext

# Plasma Wave - Smooth flowing plasma colors
# Continuous color waves like plasma display
strip length 60
# Define plasma color palette with smooth transitions
palette plasma_colors = [
(0, 0xFF0080), # Magenta
(51, 0xFF8000), # Orange
(102, 0xFFFF00), # Yellow
(153, 0x80FF00), # Yellow-green
(204, 0x00FF80), # Cyan-green
(255, 0x0080FF) # Blue
]
# Base plasma animation with medium speed
animation plasma_base = rich_palette_animation(plasma_colors, 6s, smooth, 200)
# Add multiple wave layers for complexity
pattern wave1_pattern = rich_palette_color_provider(plasma_colors, 4s, smooth, 255)
animation plasma_wave1 = pulse_position_animation(
wave1_pattern, # color source
0, # initial position
20, # wide wave
10 # very smooth
)
plasma_wave1.priority = 10
plasma_wave1.pos = smooth(0, 40, 8s)
pattern wave2_pattern = rich_palette_color_provider(plasma_colors, 5s, smooth, 180)
animation plasma_wave2 = pulse_position_animation(
wave2_pattern, # color source
45, # initial position
15, # medium wave
8 # smooth
)
plasma_wave2.priority = 8
plasma_wave2.pos = smooth(45, 15, 10s) # Opposite direction
pattern wave3_pattern = rich_palette_color_provider(plasma_colors, 3s, smooth, 220)
animation plasma_wave3 = pulse_position_animation(
wave3_pattern, # color source
20, # initial position
12, # smaller wave
6 # smooth
)
plasma_wave3.priority = 12
plasma_wave3.pos = smooth(20, 50, 6s) # Different speed
# Add subtle intensity variation
plasma_base.opacity = smooth(150, 255, 12s)
# Start all animations
run plasma_base
run plasma_wave1
run plasma_wave2
run plasma_wave3