Berry animation start renaming classes (#24295)
This commit is contained in:
parent
3503cee120
commit
219cdfd57a
@ -160,9 +160,9 @@ Animation|Description
|
||||
`beacon_animation`|Pulse/highlight at specific position with optional slew
|
||||
`crenel_animation`|Crenel/square wave pattern
|
||||
`comet_animation`|Moving comet with fading tail
|
||||
`twinkle_animation`|Twinkling stars effect
|
||||
`twinkle`|Twinkling stars effect
|
||||
`fire_animation`|Realistic fire simulation
|
||||
`rich_palette`|Smooth palette color transitions
|
||||
`rich_palette_color`|Smooth palette color transitions
|
||||
`gradient_animation`|Linear or radial color gradients
|
||||
`palette_gradient_animation`|Gradient patterns with palette colors
|
||||
`palette_meter_animation`|Meter/bar patterns
|
||||
|
||||
@ -21,7 +21,7 @@ palette breathe_palette = [
|
||||
]
|
||||
|
||||
# Create a rich palette color provider
|
||||
color palette_pattern = rich_palette(
|
||||
color palette_pattern = rich_palette_color(
|
||||
colors=breathe_palette # palette
|
||||
period=15s # cycle period (defaults: smooth transition, 255 brightness)
|
||||
)
|
||||
|
||||
@ -17,8 +17,8 @@ palette ornament_colors = [
|
||||
]
|
||||
|
||||
# Colorful ornaments as twinkling lights
|
||||
color ornament_pattern = rich_palette(colors=ornament_colors, period=3s, transition_type=LINEAR, brightness=255)
|
||||
animation ornaments = twinkle_animation(
|
||||
color ornament_pattern = rich_palette_color(colors=ornament_colors, period=3s, transition_type=LINEAR, brightness=255)
|
||||
animation ornaments = twinkle(
|
||||
color=ornament_pattern # color source
|
||||
density=15 # density (many ornaments)
|
||||
twinkle_speed=800ms # twinkle speed (slow twinkle)
|
||||
@ -36,7 +36,7 @@ tree_star.priority = 20
|
||||
tree_star.opacity = smooth(min_value=200, max_value=255, duration=2s) # Gentle pulsing
|
||||
|
||||
# Add some white sparkles for snow/magic
|
||||
animation snow_sparkles = twinkle_animation(
|
||||
animation snow_sparkles = twinkle(
|
||||
color=0xFFFFFF # White snow
|
||||
density=8 # density (sparkle count)
|
||||
twinkle_speed=400ms # twinkle speed (quick sparkles)
|
||||
@ -44,7 +44,7 @@ animation snow_sparkles = twinkle_animation(
|
||||
snow_sparkles.priority = 15
|
||||
|
||||
# Garland effect - moving colored lights
|
||||
color garland_pattern = rich_palette(colors=ornament_colors, period=2s, transition_type=LINEAR, brightness=200)
|
||||
color garland_pattern = rich_palette_color(colors=ornament_colors, period=2s, transition_type=LINEAR, brightness=200)
|
||||
animation garland = comet_animation(
|
||||
color=garland_pattern # color source
|
||||
tail_length=6 # garland length (tail length)
|
||||
|
||||
@ -25,7 +25,7 @@ animation comet_secondary = comet_animation(
|
||||
)
|
||||
|
||||
# Add sparkle trail behind comets but on top of blue background
|
||||
animation comet_sparkles = twinkle_animation(
|
||||
animation comet_sparkles = twinkle(
|
||||
color=0xAAAAFF # Light blue sparkles
|
||||
density=8 # density (moderate sparkles)
|
||||
twinkle_speed=400ms # twinkle speed (quick sparkle)
|
||||
|
||||
@ -28,7 +28,7 @@ var breathe_palette_ = bytes(
|
||||
"FF800080" # Purple
|
||||
)
|
||||
# Create a rich palette color provider
|
||||
var palette_pattern_ = animation.rich_palette(engine)
|
||||
var palette_pattern_ = animation.rich_palette_color(engine)
|
||||
palette_pattern_.colors = breathe_palette_ # palette
|
||||
palette_pattern_.period = 15000 # cycle period (defaults: smooth transition, 255 brightness)
|
||||
# Create breathing animation using the palette
|
||||
@ -74,7 +74,7 @@ palette breathe_palette = [
|
||||
]
|
||||
|
||||
# Create a rich palette color provider
|
||||
color palette_pattern = rich_palette(
|
||||
color palette_pattern = rich_palette_color(
|
||||
colors=breathe_palette # palette
|
||||
period=15s # cycle period (defaults: smooth transition, 255 brightness)
|
||||
)
|
||||
|
||||
@ -25,12 +25,12 @@ var ornament_colors_ = bytes(
|
||||
"FFFF00FF" # Magenta
|
||||
)
|
||||
# Colorful ornaments as twinkling lights
|
||||
var ornament_pattern_ = animation.rich_palette(engine)
|
||||
var ornament_pattern_ = animation.rich_palette_color(engine)
|
||||
ornament_pattern_.colors = ornament_colors_
|
||||
ornament_pattern_.period = 3000
|
||||
ornament_pattern_.transition_type = animation.LINEAR
|
||||
ornament_pattern_.brightness = 255
|
||||
var ornaments_ = animation.twinkle_animation(engine)
|
||||
var ornaments_ = animation.twinkle(engine)
|
||||
ornaments_.color = ornament_pattern_ # color source
|
||||
ornaments_.density = 15 # density (many ornaments)
|
||||
ornaments_.twinkle_speed = 800 # twinkle speed (slow twinkle)
|
||||
@ -50,13 +50,13 @@ tree_star_.opacity = (def (engine)
|
||||
return provider
|
||||
end)(engine) # Gentle pulsing
|
||||
# Add some white sparkles for snow/magic
|
||||
var snow_sparkles_ = animation.twinkle_animation(engine)
|
||||
var snow_sparkles_ = animation.twinkle(engine)
|
||||
snow_sparkles_.color = 0xFFFFFFFF # White snow
|
||||
snow_sparkles_.density = 8 # density (sparkle count)
|
||||
snow_sparkles_.twinkle_speed = 400 # twinkle speed (quick sparkles)
|
||||
snow_sparkles_.priority = 15
|
||||
# Garland effect - moving colored lights
|
||||
var garland_pattern_ = animation.rich_palette(engine)
|
||||
var garland_pattern_ = animation.rich_palette_color(engine)
|
||||
garland_pattern_.colors = ornament_colors_
|
||||
garland_pattern_.period = 2000
|
||||
garland_pattern_.transition_type = animation.LINEAR
|
||||
@ -95,8 +95,8 @@ palette ornament_colors = [
|
||||
]
|
||||
|
||||
# Colorful ornaments as twinkling lights
|
||||
color ornament_pattern = rich_palette(colors=ornament_colors, period=3s, transition_type=LINEAR, brightness=255)
|
||||
animation ornaments = twinkle_animation(
|
||||
color ornament_pattern = rich_palette_color(colors=ornament_colors, period=3s, transition_type=LINEAR, brightness=255)
|
||||
animation ornaments = twinkle(
|
||||
color=ornament_pattern # color source
|
||||
density=15 # density (many ornaments)
|
||||
twinkle_speed=800ms # twinkle speed (slow twinkle)
|
||||
@ -114,7 +114,7 @@ tree_star.priority = 20
|
||||
tree_star.opacity = smooth(min_value=200, max_value=255, duration=2s) # Gentle pulsing
|
||||
|
||||
# Add some white sparkles for snow/magic
|
||||
animation snow_sparkles = twinkle_animation(
|
||||
animation snow_sparkles = twinkle(
|
||||
color=0xFFFFFF # White snow
|
||||
density=8 # density (sparkle count)
|
||||
twinkle_speed=400ms # twinkle speed (quick sparkles)
|
||||
@ -122,7 +122,7 @@ animation snow_sparkles = twinkle_animation(
|
||||
snow_sparkles.priority = 15
|
||||
|
||||
# Garland effect - moving colored lights
|
||||
color garland_pattern = rich_palette(colors=ornament_colors, period=2s, transition_type=LINEAR, brightness=200)
|
||||
color garland_pattern = rich_palette_color(colors=ornament_colors, period=2s, transition_type=LINEAR, brightness=200)
|
||||
animation garland = comet_animation(
|
||||
color=garland_pattern # color source
|
||||
tail_length=6 # garland length (tail length)
|
||||
|
||||
@ -30,7 +30,7 @@ comet_secondary_.speed = 3000 # slower speed
|
||||
comet_secondary_.direction = (-1) # other direction
|
||||
comet_secondary_.priority = 5
|
||||
# Add sparkle trail behind comets but on top of blue background
|
||||
var comet_sparkles_ = animation.twinkle_animation(engine)
|
||||
var comet_sparkles_ = animation.twinkle(engine)
|
||||
comet_sparkles_.color = 0xFFAAAAFF # Light blue sparkles
|
||||
comet_sparkles_.density = 8 # density (moderate sparkles)
|
||||
comet_sparkles_.twinkle_speed = 400 # twinkle speed (quick sparkle)
|
||||
@ -71,7 +71,7 @@ animation comet_secondary = comet_animation(
|
||||
)
|
||||
|
||||
# Add sparkle trail behind comets but on top of blue background
|
||||
animation comet_sparkles = twinkle_animation(
|
||||
animation comet_sparkles = twinkle(
|
||||
color=0xAAAAFF # Light blue sparkles
|
||||
density=8 # density (moderate sparkles)
|
||||
twinkle_speed=400ms # twinkle speed (quick sparkle)
|
||||
|
||||
@ -10,19 +10,19 @@ This document contains a summary of the DSL compilation process, including symbo
|
||||
|
||||
## Symbol Table
|
||||
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|---------------------|----------------------------|---------|-----------|------------|
|
||||
| `breathe_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `breathe_blue` | color | | | |
|
||||
| `breathe_green` | color | | | |
|
||||
| `breathe_orange` | color | | | |
|
||||
| `breathe_palette` | palette | | | |
|
||||
| `breathe_purple` | color | | | |
|
||||
| `breathe_red` | color | | | |
|
||||
| `breathing` | animation | | | |
|
||||
| `palette_pattern` | color | | | |
|
||||
| `rich_palette` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|----------------------|----------------------------|---------|-----------|------------|
|
||||
| `breathe_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `breathe_blue` | color | | | |
|
||||
| `breathe_green` | color | | | |
|
||||
| `breathe_orange` | color | | | |
|
||||
| `breathe_palette` | palette | | | |
|
||||
| `breathe_purple` | color | | | |
|
||||
| `breathe_red` | color | | | |
|
||||
| `breathing` | animation | | | |
|
||||
| `palette_pattern` | color | | | |
|
||||
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
|
||||
### Compilation Output
|
||||
|
||||
@ -67,24 +67,24 @@ SUCCESS
|
||||
|
||||
## Symbol Table
|
||||
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|---------------------|----------------------------|---------|-----------|------------|
|
||||
| `LINEAR` | constant | ✓ | | |
|
||||
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `garland_pattern` | color | | | |
|
||||
| `garland` | animation | | | |
|
||||
| `ornament_colors` | palette | | | |
|
||||
| `ornament_pattern` | color | | | |
|
||||
| `ornaments` | animation | | | |
|
||||
| `rich_palette` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `snow_sparkles` | animation | | | |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `tree_base` | animation | | | |
|
||||
| `tree_green` | color | | | |
|
||||
| `tree_star` | animation | | | |
|
||||
| `twinkle_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|----------------------|----------------------------|---------|-----------|------------|
|
||||
| `LINEAR` | constant | ✓ | | |
|
||||
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `garland_pattern` | color | | | |
|
||||
| `garland` | animation | | | |
|
||||
| `ornament_colors` | palette | | | |
|
||||
| `ornament_pattern` | color | | | |
|
||||
| `ornaments` | animation | | | |
|
||||
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `snow_sparkles` | animation | | | |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `tree_base` | animation | | | |
|
||||
| `tree_green` | color | | | |
|
||||
| `tree_star` | animation | | | |
|
||||
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
|
||||
### Compilation Output
|
||||
|
||||
@ -98,16 +98,16 @@ SUCCESS
|
||||
|
||||
## Symbol Table
|
||||
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|---------------------|-----------------------|---------|-----------|------------|
|
||||
| `background` | animation | | | |
|
||||
| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `comet_main` | animation | | | |
|
||||
| `comet_secondary` | animation | | | |
|
||||
| `comet_sparkles` | animation | | | |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `space_blue` | color | | | |
|
||||
| `twinkle_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|-------------------|-----------------------|---------|-----------|------------|
|
||||
| `background` | animation | | | |
|
||||
| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `comet_main` | animation | | | |
|
||||
| `comet_secondary` | animation | | | |
|
||||
| `comet_sparkles` | animation | | | |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `space_blue` | color | | | |
|
||||
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
|
||||
### Compilation Output
|
||||
|
||||
@ -232,7 +232,7 @@ SUCCESS
|
||||
| `fire_colors` | palette | | | |
|
||||
| `fire_pattern` | animation | | | |
|
||||
| `palette_gradient_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `rich_palette` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `strip_len` | value_provider | | | |
|
||||
| `strip_length` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
@ -367,23 +367,23 @@ SUCCESS
|
||||
|
||||
## Symbol Table
|
||||
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|---------------------|----------------------------|---------|-----------|------------|
|
||||
| `LINEAR` | constant | ✓ | | |
|
||||
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `disco_base` | animation | | | |
|
||||
| `disco_colors` | palette | | | |
|
||||
| `disco_pulse` | animation | | | |
|
||||
| `disco_rich_color` | color | | | |
|
||||
| `disco_sparkles` | animation | | | |
|
||||
| `pulse_pattern` | color | | | |
|
||||
| `rich_palette` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `sawtooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `sparkle_pattern` | color | | | |
|
||||
| `square` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `twinkle_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `white_flash` | animation | | | |
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|----------------------|----------------------------|---------|-----------|------------|
|
||||
| `LINEAR` | constant | ✓ | | |
|
||||
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `disco_base` | animation | | | |
|
||||
| `disco_colors` | palette | | | |
|
||||
| `disco_pulse` | animation | | | |
|
||||
| `disco_rich_color` | color | | | |
|
||||
| `disco_sparkles` | animation | | | |
|
||||
| `pulse_pattern` | color | | | |
|
||||
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `sawtooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `sparkle_pattern` | color | | | |
|
||||
| `square` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `white_flash` | animation | | | |
|
||||
|
||||
### Compilation Output
|
||||
|
||||
@ -441,18 +441,18 @@ stack traceback:
|
||||
|
||||
## Symbol Table
|
||||
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|---------------------|----------------------------|---------|-----------|------------|
|
||||
| `LINEAR` | constant | ✓ | | |
|
||||
| `fire_base_color` | color | | | |
|
||||
| `fire_base` | animation | | | |
|
||||
| `fire_colors` | palette | | | |
|
||||
| `fire_flicker` | animation | | | |
|
||||
| `flicker_pattern` | color | | | |
|
||||
| `rich_palette` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `twinkle_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|----------------------|----------------------------|---------|-----------|------------|
|
||||
| `LINEAR` | constant | ✓ | | |
|
||||
| `fire_base_color` | color | | | |
|
||||
| `fire_base` | animation | | | |
|
||||
| `fire_colors` | palette | | | |
|
||||
| `fire_flicker` | animation | | | |
|
||||
| `flicker_pattern` | color | | | |
|
||||
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
|
||||
### Compilation Output
|
||||
|
||||
@ -533,10 +533,10 @@ SUCCESS
|
||||
| `lava_blob3` | animation | | | |
|
||||
| `lava_colors` | palette | | | |
|
||||
| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `rich_palette` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `shimmer_pattern` | color | | | |
|
||||
| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `twinkle_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
|
||||
### Compilation Output
|
||||
|
||||
@ -563,7 +563,7 @@ SUCCESS
|
||||
| `square` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `storm_bg` | animation | | | |
|
||||
| `storm_colors` | palette | | | |
|
||||
| `twinkle_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
|
||||
### Compilation Output
|
||||
|
||||
@ -577,23 +577,23 @@ SUCCESS
|
||||
|
||||
## Symbol Table
|
||||
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|---------------------|-----------------------|---------|-----------|------------|
|
||||
| `LINEAR` | constant | ✓ | | |
|
||||
| `background` | animation | | | |
|
||||
| `code_flash` | animation | | | |
|
||||
| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `matrix_bg` | color | | | |
|
||||
| `matrix_greens` | palette | | | |
|
||||
| `rich_palette` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `stream1_pattern` | color | | | |
|
||||
| `stream1` | animation | | | |
|
||||
| `stream2_pattern` | color | | | |
|
||||
| `stream2` | animation | | | |
|
||||
| `stream3_pattern` | color | | | |
|
||||
| `stream3` | animation | | | |
|
||||
| `twinkle_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|----------------------|-----------------------|---------|-----------|------------|
|
||||
| `LINEAR` | constant | ✓ | | |
|
||||
| `background` | animation | | | |
|
||||
| `code_flash` | animation | | | |
|
||||
| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `matrix_bg` | color | | | |
|
||||
| `matrix_greens` | palette | | | |
|
||||
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `stream1_pattern` | color | | | |
|
||||
| `stream1` | animation | | | |
|
||||
| `stream2_pattern` | color | | | |
|
||||
| `stream2` | animation | | | |
|
||||
| `stream3_pattern` | color | | | |
|
||||
| `stream3` | animation | | | |
|
||||
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
|
||||
### Compilation Output
|
||||
|
||||
@ -607,19 +607,19 @@ SUCCESS
|
||||
|
||||
## Symbol Table
|
||||
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|---------------------|-----------------------|---------|-----------|------------|
|
||||
| `background` | animation | | | |
|
||||
| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `meteor1` | animation | | | |
|
||||
| `meteor2` | animation | | | |
|
||||
| `meteor3` | animation | | | |
|
||||
| `meteor4` | animation | | | |
|
||||
| `meteor_flash` | animation | | | |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `space_bg` | color | | | |
|
||||
| `stars` | animation | | | |
|
||||
| `twinkle_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|-------------------|-----------------------|---------|-----------|------------|
|
||||
| `background` | animation | | | |
|
||||
| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `meteor1` | animation | | | |
|
||||
| `meteor2` | animation | | | |
|
||||
| `meteor3` | animation | | | |
|
||||
| `meteor4` | animation | | | |
|
||||
| `meteor_flash` | animation | | | |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `space_bg` | color | | | |
|
||||
| `stars` | animation | | | |
|
||||
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
|
||||
### Compilation Output
|
||||
|
||||
@ -642,7 +642,7 @@ SUCCESS
|
||||
| `neon_main` | animation | | | |
|
||||
| `neon_surge` | animation | | | |
|
||||
| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `rich_palette` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `segment1` | animation | | | |
|
||||
| `segment2` | animation | | | |
|
||||
| `segment3` | animation | | | |
|
||||
@ -650,7 +650,7 @@ SUCCESS
|
||||
| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `square` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `twinkle_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
|
||||
### Compilation Output
|
||||
|
||||
@ -672,9 +672,9 @@ SUCCESS
|
||||
| `ocean_base` | animation | | | |
|
||||
| `ocean_colors` | palette | | | |
|
||||
| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `rich_palette` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `sawtooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `twinkle_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `wave1_pattern` | color | | | |
|
||||
| `wave1` | animation | | | |
|
||||
| `wave2_pattern` | color | | | |
|
||||
@ -730,7 +730,7 @@ SUCCESS
|
||||
| `palette_showcase` | sequence | | | |
|
||||
| `purple` | color | ✓ | | |
|
||||
| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `rich_palette` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `sunset_glow` | animation | | | |
|
||||
| `sunset_sky` | palette | | | |
|
||||
@ -759,7 +759,7 @@ SUCCESS
|
||||
| `plasma_wave2` | animation | | | |
|
||||
| `plasma_wave3` | animation | | | |
|
||||
| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `rich_palette` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `wave1_pattern` | color | | | |
|
||||
| `wave2_pattern` | color | | | |
|
||||
@ -941,7 +941,7 @@ SUCCESS
|
||||
| `stars` | animation | | | |
|
||||
| `sun_glow` | animation | | | |
|
||||
| `sun_position` | animation | | | |
|
||||
| `twinkle_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
|
||||
### Compilation Output
|
||||
|
||||
@ -1167,14 +1167,14 @@ SUCCESS
|
||||
|
||||
## Symbol Table
|
||||
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|---------------------|-----------------------|---------|-----------|------------|
|
||||
| `background` | animation | | | |
|
||||
| `bright_flash` | animation | | | |
|
||||
| `night_sky` | color | | | |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `stars` | animation | | | |
|
||||
| `twinkle_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| Symbol | Type | Builtin | Dangerous | Takes Args |
|
||||
|----------------|-----------------------|---------|-----------|------------|
|
||||
| `background` | animation | | | |
|
||||
| `bright_flash` | animation | | | |
|
||||
| `night_sky` | color | | | |
|
||||
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
| `stars` | animation | | | |
|
||||
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
|
||||
|
||||
### Compilation Output
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ var fire_colors_ = bytes(
|
||||
"FFFFFF00" # Yellow
|
||||
)
|
||||
var strip_len_ = animation.strip_length(engine)
|
||||
var fire_color_ = animation.rich_palette(engine)
|
||||
var fire_color_ = animation.rich_palette_color(engine)
|
||||
fire_color_.colors = fire_colors_
|
||||
var background_ = animation.solid(engine)
|
||||
background_.color = 0xFF000088
|
||||
@ -58,7 +58,7 @@ palette fire_colors = [
|
||||
]
|
||||
|
||||
set strip_len = strip_length()
|
||||
color fire_color = rich_palette(colors=fire_colors)
|
||||
color fire_color = rich_palette_color(colors=fire_colors)
|
||||
|
||||
animation background = solid(color=0x000088, priority=20)
|
||||
run background
|
||||
|
||||
@ -23,7 +23,7 @@ var disco_colors_ = bytes(
|
||||
"FFFF00FF" # Magenta
|
||||
)
|
||||
# Fast color cycling base
|
||||
var disco_rich_color_ = animation.rich_palette(engine)
|
||||
var disco_rich_color_ = animation.rich_palette_color(engine)
|
||||
disco_rich_color_.colors = disco_colors_
|
||||
disco_rich_color_.period = 1000
|
||||
disco_rich_color_.transition_type = animation.LINEAR
|
||||
@ -52,18 +52,18 @@ white_flash_.opacity = (def (engine)
|
||||
end)(engine) # Quick white flashes
|
||||
white_flash_.priority = 20
|
||||
# Add colored sparkles
|
||||
var sparkle_pattern_ = animation.rich_palette(engine)
|
||||
var sparkle_pattern_ = animation.rich_palette_color(engine)
|
||||
sparkle_pattern_.colors = disco_colors_
|
||||
sparkle_pattern_.period = 500
|
||||
sparkle_pattern_.transition_type = animation.LINEAR
|
||||
sparkle_pattern_.brightness = 255
|
||||
var disco_sparkles_ = animation.twinkle_animation(engine)
|
||||
var disco_sparkles_ = animation.twinkle(engine)
|
||||
disco_sparkles_.color = sparkle_pattern_ # color source
|
||||
disco_sparkles_.density = 12 # density (many sparkles)
|
||||
disco_sparkles_.twinkle_speed = 80 # twinkle speed (very quick)
|
||||
disco_sparkles_.priority = 15
|
||||
# Add moving pulse for extra effect
|
||||
var pulse_pattern_ = animation.rich_palette(engine)
|
||||
var pulse_pattern_ = animation.rich_palette_color(engine)
|
||||
pulse_pattern_.colors = disco_colors_
|
||||
pulse_pattern_.period = 800
|
||||
pulse_pattern_.transition_type = animation.LINEAR
|
||||
@ -107,7 +107,7 @@ palette disco_colors = [
|
||||
]
|
||||
|
||||
# Fast color cycling base
|
||||
color disco_rich_color = rich_palette(colors=disco_colors, period=1s, transition_type=LINEAR, brightness=255)
|
||||
color disco_rich_color = rich_palette_color(colors=disco_colors, period=1s, transition_type=LINEAR, brightness=255)
|
||||
animation disco_base = solid(color=disco_rich_color)
|
||||
|
||||
# Add strobe effect
|
||||
@ -119,8 +119,8 @@ white_flash.opacity = square(min_value=0, max_value=255, duration=50ms, duty_cyc
|
||||
white_flash.priority = 20
|
||||
|
||||
# Add colored sparkles
|
||||
color sparkle_pattern = rich_palette(colors=disco_colors, period=500ms, transition_type=LINEAR, brightness=255)
|
||||
animation disco_sparkles = twinkle_animation(
|
||||
color sparkle_pattern = rich_palette_color(colors=disco_colors, period=500ms, transition_type=LINEAR, brightness=255)
|
||||
animation disco_sparkles = twinkle(
|
||||
color=sparkle_pattern # color source
|
||||
density=12 # density (many sparkles)
|
||||
twinkle_speed=80ms # twinkle speed (very quick)
|
||||
@ -128,7 +128,7 @@ animation disco_sparkles = twinkle_animation(
|
||||
disco_sparkles.priority = 15
|
||||
|
||||
# Add moving pulse for extra effect
|
||||
color pulse_pattern = rich_palette(colors=disco_colors, period=800ms, transition_type=LINEAR, brightness=255)
|
||||
color pulse_pattern = rich_palette_color(colors=disco_colors, period=800ms, transition_type=LINEAR, brightness=255)
|
||||
animation disco_pulse = beacon_animation(
|
||||
color=pulse_pattern # color source
|
||||
pos=4 # initial position
|
||||
|
||||
@ -21,7 +21,7 @@ var fire_colors_ = bytes(
|
||||
"FFFFFF00" # Yellow
|
||||
)
|
||||
# Create base fire animation with palette
|
||||
var fire_base_color_ = animation.rich_palette(engine)
|
||||
var fire_base_color_ = animation.rich_palette_color(engine)
|
||||
fire_base_color_.colors = fire_colors_
|
||||
fire_base_color_.period = 3000
|
||||
fire_base_color_.transition_type = animation.LINEAR
|
||||
@ -37,12 +37,12 @@ fire_base_.opacity = (def (engine)
|
||||
return provider
|
||||
end)(engine)
|
||||
# Add subtle position variation for more realism
|
||||
var flicker_pattern_ = animation.rich_palette(engine)
|
||||
var flicker_pattern_ = animation.rich_palette_color(engine)
|
||||
flicker_pattern_.colors = fire_colors_
|
||||
flicker_pattern_.period = 2000
|
||||
flicker_pattern_.transition_type = animation.LINEAR
|
||||
flicker_pattern_.brightness = 255
|
||||
var fire_flicker_ = animation.twinkle_animation(engine)
|
||||
var fire_flicker_ = animation.twinkle(engine)
|
||||
fire_flicker_.color = flicker_pattern_ # color source
|
||||
fire_flicker_.density = 12 # density (number of flickers)
|
||||
fire_flicker_.twinkle_speed = 200 # twinkle speed (flicker duration)
|
||||
@ -69,15 +69,15 @@ palette fire_colors = [
|
||||
]
|
||||
|
||||
# Create base fire animation with palette
|
||||
color fire_base_color = rich_palette(colors=fire_colors, period=3s, transition_type=LINEAR, brightness=255)
|
||||
color fire_base_color = rich_palette_color(colors=fire_colors, period=3s, transition_type=LINEAR, brightness=255)
|
||||
animation fire_base = solid(color=fire_base_color)
|
||||
|
||||
# Add flickering effect with random intensity changes
|
||||
fire_base.opacity = smooth(min_value=180, max_value=255, duration=800ms)
|
||||
|
||||
# Add subtle position variation for more realism
|
||||
color flicker_pattern = rich_palette(colors=fire_colors, period=2s, transition_type=LINEAR, brightness=255)
|
||||
animation fire_flicker = twinkle_animation(
|
||||
color flicker_pattern = rich_palette_color(colors=fire_colors, period=2s, transition_type=LINEAR, brightness=255)
|
||||
animation fire_flicker = twinkle(
|
||||
color=flicker_pattern # color source
|
||||
density=12 # density (number of flickers)
|
||||
twinkle_speed=200ms # twinkle speed (flicker duration)
|
||||
|
||||
@ -27,7 +27,7 @@ lava_base_.period = 15000
|
||||
lava_base_.transition_type = animation.SINE
|
||||
lava_base_.brightness = 180
|
||||
# Add slow-moving lava blobs
|
||||
var blob1_pattern_ = animation.rich_palette(engine)
|
||||
var blob1_pattern_ = animation.rich_palette_color(engine)
|
||||
blob1_pattern_.colors = lava_colors_
|
||||
blob1_pattern_.period = 12000
|
||||
blob1_pattern_.transition_type = animation.SINE
|
||||
@ -45,7 +45,7 @@ lava_blob1_.pos = (def (engine)
|
||||
provider.duration = 20000
|
||||
return provider
|
||||
end)(engine) # Very slow movement
|
||||
var blob2_pattern_ = animation.rich_palette(engine)
|
||||
var blob2_pattern_ = animation.rich_palette_color(engine)
|
||||
blob2_pattern_.colors = lava_colors_
|
||||
blob2_pattern_.period = 10000
|
||||
blob2_pattern_.transition_type = animation.SINE
|
||||
@ -63,7 +63,7 @@ lava_blob2_.pos = (def (engine)
|
||||
provider.duration = 25000
|
||||
return provider
|
||||
end)(engine) # Opposite direction, slower
|
||||
var blob3_pattern_ = animation.rich_palette(engine)
|
||||
var blob3_pattern_ = animation.rich_palette_color(engine)
|
||||
blob3_pattern_.colors = lava_colors_
|
||||
blob3_pattern_.period = 8000
|
||||
blob3_pattern_.transition_type = animation.SINE
|
||||
@ -82,12 +82,12 @@ lava_blob3_.pos = (def (engine)
|
||||
return provider
|
||||
end)(engine) # Small movement range
|
||||
# Add subtle heat shimmer effect
|
||||
var shimmer_pattern_ = animation.rich_palette(engine)
|
||||
var shimmer_pattern_ = animation.rich_palette_color(engine)
|
||||
shimmer_pattern_.colors = lava_colors_
|
||||
shimmer_pattern_.period = 6000
|
||||
shimmer_pattern_.transition_type = animation.SINE
|
||||
shimmer_pattern_.brightness = 255
|
||||
var heat_shimmer_ = animation.twinkle_animation(engine)
|
||||
var heat_shimmer_ = animation.twinkle(engine)
|
||||
heat_shimmer_.color = shimmer_pattern_ # color source
|
||||
heat_shimmer_.density = 6 # density (shimmer points)
|
||||
heat_shimmer_.twinkle_speed = 1500 # twinkle speed (slow shimmer)
|
||||
@ -120,7 +120,7 @@ palette lava_colors = [
|
||||
animation lava_base = rich_palette_animation(colors=lava_colors, period=15s, transition_type=SINE, brightness=180)
|
||||
|
||||
# Add slow-moving lava blobs
|
||||
color blob1_pattern = rich_palette(colors=lava_colors, period=12s, transition_type=SINE, brightness=255)
|
||||
color blob1_pattern = rich_palette_color(colors=lava_colors, period=12s, transition_type=SINE, brightness=255)
|
||||
animation lava_blob1 = beacon_animation(
|
||||
color=blob1_pattern # color source
|
||||
pos=9 # initial position
|
||||
@ -130,7 +130,7 @@ animation lava_blob1 = beacon_animation(
|
||||
lava_blob1.priority = 10
|
||||
lava_blob1.pos = smooth(min_value=9, max_value=51, duration=20s) # Very slow movement
|
||||
|
||||
color blob2_pattern = rich_palette(colors=lava_colors, period=10s, transition_type=SINE, brightness=220)
|
||||
color blob2_pattern = rich_palette_color(colors=lava_colors, period=10s, transition_type=SINE, brightness=220)
|
||||
animation lava_blob2 = beacon_animation(
|
||||
color=blob2_pattern # color source
|
||||
pos=46 # initial position
|
||||
@ -140,7 +140,7 @@ animation lava_blob2 = beacon_animation(
|
||||
lava_blob2.priority = 8
|
||||
lava_blob2.pos = smooth(min_value=46, max_value=14, duration=25s) # Opposite direction, slower
|
||||
|
||||
color blob3_pattern = rich_palette(colors=lava_colors, period=8s, transition_type=SINE, brightness=200)
|
||||
color blob3_pattern = rich_palette_color(colors=lava_colors, period=8s, transition_type=SINE, brightness=200)
|
||||
animation lava_blob3 = beacon_animation(
|
||||
color=blob3_pattern # color source
|
||||
pos=25 # initial position
|
||||
@ -151,8 +151,8 @@ lava_blob3.priority = 6
|
||||
lava_blob3.pos = smooth(min_value=25, max_value=35, duration=18s) # Small movement range
|
||||
|
||||
# Add subtle heat shimmer effect
|
||||
color shimmer_pattern = rich_palette(colors=lava_colors, period=6s, transition_type=SINE, brightness=255)
|
||||
animation heat_shimmer = twinkle_animation(
|
||||
color shimmer_pattern = rich_palette_color(colors=lava_colors, period=6s, transition_type=SINE, brightness=255)
|
||||
animation heat_shimmer = twinkle(
|
||||
color=shimmer_pattern # color source
|
||||
density=6 # density (shimmer points)
|
||||
twinkle_speed=1.5s # twinkle speed (slow shimmer)
|
||||
|
||||
@ -65,7 +65,7 @@ afterglow_.opacity = (def (engine)
|
||||
end)(engine) # Longer, dimmer glow
|
||||
afterglow_.priority = 10
|
||||
# Distant thunder (dim flashes)
|
||||
var distant_flash_ = animation.twinkle_animation(engine)
|
||||
var distant_flash_ = animation.twinkle(engine)
|
||||
distant_flash_.color = 0xFF666699 # Dim blue-white
|
||||
distant_flash_.density = 4 # density (few flashes)
|
||||
distant_flash_.twinkle_speed = 300 # twinkle speed (medium duration)
|
||||
@ -115,7 +115,7 @@ afterglow.opacity = square(min_value=0, max_value=80, duration=200ms, duty_cycle
|
||||
afterglow.priority = 10
|
||||
|
||||
# Distant thunder (dim flashes)
|
||||
animation distant_flash = twinkle_animation(
|
||||
animation distant_flash = twinkle(
|
||||
color=0x666699 # Dim blue-white
|
||||
density=4 # density (few flashes)
|
||||
twinkle_speed=300ms # twinkle speed (medium duration)
|
||||
|
||||
@ -26,7 +26,7 @@ var matrix_greens_ = bytes(
|
||||
"FF00FF00" # Neon green
|
||||
)
|
||||
# Create multiple cascading streams
|
||||
var stream1_pattern_ = animation.rich_palette(engine)
|
||||
var stream1_pattern_ = animation.rich_palette_color(engine)
|
||||
stream1_pattern_.colors = matrix_greens_
|
||||
stream1_pattern_.period = 2000
|
||||
stream1_pattern_.transition_type = animation.LINEAR
|
||||
@ -36,7 +36,7 @@ stream1_.color = stream1_pattern_ # color source
|
||||
stream1_.tail_length = 15 # long tail
|
||||
stream1_.speed = 1500 # speed
|
||||
stream1_.priority = 10
|
||||
var stream2_pattern_ = animation.rich_palette(engine)
|
||||
var stream2_pattern_ = animation.rich_palette_color(engine)
|
||||
stream2_pattern_.colors = matrix_greens_
|
||||
stream2_pattern_.period = 1800
|
||||
stream2_pattern_.transition_type = animation.LINEAR
|
||||
@ -46,7 +46,7 @@ stream2_.color = stream2_pattern_ # color source
|
||||
stream2_.tail_length = 12 # medium tail
|
||||
stream2_.speed = 2200 # different speed
|
||||
stream2_.priority = 8
|
||||
var stream3_pattern_ = animation.rich_palette(engine)
|
||||
var stream3_pattern_ = animation.rich_palette_color(engine)
|
||||
stream3_pattern_.colors = matrix_greens_
|
||||
stream3_pattern_.period = 2500
|
||||
stream3_pattern_.transition_type = animation.LINEAR
|
||||
@ -57,7 +57,7 @@ stream3_.tail_length = 10 # shorter tail
|
||||
stream3_.speed = 1800 # another speed
|
||||
stream3_.priority = 6
|
||||
# Add random bright flashes (like code highlights)
|
||||
var code_flash_ = animation.twinkle_animation(engine)
|
||||
var code_flash_ = animation.twinkle(engine)
|
||||
code_flash_.color = 0xFF00FFAA # Bright cyan-green
|
||||
code_flash_.density = 3 # density (few flashes)
|
||||
code_flash_.twinkle_speed = 150 # twinkle speed (quick flash)
|
||||
@ -91,7 +91,7 @@ palette matrix_greens = [
|
||||
]
|
||||
|
||||
# Create multiple cascading streams
|
||||
color stream1_pattern = rich_palette(colors=matrix_greens, period=2s, transition_type=LINEAR, brightness=255)
|
||||
color stream1_pattern = rich_palette_color(colors=matrix_greens, period=2s, transition_type=LINEAR, brightness=255)
|
||||
animation stream1 = comet_animation(
|
||||
color=stream1_pattern # color source
|
||||
tail_length=15 # long tail
|
||||
@ -100,7 +100,7 @@ animation stream1 = comet_animation(
|
||||
)
|
||||
|
||||
|
||||
color stream2_pattern = rich_palette(colors=matrix_greens, period=1.8s, transition_type=LINEAR, brightness=200)
|
||||
color stream2_pattern = rich_palette_color(colors=matrix_greens, period=1.8s, transition_type=LINEAR, brightness=200)
|
||||
animation stream2 = comet_animation(
|
||||
color=stream2_pattern # color source
|
||||
tail_length=12 # medium tail
|
||||
@ -108,7 +108,7 @@ animation stream2 = comet_animation(
|
||||
priority = 8
|
||||
)
|
||||
|
||||
color stream3_pattern = rich_palette(colors=matrix_greens, period=2.5s, transition_type=LINEAR, brightness=180)
|
||||
color stream3_pattern = rich_palette_color(colors=matrix_greens, period=2.5s, transition_type=LINEAR, brightness=180)
|
||||
animation stream3 = comet_animation(
|
||||
color=stream3_pattern # color source
|
||||
tail_length=10 # shorter tail
|
||||
@ -117,7 +117,7 @@ animation stream3 = comet_animation(
|
||||
)
|
||||
|
||||
# Add random bright flashes (like code highlights)
|
||||
animation code_flash = twinkle_animation(
|
||||
animation code_flash = twinkle(
|
||||
color=0x00FFAA # Bright cyan-green
|
||||
density=3 # density (few flashes)
|
||||
twinkle_speed=150ms # twinkle speed (quick flash)
|
||||
|
||||
@ -38,13 +38,13 @@ meteor4_.tail_length = 14 # long trail
|
||||
meteor4_.speed = 2500 # slower speed
|
||||
meteor4_.priority = 8
|
||||
# Add distant stars
|
||||
var stars_ = animation.twinkle_animation(engine)
|
||||
var stars_ = animation.twinkle(engine)
|
||||
stars_.color = 0xFFCCCCCC # Dim white
|
||||
stars_.density = 12 # density (many stars)
|
||||
stars_.twinkle_speed = 2000 # twinkle speed (slow twinkle)
|
||||
stars_.priority = 5
|
||||
# Add occasional bright flash (meteor explosion)
|
||||
var meteor_flash_ = animation.twinkle_animation(engine)
|
||||
var meteor_flash_ = animation.twinkle(engine)
|
||||
meteor_flash_.color = 0xFFFFFFFF # Bright white
|
||||
meteor_flash_.density = 1 # density (single flash)
|
||||
meteor_flash_.twinkle_speed = 100 # twinkle speed (very quick)
|
||||
@ -100,7 +100,7 @@ animation meteor4 = comet_animation(
|
||||
meteor4.priority = 8
|
||||
|
||||
# Add distant stars
|
||||
animation stars = twinkle_animation(
|
||||
animation stars = twinkle(
|
||||
color=0xCCCCCC # Dim white
|
||||
density=12 # density (many stars)
|
||||
twinkle_speed=2s # twinkle speed (slow twinkle)
|
||||
@ -108,7 +108,7 @@ animation stars = twinkle_animation(
|
||||
stars.priority = 5
|
||||
|
||||
# Add occasional bright flash (meteor explosion)
|
||||
animation meteor_flash = twinkle_animation(
|
||||
animation meteor_flash = twinkle(
|
||||
color=0xFFFFFF # Bright white
|
||||
density=1 # density (single flash)
|
||||
twinkle_speed=100ms # twinkle speed (very quick)
|
||||
|
||||
@ -47,7 +47,7 @@ neon_surge_.opacity = (def (engine)
|
||||
end)(engine) # Quick bright surges
|
||||
neon_surge_.priority = 20
|
||||
# Add neon tube segments with gaps
|
||||
var segment_pattern_ = animation.rich_palette(engine)
|
||||
var segment_pattern_ = animation.rich_palette_color(engine)
|
||||
segment_pattern_.colors = neon_colors_
|
||||
segment_pattern_.period = 4000
|
||||
segment_pattern_.transition_type = animation.LINEAR
|
||||
@ -71,7 +71,7 @@ segment3_.beacon_size = 12 # segment length
|
||||
segment3_.slew_size = 1 # sharp edges
|
||||
segment3_.priority = 10
|
||||
# Add electrical arcing between segments
|
||||
var arc_sparkles_ = animation.twinkle_animation(engine)
|
||||
var arc_sparkles_ = animation.twinkle(engine)
|
||||
arc_sparkles_.color = 0xFFAAAAFF # Electric blue
|
||||
arc_sparkles_.density = 4 # density (few arcs)
|
||||
arc_sparkles_.twinkle_speed = 100 # twinkle speed (quick arcs)
|
||||
@ -112,7 +112,7 @@ neon_surge.opacity = square(min_value=0, max_value=255, duration=50ms, duty_cycl
|
||||
neon_surge.priority = 20
|
||||
|
||||
# Add neon tube segments with gaps
|
||||
color segment_pattern = rich_palette(colors=neon_colors, period=4s, transition_type=LINEAR, brightness=255)
|
||||
color segment_pattern = rich_palette_color(colors=neon_colors, period=4s, transition_type=LINEAR, brightness=255)
|
||||
animation segment1 = beacon_animation(
|
||||
color=segment_pattern # color source
|
||||
pos=6 # position
|
||||
@ -138,7 +138,7 @@ animation segment3 = beacon_animation(
|
||||
segment3.priority = 10
|
||||
|
||||
# Add electrical arcing between segments
|
||||
animation arc_sparkles = twinkle_animation(
|
||||
animation arc_sparkles = twinkle(
|
||||
color=0xAAAAFF # Electric blue
|
||||
density=4 # density (few arcs)
|
||||
twinkle_speed=100ms # twinkle speed (quick arcs)
|
||||
|
||||
@ -27,7 +27,7 @@ ocean_base_.period = 8000
|
||||
ocean_base_.transition_type = animation.SINE
|
||||
ocean_base_.brightness = 200
|
||||
# Add wave motion with moving pulses
|
||||
var wave1_pattern_ = animation.rich_palette(engine)
|
||||
var wave1_pattern_ = animation.rich_palette_color(engine)
|
||||
wave1_pattern_.colors = ocean_colors_
|
||||
wave1_pattern_.period = 6000
|
||||
wave1_pattern_.transition_type = animation.SINE
|
||||
@ -45,7 +45,7 @@ wave1_.pos = (def (engine)
|
||||
provider.duration = 5000
|
||||
return provider
|
||||
end)(engine) # 60-12 = 48
|
||||
var wave2_pattern_ = animation.rich_palette(engine)
|
||||
var wave2_pattern_ = animation.rich_palette_color(engine)
|
||||
wave2_pattern_.colors = ocean_colors_
|
||||
wave2_pattern_.period = 4000
|
||||
wave2_pattern_.transition_type = animation.SINE
|
||||
@ -64,7 +64,7 @@ wave2_.pos = (def (engine)
|
||||
return provider
|
||||
end)(engine) # Opposite direction
|
||||
# Add foam sparkles
|
||||
var foam_ = animation.twinkle_animation(engine)
|
||||
var foam_ = animation.twinkle(engine)
|
||||
foam_.color = 0xFFFFFFFF # White foam
|
||||
foam_.density = 6 # density (sparkle count)
|
||||
foam_.twinkle_speed = 300 # twinkle speed (quick sparkles)
|
||||
@ -96,7 +96,7 @@ palette ocean_colors = [
|
||||
animation ocean_base = rich_palette_animation(colors=ocean_colors, period=8s, transition_type=SINE, brightness=200)
|
||||
|
||||
# Add wave motion with moving pulses
|
||||
color wave1_pattern = rich_palette(colors=ocean_colors, period=6s, transition_type=SINE, brightness=255)
|
||||
color wave1_pattern = rich_palette_color(colors=ocean_colors, period=6s, transition_type=SINE, brightness=255)
|
||||
animation wave1 = beacon_animation(
|
||||
color=wave1_pattern # color source
|
||||
pos=0 # initial position
|
||||
@ -106,7 +106,7 @@ animation wave1 = beacon_animation(
|
||||
wave1.priority = 10
|
||||
wave1.pos = sawtooth(min_value=0, max_value=48, duration=5s) # 60-12 = 48
|
||||
|
||||
color wave2_pattern = rich_palette(colors=ocean_colors, period=4s, transition_type=SINE, brightness=180)
|
||||
color wave2_pattern = rich_palette_color(colors=ocean_colors, period=4s, transition_type=SINE, brightness=180)
|
||||
animation wave2 = beacon_animation(
|
||||
color=wave2_pattern # color source
|
||||
pos=52 # initial position
|
||||
@ -117,7 +117,7 @@ wave2.priority = 8
|
||||
wave2.pos = sawtooth(min_value=52, max_value=8, duration=7s) # Opposite direction
|
||||
|
||||
# Add foam sparkles
|
||||
animation foam = twinkle_animation(
|
||||
animation foam = twinkle(
|
||||
color=0xFFFFFF # White foam
|
||||
density=6 # density (sparkle count)
|
||||
twinkle_speed=300ms # twinkle speed (quick sparkles)
|
||||
|
||||
@ -51,7 +51,7 @@ var sunset_sky_ = bytes(
|
||||
# Create animations using each palette
|
||||
var fire_effect_ = animation.solid(engine)
|
||||
fire_effect_.color = (def (engine)
|
||||
var provider = animation.rich_palette(engine)
|
||||
var provider = animation.rich_palette_color(engine)
|
||||
provider.colors = fire_gradient_
|
||||
provider.period = 3000
|
||||
return provider
|
||||
@ -143,7 +143,7 @@ palette sunset_sky = [
|
||||
]
|
||||
|
||||
# Create animations using each palette
|
||||
animation fire_effect = solid(color=rich_palette(colors=fire_gradient, period=3s))
|
||||
animation fire_effect = solid(color=rich_palette_color(colors=fire_gradient, period=3s))
|
||||
|
||||
animation ocean_waves = rich_palette_animation(colors=ocean_depths, period=8s, transition_type=SINE, brightness=200)
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@ plasma_base_.period = 6000
|
||||
plasma_base_.transition_type = animation.SINE
|
||||
plasma_base_.brightness = 200
|
||||
# Add multiple wave layers for complexity
|
||||
var wave1_pattern_ = animation.rich_palette(engine)
|
||||
var wave1_pattern_ = animation.rich_palette_color(engine)
|
||||
wave1_pattern_.colors = plasma_colors_
|
||||
wave1_pattern_.period = 4000
|
||||
wave1_pattern_.transition_type = animation.SINE
|
||||
@ -46,7 +46,7 @@ plasma_wave1_.pos = (def (engine)
|
||||
provider.duration = 8000
|
||||
return provider
|
||||
end)(engine)
|
||||
var wave2_pattern_ = animation.rich_palette(engine)
|
||||
var wave2_pattern_ = animation.rich_palette_color(engine)
|
||||
wave2_pattern_.colors = plasma_colors_
|
||||
wave2_pattern_.period = 5000
|
||||
wave2_pattern_.transition_type = animation.SINE
|
||||
@ -64,7 +64,7 @@ plasma_wave2_.pos = (def (engine)
|
||||
provider.duration = 10000
|
||||
return provider
|
||||
end)(engine) # Opposite direction
|
||||
var wave3_pattern_ = animation.rich_palette(engine)
|
||||
var wave3_pattern_ = animation.rich_palette_color(engine)
|
||||
wave3_pattern_.colors = plasma_colors_
|
||||
wave3_pattern_.period = 3000
|
||||
wave3_pattern_.transition_type = animation.SINE
|
||||
@ -118,7 +118,7 @@ palette plasma_colors = [
|
||||
animation plasma_base = rich_palette_animation(colors=plasma_colors, period=6s, transition_type=SINE, brightness=200)
|
||||
|
||||
# Add multiple wave layers for complexity
|
||||
color wave1_pattern = rich_palette(colors=plasma_colors, period=4s, transition_type=SINE, brightness=255)
|
||||
color wave1_pattern = rich_palette_color(colors=plasma_colors, period=4s, transition_type=SINE, brightness=255)
|
||||
animation plasma_wave1 = beacon_animation(
|
||||
color=wave1_pattern # color source
|
||||
pos=0 # initial position
|
||||
@ -128,7 +128,7 @@ animation plasma_wave1 = beacon_animation(
|
||||
plasma_wave1.priority = 10
|
||||
plasma_wave1.pos = smooth(min_value=0, max_value=40, duration=8s)
|
||||
|
||||
color wave2_pattern = rich_palette(colors=plasma_colors, period=5s, transition_type=SINE, brightness=180)
|
||||
color wave2_pattern = rich_palette_color(colors=plasma_colors, period=5s, transition_type=SINE, brightness=180)
|
||||
animation plasma_wave2 = beacon_animation(
|
||||
color=wave2_pattern # color source
|
||||
pos=45 # initial position
|
||||
@ -138,7 +138,7 @@ animation plasma_wave2 = beacon_animation(
|
||||
plasma_wave2.priority = 8
|
||||
plasma_wave2.pos = smooth(min_value=45, max_value=15, duration=10s) # Opposite direction
|
||||
|
||||
color wave3_pattern = rich_palette(colors=plasma_colors, period=3s, transition_type=SINE, brightness=220)
|
||||
color wave3_pattern = rich_palette_color(colors=plasma_colors, period=3s, transition_type=SINE, brightness=220)
|
||||
animation plasma_wave3 = beacon_animation(
|
||||
color=wave3_pattern # color source
|
||||
pos=20 # initial position
|
||||
|
||||
@ -71,7 +71,7 @@ sun_glow_.opacity = (def (engine)
|
||||
return provider
|
||||
end)(engine) # Dimmer glow
|
||||
# Add twinkling stars during night phases
|
||||
var stars_ = animation.twinkle_animation(engine)
|
||||
var stars_ = animation.twinkle(engine)
|
||||
stars_.color = 0xFFFFFFFF # White stars
|
||||
stars_.density = 6 # density (star count)
|
||||
stars_.twinkle_speed = 1000 # twinkle speed (slow twinkle)
|
||||
@ -136,7 +136,7 @@ sun_glow.pos = smooth(min_value=5, max_value=55, duration=30s) # Follow sun
|
||||
sun_glow.opacity = smooth(min_value=0, max_value=150, duration=30s) # Dimmer glow
|
||||
|
||||
# Add twinkling stars during night phases
|
||||
animation stars = twinkle_animation(
|
||||
animation stars = twinkle(
|
||||
color=0xFFFFFF # White stars
|
||||
density=6 # density (star count)
|
||||
twinkle_speed=1s # twinkle speed (slow twinkle)
|
||||
|
||||
@ -17,13 +17,13 @@ var night_sky_ = 0xFF000033
|
||||
var background_ = animation.solid(engine)
|
||||
background_.color = night_sky_
|
||||
# White twinkling stars
|
||||
var stars_ = animation.twinkle_animation(engine)
|
||||
var stars_ = animation.twinkle(engine)
|
||||
stars_.color = 0xFFFFFFFF # White stars
|
||||
stars_.density = 8 # density (number of stars)
|
||||
stars_.twinkle_speed = 500 # twinkle speed (twinkle duration)
|
||||
stars_.priority = 10
|
||||
# Add occasional bright flash
|
||||
var bright_flash_ = animation.twinkle_animation(engine)
|
||||
var bright_flash_ = animation.twinkle(engine)
|
||||
bright_flash_.color = 0xFFFFFFAA # Bright yellow-white
|
||||
bright_flash_.density = 2 # density (fewer bright flashes)
|
||||
bright_flash_.twinkle_speed = 300 # twinkle speed (quick flash)
|
||||
@ -46,7 +46,7 @@ color night_sky = 0x000033
|
||||
animation background = solid(color=night_sky)
|
||||
|
||||
# White twinkling stars
|
||||
animation stars = twinkle_animation(
|
||||
animation stars = twinkle(
|
||||
color=0xFFFFFF # White stars
|
||||
density=8 # density (number of stars)
|
||||
twinkle_speed=500ms # twinkle speed (twinkle duration)
|
||||
@ -54,7 +54,7 @@ animation stars = twinkle_animation(
|
||||
stars.priority = 10
|
||||
|
||||
# Add occasional bright flash
|
||||
animation bright_flash = twinkle_animation(
|
||||
animation bright_flash = twinkle(
|
||||
color=0xFFFFAA # Bright yellow-white
|
||||
density=2 # density (fewer bright flashes)
|
||||
twinkle_speed=300ms # twinkle speed (quick flash)
|
||||
|
||||
@ -9,7 +9,7 @@ palette fire_colors = [
|
||||
]
|
||||
|
||||
set strip_len = strip_length()
|
||||
color fire_color = rich_palette(colors=fire_colors)
|
||||
color fire_color = rich_palette_color(colors=fire_colors)
|
||||
|
||||
animation background = solid(color=0x000088, priority=20)
|
||||
run background
|
||||
|
||||
@ -15,7 +15,7 @@ palette disco_colors = [
|
||||
]
|
||||
|
||||
# Fast color cycling base
|
||||
color disco_rich_color = rich_palette(colors=disco_colors, period=1s, transition_type=LINEAR, brightness=255)
|
||||
color disco_rich_color = rich_palette_color(colors=disco_colors, period=1s, transition_type=LINEAR, brightness=255)
|
||||
animation disco_base = solid(color=disco_rich_color)
|
||||
|
||||
# Add strobe effect
|
||||
@ -27,8 +27,8 @@ white_flash.opacity = square(min_value=0, max_value=255, duration=50ms, duty_cyc
|
||||
white_flash.priority = 20
|
||||
|
||||
# Add colored sparkles
|
||||
color sparkle_pattern = rich_palette(colors=disco_colors, period=500ms, transition_type=LINEAR, brightness=255)
|
||||
animation disco_sparkles = twinkle_animation(
|
||||
color sparkle_pattern = rich_palette_color(colors=disco_colors, period=500ms, transition_type=LINEAR, brightness=255)
|
||||
animation disco_sparkles = twinkle(
|
||||
color=sparkle_pattern # color source
|
||||
density=12 # density (many sparkles)
|
||||
twinkle_speed=80ms # twinkle speed (very quick)
|
||||
@ -36,7 +36,7 @@ animation disco_sparkles = twinkle_animation(
|
||||
disco_sparkles.priority = 15
|
||||
|
||||
# Add moving pulse for extra effect
|
||||
color pulse_pattern = rich_palette(colors=disco_colors, period=800ms, transition_type=LINEAR, brightness=255)
|
||||
color pulse_pattern = rich_palette_color(colors=disco_colors, period=800ms, transition_type=LINEAR, brightness=255)
|
||||
animation disco_pulse = beacon_animation(
|
||||
color=pulse_pattern # color source
|
||||
pos=4 # initial position
|
||||
|
||||
@ -13,15 +13,15 @@ palette fire_colors = [
|
||||
]
|
||||
|
||||
# Create base fire animation with palette
|
||||
color fire_base_color = rich_palette(colors=fire_colors, period=3s, transition_type=LINEAR, brightness=255)
|
||||
color fire_base_color = rich_palette_color(colors=fire_colors, period=3s, transition_type=LINEAR, brightness=255)
|
||||
animation fire_base = solid(color=fire_base_color)
|
||||
|
||||
# Add flickering effect with random intensity changes
|
||||
fire_base.opacity = smooth(min_value=180, max_value=255, duration=800ms)
|
||||
|
||||
# Add subtle position variation for more realism
|
||||
color flicker_pattern = rich_palette(colors=fire_colors, period=2s, transition_type=LINEAR, brightness=255)
|
||||
animation fire_flicker = twinkle_animation(
|
||||
color flicker_pattern = rich_palette_color(colors=fire_colors, period=2s, transition_type=LINEAR, brightness=255)
|
||||
animation fire_flicker = twinkle(
|
||||
color=flicker_pattern # color source
|
||||
density=12 # density (number of flickers)
|
||||
twinkle_speed=200ms # twinkle speed (flicker duration)
|
||||
|
||||
@ -16,7 +16,7 @@ palette lava_colors = [
|
||||
animation lava_base = rich_palette_animation(colors=lava_colors, period=15s, transition_type=SINE, brightness=180)
|
||||
|
||||
# Add slow-moving lava blobs
|
||||
color blob1_pattern = rich_palette(colors=lava_colors, period=12s, transition_type=SINE, brightness=255)
|
||||
color blob1_pattern = rich_palette_color(colors=lava_colors, period=12s, transition_type=SINE, brightness=255)
|
||||
animation lava_blob1 = beacon_animation(
|
||||
color=blob1_pattern # color source
|
||||
pos=9 # initial position
|
||||
@ -26,7 +26,7 @@ animation lava_blob1 = beacon_animation(
|
||||
lava_blob1.priority = 10
|
||||
lava_blob1.pos = smooth(min_value=9, max_value=51, duration=20s) # Very slow movement
|
||||
|
||||
color blob2_pattern = rich_palette(colors=lava_colors, period=10s, transition_type=SINE, brightness=220)
|
||||
color blob2_pattern = rich_palette_color(colors=lava_colors, period=10s, transition_type=SINE, brightness=220)
|
||||
animation lava_blob2 = beacon_animation(
|
||||
color=blob2_pattern # color source
|
||||
pos=46 # initial position
|
||||
@ -36,7 +36,7 @@ animation lava_blob2 = beacon_animation(
|
||||
lava_blob2.priority = 8
|
||||
lava_blob2.pos = smooth(min_value=46, max_value=14, duration=25s) # Opposite direction, slower
|
||||
|
||||
color blob3_pattern = rich_palette(colors=lava_colors, period=8s, transition_type=SINE, brightness=200)
|
||||
color blob3_pattern = rich_palette_color(colors=lava_colors, period=8s, transition_type=SINE, brightness=200)
|
||||
animation lava_blob3 = beacon_animation(
|
||||
color=blob3_pattern # color source
|
||||
pos=25 # initial position
|
||||
@ -47,8 +47,8 @@ lava_blob3.priority = 6
|
||||
lava_blob3.pos = smooth(min_value=25, max_value=35, duration=18s) # Small movement range
|
||||
|
||||
# Add subtle heat shimmer effect
|
||||
color shimmer_pattern = rich_palette(colors=lava_colors, period=6s, transition_type=SINE, brightness=255)
|
||||
animation heat_shimmer = twinkle_animation(
|
||||
color shimmer_pattern = rich_palette_color(colors=lava_colors, period=6s, transition_type=SINE, brightness=255)
|
||||
animation heat_shimmer = twinkle(
|
||||
color=shimmer_pattern # color source
|
||||
density=6 # density (shimmer points)
|
||||
twinkle_speed=1.5s # twinkle speed (slow shimmer)
|
||||
|
||||
@ -33,7 +33,7 @@ afterglow.opacity = square(min_value=0, max_value=80, duration=200ms, duty_cycle
|
||||
afterglow.priority = 10
|
||||
|
||||
# Distant thunder (dim flashes)
|
||||
animation distant_flash = twinkle_animation(
|
||||
animation distant_flash = twinkle(
|
||||
color=0x666699 # Dim blue-white
|
||||
density=4 # density (few flashes)
|
||||
twinkle_speed=300ms # twinkle speed (medium duration)
|
||||
|
||||
@ -17,7 +17,7 @@ palette matrix_greens = [
|
||||
]
|
||||
|
||||
# Create multiple cascading streams
|
||||
color stream1_pattern = rich_palette(colors=matrix_greens, period=2s, transition_type=LINEAR, brightness=255)
|
||||
color stream1_pattern = rich_palette_color(colors=matrix_greens, period=2s, transition_type=LINEAR, brightness=255)
|
||||
animation stream1 = comet_animation(
|
||||
color=stream1_pattern # color source
|
||||
tail_length=15 # long tail
|
||||
@ -26,7 +26,7 @@ animation stream1 = comet_animation(
|
||||
)
|
||||
|
||||
|
||||
color stream2_pattern = rich_palette(colors=matrix_greens, period=1.8s, transition_type=LINEAR, brightness=200)
|
||||
color stream2_pattern = rich_palette_color(colors=matrix_greens, period=1.8s, transition_type=LINEAR, brightness=200)
|
||||
animation stream2 = comet_animation(
|
||||
color=stream2_pattern # color source
|
||||
tail_length=12 # medium tail
|
||||
@ -34,7 +34,7 @@ animation stream2 = comet_animation(
|
||||
priority = 8
|
||||
)
|
||||
|
||||
color stream3_pattern = rich_palette(colors=matrix_greens, period=2.5s, transition_type=LINEAR, brightness=180)
|
||||
color stream3_pattern = rich_palette_color(colors=matrix_greens, period=2.5s, transition_type=LINEAR, brightness=180)
|
||||
animation stream3 = comet_animation(
|
||||
color=stream3_pattern # color source
|
||||
tail_length=10 # shorter tail
|
||||
@ -43,7 +43,7 @@ animation stream3 = comet_animation(
|
||||
)
|
||||
|
||||
# Add random bright flashes (like code highlights)
|
||||
animation code_flash = twinkle_animation(
|
||||
animation code_flash = twinkle(
|
||||
color=0x00FFAA # Bright cyan-green
|
||||
density=3 # density (few flashes)
|
||||
twinkle_speed=150ms # twinkle speed (quick flash)
|
||||
|
||||
@ -37,7 +37,7 @@ animation meteor4 = comet_animation(
|
||||
meteor4.priority = 8
|
||||
|
||||
# Add distant stars
|
||||
animation stars = twinkle_animation(
|
||||
animation stars = twinkle(
|
||||
color=0xCCCCCC # Dim white
|
||||
density=12 # density (many stars)
|
||||
twinkle_speed=2s # twinkle speed (slow twinkle)
|
||||
@ -45,7 +45,7 @@ animation stars = twinkle_animation(
|
||||
stars.priority = 5
|
||||
|
||||
# Add occasional bright flash (meteor explosion)
|
||||
animation meteor_flash = twinkle_animation(
|
||||
animation meteor_flash = twinkle(
|
||||
color=0xFFFFFF # Bright white
|
||||
density=1 # density (single flash)
|
||||
twinkle_speed=100ms # twinkle speed (very quick)
|
||||
|
||||
@ -23,7 +23,7 @@ neon_surge.opacity = square(min_value=0, max_value=255, duration=50ms, duty_cycl
|
||||
neon_surge.priority = 20
|
||||
|
||||
# Add neon tube segments with gaps
|
||||
color segment_pattern = rich_palette(colors=neon_colors, period=4s, transition_type=LINEAR, brightness=255)
|
||||
color segment_pattern = rich_palette_color(colors=neon_colors, period=4s, transition_type=LINEAR, brightness=255)
|
||||
animation segment1 = beacon_animation(
|
||||
color=segment_pattern # color source
|
||||
pos=6 # position
|
||||
@ -49,7 +49,7 @@ animation segment3 = beacon_animation(
|
||||
segment3.priority = 10
|
||||
|
||||
# Add electrical arcing between segments
|
||||
animation arc_sparkles = twinkle_animation(
|
||||
animation arc_sparkles = twinkle(
|
||||
color=0xAAAAFF # Electric blue
|
||||
density=4 # density (few arcs)
|
||||
twinkle_speed=100ms # twinkle speed (quick arcs)
|
||||
|
||||
@ -16,7 +16,7 @@ palette ocean_colors = [
|
||||
animation ocean_base = rich_palette_animation(colors=ocean_colors, period=8s, transition_type=SINE, brightness=200)
|
||||
|
||||
# Add wave motion with moving pulses
|
||||
color wave1_pattern = rich_palette(colors=ocean_colors, period=6s, transition_type=SINE, brightness=255)
|
||||
color wave1_pattern = rich_palette_color(colors=ocean_colors, period=6s, transition_type=SINE, brightness=255)
|
||||
animation wave1 = beacon_animation(
|
||||
color=wave1_pattern # color source
|
||||
pos=0 # initial position
|
||||
@ -26,7 +26,7 @@ animation wave1 = beacon_animation(
|
||||
wave1.priority = 10
|
||||
wave1.pos = sawtooth(min_value=0, max_value=48, duration=5s) # 60-12 = 48
|
||||
|
||||
color wave2_pattern = rich_palette(colors=ocean_colors, period=4s, transition_type=SINE, brightness=180)
|
||||
color wave2_pattern = rich_palette_color(colors=ocean_colors, period=4s, transition_type=SINE, brightness=180)
|
||||
animation wave2 = beacon_animation(
|
||||
color=wave2_pattern # color source
|
||||
pos=52 # initial position
|
||||
@ -37,7 +37,7 @@ wave2.priority = 8
|
||||
wave2.pos = sawtooth(min_value=52, max_value=8, duration=7s) # Opposite direction
|
||||
|
||||
# Add foam sparkles
|
||||
animation foam = twinkle_animation(
|
||||
animation foam = twinkle(
|
||||
color=0xFFFFFF # White foam
|
||||
density=6 # density (sparkle count)
|
||||
twinkle_speed=300ms # twinkle speed (quick sparkles)
|
||||
|
||||
@ -44,7 +44,7 @@ palette sunset_sky = [
|
||||
]
|
||||
|
||||
# Create animations using each palette
|
||||
animation fire_effect = solid(color=rich_palette(colors=fire_gradient, period=3s))
|
||||
animation fire_effect = solid(color=rich_palette_color(colors=fire_gradient, period=3s))
|
||||
|
||||
animation ocean_waves = rich_palette_animation(colors=ocean_depths, period=8s, transition_type=SINE, brightness=200)
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ palette plasma_colors = [
|
||||
animation plasma_base = rich_palette_animation(colors=plasma_colors, period=6s, transition_type=SINE, brightness=200)
|
||||
|
||||
# Add multiple wave layers for complexity
|
||||
color wave1_pattern = rich_palette(colors=plasma_colors, period=4s, transition_type=SINE, brightness=255)
|
||||
color wave1_pattern = rich_palette_color(colors=plasma_colors, period=4s, transition_type=SINE, brightness=255)
|
||||
animation plasma_wave1 = beacon_animation(
|
||||
color=wave1_pattern # color source
|
||||
pos=0 # initial position
|
||||
@ -27,7 +27,7 @@ animation plasma_wave1 = beacon_animation(
|
||||
plasma_wave1.priority = 10
|
||||
plasma_wave1.pos = smooth(min_value=0, max_value=40, duration=8s)
|
||||
|
||||
color wave2_pattern = rich_palette(colors=plasma_colors, period=5s, transition_type=SINE, brightness=180)
|
||||
color wave2_pattern = rich_palette_color(colors=plasma_colors, period=5s, transition_type=SINE, brightness=180)
|
||||
animation plasma_wave2 = beacon_animation(
|
||||
color=wave2_pattern # color source
|
||||
pos=45 # initial position
|
||||
@ -37,7 +37,7 @@ animation plasma_wave2 = beacon_animation(
|
||||
plasma_wave2.priority = 8
|
||||
plasma_wave2.pos = smooth(min_value=45, max_value=15, duration=10s) # Opposite direction
|
||||
|
||||
color wave3_pattern = rich_palette(colors=plasma_colors, period=3s, transition_type=SINE, brightness=220)
|
||||
color wave3_pattern = rich_palette_color(colors=plasma_colors, period=3s, transition_type=SINE, brightness=220)
|
||||
animation plasma_wave3 = beacon_animation(
|
||||
color=wave3_pattern # color source
|
||||
pos=20 # initial position
|
||||
|
||||
@ -42,7 +42,7 @@ sun_glow.pos = smooth(min_value=5, max_value=55, duration=30s) # Follow sun
|
||||
sun_glow.opacity = smooth(min_value=0, max_value=150, duration=30s) # Dimmer glow
|
||||
|
||||
# Add twinkling stars during night phases
|
||||
animation stars = twinkle_animation(
|
||||
animation stars = twinkle(
|
||||
color=0xFFFFFF # White stars
|
||||
density=6 # density (star count)
|
||||
twinkle_speed=1s # twinkle speed (slow twinkle)
|
||||
|
||||
@ -8,7 +8,7 @@ color night_sky = 0x000033
|
||||
animation background = solid(color=night_sky)
|
||||
|
||||
# White twinkling stars
|
||||
animation stars = twinkle_animation(
|
||||
animation stars = twinkle(
|
||||
color=0xFFFFFF # White stars
|
||||
density=8 # density (number of stars)
|
||||
twinkle_speed=500ms # twinkle speed (twinkle duration)
|
||||
@ -16,7 +16,7 @@ animation stars = twinkle_animation(
|
||||
stars.priority = 10
|
||||
|
||||
# Add occasional bright flash
|
||||
animation bright_flash = twinkle_animation(
|
||||
animation bright_flash = twinkle(
|
||||
color=0xFFFFAA # Bright yellow-white
|
||||
density=2 # density (fewer bright flashes)
|
||||
twinkle_speed=300ms # twinkle speed (quick flash)
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# @desc Twinkle stars - using predefined animations
|
||||
|
||||
animation stars = twinkle_animation()
|
||||
animation stars = twinkle()
|
||||
run stars
|
||||
@ -1,7 +1,7 @@
|
||||
# @desc Twinkle stars with parameters - using animation parameters
|
||||
|
||||
# Note: when parameters are in separate lines, you don't need a comma ','
|
||||
animation stars = twinkle_animation(
|
||||
animation stars = twinkle(
|
||||
color=0xFFFFAA # Light yellow sparkles
|
||||
density=8 # density (moderate sparkles)
|
||||
twinkle_speed=100ms # twinkle speed
|
||||
|
||||
@ -6,7 +6,7 @@ animation background = solid(color=space_blue)
|
||||
run background
|
||||
|
||||
# Note: when parameters are in separate lines, you don't need a comma ','
|
||||
animation stars = twinkle_animation(
|
||||
animation stars = twinkle(
|
||||
color=0xFFFFAA # Light yellow sparkles
|
||||
density=8 # density (moderate sparkles)
|
||||
twinkle_speed=100ms # twinkle speed
|
||||
|
||||
@ -15,7 +15,7 @@ palette rainbow_with_white = [
|
||||
]
|
||||
|
||||
# Define a color attribute that cycles over time, cycle is 10 seconds
|
||||
color rainbow_color_rollover = rich_palette(period=10s)
|
||||
color rainbow_color_rollover = rich_palette_color(period=10s)
|
||||
|
||||
# Use the dynamic color in a simple 'solid' animation
|
||||
animation back = solid(color=rainbow_color_rollover)
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
# Define a smooth palette using PALETTE_RAINBOW_W (7 colors + white)
|
||||
# 'period = 0' means that the colors don't change in time, only spatial change
|
||||
color rainbow_rich_color = rich_palette(colors=PALETTE_RAINBOW_W, period=0)
|
||||
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
|
||||
|
||||
# Define a gradient across the whole strip
|
||||
animation back_pattern = palette_gradient_animation(color_source = rainbow_rich_color)
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
# Define a smooth palette using PALETTE_RAINBOW_W (7 colors + white)
|
||||
# 'period = 0' means that the colors don't change in time, only spatial change
|
||||
color rainbow_rich_color = rich_palette(colors=PALETTE_RAINBOW_W, period=0)
|
||||
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
|
||||
|
||||
# Because strip_length is dynamic, we need to map it to a variable and can't use the function directly in formulas
|
||||
set strip_len = strip_length()
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
# Define a smooth palette using PALETTE_RAINBOW_W (7 colors + white)
|
||||
# 'period = 0' means that the colors don't change in time, only spatial change
|
||||
color rainbow_rich_color = rich_palette(colors=PALETTE_RAINBOW_W, period=0)
|
||||
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
|
||||
|
||||
# Because strip_length is dynamic, we need to map it to a variable and can't use the function directly in formulas
|
||||
set strip_len = strip_length()
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
# Define a smooth palette using PALETTE_RAINBOW_W (7 colors + white)
|
||||
# 'period = 0' means that the colors don't change in time, only spatial change
|
||||
color rainbow_rich_color = rich_palette(colors=PALETTE_RAINBOW_W, period=0)
|
||||
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
|
||||
|
||||
# define a gradient across the whole strip
|
||||
animation back = palette_gradient_animation(color_source = rainbow_rich_color, shift_period = 5s)
|
||||
|
||||
@ -13,7 +13,7 @@ palette vue_meter_palette = [
|
||||
]
|
||||
|
||||
# Define a color palette pattern for 'vue_meter_palette'
|
||||
color rainbow_rich_color = rich_palette(colors=vue_meter_palette, period=0, transition_type=LINEAR)
|
||||
color rainbow_rich_color = rich_palette_color(colors=vue_meter_palette, period=0, transition_type=LINEAR)
|
||||
|
||||
# Define a sawtooth value from 0% to 100%
|
||||
set level = sawtooth(min_value = 0%, max_value=100%, duration = 2s)
|
||||
|
||||
@ -24,7 +24,7 @@ palette vue_meter_palette = [
|
||||
]
|
||||
|
||||
# Define a color palette pattern for 'vue_meter_palette'
|
||||
color rainbow_rich_color = rich_palette(colors=vue_meter_palette, period=0, transition_type=LINEAR)
|
||||
color rainbow_rich_color = rich_palette_color(colors=vue_meter_palette, period=0, transition_type=LINEAR)
|
||||
|
||||
# Define a vue-meter based on all elements above
|
||||
animation back = palette_meter_animation(color_source = rainbow_rich_color, level = rand_meter())
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
# Because strip_length is dynamic, we need to map it to a variable and can't use the function directly in formulas
|
||||
set strip_len = strip_length()
|
||||
|
||||
animation stars = twinkle_animation(
|
||||
animation stars = twinkle(
|
||||
color=0xFFFFAA # Light yellow sparkles
|
||||
density=2 # density (moderate sparkles)
|
||||
twinkle_speed=100ms # twinkle speed
|
||||
@ -16,7 +16,7 @@ run stars
|
||||
|
||||
# We can combine a dynamic 'pos' value with a dynamic 'color'
|
||||
animation back = beacon_animation(
|
||||
color = rich_palette(colors=PALETTE_RAINBOW_W2, period=5s)
|
||||
color = rich_palette_color(colors=PALETTE_RAINBOW_W2, period=5s)
|
||||
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 5s)
|
||||
beacon_size = 3 # small 3 pixels eye
|
||||
slew_size = 2 # with 2 pixel shading around
|
||||
|
||||
@ -7,8 +7,8 @@ set strip_len = strip_length()
|
||||
|
||||
# Define a pattern that goes from red to blue to red across the strip
|
||||
palette red_blue_red_palette = [ red, 0x3333FF, red ]
|
||||
# Embed this raw palette into a rich_palette color provider
|
||||
color red_blue_red_color = rich_palette(colors=red_blue_red_palette)
|
||||
# Embed this raw palette into a rich_palette_color color provider
|
||||
color red_blue_red_color = rich_palette_color(colors=red_blue_red_palette)
|
||||
|
||||
# Define a moving beacon to be used as an opacity mask
|
||||
animation moving_eye = beacon_animation(
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# @desc Crenel static with variable color
|
||||
|
||||
# Define a color attribute that cycles over time, cycle is 5 seconds
|
||||
color rainbow_color = rich_palette(colors=PALETTE_RAINBOW_W2, period=5s)
|
||||
color rainbow_color = rich_palette_color(colors=PALETTE_RAINBOW_W2, period=5s)
|
||||
|
||||
# Define a simple crenel 2+2
|
||||
animation back = crenel_animation(
|
||||
|
||||
@ -13,7 +13,7 @@ animation mask = crenel_animation(
|
||||
)
|
||||
|
||||
# Define a smooth palette using PALETTE_RAINBOW_W (7 colors + white)
|
||||
color rainbow_rich_color = rich_palette(colors=PALETTE_RAINBOW_W, period=0)
|
||||
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
|
||||
# Define a gradient across the whole strip and use crenel as opacity mask
|
||||
animation pattern = palette_gradient_animation(
|
||||
color_source = rainbow_rich_color # use the rainow pattern
|
||||
|
||||
@ -29,7 +29,7 @@ ParameterizedObject (base class with parameter management and playable interface
|
||||
│ │ └── GradientMeterAnimation (VU meter with gradient colors and peak hold)
|
||||
│ ├── CometAnimation (moving comet with tail)
|
||||
│ ├── FireAnimation (realistic fire effect)
|
||||
│ ├── TwinkleAnimation (twinkling stars effect)
|
||||
│ ├── twinkle (twinkling stars effect)
|
||||
│ ├── WaveAnimation (wave motion effects)
|
||||
│ └── RichPaletteAnimation (smooth palette transitions)
|
||||
├── SequenceManager (orchestrates animation sequences)
|
||||
@ -42,7 +42,7 @@ ParameterizedObject (base class with parameter management and playable interface
|
||||
└── ColorProvider (dynamic color generation)
|
||||
├── StaticColorProvider (solid color)
|
||||
├── ColorCycleColorProvider (cycles through palette)
|
||||
├── RichPaletteColorProvider (smooth palette transitions)
|
||||
├── rich_palette_color (smooth palette transitions)
|
||||
├── BreatheColorProvider (breathing color effect)
|
||||
└── CompositeColorProvider (blends multiple colors)
|
||||
```
|
||||
@ -418,7 +418,7 @@ color mixed_cycle = color_cycle(
|
||||
)
|
||||
```
|
||||
|
||||
### RichPaletteColorProvider
|
||||
### rich_palette_color
|
||||
|
||||
Generates colors from predefined palettes with smooth transitions and professional color schemes. Inherits from `ColorProvider`.
|
||||
|
||||
@ -441,7 +441,7 @@ Generates colors from predefined palettes with smooth transitions and profession
|
||||
|
||||
```berry
|
||||
# Rainbow palette with smooth ease-in/ease-out transitions
|
||||
color rainbow_colors = rich_palette(
|
||||
color rainbow_colors = rich_palette_color(
|
||||
colors=PALETTE_RAINBOW,
|
||||
period=5s,
|
||||
transition_type=SINE,
|
||||
@ -449,7 +449,7 @@ color rainbow_colors = rich_palette(
|
||||
)
|
||||
|
||||
# Fire effect with linear (constant speed) transitions
|
||||
color fire_colors = rich_palette(
|
||||
color fire_colors = rich_palette_color(
|
||||
colors=PALETTE_FIRE,
|
||||
period=3s,
|
||||
transition_type=LINEAR,
|
||||
@ -634,13 +634,13 @@ filled gradient area
|
||||
|
||||
```berry
|
||||
# Simple meter with rainbow gradient
|
||||
color rainbow = rich_palette()
|
||||
color rainbow = rich_palette_color()
|
||||
animation meter = gradient_meter_animation()
|
||||
meter.color_source = rainbow
|
||||
meter.level = 128
|
||||
|
||||
# Meter with peak hold (1 second)
|
||||
color fire_colors = rich_palette(colors=PALETTE_FIRE)
|
||||
color fire_colors = rich_palette_color(colors=PALETTE_FIRE)
|
||||
animation vu_meter = gradient_meter_animation(peak_hold=1000)
|
||||
vu_meter.color_source = fire_colors
|
||||
|
||||
@ -966,12 +966,12 @@ Creates smooth color transitions using rich palette data with direct parameter a
|
||||
|
||||
**Special Features**:
|
||||
- Direct parameter access (set `anim.colors` instead of `anim.color.colors`)
|
||||
- Parameters are automatically forwarded to internal `RichPaletteColorProvider`
|
||||
- Parameters are automatically forwarded to internal `rich_palette_color`
|
||||
- Access to specialized methods via `anim.color_provider.method_name()`
|
||||
|
||||
**Factory**: `animation.rich_palette_animation(engine)`
|
||||
|
||||
### TwinkleAnimation
|
||||
### twinkle
|
||||
|
||||
Creates a twinkling stars effect with random lights appearing and fading. Inherits from `Animation`.
|
||||
|
||||
@ -985,7 +985,7 @@ Creates a twinkling stars effect with random lights appearing and fading. Inheri
|
||||
| `max_brightness` | int | 255 | 0-255 | Maximum twinkle brightness |
|
||||
| *(inherits all Animation parameters)* | | | | |
|
||||
|
||||
**Factories**: `animation.twinkle_animation(engine)`, `animation.twinkle_classic(engine)`, `animation.twinkle_solid(engine)`, `animation.twinkle_rainbow(engine)`, `animation.twinkle_gentle(engine)`, `animation.twinkle_intense(engine)`
|
||||
**Factories**: `animation.twinkle(engine)`
|
||||
|
||||
### WaveAnimation
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ Before diving into code, let's understand the building blocks:
|
||||
|
||||
| Concept | What It Does | Example |
|
||||
|---------|--------------|---------|
|
||||
| **Animation** | A visual effect on the LED strip | `solid`, `twinkle_animation`, `beacon_animation` |
|
||||
| **Animation** | A visual effect on the LED strip | `solid`, `twinkle`, `beacon_animation` |
|
||||
| **Color** | Either a static value or a dynamic provider that changes over time | `red`, `0xFF0000`, `color_cycle(...)` |
|
||||
| **Palette** | A collection of colors for gradients or cycling | `PALETTE_RAINBOW`, custom arrays |
|
||||
| **Value Provider** | A number that changes over time (oscillates) | `sine_osc`, `triangle`, `sawtooth` |
|
||||
@ -112,12 +112,12 @@ The DSL also provides `transparent` as a predefined color, equivalent to `0x0000
|
||||
|
||||
<a href="https://tasmota.github.io/docs/Tasmota-Berry-emulator/index.html?example=chap_1_30_twinkle" target="_blank"><img src="../../_media/berry_animation/chap_1_30.png" alt="Twinkle Stars"></a>
|
||||
|
||||
Beyond `solid`, the DSL includes many ready-to-use animation types. Each creates a different visual effect. Let's try `twinkle_animation`, which creates a twinkling stars effect.
|
||||
Beyond `solid`, the DSL includes many ready-to-use animation types. Each creates a different visual effect. Let's try `twinkle`, which creates a twinkling stars effect.
|
||||
|
||||
```berry
|
||||
# Twinkle stars - using predefined animations
|
||||
|
||||
animation stars = twinkle_animation()
|
||||
animation stars = twinkle()
|
||||
run stars
|
||||
```
|
||||
|
||||
@ -133,7 +133,7 @@ Most animations accept **parameters** to customize their behavior. Parameters us
|
||||
# Twinkle stars with parameters - using animation parameters
|
||||
|
||||
# Note: when parameters are in separate lines, you don't need a comma ','
|
||||
animation stars = twinkle_animation(
|
||||
animation stars = twinkle(
|
||||
color=0xFFFFAA # Light yellow sparkles
|
||||
density=8 # density (moderate sparkles)
|
||||
twinkle_speed=100ms # twinkle speed
|
||||
@ -166,7 +166,7 @@ animation background = solid(color=space_blue)
|
||||
run background
|
||||
|
||||
# Twinkle stars on top
|
||||
animation stars = twinkle_animation(
|
||||
animation stars = twinkle(
|
||||
color=0xFFFFAA # Light yellow sparkles
|
||||
density=8 # density (moderate sparkles)
|
||||
twinkle_speed=100ms # twinkle speed
|
||||
@ -259,7 +259,7 @@ The `palette` keyword creates a named color collection. Colors are listed in ord
|
||||
|
||||
## Chapter 3: Smooth Color Transitions
|
||||
|
||||
Chapter 2 showed `color_cycle`, which steps discretely between colors. This chapter introduces `rich_palette`, which creates **smooth, interpolated transitions** - the color gradually morphs from one to the next.
|
||||
Chapter 2 showed `color_cycle`, which steps discretely between colors. This chapter introduces `rich_palette_color`, which creates **smooth, interpolated transitions** - the color gradually morphs from one to the next.
|
||||
|
||||
### 3.1 Rich Palette Animation
|
||||
|
||||
@ -283,7 +283,7 @@ With no parameters, it uses sensible defaults. The `transition_type=SINE` create
|
||||
|
||||
<a href="https://tasmota.github.io/docs/Tasmota-Berry-emulator/index.html?example=chap_3_20_color_transition_palette" target="_blank"><img src="../../_media/berry_animation/chap_3_20.png" alt="Rich Palette Custom"></a>
|
||||
|
||||
For more control, use `rich_palette` as a **color provider** (not an animation). This lets you use smooth color transitions with any animation type.
|
||||
For more control, use `rich_palette_color` as a **color provider** (not an animation). This lets you use smooth color transitions with any animation type.
|
||||
|
||||
```berry
|
||||
# Smooth cycling through rainbow colors with custom palette
|
||||
@ -301,7 +301,7 @@ palette rainbow_with_white = [
|
||||
]
|
||||
|
||||
# Define a color that cycles over time with smooth transitions
|
||||
color rainbow_color_rollover = rich_palette(period=10s)
|
||||
color rainbow_color_rollover = rich_palette_color(period=10s)
|
||||
|
||||
# Use the dynamic color in a solid animation
|
||||
animation back = solid(color=rainbow_color_rollover)
|
||||
@ -333,7 +333,7 @@ A gradient maps colors to positions along the strip. The `palette_gradient_anima
|
||||
# Rainbow pattern across the strip
|
||||
|
||||
# Define a palette with period=0 (no time-based change, only spatial)
|
||||
color rainbow_rich_color = rich_palette(colors=PALETTE_RAINBOW_W, period=0)
|
||||
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
|
||||
|
||||
# Create a gradient across the whole strip
|
||||
animation back_pattern = palette_gradient_animation(color_source = rainbow_rich_color)
|
||||
@ -351,7 +351,7 @@ By default, the gradient spans the entire strip once. Use `spatial_period` to co
|
||||
```berry
|
||||
# Rainbow gradient with 2 repetitions across the strip
|
||||
|
||||
color rainbow_rich_color = rich_palette(colors=PALETTE_RAINBOW_W, period=0)
|
||||
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
|
||||
|
||||
# Get the strip length as a variable
|
||||
set strip_len = strip_length()
|
||||
@ -378,7 +378,7 @@ Here's where things get interesting: you can make **any parameter dynamic** by u
|
||||
```berry
|
||||
# Rainbow gradient with oscillating spatial period
|
||||
|
||||
color rainbow_rich_color = rich_palette(colors=PALETTE_RAINBOW_W, period=0)
|
||||
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
|
||||
|
||||
set strip_len = strip_length()
|
||||
|
||||
@ -411,7 +411,7 @@ Make the gradient rotate along the strip:
|
||||
```berry
|
||||
# Rainbow gradient rotating along the strip over 5 seconds
|
||||
|
||||
color rainbow_rich_color = rich_palette(colors=PALETTE_RAINBOW_W, period=0)
|
||||
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
|
||||
|
||||
animation back = palette_gradient_animation(
|
||||
color_source = rainbow_rich_color
|
||||
@ -443,7 +443,7 @@ palette vue_meter_palette = [
|
||||
(255, 0xFF0000) # Red at 100%
|
||||
]
|
||||
|
||||
color rainbow_rich_color = rich_palette(colors=vue_meter_palette, period=0, transition_type=LINEAR)
|
||||
color rainbow_rich_color = rich_palette_color(colors=vue_meter_palette, period=0, transition_type=LINEAR)
|
||||
|
||||
# Sawtooth value from 0% to 100%
|
||||
set level = sawtooth(min_value = 0%, max_value=100%, duration = 2s)
|
||||
@ -495,7 +495,7 @@ palette vue_meter_palette = [
|
||||
(255, 0xFF0000)
|
||||
]
|
||||
|
||||
color rainbow_rich_color = rich_palette(colors=vue_meter_palette, period=0, transition_type=LINEAR)
|
||||
color rainbow_rich_color = rich_palette_color(colors=vue_meter_palette, period=0, transition_type=LINEAR)
|
||||
|
||||
# Step 3: Use the custom function as a parameter
|
||||
# Call it with () - the engine parameter is passed automatically
|
||||
@ -636,7 +636,7 @@ Let's combine everything we've learned: layered animations, dynamic colors, and
|
||||
set strip_len = strip_length()
|
||||
|
||||
# Twinkling stars background
|
||||
animation stars = twinkle_animation(
|
||||
animation stars = twinkle(
|
||||
color=0xFFFFAA
|
||||
density=2
|
||||
twinkle_speed=100ms
|
||||
@ -648,7 +648,7 @@ run stars
|
||||
# Moving beacon with dynamic color
|
||||
# back_color defaults to transparent, so stars show through
|
||||
animation back = beacon_animation(
|
||||
color = rich_palette(colors=PALETTE_RAINBOW_W2, period=5s)
|
||||
color = rich_palette_color(colors=PALETTE_RAINBOW_W2, period=5s)
|
||||
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 5s)
|
||||
beacon_size = 3
|
||||
slew_size = 2
|
||||
@ -686,7 +686,7 @@ set strip_len = strip_length()
|
||||
|
||||
# Define a red-blue-red gradient palette
|
||||
palette red_blue_red_palette = [ red, 0x3333FF, red ]
|
||||
color red_blue_red_color = rich_palette(colors=red_blue_red_palette)
|
||||
color red_blue_red_color = rich_palette_color(colors=red_blue_red_palette)
|
||||
|
||||
# Moving beacon as opacity mask
|
||||
# The color is white but it doesn't matter - only brightness counts
|
||||
@ -1022,12 +1022,12 @@ run back
|
||||
|
||||
<a href="https://tasmota.github.io/docs/Tasmota-Berry-emulator/index.html?example=chap_7_40_crenel_color" target="_blank"><img src="../../_media/berry_animation/chap_7_40.png" alt="Dynamic Colors"></a>
|
||||
|
||||
The `color` parameter also accepts a color provider instead of a static color. This example uses `rich_palette` to cycle through rainbow colors over 5 seconds, making the crenel pulses continuously change color while the blue background remains fixed:
|
||||
The `color` parameter also accepts a color provider instead of a static color. This example uses `rich_palette_color` to cycle through rainbow colors over 5 seconds, making the crenel pulses continuously change color while the blue background remains fixed:
|
||||
|
||||
```berry
|
||||
# Crenel with dynamic color
|
||||
|
||||
color rainbow_color = rich_palette(colors=PALETTE_RAINBOW_W2, period=5s)
|
||||
color rainbow_color = rich_palette_color(colors=PALETTE_RAINBOW_W2, period=5s)
|
||||
|
||||
animation back = crenel_animation(
|
||||
color = rainbow_color
|
||||
@ -1074,7 +1074,7 @@ animation mask = crenel_animation(
|
||||
)
|
||||
|
||||
# Rainbow gradient masked by crenel
|
||||
color rainbow_rich_color = rich_palette(colors=PALETTE_RAINBOW_W, period=0)
|
||||
color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0)
|
||||
animation pattern = palette_gradient_animation(
|
||||
color_source = rainbow_rich_color
|
||||
shift_period = 2s # Rotating gradient
|
||||
@ -1279,7 +1279,7 @@ run main
|
||||
| Animation | Description | Key Parameters |
|
||||
|-----------|-------------|----------------|
|
||||
| `solid` | Solid color fill | `color` |
|
||||
| `twinkle_animation` | Twinkling stars effect | `color`, `density`, `twinkle_speed`, `fade_speed` |
|
||||
| `twinkle` | Twinkling stars effect | `color`, `density`, `twinkle_speed`, `fade_speed` |
|
||||
| `beacon_animation` | Positioned pulse/highlight | `color`, `pos`, `beacon_size`, `slew_size` |
|
||||
| `crenel_animation` | Square wave pattern | `color`, `back_color`, `pulse_size`, `low_size` |
|
||||
| `rich_palette_animation` | Smooth palette cycling | `colors`, `period`, `transition_type` |
|
||||
|
||||
@ -484,7 +484,7 @@ animation.register_user_function("custom_palette", create_custom_palette)
|
||||
|
||||
```berry
|
||||
# Use in DSL
|
||||
animation dynamic_anim = rich_palette(
|
||||
animation dynamic_anim = rich_palette_color(
|
||||
colors=custom_palette(0xFF0000, 200)
|
||||
period=3s
|
||||
)
|
||||
@ -1421,7 +1421,7 @@ Color providers create dynamic colors that change over time:
|
||||
|----------|-------------|
|
||||
| `static_color` | Solid color with optional dynamic opacity |
|
||||
| `color_cycle` | Cycles through a palette of colors |
|
||||
| `rich_palette` | Advanced palette-based color cycling with smooth transitions |
|
||||
| `rich_palette_color` | Advanced palette-based color cycling with smooth transitions |
|
||||
| `composite_color` | Combines multiple color providers |
|
||||
| `breathe_color` | Breathing/pulsing color effect with brightness modulation |
|
||||
| `pulsating_color` | Fast pulsing color effect (alias for breathe_color with curve_factor=1) |
|
||||
@ -1439,7 +1439,7 @@ Animation classes create visual effects on LED strips:
|
||||
| `breathe_animation` | Breathing/fading effect |
|
||||
| `comet_animation` | Moving comet with trailing tail |
|
||||
| `fire_animation` | Realistic fire simulation |
|
||||
| `twinkle_animation` | Twinkling stars effect |
|
||||
| `twinkle` | Twinkling stars effect |
|
||||
| `gradient_animation` | Color gradient effects |
|
||||
| `wave_animation` | Wave propagation effects |
|
||||
| `rich_palette_animation` | Palette-based color cycling |
|
||||
|
||||
@ -155,7 +155,7 @@ animation solid_red = solid(color=custom_color)
|
||||
**Built-in Symbols** (resolved to `animation.<symbol>`):
|
||||
- Animation factory functions: `solid`, `pulsating_animation`, `comet_animation`
|
||||
- Value providers: `triangle`, `smooth`, `sine`, `static_value`
|
||||
- Color providers: `color_cycle`, `breathe_color`, `rich_palette`
|
||||
- Color providers: `color_cycle`, `breathe_color`, `rich_palette_color`
|
||||
- Constants: `PALETTE_RAINBOW`, `SINE`, `TRIANGLE`, etc.
|
||||
|
||||
**User-defined Symbols** (resolved to `<symbol>_`):
|
||||
@ -423,7 +423,7 @@ Register custom Berry functions for use in DSL. User functions must take `engine
|
||||
```berry
|
||||
# Define custom function in Berry - engine must be first parameter
|
||||
def custom_twinkle(engine, color, count, period)
|
||||
var anim = animation.twinkle_animation(engine)
|
||||
var anim = animation.twinkle(engine)
|
||||
anim.color = color
|
||||
anim.count = count
|
||||
atml:parameter>
|
||||
|
||||
@ -338,7 +338,7 @@ base_layer.opacity = breathing
|
||||
|
||||
# Accent layer - twinkling stars
|
||||
color star_white = 0xFFFFFF
|
||||
animation stars = twinkle_animation(color=star_white, count=5, period=800ms)
|
||||
animation stars = twinkle(color=star_white, count=5, period=800ms)
|
||||
stars.opacity = 150
|
||||
|
||||
sequence layered_effect {
|
||||
|
||||
@ -28,7 +28,7 @@ Create smooth color transitions:
|
||||
|
||||
```berry
|
||||
# Use predefined rainbow palette
|
||||
animation rainbow_cycle = rich_palette(
|
||||
animation rainbow_cycle = rich_palette_color(
|
||||
colors=PALETTE_RAINBOW
|
||||
period=5s
|
||||
transition_type=1
|
||||
@ -52,7 +52,7 @@ palette sunset = [
|
||||
]
|
||||
|
||||
# Create palette animation
|
||||
animation sunset_glow = rich_palette(
|
||||
animation sunset_glow = rich_palette_color(
|
||||
colors=sunset
|
||||
period=8s
|
||||
transition_type=1
|
||||
@ -124,7 +124,7 @@ animation comet = comet_animation(
|
||||
)
|
||||
|
||||
# Twinkling effect
|
||||
animation sparkles = twinkle_animation(
|
||||
animation sparkles = twinkle(
|
||||
color=white
|
||||
count=8
|
||||
period=800ms
|
||||
@ -137,7 +137,7 @@ run breathing
|
||||
|
||||
### Fire Effect
|
||||
```berry
|
||||
animation fire = rich_palette(
|
||||
animation fire = rich_palette_color(
|
||||
colors=PALETTE_FIRE
|
||||
period=2s
|
||||
transition_type=1
|
||||
@ -226,7 +226,7 @@ For complex logic, create custom functions in Berry:
|
||||
```berry
|
||||
# Define custom function - engine must be first parameter
|
||||
def my_twinkle(engine, color, count, period)
|
||||
var anim = animation.twinkle_animation(engine)
|
||||
var anim = animation.twinkle(engine)
|
||||
anim.color = color
|
||||
anim.count = count
|
||||
anim.period = period
|
||||
|
||||
@ -163,7 +163,7 @@ dim_blue.opacity = bright(30)
|
||||
|
||||
```berry
|
||||
def custom_fire(engine, intensity, speed)
|
||||
var color_provider = animation.rich_palette(engine)
|
||||
var color_provider = animation.rich_palette_color(engine)
|
||||
color_provider.colors = animation.PALETTE_FIRE
|
||||
color_provider.period = speed
|
||||
|
||||
@ -188,7 +188,7 @@ torch.opacity = fire(255, 500)
|
||||
|
||||
```berry
|
||||
def twinkles(engine, color, count, period)
|
||||
var anim = animation.twinkle_animation(engine)
|
||||
var anim = animation.twinkle(engine)
|
||||
anim.color = color
|
||||
anim.count = count
|
||||
anim.period = period
|
||||
@ -236,7 +236,7 @@ right_pulse.position = pulse_at(25, 3, 2000)
|
||||
```berry
|
||||
def rainbow_twinkle(engine, base_speed, twinkle_density)
|
||||
# Create base rainbow animation
|
||||
var rainbow_provider = animation.rich_palette(engine)
|
||||
var rainbow_provider = animation.rich_palette_color(engine)
|
||||
rainbow_provider.colors = animation.PALETTE_RAINBOW
|
||||
rainbow_provider.period = base_speed
|
||||
|
||||
@ -290,7 +290,7 @@ animation.register_user_function("custom_palette", create_custom_palette)
|
||||
|
||||
```berry
|
||||
# Use dynamic colors in DSL
|
||||
animation gradient_effect = rich_palette(
|
||||
animation gradient_effect = rich_palette_color(
|
||||
colors=custom_palette(0xFF6B35, 5, 255)
|
||||
period=4s
|
||||
)
|
||||
|
||||
@ -139,8 +139,8 @@ import "animations/comet" as comet_animation
|
||||
register_to_animation(comet_animation)
|
||||
import "animations/fire" as fire_animation
|
||||
register_to_animation(fire_animation)
|
||||
import "animations/twinkle" as twinkle_animation
|
||||
register_to_animation(twinkle_animation)
|
||||
import "animations/twinkle" as twinkle
|
||||
register_to_animation(twinkle)
|
||||
import "animations/gradient" as gradient_animation
|
||||
register_to_animation(gradient_animation)
|
||||
import "animations/palette_meter" as palette_meter_animation
|
||||
|
||||
@ -182,7 +182,7 @@ class FireAnimation : animation.animation
|
||||
# If color is nil, create default fire palette
|
||||
if resolved_color == nil
|
||||
# Create default fire palette on demand
|
||||
var fire_provider = animation.rich_palette(self.engine)
|
||||
var fire_provider = animation.rich_palette_color(self.engine)
|
||||
fire_provider.colors = animation.PALETTE_FIRE
|
||||
fire_provider.period = 0 # Use value-based color mapping, not time-based
|
||||
fire_provider.transition_type = 1 # Use sine transition (smooth)
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
#@ solidify:animation_palettes,weak
|
||||
|
||||
# Define common palette constants (in VRGB format: Value, Red, Green, Blue)
|
||||
# These palettes are compatible with the RichPaletteColorProvider
|
||||
# These palettes are compatible with the rich_palette_color
|
||||
|
||||
# Standard rainbow palette (7 colors with roughly constant brightness)
|
||||
var PALETTE_RAINBOW = bytes(
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# RichPaletteAnimation - Animation with integrated rich palette color provider
|
||||
#
|
||||
# This animation class provides direct access to rich palette parameters,
|
||||
# forwarding them to an internal RichPaletteColorProvider instance.
|
||||
# forwarding them to an internal rich_palette_colornce.
|
||||
# This creates a cleaner API where users can set palette parameters directly
|
||||
# on the animation instead of accessing nested color provider properties.
|
||||
#
|
||||
@ -12,11 +12,11 @@ import "./core/param_encoder" as encode_constraints
|
||||
#@ solidify:RichPaletteAnimation,weak
|
||||
class RichPaletteAnimation : animation.animation
|
||||
# Non-parameter instance variables only
|
||||
var color_provider # Internal RichPaletteColorProvider instance
|
||||
var color_provider # Internal rich_palette_color instance
|
||||
|
||||
# Parameter definitions - only RichPaletteColorProvider parameters (Animation params inherited)
|
||||
# Parameter definitions - only rich_palette_color parameters (Animation params inherited)
|
||||
static var PARAMS = animation.enc_params({
|
||||
# RichPaletteColorProvider parameters (forwarded to internal provider)
|
||||
# rich_palette_color parameters (forwarded to internal provider)
|
||||
"colors": {"type": "instance", "default": nil},
|
||||
"period": {"min": 0, "default": 5000},
|
||||
"transition_type": {"enum": [1 #-LINEAR-#, 5 #-SINE-#], "default": 5 #-SINE-#},
|
||||
@ -29,8 +29,8 @@ class RichPaletteAnimation : animation.animation
|
||||
def init(engine)
|
||||
super(self).init(engine) # Initialize Animation base class
|
||||
|
||||
# Create internal RichPaletteColorProvider instance
|
||||
self.color_provider = animation.rich_palette(engine)
|
||||
# Create internal rich_palette_color instance
|
||||
self.color_provider = animation.rich_palette_color(engine)
|
||||
|
||||
# Set the color parameter to our internal provider
|
||||
# Use direct values assignment to avoid triggering on_param_changed
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
|
||||
import "./core/param_encoder" as encode_constraints
|
||||
|
||||
#@ solidify:TwinkleAnimation,weak
|
||||
class TwinkleAnimation : animation.animation
|
||||
#@ solidify:twinkle,weak
|
||||
class twinkle : animation.animation
|
||||
# NO instance variables for parameters - they are handled by the virtual parameter system
|
||||
|
||||
# Non-parameter instance variables only
|
||||
@ -207,97 +207,6 @@ class TwinkleAnimation : animation.animation
|
||||
|
||||
return modified
|
||||
end
|
||||
|
||||
# NO setter/getter methods - use direct assignment instead:
|
||||
# obj.color = value
|
||||
# obj.density = value
|
||||
# obj.twinkle_speed = value
|
||||
# obj.fade_speed = value
|
||||
# obj.min_brightness = value
|
||||
# obj.max_brightness = value
|
||||
end
|
||||
|
||||
# Factory function to create a classic white twinkle animation
|
||||
#
|
||||
# @param engine: AnimationEngine - The animation engine
|
||||
# @return TwinkleAnimation - A new twinkle animation instance
|
||||
def twinkle_classic(engine)
|
||||
var anim = animation.twinkle_animation(engine)
|
||||
anim.color = 0xFFFFFFFF
|
||||
anim.density = 150
|
||||
anim.twinkle_speed = 6
|
||||
anim.fade_speed = 180
|
||||
anim.min_brightness = 32
|
||||
anim.max_brightness = 255
|
||||
return anim
|
||||
end
|
||||
|
||||
# Factory function to create a colored twinkle animation
|
||||
#
|
||||
# @param engine: AnimationEngine - The animation engine
|
||||
# @return TwinkleAnimation - A new twinkle animation instance
|
||||
def twinkle_solid(engine)
|
||||
var anim = animation.twinkle_animation(engine)
|
||||
anim.color = 0xFF0080FF # Blue
|
||||
anim.density = 100
|
||||
anim.twinkle_speed = 6
|
||||
anim.fade_speed = 180
|
||||
anim.min_brightness = 32
|
||||
anim.max_brightness = 255
|
||||
return anim
|
||||
end
|
||||
|
||||
# Factory function to create a rainbow twinkle animation
|
||||
#
|
||||
# @param engine: AnimationEngine - The animation engine
|
||||
# @return TwinkleAnimation - A new twinkle animation instance
|
||||
def twinkle_rainbow(engine)
|
||||
var anim = animation.twinkle_animation(engine)
|
||||
# TODO: Set up rainbow color provider when available
|
||||
anim.color = 0xFFFFFFFF # White for now
|
||||
anim.density = 120
|
||||
anim.twinkle_speed = 6
|
||||
anim.fade_speed = 180
|
||||
anim.min_brightness = 32
|
||||
anim.max_brightness = 255
|
||||
return anim
|
||||
end
|
||||
|
||||
# Factory function to create a gentle twinkle animation (low density, slow fade)
|
||||
#
|
||||
# @param engine: AnimationEngine - The animation engine
|
||||
# @return TwinkleAnimation - A new twinkle animation instance
|
||||
def twinkle_gentle(engine)
|
||||
var anim = animation.twinkle_animation(engine)
|
||||
anim.color = 0xFFFFD700 # Gold
|
||||
anim.density = 64
|
||||
anim.twinkle_speed = 3
|
||||
anim.fade_speed = 120
|
||||
anim.min_brightness = 16
|
||||
anim.max_brightness = 180
|
||||
return anim
|
||||
end
|
||||
|
||||
# Factory function to create an intense twinkle animation (high density, fast fade)
|
||||
#
|
||||
# @param engine: AnimationEngine - The animation engine
|
||||
# @return TwinkleAnimation - A new twinkle animation instance
|
||||
def twinkle_intense(engine)
|
||||
var anim = animation.twinkle_animation(engine)
|
||||
anim.color = 0xFFFF0000 # Red
|
||||
anim.density = 200
|
||||
anim.twinkle_speed = 12
|
||||
anim.fade_speed = 220
|
||||
anim.min_brightness = 64
|
||||
anim.max_brightness = 255
|
||||
return anim
|
||||
end
|
||||
|
||||
return {
|
||||
'twinkle_animation': TwinkleAnimation,
|
||||
'twinkle_classic': twinkle_classic,
|
||||
'twinkle_solid': twinkle_solid,
|
||||
'twinkle_rainbow': twinkle_rainbow,
|
||||
'twinkle_gentle': twinkle_gentle,
|
||||
'twinkle_intense': twinkle_intense
|
||||
}
|
||||
return { 'twinkle': twinkle }
|
||||
@ -215,7 +215,7 @@ end
|
||||
def wave_rainbow_sine(engine)
|
||||
var anim = animation.wave_animation(engine)
|
||||
# Set up rainbow color provider
|
||||
var rainbow_provider = animation.rich_palette(engine)
|
||||
var rainbow_provider = animation.rich_palette_color(engine)
|
||||
rainbow_provider.colors = animation.PALETTE_RAINBOW
|
||||
rainbow_provider.period = 5000
|
||||
rainbow_provider.transition_type = 1 # sine transition
|
||||
|
||||
@ -69,7 +69,7 @@ class PlasmaAnimation : animation.animation
|
||||
|
||||
# Initialize default color if not set
|
||||
if self.color == nil
|
||||
var rainbow_provider = animation.rich_palette(self.engine)
|
||||
var rainbow_provider = animation.rich_palette_color(self.engine)
|
||||
rainbow_provider.colors = animation.PALETTE_RAINBOW
|
||||
rainbow_provider.period = 5000
|
||||
rainbow_provider.transition_type = 1
|
||||
@ -88,7 +88,7 @@ class PlasmaAnimation : animation.animation
|
||||
super(self).on_param_changed(name, value)
|
||||
if name == "color" && value == nil
|
||||
# Reset to default rainbow palette when color is set to nil
|
||||
var rainbow_provider = animation.rich_palette(self.engine)
|
||||
var rainbow_provider = animation.rich_palette_color(self.engine)
|
||||
rainbow_provider.colors = animation.PALETTE_RAINBOW
|
||||
rainbow_provider.period = 5000
|
||||
rainbow_provider.transition_type = 1
|
||||
|
||||
@ -222,7 +222,7 @@ end
|
||||
# @param engine: AnimationEngine - Required animation engine reference
|
||||
# @return SparkleAnimation - A new rainbow sparkle animation instance
|
||||
def sparkle_rainbow(engine)
|
||||
var rainbow_provider = animation.rich_palette(engine)
|
||||
var rainbow_provider = animation.rich_palette_color(engine)
|
||||
rainbow_provider.colors = animation.PALETTE_RAINBOW
|
||||
rainbow_provider.period = 5000
|
||||
rainbow_provider.transition_type = 1 # sine transition
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# RichPaletteColorProvider for Berry Animation Framework
|
||||
# rich_palette_color for Berry Animation Framework
|
||||
#
|
||||
# This color provider generates colors from a palette with smooth transitions.
|
||||
# Reuses optimizations from Animate_palette class for maximum efficiency.
|
||||
@ -30,8 +30,8 @@
|
||||
|
||||
import "./core/param_encoder" as encode_constraints
|
||||
|
||||
#@ solidify:RichPaletteColorProvider,weak
|
||||
class RichPaletteColorProvider : animation.color_provider
|
||||
#@ solidify:rich_palette_color,weak
|
||||
class rich_palette_color : animation.color_provider
|
||||
# Non-parameter instance variables only
|
||||
var _slots_arr # Constructed array of timestamp slots, based on period
|
||||
var _value_arr # Constructed array of value slots (always 0-255 range)
|
||||
@ -48,7 +48,7 @@ class RichPaletteColorProvider : animation.color_provider
|
||||
# brightness parameter inherited from ColorProvider base class
|
||||
})
|
||||
|
||||
# Initialize a new RichPaletteColorProvider
|
||||
# Initialize a new rich_palette_color
|
||||
#
|
||||
# @param engine: AnimationEngine - Reference to the animation engine (required)
|
||||
def init(engine)
|
||||
@ -518,4 +518,4 @@ class RichPaletteColorProvider : animation.color_provider
|
||||
end
|
||||
end
|
||||
|
||||
return {'rich_palette': RichPaletteColorProvider}
|
||||
return {'rich_palette_color': rich_palette_color}
|
||||
File diff suppressed because it is too large
Load Diff
@ -47,7 +47,7 @@ def test_palette_newline_entries()
|
||||
" (192, 0x00AA00)\n" +
|
||||
" (255, 0x00FF00)\n" +
|
||||
"]\n" +
|
||||
"color stream_color = rich_palette(colors=matrix_greens, period=2s)\n" +
|
||||
"color stream_color = rich_palette_color(colors=matrix_greens, period=2s)\n" +
|
||||
"animation stream = solid(color=stream_color)\n" +
|
||||
"run stream"
|
||||
|
||||
@ -111,7 +111,7 @@ def test_color_provider_newline_syntax()
|
||||
|
||||
var dsl_source =
|
||||
"palette test_palette = [(0, 0x000000), (255, 0xFFFFFF)]\n" +
|
||||
"color dynamic_color = rich_palette(\n" +
|
||||
"color dynamic_color = rich_palette_color(\n" +
|
||||
" colors=test_palette\n" +
|
||||
" period=2s\n" +
|
||||
" transition_type=LINEAR\n" +
|
||||
@ -123,7 +123,7 @@ def test_color_provider_newline_syntax()
|
||||
var berry_code = animation_dsl.compile(dsl_source)
|
||||
|
||||
assert(berry_code != nil, "Should compile color provider with newline syntax")
|
||||
assert(string.find(berry_code, "var dynamic_color_ = animation.rich_palette(engine)") >= 0, "Should generate color provider creation")
|
||||
assert(string.find(berry_code, "var dynamic_color_ = animation.rich_palette_color(engine)") >= 0, "Should generate color provider creation")
|
||||
assert(string.find(berry_code, "dynamic_color_.colors = test_palette_") >= 0, "Should generate palette assignment")
|
||||
assert(string.find(berry_code, "dynamic_color_.period = 2000") >= 0, "Should generate period assignment")
|
||||
|
||||
@ -172,7 +172,7 @@ def test_complex_example()
|
||||
" (255, 0x00FF00) # Neon green\n" +
|
||||
"]\n" +
|
||||
"\n" +
|
||||
"color stream_pattern = rich_palette(\n" +
|
||||
"color stream_pattern = rich_palette_color(\n" +
|
||||
" colors=matrix_greens\n" +
|
||||
" period=2s\n" +
|
||||
" transition_type=LINEAR\n" +
|
||||
@ -192,7 +192,7 @@ def test_complex_example()
|
||||
|
||||
assert(berry_code != nil, "Should compile complex real-world example")
|
||||
assert(string.find(berry_code, "var matrix_greens_ = bytes(") >= 0, "Should generate palette")
|
||||
assert(string.find(berry_code, "var stream_pattern_ = animation.rich_palette(engine)") >= 0, "Should generate color provider")
|
||||
assert(string.find(berry_code, "var stream_pattern_ = animation.rich_palette_color(engine)") >= 0, "Should generate color provider")
|
||||
assert(string.find(berry_code, "var stream_ = animation.comet_animation(engine)") >= 0, "Should generate animation")
|
||||
|
||||
print("✓ Complex example test passed")
|
||||
|
||||
@ -991,7 +991,7 @@ def test_animation_type_checking()
|
||||
|
||||
# Test color provider assigned to animation (should fail at transpile time)
|
||||
var color_provider_as_animation_dsl = "# strip length 30 # TEMPORARILY DISABLED\n" +
|
||||
"animation invalid_anim = rich_palette(colors=breathe_palette)"
|
||||
"animation invalid_anim = rich_palette_color(colors=breathe_palette)"
|
||||
|
||||
try
|
||||
var invalid_code = animation_dsl.compile(color_provider_as_animation_dsl)
|
||||
|
||||
@ -81,7 +81,7 @@ assert(result, "Render should return true")
|
||||
|
||||
# Test 3: animation.solid with a rich palette provider
|
||||
print("Test 3: animation.solid with a rich palette provider")
|
||||
var rich_provider = animation.rich_palette(mock_engine)
|
||||
var rich_provider = animation.rich_palette_color(mock_engine)
|
||||
rich_provider.colors = animation.PALETTE_RAINBOW # Use the rainbow palette
|
||||
rich_provider.period = 1000 # 1 second cycle period
|
||||
# Note: transition_type removed - rich palette uses smooth transitions
|
||||
@ -107,7 +107,7 @@ assert(result, "Render should return true")
|
||||
|
||||
# Test 4: animation.solid with a composite provider
|
||||
print("Test 4: animation.solid with a composite provider")
|
||||
var rich_provider2 = animation.rich_palette(mock_engine)
|
||||
var rich_provider2 = animation.rich_palette_color(mock_engine)
|
||||
rich_provider2.colors = animation.PALETTE_RAINBOW
|
||||
rich_provider2.period = 1000
|
||||
# Note: transition_type removed
|
||||
|
||||
@ -110,7 +110,7 @@ fire.color = 0xFFFF0000 # Red
|
||||
print("Set to solid red color")
|
||||
|
||||
# Set back to fire palette
|
||||
var fire_palette = animation.rich_palette(engine)
|
||||
var fire_palette = animation.rich_palette_color(engine)
|
||||
fire_palette.colors = animation.PALETTE_FIRE
|
||||
fire_palette.period = 5000
|
||||
fire_palette.transition_type = 1 # Use sine transition (smooth)
|
||||
|
||||
@ -88,7 +88,7 @@ def test_gradient_meter_rendering()
|
||||
var meter = animation.palette_meter_animation(engine)
|
||||
|
||||
# Use a color provider (required for PaletteGradientAnimation)
|
||||
var color_source = animation.rich_palette(engine)
|
||||
var color_source = animation.rich_palette_color(engine)
|
||||
meter.color_source = color_source
|
||||
|
||||
var frame = animation.frame_buffer(10, 1)
|
||||
@ -128,7 +128,7 @@ def test_gradient_meter_peak_indicator()
|
||||
var meter = animation.palette_meter_animation(engine)
|
||||
|
||||
# Use a color provider
|
||||
var color_source = animation.rich_palette(engine)
|
||||
var color_source = animation.rich_palette_color(engine)
|
||||
meter.color_source = color_source
|
||||
meter.peak_hold = 2000
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# Test file for animation.solid with RichPaletteColorProvider
|
||||
# Test file for animation.solid with rich_palette_color
|
||||
#
|
||||
# This file contains tests for the animation.solid class with rich palette provider
|
||||
#
|
||||
@ -43,7 +43,7 @@ class RichPaletteAnimationTest
|
||||
self.passed = 0
|
||||
self.failed = 0
|
||||
|
||||
print("Running animation.solid with RichPaletteColorProvider Tests")
|
||||
print("Running animation.solid with rich_palette_color Tests")
|
||||
|
||||
self.test_initialization()
|
||||
self.test_update_and_render()
|
||||
@ -53,7 +53,7 @@ class RichPaletteAnimationTest
|
||||
self.test_sine_mode()
|
||||
self.test_sine_mode_value_based()
|
||||
|
||||
print(f"animation.solid with RichPaletteColorProvider Tests: {self.passed} passed, {self.failed} failed")
|
||||
print(f"animation.solid with rich_palette_color Tests: {self.passed} passed, {self.failed} failed")
|
||||
if self.failed > 0
|
||||
raise "test_failed"
|
||||
end
|
||||
@ -82,7 +82,7 @@ class RichPaletteAnimationTest
|
||||
|
||||
def test_initialization()
|
||||
# Test default initialization with rich palette provider
|
||||
var provider = animation.rich_palette(mock_engine)
|
||||
var provider = animation.rich_palette_color(mock_engine)
|
||||
var anim = animation.solid(mock_engine)
|
||||
anim.color = provider
|
||||
|
||||
@ -93,7 +93,7 @@ class RichPaletteAnimationTest
|
||||
|
||||
# Test with custom parameters using new parameterized class specification
|
||||
var custom_palette = bytes("00FF0000" "FFFFFF00")
|
||||
var custom_provider = animation.rich_palette(mock_engine)
|
||||
var custom_provider = animation.rich_palette_color(mock_engine)
|
||||
custom_provider.colors = custom_palette
|
||||
custom_provider.period = 2000
|
||||
custom_provider.transition_type = animation.SINE
|
||||
@ -115,7 +115,7 @@ class RichPaletteAnimationTest
|
||||
def test_update_and_render()
|
||||
# Create animation with red and blue colors
|
||||
var colors = bytes("00FF0000" "FF0000FF") # Red to Blue in VRGB format
|
||||
var provider = animation.rich_palette(mock_engine)
|
||||
var provider = animation.rich_palette_color(mock_engine)
|
||||
provider.colors = colors
|
||||
provider.period = 1000 # 1 second cycle
|
||||
provider.transition_type = animation.LINEAR # linear transition
|
||||
@ -167,7 +167,7 @@ class RichPaletteAnimationTest
|
||||
def test_palette_properties()
|
||||
# Test palette properties and value-based color generation
|
||||
var colors = bytes("00FF0000" "80FFFF00" "FF0000FF") # Red to Yellow to Blue
|
||||
var provider = animation.rich_palette(mock_engine)
|
||||
var provider = animation.rich_palette_color(mock_engine)
|
||||
provider.colors = colors
|
||||
provider.period = 1000
|
||||
|
||||
@ -196,7 +196,7 @@ class RichPaletteAnimationTest
|
||||
def test_css_gradient()
|
||||
# Test CSS gradient generation
|
||||
var colors = bytes("00FF0000" "80FFFF00" "FF0000FF") # Red to Yellow to Blue
|
||||
var provider = animation.rich_palette(mock_engine)
|
||||
var provider = animation.rich_palette_color(mock_engine)
|
||||
provider.colors = colors
|
||||
provider.period = 1000
|
||||
|
||||
@ -216,7 +216,7 @@ class RichPaletteAnimationTest
|
||||
def test_cycle_period_zero()
|
||||
# Test the new period = 0 functionality for value-based color mapping
|
||||
var colors = bytes("00FF0000" "80FFFF00" "FF0000FF") # Red to Yellow to Blue
|
||||
var provider = animation.rich_palette(mock_engine)
|
||||
var provider = animation.rich_palette_color(mock_engine)
|
||||
provider.colors = colors
|
||||
provider.period = 0 # Value-based mode
|
||||
provider.start()
|
||||
@ -267,7 +267,7 @@ class RichPaletteAnimationTest
|
||||
var colors = bytes("00FF0000" "FF0000FF") # Red at 0, Blue at 255
|
||||
|
||||
# Create LINEAR provider
|
||||
var provider_linear = animation.rich_palette(mock_engine)
|
||||
var provider_linear = animation.rich_palette_color(mock_engine)
|
||||
provider_linear.colors = colors
|
||||
provider_linear.period = 1000
|
||||
provider_linear.transition_type = animation.LINEAR
|
||||
@ -275,7 +275,7 @@ class RichPaletteAnimationTest
|
||||
provider_linear.start(0)
|
||||
|
||||
# Create SINE provider
|
||||
var provider_sine = animation.rich_palette(mock_engine)
|
||||
var provider_sine = animation.rich_palette_color(mock_engine)
|
||||
provider_sine.colors = colors
|
||||
provider_sine.period = 1000
|
||||
provider_sine.transition_type = animation.SINE
|
||||
@ -326,7 +326,7 @@ class RichPaletteAnimationTest
|
||||
def test_sine_mode_value_based()
|
||||
# Test SINE mode with value-based interpolation
|
||||
var colors = bytes("00FF0000" "FF0000FF") # Red to Blue
|
||||
var provider = animation.rich_palette(mock_engine)
|
||||
var provider = animation.rich_palette_color(mock_engine)
|
||||
provider.colors = colors
|
||||
provider.period = 0 # Value-based mode
|
||||
provider.transition_type = animation.SINE
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
# Comprehensive Twinkle Animation Test
|
||||
# Tests the TwinkleAnimation class functionality, behavior, and DSL integration
|
||||
# Tests the twinkle class functionality, behavior, and DSL integration
|
||||
# This test combines all aspects of twinkle animation testing including the fix for DSL parameters
|
||||
|
||||
import animation
|
||||
@ -14,7 +14,7 @@ print("=== Comprehensive Twinkle Animation Test ===")
|
||||
print("\n1. Testing basic twinkle animation creation...")
|
||||
var strip = global.Leds(30)
|
||||
var engine = animation.create_engine(strip)
|
||||
var twinkle = animation.twinkle_animation(engine)
|
||||
var twinkle = animation.twinkle(engine)
|
||||
twinkle.color = 0xFFFFFFFF
|
||||
twinkle.density = 128
|
||||
twinkle.twinkle_speed = 6
|
||||
@ -41,7 +41,7 @@ print(f"Set twinkle_speed to 6000 (invalid): {result4}")
|
||||
print("\n3. Testing DSL issue reproduction and fix...")
|
||||
print("Creating: twinkle with 0xFFAAAAFF, density=4, twinkle_speed=400ms - original problematic DSL parameters")
|
||||
|
||||
var dsl_twinkle = animation.twinkle_animation(engine)
|
||||
var dsl_twinkle = animation.twinkle(engine)
|
||||
dsl_twinkle.color = 0xFFAAAAFF
|
||||
dsl_twinkle.density = 4
|
||||
dsl_twinkle.twinkle_speed = 400 # Should convert from 400ms to Hz
|
||||
@ -103,7 +103,7 @@ while i < size(time_test_cases)
|
||||
var input_val = time_test_cases[i][0]
|
||||
var description = time_test_cases[i][1]
|
||||
|
||||
var test_twinkle = animation.twinkle_animation(engine)
|
||||
var test_twinkle = animation.twinkle(engine)
|
||||
test_twinkle.color = 0xFFFFFFFF
|
||||
test_twinkle.density = 64
|
||||
test_twinkle.twinkle_speed = input_val
|
||||
@ -118,7 +118,7 @@ var density_test_cases = [1, 2, 4, 8, 16, 32]
|
||||
i = 0
|
||||
while i < size(density_test_cases)
|
||||
var test_density = density_test_cases[i]
|
||||
var density_twinkle = animation.twinkle_animation(engine)
|
||||
var density_twinkle = animation.twinkle(engine)
|
||||
density_twinkle.color = 0xFFFFFFFF
|
||||
density_twinkle.density = test_density
|
||||
density_twinkle.twinkle_speed = 6
|
||||
@ -152,20 +152,6 @@ while i < size(density_test_cases)
|
||||
i += 1
|
||||
end
|
||||
|
||||
# Test 6: Factory Methods
|
||||
print("\n6. Testing factory methods...")
|
||||
var twinkle_classic = animation.twinkle_classic(engine)
|
||||
var twinkle_solid = animation.twinkle_solid(engine)
|
||||
var twinkle_rainbow = animation.twinkle_rainbow(engine)
|
||||
var twinkle_gentle = animation.twinkle_gentle(engine)
|
||||
var twinkle_intense = animation.twinkle_intense(engine)
|
||||
|
||||
print(f"Classic twinkle: {twinkle_classic}")
|
||||
print(f"Solid twinkle: {twinkle_solid}")
|
||||
print(f"Rainbow twinkle: {twinkle_rainbow}")
|
||||
print(f"Gentle twinkle: {twinkle_gentle}")
|
||||
print(f"Intense twinkle: {twinkle_intense}")
|
||||
|
||||
# Test 7: Animation Lifecycle
|
||||
print("\n7. Testing animation lifecycle...")
|
||||
twinkle.start()
|
||||
@ -240,7 +226,7 @@ print(f"Average non-black pixels per cycle: {total_non_black / size(non_black_co
|
||||
|
||||
# Test 9: Deterministic Behavior Test (with fixed seed)
|
||||
print("\n9. Testing deterministic behavior...")
|
||||
var deterministic_twinkle = animation.twinkle_animation(engine)
|
||||
var deterministic_twinkle = animation.twinkle(engine)
|
||||
deterministic_twinkle.color = 0xFFFF0000
|
||||
deterministic_twinkle.density = 64
|
||||
deterministic_twinkle.twinkle_speed = 10
|
||||
@ -311,7 +297,7 @@ twinkle.fade_speed = 220
|
||||
print(f"Updated fade_speed: {twinkle.fade_speed}")
|
||||
|
||||
# Test parameter updates with time conversion
|
||||
var param_update_twinkle = animation.twinkle_animation(engine)
|
||||
var param_update_twinkle = animation.twinkle(engine)
|
||||
param_update_twinkle.color = 0xFFFFFFFF
|
||||
param_update_twinkle.density = 64
|
||||
param_update_twinkle.twinkle_speed = 6
|
||||
@ -347,7 +333,7 @@ print("Set back to white")
|
||||
|
||||
# Test 15: High Density Test (should definitely produce visible results)
|
||||
print("\n15. Testing high density animation...")
|
||||
var high_density_twinkle = animation.twinkle_animation(engine)
|
||||
var high_density_twinkle = animation.twinkle(engine)
|
||||
high_density_twinkle.color = 0xFFFFFFFF
|
||||
high_density_twinkle.density = 255
|
||||
high_density_twinkle.twinkle_speed = 20
|
||||
@ -388,7 +374,7 @@ print("\n16. Testing edge cases...")
|
||||
# Very small strip
|
||||
var tiny_strip = global.Leds(1)
|
||||
var tiny_engine = animation.create_engine(tiny_strip)
|
||||
var tiny_twinkle = animation.twinkle_classic(tiny_engine)
|
||||
var tiny_twinkle = animation.twinkle(tiny_engine)
|
||||
tiny_twinkle.density = 200
|
||||
tiny_twinkle.start()
|
||||
tiny_twinkle.update(current_time + 167)
|
||||
@ -397,7 +383,7 @@ tiny_twinkle.render(tiny_frame, current_time, tiny_engine.strip_length)
|
||||
print("Tiny twinkle (1 pixel) created and rendered successfully")
|
||||
|
||||
# Zero density
|
||||
var no_twinkle = animation.twinkle_classic(engine)
|
||||
var no_twinkle = animation.twinkle(engine)
|
||||
no_twinkle.density = 0
|
||||
no_twinkle.start()
|
||||
no_twinkle.update(current_time + 334)
|
||||
@ -406,7 +392,7 @@ no_twinkle.render(no_frame, current_time, engine.strip_length)
|
||||
print("No twinkle (0 density) created and rendered successfully")
|
||||
|
||||
# Maximum density
|
||||
var max_twinkle = animation.twinkle_classic(engine)
|
||||
var max_twinkle = animation.twinkle(engine)
|
||||
max_twinkle.density = 255
|
||||
max_twinkle.start()
|
||||
max_twinkle.update(current_time + 501)
|
||||
@ -418,7 +404,7 @@ print("Max twinkle (255 density) created and rendered successfully")
|
||||
print("\n17. Testing alpha-based fading (stars should fade via alpha channel)...")
|
||||
|
||||
# Test new stars start at full brightness with variable alpha
|
||||
var alpha_test_twinkle = animation.twinkle_animation(engine)
|
||||
var alpha_test_twinkle = animation.twinkle(engine)
|
||||
alpha_test_twinkle.color = 0xFFFF0000 # Red stars
|
||||
alpha_test_twinkle.density = 255 # High density
|
||||
alpha_test_twinkle.twinkle_speed = 6
|
||||
@ -463,7 +449,7 @@ else
|
||||
end
|
||||
|
||||
# Test alpha fading over time
|
||||
var fade_twinkle = animation.twinkle_animation(engine)
|
||||
var fade_twinkle = animation.twinkle(engine)
|
||||
fade_twinkle.color = 0xFFFFFFFF # White stars
|
||||
fade_twinkle.density = 0 # Zero density
|
||||
fade_twinkle.twinkle_speed = 6
|
||||
@ -517,7 +503,7 @@ else
|
||||
end
|
||||
|
||||
# Test star reset when alpha reaches zero
|
||||
var reset_twinkle = animation.twinkle_animation(engine)
|
||||
var reset_twinkle = animation.twinkle(engine)
|
||||
reset_twinkle.color = 0xFF00FF00 # Green stars
|
||||
reset_twinkle.density = 0 # Zero density
|
||||
reset_twinkle.twinkle_speed = 6
|
||||
@ -544,7 +530,7 @@ end
|
||||
print("\n18. Testing transparency (background should be transparent)...")
|
||||
|
||||
# Test with zero density (no twinkles) - simplified test
|
||||
var zero_density_twinkle = animation.twinkle_animation(engine)
|
||||
var zero_density_twinkle = animation.twinkle(engine)
|
||||
zero_density_twinkle.color = 0xFFFFFFFF
|
||||
zero_density_twinkle.density = 0 # Zero density
|
||||
zero_density_twinkle.twinkle_speed = 6
|
||||
@ -667,14 +653,14 @@ print("7. ✅ Animation engine integration: DSL parameters work in full system")
|
||||
# Test 20: Undefined Parameter Exception Test
|
||||
print("\n20. Testing undefined parameter exception behavior...")
|
||||
|
||||
# Test setting an undefined attribute 'speed' (which is not defined in TwinkleAnimation PARAMS)
|
||||
# Test setting an undefined attribute 'speed' (which is not defined in twinkle PARAMS)
|
||||
print("Testing direct assignment to undefined parameter 'speed'...")
|
||||
var exception_caught = false
|
||||
var actual_exception_type = nil
|
||||
var actual_exception_msg = nil
|
||||
|
||||
try
|
||||
twinkle.speed = 42 # 'speed' is not defined in TwinkleAnimation PARAMS
|
||||
twinkle.speed = 42 # 'speed' is not defined in twinkle PARAMS
|
||||
assert(false, "Setting undefined parameter should raise an exception")
|
||||
except .. as e, msg
|
||||
exception_caught = true
|
||||
|
||||
@ -192,7 +192,7 @@
|
||||
"patterns": [
|
||||
{
|
||||
"name": "entity.name.function.animation.animation-dsl",
|
||||
"match": "\\b(solid|pulsating_animation|beacon_animation|comet_animation|rich_palette_animation|twinkle_animation|breathe_animation|fire_animation|crenel_animation)\\b"
|
||||
"match": "\\b(solid|pulsating_animation|beacon_animation|comet_animation|rich_palette_animation|twinkle|breathe_animation|fire_animation|crenel_animation)\\b"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
Loading…
Reference in New Issue
Block a user