Tasmota/lib/libesp32/berry_animation/anim_examples/compiled/plasma_wave.be

165 lines
6.3 KiB
Plaintext

# Generated Berry code from Animation DSL
# Source: plasma_wave.anim
# Generated automatically
#
# This file was automatically generated by compile_all_examples.sh
# Do not edit manually - changes will be overwritten
# Original DSL source:
# # 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(palette=plasma_colors, cycle_period=6s, transition_type=SINE, brightness=200)
#
# # Add multiple wave layers for complexity
# color wave1_pattern = rich_palette(palette=plasma_colors, cycle_period=4s, transition_type=SINE, brightness=255)
# animation plasma_wave1 = beacon_animation(
# color=wave1_pattern, # color source
# pos=0, # initial position
# beacon_size=20, # wide wave
# slew_size=10 # very smooth
# )
# plasma_wave1.priority = 10
# plasma_wave1.pos = smooth(min_value=0, max_value=40, duration=8s)
#
# color wave2_pattern = rich_palette(palette=plasma_colors, cycle_period=5s, transition_type=SINE, brightness=180)
# animation plasma_wave2 = beacon_animation(
# color=wave2_pattern, # color source
# pos=45, # initial position
# beacon_size=15, # medium wave
# slew_size=8 # smooth
# )
# plasma_wave2.priority = 8
# plasma_wave2.pos = smooth(min_value=45, max_value=15, duration=10s) # Opposite direction
#
# color wave3_pattern = rich_palette(palette=plasma_colors, cycle_period=3s, transition_type=SINE, brightness=220)
# animation plasma_wave3 = beacon_animation(
# color=wave3_pattern, # color source
# pos=20, # initial position
# beacon_size=12, # smaller wave
# slew_size=6 # smooth
# )
# plasma_wave3.priority = 12
# plasma_wave3.pos = smooth(min_value=20, max_value=50, duration=6s) # Different speed
#
# # Add subtle intensity variation
# plasma_base.opacity = smooth(min_value=150, max_value=255, duration=12s)
#
# # Start all animations
# run plasma_base
# run plasma_wave1
# run plasma_wave2
# run plasma_wave3
import animation
# Plasma Wave - Smooth flowing plasma colors
# Continuous color waves like plasma display
#strip length 60
# Define plasma color palette with smooth transitions
# Auto-generated strip initialization (using Tasmota configuration)
var engine = animation.init_strip()
var plasma_colors_ = bytes("00FF0080" "33FF8000" "66FFFF00" "9980FF00" "CC00FF80" "FF0080FF")
# Base plasma animation with medium speed
var plasma_base_ = animation.rich_palette_animation(engine)
plasma_base_.palette = animation.global('plasma_colors_', 'plasma_colors')
plasma_base_.cycle_period = 6000
plasma_base_.transition_type = animation.global('SINE_', 'SINE')
plasma_base_.brightness = 200
# Add multiple wave layers for complexity
var wave1_pattern_ = animation.rich_palette(engine)
wave1_pattern_.palette = animation.global('plasma_colors_', 'plasma_colors')
wave1_pattern_.cycle_period = 4000
wave1_pattern_.transition_type = animation.global('SINE_', 'SINE')
wave1_pattern_.brightness = 255
var plasma_wave1_ = animation.beacon_animation(engine)
plasma_wave1_.color = animation.global('wave1_pattern_', 'wave1_pattern')
plasma_wave1_.pos = 0
plasma_wave1_.beacon_size = 20
plasma_wave1_.slew_size = 10 # very smooth
animation.global('plasma_wave1_').priority = 10
var temp_smooth_156 = animation.smooth(engine)
temp_smooth_156.min_value = 0
temp_smooth_156.max_value = 40
temp_smooth_156.duration = 8000
animation.global('plasma_wave1_').pos = temp_smooth_156
var wave2_pattern_ = animation.rich_palette(engine)
wave2_pattern_.palette = animation.global('plasma_colors_', 'plasma_colors')
wave2_pattern_.cycle_period = 5000
wave2_pattern_.transition_type = animation.global('SINE_', 'SINE')
wave2_pattern_.brightness = 180
var plasma_wave2_ = animation.beacon_animation(engine)
plasma_wave2_.color = animation.global('wave2_pattern_', 'wave2_pattern')
plasma_wave2_.pos = 45
plasma_wave2_.beacon_size = 15
plasma_wave2_.slew_size = 8 # smooth
animation.global('plasma_wave2_').priority = 8
var temp_smooth_235 = animation.smooth(engine)
temp_smooth_235.min_value = 45
temp_smooth_235.max_value = 15
temp_smooth_235.duration = 10000
animation.global('plasma_wave2_').pos = temp_smooth_235 # Opposite direction
var wave3_pattern_ = animation.rich_palette(engine)
wave3_pattern_.palette = animation.global('plasma_colors_', 'plasma_colors')
wave3_pattern_.cycle_period = 3000
wave3_pattern_.transition_type = animation.global('SINE_', 'SINE')
wave3_pattern_.brightness = 220
var plasma_wave3_ = animation.beacon_animation(engine)
plasma_wave3_.color = animation.global('wave3_pattern_', 'wave3_pattern')
plasma_wave3_.pos = 20
plasma_wave3_.beacon_size = 12
plasma_wave3_.slew_size = 6 # smooth
animation.global('plasma_wave3_').priority = 12
var temp_smooth_315 = animation.smooth(engine)
temp_smooth_315.min_value = 20
temp_smooth_315.max_value = 50
temp_smooth_315.duration = 6000
animation.global('plasma_wave3_').pos = temp_smooth_315 # Different speed
# Add subtle intensity variation
var temp_smooth_338 = animation.smooth(engine)
temp_smooth_338.min_value = 150
temp_smooth_338.max_value = 255
temp_smooth_338.duration = 12000
animation.global('plasma_base_').opacity = temp_smooth_338
# Start all animations
# Start all animations/sequences
if global.contains('sequence_plasma_base')
var seq_manager = global.sequence_plasma_base()
engine.add_sequence_manager(seq_manager)
else
engine.add_animation(animation.global('plasma_base_'))
end
if global.contains('sequence_plasma_wave1')
var seq_manager = global.sequence_plasma_wave1()
engine.add_sequence_manager(seq_manager)
else
engine.add_animation(animation.global('plasma_wave1_'))
end
if global.contains('sequence_plasma_wave2')
var seq_manager = global.sequence_plasma_wave2()
engine.add_sequence_manager(seq_manager)
else
engine.add_animation(animation.global('plasma_wave2_'))
end
if global.contains('sequence_plasma_wave3')
var seq_manager = global.sequence_plasma_wave3()
engine.add_sequence_manager(seq_manager)
else
engine.add_animation(animation.global('plasma_wave3_'))
end
engine.start()