Berry animation rename animation classes (#24302)

This commit is contained in:
s-hadinger 2026-01-03 23:23:38 +01:00 committed by GitHub
parent 950eccbd33
commit 18943139f8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
177 changed files with 9089 additions and 9361 deletions

View File

@ -10,7 +10,7 @@ Writing LED animations in pure Berry code requires understanding the animation e
- **Declarative, not imperative** - Just specify *what* you want and *how long* it should take; the framework handles all intermediate states and timing - **Declarative, not imperative** - Just specify *what* you want and *how long* it should take; the framework handles all intermediate states and timing
- **No state machines** - Forget about tracking animation phases, transitions, and timing manually - **No state machines** - Forget about tracking animation phases, transitions, and timing manually
- **Readable syntax** - Write `animation pulse = pulsating_animation(color=red, period=2s)` instead of dozens of lines of Berry code - **Readable syntax** - Write `animation pulse = breathe(color=red, period=2s)` instead of dozens of lines of Berry code
- **Automatic engine management** - No need to create engines, manage frame buffers, or handle timing - **Automatic engine management** - No need to create engines, manage frame buffers, or handle timing
- **Built-in effects** - Access to pulse, breathe, fire, comet, sparkle, wave, and many more effects - **Built-in effects** - Access to pulse, breathe, fire, comet, sparkle, wave, and many more effects
- **Dynamic parameters** - Oscillating values (sine, triangle, smooth) without manual math - **Dynamic parameters** - Oscillating values (sine, triangle, smooth) without manual math
@ -49,22 +49,22 @@ Without `USE_BERRY_ANIMATION_DSL`, use the online emulator to create animations
### Simple Breathing Animation ### Simple Breathing Animation
```berry ```berry
animation pulse = breathe_animation(color=red, period=2s) animation pulse = breathe(color=red, period=2s)
run pulse run pulse
``` ```
### Rainbow Smooth Color Cycling ### Rainbow Smooth Color Cycling
```berry ```berry
animation rainbow = rich_palette_animation(colors=PALETTE_RAINBOW) animation rainbow = rich_palette(colors=PALETTE_RAINBOW)
run rainbow run rainbow
``` ```
### Animation Sequence ### Animation Sequence
```berry ```berry
animation red_pulse = breathe_animation(color=red, period=2s) animation red_pulse = breathe(color=red, period=2s)
animation blue_pulse = breathe_animation(color=blue, period=1.5s) animation blue_pulse = breathe(color=blue, period=1.5s)
sequence show repeat forever { sequence show repeat forever {
play red_pulse for 4s play red_pulse for 4s
@ -136,7 +136,7 @@ template animation pulse_effect {
param pulse_color type color param pulse_color type color
param speed param speed
animation pulse = pulsating_animation(color=pulse_color, period=speed) animation pulse = breathe(color=pulse_color, period=speed)
run pulse run pulse
} }
@ -155,19 +155,17 @@ run show
Animation|Description Animation|Description
:---|:--- :---|:---
`solid`|Solid color fill `solid`|Solid color fill
`pulsating_animation`|Breathing/pulsing effect with smooth transitions `breathe`|Natural breathing effect with customizable curve
`breathe_animation`|Natural breathing effect with customizable curve `beacon`|Pulse/highlight at specific position with optional slew
`beacon_animation`|Pulse/highlight at specific position with optional slew `crenel`|Crenel/square wave pattern
`crenel_animation`|Crenel/square wave pattern `comet`|Moving comet with fading tail
`comet_animation`|Moving comet with fading tail
`twinkle`|Twinkling stars effect `twinkle`|Twinkling stars effect
`fire_animation`|Realistic fire simulation `fire`|Realistic fire simulation
`rich_palette_color`|Smooth palette color transitions `rich_palette_color`|Smooth palette color transitions
`gradient_animation`|Linear or radial color gradients `gradient`|Linear or radial color gradients
`palette_gradient_animation`|Gradient patterns with palette colors `palette_gradient`|Gradient patterns with palette colors
`palette_meter_animation`|Meter/bar patterns `palette_meter`|VU meter with gradient and peak hold
`gradient_meter_animation`|VU meter with gradient and peak hold `wave`|Wave motion effects
`wave_animation`|Wave motion effects
## Documentation ## Documentation

View File

@ -27,7 +27,7 @@ color palette_pattern = rich_palette_color(
) )
# Create breathing animation using the palette # Create breathing animation using the palette
animation breathing = breathe_animation( animation breathing = breathe(
color=palette_pattern # base animation color=palette_pattern # base animation
min_brightness=100 # min brightness min_brightness=100 # min brightness
max_brightness=255 # max brightness max_brightness=255 # max brightness

View File

@ -9,16 +9,16 @@ color candy_white = 0xFFFFFF
# Create alternating red and white animation # Create alternating red and white animation
# Using multiple pulse positions to create stripes # Using multiple pulse positions to create stripes
animation stripe1 = beacon_animation(color=candy_red, pos=3, beacon_size=4, slew_size=1) animation stripe1 = beacon(color=candy_red, pos=3, beacon_size=4, slew_size=1)
animation stripe2 = beacon_animation(color=candy_white, pos=9, beacon_size=4, slew_size=1) animation stripe2 = beacon(color=candy_white, pos=9, beacon_size=4, slew_size=1)
animation stripe3 = beacon_animation(color=candy_red, pos=15, beacon_size=4, slew_size=1) animation stripe3 = beacon(color=candy_red, pos=15, beacon_size=4, slew_size=1)
animation stripe4 = beacon_animation(color=candy_white, pos=21, beacon_size=4, slew_size=1) animation stripe4 = beacon(color=candy_white, pos=21, beacon_size=4, slew_size=1)
animation stripe5 = beacon_animation(color=candy_red, pos=27, beacon_size=4, slew_size=1) animation stripe5 = beacon(color=candy_red, pos=27, beacon_size=4, slew_size=1)
animation stripe6 = beacon_animation(color=candy_white, pos=33, beacon_size=4, slew_size=1) animation stripe6 = beacon(color=candy_white, pos=33, beacon_size=4, slew_size=1)
animation stripe7 = beacon_animation(color=candy_red, pos=39, beacon_size=4, slew_size=1) animation stripe7 = beacon(color=candy_red, pos=39, beacon_size=4, slew_size=1)
animation stripe8 = beacon_animation(color=candy_white, pos=45, beacon_size=4, slew_size=1) animation stripe8 = beacon(color=candy_white, pos=45, beacon_size=4, slew_size=1)
animation stripe9 = beacon_animation(color=candy_red, pos=51, beacon_size=4, slew_size=1) animation stripe9 = beacon(color=candy_red, pos=51, beacon_size=4, slew_size=1)
animation stripe10 = beacon_animation(color=candy_white, pos=57, beacon_size=4, slew_size=1) animation stripe10 = beacon(color=candy_white, pos=57, beacon_size=4, slew_size=1)
# Add gentle movement to make it more dynamic # Add gentle movement to make it more dynamic
set move_speed = 8s set move_speed = 8s

View File

@ -26,7 +26,7 @@ animation ornaments = twinkle(
ornaments.priority = 10 ornaments.priority = 10
# Star on top (bright yellow pulse) # Star on top (bright yellow pulse)
animation tree_star = beacon_animation( animation tree_star = beacon(
color=0xFFFF00 # Bright yellow color=0xFFFF00 # Bright yellow
pos=58 # position (near the top) pos=58 # position (near the top)
beacon_size=3 # star size beacon_size=3 # star size
@ -45,7 +45,7 @@ snow_sparkles.priority = 15
# Garland effect - moving colored lights # Garland effect - moving colored lights
color garland_pattern = rich_palette_color(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( animation garland = comet(
color=garland_pattern # color source color=garland_pattern # color source
tail_length=6 # garland length (tail length) tail_length=6 # garland length (tail length)
speed=4s # slow movement (speed) speed=4s # slow movement (speed)

View File

@ -8,7 +8,7 @@ color space_blue = 0x000066 # Note: opaque 0xFF alpha channel is implicitly a
animation background = solid(color=space_blue) animation background = solid(color=space_blue)
# Main comet with bright white head # Main comet with bright white head
animation comet_main = comet_animation( animation comet_main = comet(
color=0xFFFFFF # White head color=0xFFFFFF # White head
tail_length=10 # tail length tail_length=10 # tail length
speed=2s # speed speed=2s # speed
@ -16,7 +16,7 @@ animation comet_main = comet_animation(
) )
# Secondary comet in different color, opposite direction # Secondary comet in different color, opposite direction
animation comet_secondary = comet_animation( animation comet_secondary = comet(
color=0xFF4500 # Orange head color=0xFF4500 # Orange head
tail_length=8 # shorter tail tail_length=8 # shorter tail
speed=3s # slower speed speed=3s # slower speed

View File

@ -32,7 +32,7 @@ var palette_pattern_ = animation.rich_palette_color(engine)
palette_pattern_.colors = breathe_palette_ # palette palette_pattern_.colors = breathe_palette_ # palette
palette_pattern_.period = 15000 # cycle period (defaults: smooth transition, 255 brightness) palette_pattern_.period = 15000 # cycle period (defaults: smooth transition, 255 brightness)
# Create breathing animation using the palette # Create breathing animation using the palette
var breathing_ = animation.breathe_animation(engine) var breathing_ = animation.breathe(engine)
breathing_.color = palette_pattern_ # base animation breathing_.color = palette_pattern_ # base animation
breathing_.min_brightness = 100 # min brightness breathing_.min_brightness = 100 # min brightness
breathing_.max_brightness = 255 # max brightness breathing_.max_brightness = 255 # max brightness
@ -80,7 +80,7 @@ color palette_pattern = rich_palette_color(
) )
# Create breathing animation using the palette # Create breathing animation using the palette
animation breathing = breathe_animation( animation breathing = breathe(
color=palette_pattern # base animation color=palette_pattern # base animation
min_brightness=100 # min brightness min_brightness=100 # min brightness
max_brightness=255 # max brightness max_brightness=255 # max brightness

View File

@ -17,52 +17,52 @@ var candy_red_ = 0xFFFF0000
var candy_white_ = 0xFFFFFFFF var candy_white_ = 0xFFFFFFFF
# Create alternating red and white animation # Create alternating red and white animation
# Using multiple pulse positions to create stripes # Using multiple pulse positions to create stripes
var stripe1_ = animation.beacon_animation(engine) var stripe1_ = animation.beacon(engine)
stripe1_.color = candy_red_ stripe1_.color = candy_red_
stripe1_.pos = 3 stripe1_.pos = 3
stripe1_.beacon_size = 4 stripe1_.beacon_size = 4
stripe1_.slew_size = 1 stripe1_.slew_size = 1
var stripe2_ = animation.beacon_animation(engine) var stripe2_ = animation.beacon(engine)
stripe2_.color = candy_white_ stripe2_.color = candy_white_
stripe2_.pos = 9 stripe2_.pos = 9
stripe2_.beacon_size = 4 stripe2_.beacon_size = 4
stripe2_.slew_size = 1 stripe2_.slew_size = 1
var stripe3_ = animation.beacon_animation(engine) var stripe3_ = animation.beacon(engine)
stripe3_.color = candy_red_ stripe3_.color = candy_red_
stripe3_.pos = 15 stripe3_.pos = 15
stripe3_.beacon_size = 4 stripe3_.beacon_size = 4
stripe3_.slew_size = 1 stripe3_.slew_size = 1
var stripe4_ = animation.beacon_animation(engine) var stripe4_ = animation.beacon(engine)
stripe4_.color = candy_white_ stripe4_.color = candy_white_
stripe4_.pos = 21 stripe4_.pos = 21
stripe4_.beacon_size = 4 stripe4_.beacon_size = 4
stripe4_.slew_size = 1 stripe4_.slew_size = 1
var stripe5_ = animation.beacon_animation(engine) var stripe5_ = animation.beacon(engine)
stripe5_.color = candy_red_ stripe5_.color = candy_red_
stripe5_.pos = 27 stripe5_.pos = 27
stripe5_.beacon_size = 4 stripe5_.beacon_size = 4
stripe5_.slew_size = 1 stripe5_.slew_size = 1
var stripe6_ = animation.beacon_animation(engine) var stripe6_ = animation.beacon(engine)
stripe6_.color = candy_white_ stripe6_.color = candy_white_
stripe6_.pos = 33 stripe6_.pos = 33
stripe6_.beacon_size = 4 stripe6_.beacon_size = 4
stripe6_.slew_size = 1 stripe6_.slew_size = 1
var stripe7_ = animation.beacon_animation(engine) var stripe7_ = animation.beacon(engine)
stripe7_.color = candy_red_ stripe7_.color = candy_red_
stripe7_.pos = 39 stripe7_.pos = 39
stripe7_.beacon_size = 4 stripe7_.beacon_size = 4
stripe7_.slew_size = 1 stripe7_.slew_size = 1
var stripe8_ = animation.beacon_animation(engine) var stripe8_ = animation.beacon(engine)
stripe8_.color = candy_white_ stripe8_.color = candy_white_
stripe8_.pos = 45 stripe8_.pos = 45
stripe8_.beacon_size = 4 stripe8_.beacon_size = 4
stripe8_.slew_size = 1 stripe8_.slew_size = 1
var stripe9_ = animation.beacon_animation(engine) var stripe9_ = animation.beacon(engine)
stripe9_.color = candy_red_ stripe9_.color = candy_red_
stripe9_.pos = 51 stripe9_.pos = 51
stripe9_.beacon_size = 4 stripe9_.beacon_size = 4
stripe9_.slew_size = 1 stripe9_.slew_size = 1
var stripe10_ = animation.beacon_animation(engine) var stripe10_ = animation.beacon(engine)
stripe10_.color = candy_white_ stripe10_.color = candy_white_
stripe10_.pos = 57 stripe10_.pos = 57
stripe10_.beacon_size = 4 stripe10_.beacon_size = 4
@ -165,16 +165,16 @@ color candy_white = 0xFFFFFF
# Create alternating red and white animation # Create alternating red and white animation
# Using multiple pulse positions to create stripes # Using multiple pulse positions to create stripes
animation stripe1 = beacon_animation(color=candy_red, pos=3, beacon_size=4, slew_size=1) animation stripe1 = beacon(color=candy_red, pos=3, beacon_size=4, slew_size=1)
animation stripe2 = beacon_animation(color=candy_white, pos=9, beacon_size=4, slew_size=1) animation stripe2 = beacon(color=candy_white, pos=9, beacon_size=4, slew_size=1)
animation stripe3 = beacon_animation(color=candy_red, pos=15, beacon_size=4, slew_size=1) animation stripe3 = beacon(color=candy_red, pos=15, beacon_size=4, slew_size=1)
animation stripe4 = beacon_animation(color=candy_white, pos=21, beacon_size=4, slew_size=1) animation stripe4 = beacon(color=candy_white, pos=21, beacon_size=4, slew_size=1)
animation stripe5 = beacon_animation(color=candy_red, pos=27, beacon_size=4, slew_size=1) animation stripe5 = beacon(color=candy_red, pos=27, beacon_size=4, slew_size=1)
animation stripe6 = beacon_animation(color=candy_white, pos=33, beacon_size=4, slew_size=1) animation stripe6 = beacon(color=candy_white, pos=33, beacon_size=4, slew_size=1)
animation stripe7 = beacon_animation(color=candy_red, pos=39, beacon_size=4, slew_size=1) animation stripe7 = beacon(color=candy_red, pos=39, beacon_size=4, slew_size=1)
animation stripe8 = beacon_animation(color=candy_white, pos=45, beacon_size=4, slew_size=1) animation stripe8 = beacon(color=candy_white, pos=45, beacon_size=4, slew_size=1)
animation stripe9 = beacon_animation(color=candy_red, pos=51, beacon_size=4, slew_size=1) animation stripe9 = beacon(color=candy_red, pos=51, beacon_size=4, slew_size=1)
animation stripe10 = beacon_animation(color=candy_white, pos=57, beacon_size=4, slew_size=1) animation stripe10 = beacon(color=candy_white, pos=57, beacon_size=4, slew_size=1)
# Add gentle movement to make it more dynamic # Add gentle movement to make it more dynamic
set move_speed = 8s set move_speed = 8s

View File

@ -36,7 +36,7 @@ ornaments_.density = 15 # density (many ornaments)
ornaments_.twinkle_speed = 800 # twinkle speed (slow twinkle) ornaments_.twinkle_speed = 800 # twinkle speed (slow twinkle)
ornaments_.priority = 10 ornaments_.priority = 10
# Star on top (bright yellow pulse) # Star on top (bright yellow pulse)
var tree_star_ = animation.beacon_animation(engine) var tree_star_ = animation.beacon(engine)
tree_star_.color = 0xFFFFFF00 # Bright yellow tree_star_.color = 0xFFFFFF00 # Bright yellow
tree_star_.pos = 58 # position (near the top) tree_star_.pos = 58 # position (near the top)
tree_star_.beacon_size = 3 # star size tree_star_.beacon_size = 3 # star size
@ -61,7 +61,7 @@ garland_pattern_.colors = ornament_colors_
garland_pattern_.period = 2000 garland_pattern_.period = 2000
garland_pattern_.transition_type = animation.LINEAR garland_pattern_.transition_type = animation.LINEAR
garland_pattern_.brightness = 200 garland_pattern_.brightness = 200
var garland_ = animation.comet_animation(engine) var garland_ = animation.comet(engine)
garland_.color = garland_pattern_ # color source garland_.color = garland_pattern_ # color source
garland_.tail_length = 6 # garland length (tail length) garland_.tail_length = 6 # garland length (tail length)
garland_.speed = 4000 # slow movement (speed) garland_.speed = 4000 # slow movement (speed)
@ -104,7 +104,7 @@ animation ornaments = twinkle(
ornaments.priority = 10 ornaments.priority = 10
# Star on top (bright yellow pulse) # Star on top (bright yellow pulse)
animation tree_star = beacon_animation( animation tree_star = beacon(
color=0xFFFF00 # Bright yellow color=0xFFFF00 # Bright yellow
pos=58 # position (near the top) pos=58 # position (near the top)
beacon_size=3 # star size beacon_size=3 # star size
@ -123,7 +123,7 @@ snow_sparkles.priority = 15
# Garland effect - moving colored lights # Garland effect - moving colored lights
color garland_pattern = rich_palette_color(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( animation garland = comet(
color=garland_pattern # color source color=garland_pattern # color source
tail_length=6 # garland length (tail length) tail_length=6 # garland length (tail length)
speed=4s # slow movement (speed) speed=4s # slow movement (speed)

View File

@ -17,13 +17,13 @@ var space_blue_ = 0xFF000066 # Note: opaque 0xFF alpha channel is implicitly ad
var background_ = animation.solid(engine) var background_ = animation.solid(engine)
background_.color = space_blue_ background_.color = space_blue_
# Main comet with bright white head # Main comet with bright white head
var comet_main_ = animation.comet_animation(engine) var comet_main_ = animation.comet(engine)
comet_main_.color = 0xFFFFFFFF # White head comet_main_.color = 0xFFFFFFFF # White head
comet_main_.tail_length = 10 # tail length comet_main_.tail_length = 10 # tail length
comet_main_.speed = 2000 # speed comet_main_.speed = 2000 # speed
comet_main_.priority = 7 comet_main_.priority = 7
# Secondary comet in different color, opposite direction # Secondary comet in different color, opposite direction
var comet_secondary_ = animation.comet_animation(engine) var comet_secondary_ = animation.comet(engine)
comet_secondary_.color = 0xFFFF4500 # Orange head comet_secondary_.color = 0xFFFF4500 # Orange head
comet_secondary_.tail_length = 8 # shorter tail comet_secondary_.tail_length = 8 # shorter tail
comet_secondary_.speed = 3000 # slower speed comet_secondary_.speed = 3000 # slower speed
@ -54,7 +54,7 @@ color space_blue = 0x000066 # Note: opaque 0xFF alpha channel is implicitly a
animation background = solid(color=space_blue) animation background = solid(color=space_blue)
# Main comet with bright white head # Main comet with bright white head
animation comet_main = comet_animation( animation comet_main = comet(
color=0xFFFFFF # White head color=0xFFFFFF # White head
tail_length=10 # tail length tail_length=10 # tail length
speed=2s # speed speed=2s # speed
@ -62,7 +62,7 @@ animation comet_main = comet_animation(
) )
# Secondary comet in different color, opposite direction # Secondary comet in different color, opposite direction
animation comet_secondary = comet_animation( animation comet_secondary = comet(
color=0xFF4500 # Orange head color=0xFF4500 # Orange head
tail_length=8 # shorter tail tail_length=8 # shorter tail
speed=3s # slower speed speed=3s # slower speed

View File

@ -12,13 +12,13 @@ This document contains a summary of the DSL compilation process, including symbo
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|----------------------|----------------------------|---------|-----------|------------| |----------------------|----------------------------|---------|-----------|------------|
| `breathe_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
| `breathe_blue` | color | | | | | `breathe_blue` | color | | | |
| `breathe_green` | color | | | | | `breathe_green` | color | | | |
| `breathe_orange` | color | | | | | `breathe_orange` | color | | | |
| `breathe_palette` | palette | | | | | `breathe_palette` | palette | | | |
| `breathe_purple` | color | | | | | `breathe_purple` | color | | | |
| `breathe_red` | color | | | | | `breathe_red` | color | | | |
| `breathe` | animation_constructor | ✓ | ⚠️ | ✓ |
| `breathing` | animation | | | | | `breathing` | animation | | | |
| `palette_pattern` | color | | | | | `palette_pattern` | color | | | |
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ | | `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
@ -37,8 +37,8 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------|----------------------------|---------|-----------|------------| |-----------------|----------------------------|---------|-----------|------------|
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `candy_red` | color | | | | | `candy_red` | color | | | |
| `candy_white` | color | | | | | `candy_white` | color | | | |
| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
@ -70,8 +70,8 @@ SUCCESS
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|----------------------|----------------------------|---------|-----------|------------| |----------------------|----------------------------|---------|-----------|------------|
| `LINEAR` | constant | ✓ | | | | `LINEAR` | constant | ✓ | | |
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `comet` | animation_constructor | ✓ | ⚠️ | ✓ |
| `garland_pattern` | color | | | | | `garland_pattern` | color | | | |
| `garland` | animation | | | | | `garland` | animation | | | |
| `ornament_colors` | palette | | | | | `ornament_colors` | palette | | | |
@ -101,10 +101,10 @@ SUCCESS
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|-------------------|-----------------------|---------|-----------|------------| |-------------------|-----------------------|---------|-----------|------------|
| `background` | animation | | | | | `background` | animation | | | |
| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
| `comet_main` | animation | | | | | `comet_main` | animation | | | |
| `comet_secondary` | animation | | | | | `comet_secondary` | animation | | | |
| `comet_sparkles` | animation | | | | | `comet_sparkles` | animation | | | |
| `comet` | animation_constructor | ✓ | ⚠️ | ✓ |
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ | | `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
| `space_blue` | color | | | | | `space_blue` | color | | | |
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ | | `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
@ -122,12 +122,12 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|-------------------|----------------------------|---------|-----------|------------| |-----------------|----------------------------|---------|-----------|------------|
| `abs` | math_function | ✓ | | ✓ | | `abs` | math_function | ✓ | | ✓ |
| `base_speed` | variable | | | | | `base_speed` | variable | | | |
| `blue` | color | ✓ | | | | `blue` | color | ✓ | | |
| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `comet` | animation_constructor | ✓ | ⚠️ | ✓ |
| `red` | color | ✓ | | | | `red` | color | ✓ | | |
| `stream1` | animation | | | | | `stream1` | animation | | | |
| `stream2` | animation | | | | | `stream2` | animation | | | |
@ -166,8 +166,8 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------|----------------------------|---------|-----------|------------| |-----------------|----------------------------|---------|-----------|------------|
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `color_cycle` | color_constructor | ✓ | ⚠️ | ✓ | | `color_cycle` | color_constructor | ✓ | ⚠️ | ✓ |
| `cosine_osc` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `cosine_osc` | value_provider_constructor | ✓ | ⚠️ | ✓ |
@ -199,8 +199,8 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------|----------------------------|---------|-----------|------------| |-----------------|----------------------------|---------|-----------|------------|
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `cosine_osc` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `cosine_osc` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `red_eye` | animation | | | | | `red_eye` | animation | | | |
@ -221,9 +221,9 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|------------------------------|----------------------------|---------|-----------|------------| |----------------------|----------------------------|---------|-----------|------------|
| `background` | animation | | | | | `background` | animation | | | |
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `cosine_osc` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `cosine_osc` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `eye_mask` | animation | | | | | `eye_mask` | animation | | | |
@ -231,7 +231,7 @@ SUCCESS
| `fire_color` | color | | | | | `fire_color` | color | | | |
| `fire_colors` | palette | | | | | `fire_colors` | palette | | | |
| `fire_pattern` | animation | | | | | `fire_pattern` | animation | | | |
| `palette_gradient_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `palette_gradient` | animation_constructor | ✓ | ⚠️ | ✓ |
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ | | `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ | | `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
| `strip_len` | value_provider | | | | | `strip_len` | value_provider | | | |
@ -322,7 +322,7 @@ SUCCESS
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|---------------------|----------------------------|---------|-----------|------------| |---------------------|----------------------------|---------|-----------|------------|
| `PALETTE_RAINBOW` | palette_constant | ✓ | | | | `PALETTE_RAINBOW` | palette_constant | ✓ | | |
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `col1` | color | | | | | `col1` | color | | | |
| `col2` | color | | | | | `col2` | color | | | |
@ -348,10 +348,10 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|---------------------------|----------------------------|---------|-----------|------------| |----------------------|----------------------------|---------|-----------|------------|
| `back_pattern` | animation | | | | | `back_pattern` | animation | | | |
| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `palette_meter_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `palette_meter` | animation_constructor | ✓ | ⚠️ | ✓ |
| `rainbow_with_white` | palette | | | | | `rainbow_with_white` | palette | | | |
| `rand_meter` | user_function | | | ✓ | | `rand_meter` | user_function | | | ✓ |
@ -370,7 +370,7 @@ SUCCESS
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|----------------------|----------------------------|---------|-----------|------------| |----------------------|----------------------------|---------|-----------|------------|
| `LINEAR` | constant | ✓ | | | | `LINEAR` | constant | ✓ | | |
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `disco_base` | animation | | | | | `disco_base` | animation | | | |
| `disco_colors` | palette | | | | | `disco_colors` | palette | | | |
| `disco_pulse` | animation | | | | | `disco_pulse` | animation | | | |
@ -467,9 +467,9 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------|----------------------------|---------|-----------|------------| |----------------|----------------------------|---------|-----------|------------|
| `background` | animation | | | | | `background` | animation | | | |
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `center_pulse` | animation | | | | | `center_pulse` | animation | | | |
| `heart_bg` | color | | | | | `heart_bg` | color | | | |
| `heart_glow` | animation | | | | | `heart_glow` | animation | | | |
@ -520,9 +520,9 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------------|----------------------------|---------|-----------|------------| |----------------------|----------------------------|---------|-----------|------------|
| `SINE` | constant | ✓ | | | | `SINE` | constant | ✓ | | |
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `blob1_pattern` | color | | | | | `blob1_pattern` | color | | | |
| `blob2_pattern` | color | | | | | `blob2_pattern` | color | | | |
| `blob3_pattern` | color | | | | | `blob3_pattern` | color | | | |
@ -532,8 +532,8 @@ SUCCESS
| `lava_blob2` | animation | | | | | `lava_blob2` | animation | | | |
| `lava_blob3` | animation | | | | | `lava_blob3` | animation | | | |
| `lava_colors` | palette | | | | | `lava_colors` | palette | | | |
| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ | | `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
| `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
| `shimmer_pattern` | color | | | | | `shimmer_pattern` | color | | | |
| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ | | `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
@ -551,14 +551,14 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------------|----------------------------|---------|-----------|------------| |---------------------|----------------------------|---------|-----------|------------|
| `SINE` | constant | ✓ | | | | `SINE` | constant | ✓ | | |
| `afterglow` | animation | | | | | `afterglow` | animation | | | |
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `distant_flash` | animation | | | | | `distant_flash` | animation | | | |
| `lightning_main` | animation | | | | | `lightning_main` | animation | | | |
| `lightning_partial` | animation | | | | | `lightning_partial` | animation | | | |
| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ | | `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
| `square` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `square` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `storm_bg` | animation | | | | | `storm_bg` | animation | | | |
@ -582,7 +582,7 @@ SUCCESS
| `LINEAR` | constant | ✓ | | | | `LINEAR` | constant | ✓ | | |
| `background` | animation | | | | | `background` | animation | | | |
| `code_flash` | animation | | | | | `code_flash` | animation | | | |
| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `comet` | animation_constructor | ✓ | ⚠️ | ✓ |
| `matrix_bg` | color | | | | | `matrix_bg` | color | | | |
| `matrix_greens` | palette | | | | | `matrix_greens` | palette | | | |
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ | | `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
@ -608,9 +608,9 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|-------------------|-----------------------|---------|-----------|------------| |----------------|-----------------------|---------|-----------|------------|
| `background` | animation | | | | | `background` | animation | | | |
| `comet_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `comet` | animation_constructor | ✓ | ⚠️ | ✓ |
| `meteor1` | animation | | | | | `meteor1` | animation | | | |
| `meteor2` | animation | | | | | `meteor2` | animation | | | |
| `meteor3` | animation | | | | | `meteor3` | animation | | | |
@ -634,15 +634,15 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------------|----------------------------|---------|-----------|------------| |----------------------|----------------------------|---------|-----------|------------|
| `LINEAR` | constant | ✓ | | | | `LINEAR` | constant | ✓ | | |
| `arc_sparkles` | animation | | | | | `arc_sparkles` | animation | | | |
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `neon_colors` | palette | | | | | `neon_colors` | palette | | | |
| `neon_main` | animation | | | | | `neon_main` | animation | | | |
| `neon_surge` | animation | | | | | `neon_surge` | animation | | | |
| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ | | `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
| `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
| `segment1` | animation | | | | | `segment1` | animation | | | |
| `segment2` | animation | | | | | `segment2` | animation | | | |
| `segment3` | animation | | | | | `segment3` | animation | | | |
@ -665,14 +665,14 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------------|----------------------------|---------|-----------|------------| |----------------------|----------------------------|---------|-----------|------------|
| `SINE` | constant | ✓ | | | | `SINE` | constant | ✓ | | |
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `foam` | animation | | | | | `foam` | animation | | | |
| `ocean_base` | animation | | | | | `ocean_base` | animation | | | |
| `ocean_colors` | palette | | | | | `ocean_colors` | palette | | | |
| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ | | `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
| `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
| `sawtooth` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `sawtooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ | | `twinkle` | animation_constructor | ✓ | ⚠️ | ✓ |
| `wave1_pattern` | color | | | | | `wave1_pattern` | color | | | |
@ -693,13 +693,13 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------------|-----------------------|---------|-----------|------------| |----------------|-----------------------|---------|-----------|------------|
| `fire_anim` | animation | | | | | `fire_anim` | animation | | | |
| `fire_colors` | palette | | | | | `fire_colors` | palette | | | |
| `ocean_anim` | animation | | | | | `ocean_anim` | animation | | | |
| `ocean_colors` | palette | | | | | `ocean_colors` | palette | | | |
| `palette_demo` | sequence | | | | | `palette_demo` | sequence | | | |
| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
### Compilation Output ### Compilation Output
@ -714,7 +714,7 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------------|-----------------------|---------|-----------|------------| |----------------------|-----------------------|---------|-----------|------------|
| `SINE` | constant | ✓ | | | | `SINE` | constant | ✓ | | |
| `aurora_borealis` | palette | | | | | `aurora_borealis` | palette | | | |
| `aurora_lights` | animation | | | | | `aurora_lights` | animation | | | |
@ -729,8 +729,8 @@ SUCCESS
| `orange` | color | ✓ | | | | `orange` | color | ✓ | | |
| `palette_showcase` | sequence | | | | | `palette_showcase` | sequence | | | |
| `purple` | color | ✓ | | | | `purple` | color | ✓ | | |
| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ | | `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
| `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
| `solid` | animation_constructor | ✓ | ⚠️ | ✓ | | `solid` | animation_constructor | ✓ | ⚠️ | ✓ |
| `sunset_glow` | animation | | | | | `sunset_glow` | animation | | | |
| `sunset_sky` | palette | | | | | `sunset_sky` | palette | | | |
@ -750,16 +750,16 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------------|----------------------------|---------|-----------|------------| |----------------------|----------------------------|---------|-----------|------------|
| `SINE` | constant | ✓ | | | | `SINE` | constant | ✓ | | |
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `plasma_base` | animation | | | | | `plasma_base` | animation | | | |
| `plasma_colors` | palette | | | | | `plasma_colors` | palette | | | |
| `plasma_wave1` | animation | | | | | `plasma_wave1` | animation | | | |
| `plasma_wave2` | animation | | | | | `plasma_wave2` | animation | | | |
| `plasma_wave3` | animation | | | | | `plasma_wave3` | animation | | | |
| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
| `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ | | `rich_palette_color` | color_constructor | ✓ | ⚠️ | ✓ |
| `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `wave1_pattern` | color | | | | | `wave1_pattern` | color | | | |
| `wave2_pattern` | color | | | | | `wave2_pattern` | color | | | |
@ -778,8 +778,8 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------|----------------------------|---------|-----------|------------| |----------------|----------------------------|---------|-----------|------------|
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `half_length` | variable | | | | | `half_length` | variable | | | |
| `left_red` | animation | | | | | `left_red` | animation | | | |
| `right_blue` | animation | | | | | `right_blue` | animation | | | |
@ -800,8 +800,8 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------|-----------------------|---------|-----------|------------| |----------------|-----------------------|---------|-----------|------------|
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `blue_custom` | color | | | | | `blue_custom` | color | | | |
| `center_pulse` | animation | | | | | `center_pulse` | animation | | | |
| `demo` | sequence | | | | | `demo` | sequence | | | |
@ -843,9 +843,9 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------|----------------------------|---------|-----------|------------| |-----------------|----------------------------|---------|-----------|------------|
| `background` | animation | | | | | `background` | animation | | | |
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `closure_value` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `pos_test` | value_provider | | | | | `pos_test` | value_provider | | | |
| `scanner_bg` | color | | | | | `scanner_bg` | color | | | |
@ -867,9 +867,10 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|-----------------------|----------------------------|---------|-----------|------------| |-------------------|----------------------------|---------|-----------|------------|
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `blue` | color | ✓ | | | | `blue` | color | ✓ | | |
| `breathe` | animation_constructor | ✓ | ⚠️ | ✓ |
| `brightness_demo` | sequence | | | | | `brightness_demo` | sequence | | | |
| `brightness_high` | variable | | | | | `brightness_high` | variable | | | |
| `brightness_low` | variable | | | | | `brightness_low` | variable | | | |
@ -883,7 +884,6 @@ SUCCESS
| `green` | color | ✓ | | | | `green` | color | ✓ | | |
| `main_demo` | sequence | | | | | `main_demo` | sequence | | | |
| `multi_change` | sequence | | | | | `multi_change` | sequence | | | |
| `pulsating_animation` | animation_constructor | ✓ | ⚠️ | ✓ |
| `pulse_demo` | animation | | | | | `pulse_demo` | animation | | | |
| `red_eye` | animation | | | | | `red_eye` | animation | | | |
| `red` | color | ✓ | | | | `red` | color | ✓ | | |
@ -908,7 +908,7 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------------|-----------------------|---------|-----------|------------| |-----------------|-----------------------|---------|-----------|------------|
| `blue` | color | ✓ | | | | `blue` | color | ✓ | | |
| `demo` | sequence | | | | | `demo` | sequence | | | |
| `green` | color | ✓ | | | | `green` | color | ✓ | | |
@ -916,7 +916,7 @@ SUCCESS
| `rainbow_cycle` | animation | | | | | `rainbow_cycle` | animation | | | |
| `rainbow` | palette | | | | | `rainbow` | palette | | | |
| `red` | color | ✓ | | | | `red` | color | ✓ | | |
| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
| `yellow` | color | ✓ | | | | `yellow` | color | ✓ | | |
### Compilation Output ### Compilation Output
@ -932,11 +932,11 @@ SUCCESS
## Symbol Table ## Symbol Table
| Symbol | Type | Builtin | Dangerous | Takes Args | | Symbol | Type | Builtin | Dangerous | Takes Args |
|--------------------------|----------------------------|---------|-----------|------------| |-------------------|----------------------------|---------|-----------|------------|
| `beacon_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `beacon` | animation_constructor | ✓ | ⚠️ | ✓ |
| `daylight_colors` | palette | | | | | `daylight_colors` | palette | | | |
| `daylight_cycle` | animation | | | | | `daylight_cycle` | animation | | | |
| `rich_palette_animation` | animation_constructor | ✓ | ⚠️ | ✓ | | `rich_palette` | animation_constructor | ✓ | ⚠️ | ✓ |
| `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ | | `smooth` | value_provider_constructor | ✓ | ⚠️ | ✓ |
| `stars` | animation | | | | | `stars` | animation | | | |
| `sun_glow` | animation | | | | | `sun_glow` | animation | | | |

View File

@ -14,14 +14,14 @@ var engine = animation.init_strip()
var strip_len_ = animation.strip_length(engine) var strip_len_ = animation.strip_length(engine)
# Create animation with computed values # Create animation with computed values
var stream1_ = animation.comet_animation(engine) var stream1_ = animation.comet(engine)
stream1_.color = 0xFFFF0000 stream1_.color = 0xFFFF0000
stream1_.tail_length = animation.create_closure_value(engine, def (engine) return animation._math.abs(animation.resolve(strip_len_) / 4) end) # computed value stream1_.tail_length = animation.create_closure_value(engine, def (engine) return animation._math.abs(animation.resolve(strip_len_) / 4) end) # computed value
stream1_.speed = 1.5 stream1_.speed = 1.5
stream1_.priority = 10 stream1_.priority = 10
# More complex computed values # More complex computed values
var base_speed_ = 2.0 var base_speed_ = 2.0
var stream2_ = animation.comet_animation(engine) var stream2_ = animation.comet(engine)
stream2_.color = 0xFF0000FF stream2_.color = 0xFF0000FF
stream2_.tail_length = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) / 8 + (2 * animation.resolve(strip_len_)) - 10 end) # computed with addition stream2_.tail_length = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) / 8 + (2 * animation.resolve(strip_len_)) - 10 end) # computed with addition
stream2_.speed = animation.create_closure_value(engine, def (engine) return animation.resolve(base_speed_) * 1.5 end) # computed with multiplication stream2_.speed = animation.create_closure_value(engine, def (engine) return animation.resolve(base_speed_) * 1.5 end) # computed with multiplication
@ -44,7 +44,7 @@ engine.run()
set strip_len = strip_length() set strip_len = strip_length()
# Create animation with computed values # Create animation with computed values
animation stream1 = comet_animation( animation stream1 = comet(
color=red color=red
tail_length=abs(strip_len / 4) # computed value tail_length=abs(strip_len / 4) # computed value
speed=1.5 speed=1.5
@ -53,7 +53,7 @@ animation stream1 = comet_animation(
# More complex computed values # More complex computed values
set base_speed = 2.0 set base_speed = 2.0
animation stream2 = comet_animation( animation stream2 = comet(
color=blue color=blue
tail_length=strip_len / 8 + (2 * strip_len) -10 # computed with addition tail_length=strip_len / 8 + (2 * strip_len) -10 # computed with addition
speed=base_speed * 1.5 # computed with multiplication speed=base_speed * 1.5 # computed with multiplication

View File

@ -21,7 +21,7 @@ class cylon_animation : animation.engine_proxy
var engine = self # using 'self' as a proxy to engine object (instead of 'self.engine') var engine = self # using 'self' as a proxy to engine object (instead of 'self.engine')
var strip_len_ = animation.strip_length(engine) var strip_len_ = animation.strip_length(engine)
var eye_animation_ = animation.beacon_animation(engine) var eye_animation_ = animation.beacon(engine)
eye_animation_.color = animation.create_closure_value(engine, def (engine) return self.eye_color end) eye_animation_.color = animation.create_closure_value(engine, def (engine) return self.eye_color end)
eye_animation_.back_color = animation.create_closure_value(engine, def (engine) return self.back_color end) eye_animation_.back_color = animation.create_closure_value(engine, def (engine) return self.back_color end)
eye_animation_.pos = (def (engine) eye_animation_.pos = (def (engine)
@ -60,7 +60,7 @@ template animation cylon {
set strip_len = strip_length() set strip_len = strip_length()
animation eye_animation = beacon_animation( animation eye_animation = beacon(
color = eye_color color = eye_color
back_color = back_color back_color = back_color
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = period) pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = period)

View File

@ -31,7 +31,7 @@ var triangle_val_ = (def (engine)
provider.duration = eye_duration_ provider.duration = eye_duration_
return provider return provider
end)(engine) end)(engine)
var red_eye_ = animation.beacon_animation(engine) var red_eye_ = animation.beacon(engine)
red_eye_.color = eye_color_ # palette that will advance when we do `eye_color.next = 1` red_eye_.color = eye_color_ # palette that will advance when we do `eye_color.next = 1`
red_eye_.pos = cosine_val_ # oscillator for position red_eye_.pos = cosine_val_ # oscillator for position
red_eye_.beacon_size = 3 # small 3 pixels eye red_eye_.beacon_size = 3 # small 3 pixels eye
@ -63,7 +63,7 @@ color eye_color = color_cycle(colors=eye_palette, period=0)
set cosine_val = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = eye_duration) set cosine_val = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = eye_duration)
set triangle_val = triangle(min_value = 0, max_value = strip_len - 2, duration = eye_duration) set triangle_val = triangle(min_value = 0, max_value = strip_len - 2, duration = eye_duration)
animation red_eye = beacon_animation( animation red_eye = beacon(
color = eye_color # palette that will advance when we do `eye_color.next = 1` color = eye_color # palette that will advance when we do `eye_color.next = 1`
pos = cosine_val # oscillator for position pos = cosine_val # oscillator for position
beacon_size = 3 # small 3 pixels eye beacon_size = 3 # small 3 pixels eye

View File

@ -13,7 +13,7 @@ var engine = animation.init_strip()
var strip_len_ = animation.strip_length(engine) var strip_len_ = animation.strip_length(engine)
# Base aurora animation with slow flowing colors # Base aurora animation with slow flowing colors
var red_eye_ = animation.beacon_animation(engine) var red_eye_ = animation.beacon(engine)
red_eye_.color = 0xFFFF0000 red_eye_.color = 0xFFFF0000
red_eye_.pos = (def (engine) red_eye_.pos = (def (engine)
var provider = animation.cosine_osc(engine) var provider = animation.cosine_osc(engine)
@ -35,7 +35,7 @@ engine.run()
set strip_len = strip_length() set strip_len = strip_length()
# Base aurora animation with slow flowing colors # Base aurora animation with slow flowing colors
animation red_eye = beacon_animation( animation red_eye = beacon(
color = red color = red
pos = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = 5s) pos = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = 5s)
beacon_size = 3 # small 3 pixels eye beacon_size = 3 # small 3 pixels eye

View File

@ -30,14 +30,14 @@ var eye_pos_ = (def (engine)
provider.duration = 6000 provider.duration = 6000
return provider return provider
end)(engine) end)(engine)
var eye_mask_ = animation.beacon_animation(engine) var eye_mask_ = animation.beacon(engine)
eye_mask_.color = 0xFFFFFFFF eye_mask_.color = 0xFFFFFFFF
eye_mask_.back_color = 0x00000000 eye_mask_.back_color = 0x00000000
eye_mask_.pos = eye_pos_ eye_mask_.pos = eye_pos_
eye_mask_.beacon_size = 4 # small 3 pixels eye eye_mask_.beacon_size = 4 # small 3 pixels eye
eye_mask_.slew_size = 2 # with 2 pixel shading around eye_mask_.slew_size = 2 # with 2 pixel shading around
eye_mask_.priority = 5 eye_mask_.priority = 5
var fire_pattern_ = animation.palette_gradient_animation(engine) var fire_pattern_ = animation.palette_gradient(engine)
fire_pattern_.color_source = fire_color_ fire_pattern_.color_source = fire_color_
fire_pattern_.spatial_period = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) / 4 end) fire_pattern_.spatial_period = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) / 4 end)
fire_pattern_.opacity = eye_mask_ fire_pattern_.opacity = eye_mask_
@ -64,7 +64,7 @@ animation background = solid(color=0x000088, priority=20)
run background run background
set eye_pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 6s) set eye_pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 6s)
animation eye_mask = beacon_animation( animation eye_mask = beacon(
color = white color = white
back_color = transparent back_color = transparent
pos = eye_pos pos = eye_pos
@ -73,7 +73,7 @@ animation eye_mask = beacon_animation(
priority = 5 priority = 5
) )
animation fire_pattern = palette_gradient_animation( animation fire_pattern = palette_gradient(
color_source = fire_color color_source = fire_color
spatial_period = strip_len / 4 spatial_period = strip_len / 4
opacity = eye_mask opacity = eye_mask

View File

@ -28,7 +28,7 @@ var col2_ = animation.color_cycle(engine)
col2_.colors = animation.PALETTE_RAINBOW col2_.colors = animation.PALETTE_RAINBOW
col2_.period = 0 col2_.period = 0
col2_.next = 1 col2_.next = 1
var shutter_animation_ = animation.beacon_animation(engine) var shutter_animation_ = animation.beacon(engine)
shutter_animation_.color = col1_ shutter_animation_.color = col1_
shutter_animation_.back_color = col2_ shutter_animation_.back_color = col2_
shutter_animation_.pos = 0 shutter_animation_.pos = 0
@ -61,7 +61,7 @@ set duration = 3s
color col2 = color_cycle(colors=PALETTE_RAINBOW, period=0) color col2 = color_cycle(colors=PALETTE_RAINBOW, period=0)
col2.next = 1 col2.next = 1
animation shutter_animation = beacon_animation( animation shutter_animation = beacon(
color = col1 color = col1
back_color = col2 back_color = col2
pos = 0 pos = 0

View File

@ -36,7 +36,7 @@ class shutter_bidir_animation : animation.engine_proxy
col2_.period = 0 col2_.period = 0
col2_.next = 1 col2_.next = 1
# shutter moving from left to right # shutter moving from left to right
var shutter_lr_animation_ = animation.beacon_animation(engine) var shutter_lr_animation_ = animation.beacon(engine)
shutter_lr_animation_.color = col2_ shutter_lr_animation_.color = col2_
shutter_lr_animation_.back_color = col1_ shutter_lr_animation_.back_color = col1_
shutter_lr_animation_.pos = 0 shutter_lr_animation_.pos = 0
@ -44,7 +44,7 @@ class shutter_bidir_animation : animation.engine_proxy
shutter_lr_animation_.slew_size = 0 shutter_lr_animation_.slew_size = 0
shutter_lr_animation_.priority = 5 shutter_lr_animation_.priority = 5
# shutter moving from right to left # shutter moving from right to left
var shutter_rl_animation_ = animation.beacon_animation(engine) var shutter_rl_animation_ = animation.beacon(engine)
shutter_rl_animation_.color = col1_ shutter_rl_animation_.color = col1_
shutter_rl_animation_.back_color = col2_ shutter_rl_animation_.back_color = col2_
shutter_rl_animation_.pos = 0 shutter_rl_animation_.pos = 0
@ -105,7 +105,7 @@ template animation shutter_bidir {
col2.next = 1 col2.next = 1
# shutter moving from left to right # shutter moving from left to right
animation shutter_lr_animation = beacon_animation( animation shutter_lr_animation = beacon(
color = col2 color = col2
back_color = col1 back_color = col1
pos = 0 pos = 0
@ -115,7 +115,7 @@ template animation shutter_bidir {
) )
# shutter moving from right to left # shutter moving from right to left
animation shutter_rl_animation = beacon_animation( animation shutter_rl_animation = beacon(
color = col1 color = col1
back_color = col2 back_color = col2
pos = 0 pos = 0

View File

@ -37,7 +37,7 @@ class shutter_central_animation : animation.engine_proxy
col2_.period = 0 col2_.period = 0
col2_.next = 1 col2_.next = 1
# shutter moving in to out # shutter moving in to out
var shutter_inout_animation_ = animation.beacon_animation(engine) var shutter_inout_animation_ = animation.beacon(engine)
shutter_inout_animation_.color = col2_ shutter_inout_animation_.color = col2_
shutter_inout_animation_.back_color = col1_ shutter_inout_animation_.back_color = col1_
shutter_inout_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len2_) - (animation.resolve(shutter_size_) + 1) / 2 end) shutter_inout_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len2_) - (animation.resolve(shutter_size_) + 1) / 2 end)
@ -45,7 +45,7 @@ class shutter_central_animation : animation.engine_proxy
shutter_inout_animation_.slew_size = 0 shutter_inout_animation_.slew_size = 0
shutter_inout_animation_.priority = 5 shutter_inout_animation_.priority = 5
# shutter moving out to in # shutter moving out to in
var shutter_outin_animation_ = animation.beacon_animation(engine) var shutter_outin_animation_ = animation.beacon(engine)
shutter_outin_animation_.color = col1_ shutter_outin_animation_.color = col1_
shutter_outin_animation_.back_color = col2_ shutter_outin_animation_.back_color = col2_
shutter_outin_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len2_) - (animation.resolve(strip_len_) - animation.resolve(shutter_size_) + 1) / 2 end) shutter_outin_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len2_) - (animation.resolve(strip_len_) - animation.resolve(shutter_size_) + 1) / 2 end)
@ -106,7 +106,7 @@ template animation shutter_central {
col2.next = 1 col2.next = 1
# shutter moving in to out # shutter moving in to out
animation shutter_inout_animation = beacon_animation( animation shutter_inout_animation = beacon(
color = col2 color = col2
back_color = col1 back_color = col1
pos = strip_len2 - (shutter_size + 1) / 2 pos = strip_len2 - (shutter_size + 1) / 2
@ -116,7 +116,7 @@ template animation shutter_central {
) )
# shutter moving out to in # shutter moving out to in
animation shutter_outin_animation = beacon_animation( animation shutter_outin_animation = beacon(
color = col1 color = col1
back_color = col2 back_color = col2
pos = strip_len2 - (strip_len - shutter_size + 1) / 2 pos = strip_len2 - (strip_len - shutter_size + 1) / 2

View File

@ -36,7 +36,7 @@ class shutter_lr_animation : animation.engine_proxy
col2_.period = 0 col2_.period = 0
col2_.next = 1 col2_.next = 1
# shutter moving from left to right # shutter moving from left to right
var shutter_lr_animation_ = animation.beacon_animation(engine) var shutter_lr_animation_ = animation.beacon(engine)
shutter_lr_animation_.color = col2_ shutter_lr_animation_.color = col2_
shutter_lr_animation_.back_color = col1_ shutter_lr_animation_.back_color = col1_
shutter_lr_animation_.pos = 0 shutter_lr_animation_.pos = 0
@ -88,7 +88,7 @@ template animation shutter_lr {
col2.next = 1 col2.next = 1
# shutter moving from left to right # shutter moving from left to right
animation shutter_lr_animation = beacon_animation( animation shutter_lr_animation = beacon(
color = col2 color = col2
back_color = col1 back_color = col1
pos = 0 pos = 0

View File

@ -34,7 +34,7 @@ var rainbow_with_white_ = bytes(
"FFFC0000" # Red - need to add the first color at last position to ensure roll-over "FFFC0000" # Red - need to add the first color at last position to ensure roll-over
) )
# define a gradient across the whole strip # define a gradient across the whole strip
var back_pattern_ = animation.palette_meter_animation(engine) var back_pattern_ = animation.palette_meter(engine)
back_pattern_.level = animation.create_closure_value(engine, def (engine) return animation.get_user_function('rand_meter')(engine) end) back_pattern_.level = animation.create_closure_value(engine, def (engine) return animation.get_user_function('rand_meter')(engine) end)
engine.add(back_pattern_) engine.add(back_pattern_)
engine.run() engine.run()
@ -67,7 +67,7 @@ palette rainbow_with_white = [
] ]
# define a gradient across the whole strip # define a gradient across the whole strip
animation back_pattern = palette_meter_animation(level = rand_meter()) animation back_pattern = palette_meter(level = rand_meter())
run back_pattern run back_pattern

View File

@ -68,7 +68,7 @@ pulse_pattern_.colors = disco_colors_
pulse_pattern_.period = 800 pulse_pattern_.period = 800
pulse_pattern_.transition_type = animation.LINEAR pulse_pattern_.transition_type = animation.LINEAR
pulse_pattern_.brightness = 255 pulse_pattern_.brightness = 255
var disco_pulse_ = animation.beacon_animation(engine) var disco_pulse_ = animation.beacon(engine)
disco_pulse_.color = pulse_pattern_ # color source disco_pulse_.color = pulse_pattern_ # color source
disco_pulse_.pos = 4 # initial position disco_pulse_.pos = 4 # initial position
disco_pulse_.beacon_size = 8 # pulse width disco_pulse_.beacon_size = 8 # pulse width
@ -129,7 +129,7 @@ disco_sparkles.priority = 15
# Add moving pulse for extra effect # Add moving pulse for extra effect
color pulse_pattern = rich_palette_color(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( animation disco_pulse = beacon(
color=pulse_pattern # color source color=pulse_pattern # color source
pos=4 # initial position pos=4 # initial position
beacon_size=8 # pulse width beacon_size=8 # pulse width

View File

@ -57,7 +57,7 @@ heart_glow_.opacity = (def (engine)
end)(engine) # Gentle breathing glow end)(engine) # Gentle breathing glow
heart_glow_.priority = 5 heart_glow_.priority = 5
# Add center pulse for emphasis # Add center pulse for emphasis
var center_pulse_ = animation.beacon_animation(engine) var center_pulse_ = animation.beacon(engine)
center_pulse_.color = 0xFFFFFFFF # White center center_pulse_.color = 0xFFFFFFFF # White center
center_pulse_.pos = 30 # center of strip center_pulse_.pos = 30 # center of strip
center_pulse_.beacon_size = 4 # small center center_pulse_.beacon_size = 4 # small center
@ -108,7 +108,7 @@ heart_glow.opacity = smooth(min_value=30, max_value=100, duration=1s) # Gentle
heart_glow.priority = 5 heart_glow.priority = 5
# Add center pulse for emphasis # Add center pulse for emphasis
animation center_pulse = beacon_animation( animation center_pulse = beacon(
color=0xFFFFFF # White center color=0xFFFFFF # White center
pos=30 # center of strip pos=30 # center of strip
beacon_size=4 # small center beacon_size=4 # small center

View File

@ -21,7 +21,7 @@ var lava_colors_ = bytes(
"FFFFAA00" # Yellow-orange "FFFFAA00" # Yellow-orange
) )
# Base lava animation - very slow color changes # Base lava animation - very slow color changes
var lava_base_ = animation.rich_palette_animation(engine) var lava_base_ = animation.rich_palette(engine)
lava_base_.colors = lava_colors_ lava_base_.colors = lava_colors_
lava_base_.period = 15000 lava_base_.period = 15000
lava_base_.transition_type = animation.SINE lava_base_.transition_type = animation.SINE
@ -32,7 +32,7 @@ blob1_pattern_.colors = lava_colors_
blob1_pattern_.period = 12000 blob1_pattern_.period = 12000
blob1_pattern_.transition_type = animation.SINE blob1_pattern_.transition_type = animation.SINE
blob1_pattern_.brightness = 255 blob1_pattern_.brightness = 255
var lava_blob1_ = animation.beacon_animation(engine) var lava_blob1_ = animation.beacon(engine)
lava_blob1_.color = blob1_pattern_ # color source lava_blob1_.color = blob1_pattern_ # color source
lava_blob1_.pos = 9 # initial position lava_blob1_.pos = 9 # initial position
lava_blob1_.beacon_size = 18 # large blob lava_blob1_.beacon_size = 18 # large blob
@ -50,7 +50,7 @@ blob2_pattern_.colors = lava_colors_
blob2_pattern_.period = 10000 blob2_pattern_.period = 10000
blob2_pattern_.transition_type = animation.SINE blob2_pattern_.transition_type = animation.SINE
blob2_pattern_.brightness = 220 blob2_pattern_.brightness = 220
var lava_blob2_ = animation.beacon_animation(engine) var lava_blob2_ = animation.beacon(engine)
lava_blob2_.color = blob2_pattern_ # color source lava_blob2_.color = blob2_pattern_ # color source
lava_blob2_.pos = 46 # initial position lava_blob2_.pos = 46 # initial position
lava_blob2_.beacon_size = 14 # medium blob lava_blob2_.beacon_size = 14 # medium blob
@ -68,7 +68,7 @@ blob3_pattern_.colors = lava_colors_
blob3_pattern_.period = 8000 blob3_pattern_.period = 8000
blob3_pattern_.transition_type = animation.SINE blob3_pattern_.transition_type = animation.SINE
blob3_pattern_.brightness = 200 blob3_pattern_.brightness = 200
var lava_blob3_ = animation.beacon_animation(engine) var lava_blob3_ = animation.beacon(engine)
lava_blob3_.color = blob3_pattern_ # color source lava_blob3_.color = blob3_pattern_ # color source
lava_blob3_.pos = 25 # initial position lava_blob3_.pos = 25 # initial position
lava_blob3_.beacon_size = 10 # smaller blob lava_blob3_.beacon_size = 10 # smaller blob
@ -117,11 +117,11 @@ palette lava_colors = [
] ]
# Base lava animation - very slow color changes # Base lava animation - very slow color changes
animation lava_base = rich_palette_animation(colors=lava_colors, period=15s, transition_type=SINE, brightness=180) animation lava_base = rich_palette(colors=lava_colors, period=15s, transition_type=SINE, brightness=180)
# Add slow-moving lava blobs # Add slow-moving lava blobs
color blob1_pattern = rich_palette_color(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( animation lava_blob1 = beacon(
color=blob1_pattern # color source color=blob1_pattern # color source
pos=9 # initial position pos=9 # initial position
beacon_size=18 # large blob beacon_size=18 # large blob
@ -131,7 +131,7 @@ lava_blob1.priority = 10
lava_blob1.pos = smooth(min_value=9, max_value=51, duration=20s) # Very slow movement lava_blob1.pos = smooth(min_value=9, max_value=51, duration=20s) # Very slow movement
color blob2_pattern = rich_palette_color(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( animation lava_blob2 = beacon(
color=blob2_pattern # color source color=blob2_pattern # color source
pos=46 # initial position pos=46 # initial position
beacon_size=14 # medium blob beacon_size=14 # medium blob
@ -141,7 +141,7 @@ lava_blob2.priority = 8
lava_blob2.pos = smooth(min_value=46, max_value=14, duration=25s) # Opposite direction, slower lava_blob2.pos = smooth(min_value=46, max_value=14, duration=25s) # Opposite direction, slower
color blob3_pattern = rich_palette_color(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( animation lava_blob3 = beacon(
color=blob3_pattern # color source color=blob3_pattern # color source
pos=25 # initial position pos=25 # initial position
beacon_size=10 # smaller blob beacon_size=10 # smaller blob

View File

@ -18,7 +18,7 @@ var storm_colors_ = bytes(
"80110022" # Dark purple "80110022" # Dark purple
"FF220033" # Slightly lighter purple "FF220033" # Slightly lighter purple
) )
var storm_bg_ = animation.rich_palette_animation(engine) var storm_bg_ = animation.rich_palette(engine)
storm_bg_.colors = storm_colors_ storm_bg_.colors = storm_colors_
storm_bg_.period = 12000 storm_bg_.period = 12000
storm_bg_.transition_type = animation.SINE storm_bg_.transition_type = animation.SINE
@ -37,7 +37,7 @@ lightning_main_.opacity = (def (engine)
end)(engine) # Quick bright flashes end)(engine) # Quick bright flashes
lightning_main_.priority = 20 lightning_main_.priority = 20
# Secondary lightning - partial strip # Secondary lightning - partial strip
var lightning_partial_ = animation.beacon_animation(engine) var lightning_partial_ = animation.beacon(engine)
lightning_partial_.color = 0xFFFFFFAA # Slightly yellow white lightning_partial_.color = 0xFFFFFFAA # Slightly yellow white
lightning_partial_.pos = 30 # center position lightning_partial_.pos = 30 # center position
lightning_partial_.beacon_size = 20 # covers part of strip lightning_partial_.beacon_size = 20 # covers part of strip
@ -92,7 +92,7 @@ palette storm_colors = [
(255, 0x220033) # Slightly lighter purple (255, 0x220033) # Slightly lighter purple
] ]
animation storm_bg = rich_palette_animation(colors=storm_colors, period=12s, transition_type=SINE, brightness=100) animation storm_bg = rich_palette(colors=storm_colors, period=12s, transition_type=SINE, brightness=100)
# Random lightning flashes - full strip # Random lightning flashes - full strip
animation lightning_main = solid(color=0xFFFFFF) # Bright white animation lightning_main = solid(color=0xFFFFFF) # Bright white
@ -100,7 +100,7 @@ lightning_main.opacity = square(min_value=0, max_value=255, duration=80ms, duty_
lightning_main.priority = 20 lightning_main.priority = 20
# Secondary lightning - partial strip # Secondary lightning - partial strip
animation lightning_partial = beacon_animation( animation lightning_partial = beacon(
color=0xFFFFAA # Slightly yellow white color=0xFFFFAA # Slightly yellow white
pos=30 # center position pos=30 # center position
beacon_size=20 # covers part of strip beacon_size=20 # covers part of strip

View File

@ -31,7 +31,7 @@ stream1_pattern_.colors = matrix_greens_
stream1_pattern_.period = 2000 stream1_pattern_.period = 2000
stream1_pattern_.transition_type = animation.LINEAR stream1_pattern_.transition_type = animation.LINEAR
stream1_pattern_.brightness = 255 stream1_pattern_.brightness = 255
var stream1_ = animation.comet_animation(engine) var stream1_ = animation.comet(engine)
stream1_.color = stream1_pattern_ # color source stream1_.color = stream1_pattern_ # color source
stream1_.tail_length = 15 # long tail stream1_.tail_length = 15 # long tail
stream1_.speed = 1500 # speed stream1_.speed = 1500 # speed
@ -41,7 +41,7 @@ stream2_pattern_.colors = matrix_greens_
stream2_pattern_.period = 1800 stream2_pattern_.period = 1800
stream2_pattern_.transition_type = animation.LINEAR stream2_pattern_.transition_type = animation.LINEAR
stream2_pattern_.brightness = 200 stream2_pattern_.brightness = 200
var stream2_ = animation.comet_animation(engine) var stream2_ = animation.comet(engine)
stream2_.color = stream2_pattern_ # color source stream2_.color = stream2_pattern_ # color source
stream2_.tail_length = 12 # medium tail stream2_.tail_length = 12 # medium tail
stream2_.speed = 2200 # different speed stream2_.speed = 2200 # different speed
@ -51,7 +51,7 @@ stream3_pattern_.colors = matrix_greens_
stream3_pattern_.period = 2500 stream3_pattern_.period = 2500
stream3_pattern_.transition_type = animation.LINEAR stream3_pattern_.transition_type = animation.LINEAR
stream3_pattern_.brightness = 180 stream3_pattern_.brightness = 180
var stream3_ = animation.comet_animation(engine) var stream3_ = animation.comet(engine)
stream3_.color = stream3_pattern_ # color source stream3_.color = stream3_pattern_ # color source
stream3_.tail_length = 10 # shorter tail stream3_.tail_length = 10 # shorter tail
stream3_.speed = 1800 # another speed stream3_.speed = 1800 # another speed
@ -92,7 +92,7 @@ palette matrix_greens = [
# Create multiple cascading streams # Create multiple cascading streams
color stream1_pattern = rich_palette_color(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( animation stream1 = comet(
color=stream1_pattern # color source color=stream1_pattern # color source
tail_length=15 # long tail tail_length=15 # long tail
speed=1.5s # speed speed=1.5s # speed
@ -101,7 +101,7 @@ animation stream1 = comet_animation(
color stream2_pattern = rich_palette_color(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( animation stream2 = comet(
color=stream2_pattern # color source color=stream2_pattern # color source
tail_length=12 # medium tail tail_length=12 # medium tail
speed=2.2s # different speed speed=2.2s # different speed
@ -109,7 +109,7 @@ animation stream2 = comet_animation(
) )
color stream3_pattern = rich_palette_color(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( animation stream3 = comet(
color=stream3_pattern # color source color=stream3_pattern # color source
tail_length=10 # shorter tail tail_length=10 # shorter tail
speed=1.8s # another speed speed=1.8s # another speed

View File

@ -17,22 +17,22 @@ var space_bg_ = 0xFF000011
var background_ = animation.solid(engine) var background_ = animation.solid(engine)
background_.color = space_bg_ background_.color = space_bg_
# Multiple meteors with different speeds and colors # Multiple meteors with different speeds and colors
var meteor1_ = animation.comet_animation(engine) var meteor1_ = animation.comet(engine)
meteor1_.color = 0xFFFFFFFF # Bright white meteor1_.color = 0xFFFFFFFF # Bright white
meteor1_.tail_length = 12 # long trail meteor1_.tail_length = 12 # long trail
meteor1_.speed = 1500 # fast speed meteor1_.speed = 1500 # fast speed
meteor1_.priority = 15 meteor1_.priority = 15
var meteor2_ = animation.comet_animation(engine) var meteor2_ = animation.comet(engine)
meteor2_.color = 0xFFFFAA00 # Orange meteor2_.color = 0xFFFFAA00 # Orange
meteor2_.tail_length = 10 # medium trail meteor2_.tail_length = 10 # medium trail
meteor2_.speed = 2000 # medium speed meteor2_.speed = 2000 # medium speed
meteor2_.priority = 12 meteor2_.priority = 12
var meteor3_ = animation.comet_animation(engine) var meteor3_ = animation.comet(engine)
meteor3_.color = 0xFFAAAAFF # Blue-white meteor3_.color = 0xFFAAAAFF # Blue-white
meteor3_.tail_length = 8 # shorter trail meteor3_.tail_length = 8 # shorter trail
meteor3_.speed = 1800 # fast speed meteor3_.speed = 1800 # fast speed
meteor3_.priority = 10 meteor3_.priority = 10
var meteor4_ = animation.comet_animation(engine) var meteor4_ = animation.comet(engine)
meteor4_.color = 0xFFFFAAAA # Pink-white meteor4_.color = 0xFFFFAAAA # Pink-white
meteor4_.tail_length = 14 # long trail meteor4_.tail_length = 14 # long trail
meteor4_.speed = 2500 # slower speed meteor4_.speed = 2500 # slower speed
@ -71,28 +71,28 @@ color space_bg = 0x000011
animation background = solid(color=space_bg) animation background = solid(color=space_bg)
# Multiple meteors with different speeds and colors # Multiple meteors with different speeds and colors
animation meteor1 = comet_animation( animation meteor1 = comet(
color=0xFFFFFF # Bright white color=0xFFFFFF # Bright white
tail_length=12 # long trail tail_length=12 # long trail
speed=1.5s # fast speed speed=1.5s # fast speed
) )
meteor1.priority = 15 meteor1.priority = 15
animation meteor2 = comet_animation( animation meteor2 = comet(
color=0xFFAA00 # Orange color=0xFFAA00 # Orange
tail_length=10 # medium trail tail_length=10 # medium trail
speed=2s # medium speed speed=2s # medium speed
) )
meteor2.priority = 12 meteor2.priority = 12
animation meteor3 = comet_animation( animation meteor3 = comet(
color=0xAAAAFF # Blue-white color=0xAAAAFF # Blue-white
tail_length=8 # shorter trail tail_length=8 # shorter trail
speed=1.8s # fast speed speed=1.8s # fast speed
) )
meteor3.priority = 10 meteor3.priority = 10
animation meteor4 = comet_animation( animation meteor4 = comet(
color=0xFFAAAA # Pink-white color=0xFFAAAA # Pink-white
tail_length=14 # long trail tail_length=14 # long trail
speed=2.5s # slower speed speed=2.5s # slower speed

View File

@ -20,7 +20,7 @@ var neon_colors_ = bytes(
"FFFF8000" # Neon orange "FFFF8000" # Neon orange
) )
# Main neon glow with color cycling # Main neon glow with color cycling
var neon_main_ = animation.rich_palette_animation(engine) var neon_main_ = animation.rich_palette(engine)
neon_main_.colors = neon_colors_ neon_main_.colors = neon_colors_
neon_main_.period = 4000 neon_main_.period = 4000
neon_main_.transition_type = animation.LINEAR neon_main_.transition_type = animation.LINEAR
@ -52,19 +52,19 @@ segment_pattern_.colors = neon_colors_
segment_pattern_.period = 4000 segment_pattern_.period = 4000
segment_pattern_.transition_type = animation.LINEAR segment_pattern_.transition_type = animation.LINEAR
segment_pattern_.brightness = 255 segment_pattern_.brightness = 255
var segment1_ = animation.beacon_animation(engine) var segment1_ = animation.beacon(engine)
segment1_.color = segment_pattern_ # color source segment1_.color = segment_pattern_ # color source
segment1_.pos = 6 # position segment1_.pos = 6 # position
segment1_.beacon_size = 12 # segment length segment1_.beacon_size = 12 # segment length
segment1_.slew_size = 1 # sharp edges segment1_.slew_size = 1 # sharp edges
segment1_.priority = 10 segment1_.priority = 10
var segment2_ = animation.beacon_animation(engine) var segment2_ = animation.beacon(engine)
segment2_.color = segment_pattern_ # color source segment2_.color = segment_pattern_ # color source
segment2_.pos = 24 # position segment2_.pos = 24 # position
segment2_.beacon_size = 12 # segment length segment2_.beacon_size = 12 # segment length
segment2_.slew_size = 1 # sharp edges segment2_.slew_size = 1 # sharp edges
segment2_.priority = 10 segment2_.priority = 10
var segment3_ = animation.beacon_animation(engine) var segment3_ = animation.beacon(engine)
segment3_.color = segment_pattern_ # color source segment3_.color = segment_pattern_ # color source
segment3_.pos = 42 # position segment3_.pos = 42 # position
segment3_.beacon_size = 12 # segment length segment3_.beacon_size = 12 # segment length
@ -101,7 +101,7 @@ palette neon_colors = [
] ]
# Main neon glow with color cycling # Main neon glow with color cycling
animation neon_main = rich_palette_animation(colors=neon_colors, period=4s, transition_type=LINEAR, brightness=255) animation neon_main = rich_palette(colors=neon_colors, period=4s, transition_type=LINEAR, brightness=255)
# Add electrical flickering # Add electrical flickering
neon_main.opacity = smooth(min_value=220, max_value=255, duration=200ms) neon_main.opacity = smooth(min_value=220, max_value=255, duration=200ms)
@ -113,7 +113,7 @@ neon_surge.priority = 20
# Add neon tube segments with gaps # Add neon tube segments with gaps
color segment_pattern = rich_palette_color(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( animation segment1 = beacon(
color=segment_pattern # color source color=segment_pattern # color source
pos=6 # position pos=6 # position
beacon_size=12 # segment length beacon_size=12 # segment length
@ -121,7 +121,7 @@ animation segment1 = beacon_animation(
) )
segment1.priority = 10 segment1.priority = 10
animation segment2 = beacon_animation( animation segment2 = beacon(
color=segment_pattern # color source color=segment_pattern # color source
pos=24 # position pos=24 # position
beacon_size=12 # segment length beacon_size=12 # segment length
@ -129,7 +129,7 @@ animation segment2 = beacon_animation(
) )
segment2.priority = 10 segment2.priority = 10
animation segment3 = beacon_animation( animation segment3 = beacon(
color=segment_pattern # color source color=segment_pattern # color source
pos=42 # position pos=42 # position
beacon_size=12 # segment length beacon_size=12 # segment length

View File

@ -21,7 +21,7 @@ var ocean_colors_ = bytes(
"FF80FFFF" # Light cyan "FF80FFFF" # Light cyan
) )
# Base ocean animation with slow color cycling # Base ocean animation with slow color cycling
var ocean_base_ = animation.rich_palette_animation(engine) var ocean_base_ = animation.rich_palette(engine)
ocean_base_.colors = ocean_colors_ ocean_base_.colors = ocean_colors_
ocean_base_.period = 8000 ocean_base_.period = 8000
ocean_base_.transition_type = animation.SINE ocean_base_.transition_type = animation.SINE
@ -32,7 +32,7 @@ wave1_pattern_.colors = ocean_colors_
wave1_pattern_.period = 6000 wave1_pattern_.period = 6000
wave1_pattern_.transition_type = animation.SINE wave1_pattern_.transition_type = animation.SINE
wave1_pattern_.brightness = 255 wave1_pattern_.brightness = 255
var wave1_ = animation.beacon_animation(engine) var wave1_ = animation.beacon(engine)
wave1_.color = wave1_pattern_ # color source wave1_.color = wave1_pattern_ # color source
wave1_.pos = 0 # initial position wave1_.pos = 0 # initial position
wave1_.beacon_size = 12 # wave width wave1_.beacon_size = 12 # wave width
@ -50,7 +50,7 @@ wave2_pattern_.colors = ocean_colors_
wave2_pattern_.period = 4000 wave2_pattern_.period = 4000
wave2_pattern_.transition_type = animation.SINE wave2_pattern_.transition_type = animation.SINE
wave2_pattern_.brightness = 180 wave2_pattern_.brightness = 180
var wave2_ = animation.beacon_animation(engine) var wave2_ = animation.beacon(engine)
wave2_.color = wave2_pattern_ # color source wave2_.color = wave2_pattern_ # color source
wave2_.pos = 52 # initial position wave2_.pos = 52 # initial position
wave2_.beacon_size = 8 # smaller wave wave2_.beacon_size = 8 # smaller wave
@ -93,11 +93,11 @@ palette ocean_colors = [
] ]
# Base ocean animation with slow color cycling # Base ocean animation with slow color cycling
animation ocean_base = rich_palette_animation(colors=ocean_colors, period=8s, transition_type=SINE, brightness=200) animation ocean_base = rich_palette(colors=ocean_colors, period=8s, transition_type=SINE, brightness=200)
# Add wave motion with moving pulses # Add wave motion with moving pulses
color wave1_pattern = rich_palette_color(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( animation wave1 = beacon(
color=wave1_pattern # color source color=wave1_pattern # color source
pos=0 # initial position pos=0 # initial position
beacon_size=12 # wave width beacon_size=12 # wave width
@ -107,7 +107,7 @@ wave1.priority = 10
wave1.pos = sawtooth(min_value=0, max_value=48, duration=5s) # 60-12 = 48 wave1.pos = sawtooth(min_value=0, max_value=48, duration=5s) # 60-12 = 48
color wave2_pattern = rich_palette_color(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( animation wave2 = beacon(
color=wave2_pattern # color source color=wave2_pattern # color source
pos=52 # initial position pos=52 # initial position
beacon_size=8 # smaller wave beacon_size=8 # smaller wave

View File

@ -23,10 +23,10 @@ var ocean_colors_ = bytes(
"FF008000" # Green "FF008000" # Green
) )
# Create animations using the palettes # Create animations using the palettes
var fire_anim_ = animation.rich_palette_animation(engine) var fire_anim_ = animation.rich_palette(engine)
fire_anim_.colors = fire_colors_ fire_anim_.colors = fire_colors_
fire_anim_.period = 5000 fire_anim_.period = 5000
var ocean_anim_ = animation.rich_palette_animation(engine) var ocean_anim_ = animation.rich_palette(engine)
ocean_anim_.colors = ocean_colors_ ocean_anim_.colors = ocean_colors_
ocean_anim_.period = 8000 ocean_anim_.period = 8000
# Sequence to show both palettes # Sequence to show both palettes
@ -62,9 +62,9 @@ palette ocean_colors = [
] ]
# Create animations using the palettes # Create animations using the palettes
animation fire_anim = rich_palette_animation(colors=fire_colors, period=5s) animation fire_anim = rich_palette(colors=fire_colors, period=5s)
animation ocean_anim = rich_palette_animation(colors=ocean_colors, period=8s) animation ocean_anim = rich_palette(colors=ocean_colors, period=8s)
# Sequence to show both palettes # Sequence to show both palettes
sequence palette_demo { sequence palette_demo {

View File

@ -56,17 +56,17 @@ fire_effect_.color = (def (engine)
provider.period = 3000 provider.period = 3000
return provider return provider
end)(engine) end)(engine)
var ocean_waves_ = animation.rich_palette_animation(engine) var ocean_waves_ = animation.rich_palette(engine)
ocean_waves_.colors = ocean_depths_ ocean_waves_.colors = ocean_depths_
ocean_waves_.period = 8000 ocean_waves_.period = 8000
ocean_waves_.transition_type = animation.SINE ocean_waves_.transition_type = animation.SINE
ocean_waves_.brightness = 200 ocean_waves_.brightness = 200
var aurora_lights_ = animation.rich_palette_animation(engine) var aurora_lights_ = animation.rich_palette(engine)
aurora_lights_.colors = aurora_borealis_ aurora_lights_.colors = aurora_borealis_
aurora_lights_.period = 12000 aurora_lights_.period = 12000
aurora_lights_.transition_type = animation.SINE aurora_lights_.transition_type = animation.SINE
aurora_lights_.brightness = 180 aurora_lights_.brightness = 180
var sunset_glow_ = animation.rich_palette_animation(engine) var sunset_glow_ = animation.rich_palette(engine)
sunset_glow_.colors = sunset_sky_ sunset_glow_.colors = sunset_sky_
sunset_glow_.period = 6000 sunset_glow_.period = 6000
sunset_glow_.transition_type = animation.SINE sunset_glow_.transition_type = animation.SINE
@ -145,11 +145,11 @@ palette sunset_sky = [
# Create animations using each palette # Create animations using each palette
animation fire_effect = solid(color=rich_palette_color(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) animation ocean_waves = rich_palette(colors=ocean_depths, period=8s, transition_type=SINE, brightness=200)
animation aurora_lights = rich_palette_animation(colors=aurora_borealis, period=12s, transition_type=SINE, brightness=180) animation aurora_lights = rich_palette(colors=aurora_borealis, period=12s, transition_type=SINE, brightness=180)
animation sunset_glow = rich_palette_animation(colors=sunset_sky, period=6s, transition_type=SINE, brightness=220) animation sunset_glow = rich_palette(colors=sunset_sky, period=6s, transition_type=SINE, brightness=220)
# Sequence to showcase all palettes # Sequence to showcase all palettes
sequence palette_showcase { sequence palette_showcase {

View File

@ -22,7 +22,7 @@ var plasma_colors_ = bytes(
"FF0080FF" # Blue "FF0080FF" # Blue
) )
# Base plasma animation with medium speed # Base plasma animation with medium speed
var plasma_base_ = animation.rich_palette_animation(engine) var plasma_base_ = animation.rich_palette(engine)
plasma_base_.colors = plasma_colors_ plasma_base_.colors = plasma_colors_
plasma_base_.period = 6000 plasma_base_.period = 6000
plasma_base_.transition_type = animation.SINE plasma_base_.transition_type = animation.SINE
@ -33,7 +33,7 @@ wave1_pattern_.colors = plasma_colors_
wave1_pattern_.period = 4000 wave1_pattern_.period = 4000
wave1_pattern_.transition_type = animation.SINE wave1_pattern_.transition_type = animation.SINE
wave1_pattern_.brightness = 255 wave1_pattern_.brightness = 255
var plasma_wave1_ = animation.beacon_animation(engine) var plasma_wave1_ = animation.beacon(engine)
plasma_wave1_.color = wave1_pattern_ # color source plasma_wave1_.color = wave1_pattern_ # color source
plasma_wave1_.pos = 0 # initial position plasma_wave1_.pos = 0 # initial position
plasma_wave1_.beacon_size = 20 # wide wave plasma_wave1_.beacon_size = 20 # wide wave
@ -51,7 +51,7 @@ wave2_pattern_.colors = plasma_colors_
wave2_pattern_.period = 5000 wave2_pattern_.period = 5000
wave2_pattern_.transition_type = animation.SINE wave2_pattern_.transition_type = animation.SINE
wave2_pattern_.brightness = 180 wave2_pattern_.brightness = 180
var plasma_wave2_ = animation.beacon_animation(engine) var plasma_wave2_ = animation.beacon(engine)
plasma_wave2_.color = wave2_pattern_ # color source plasma_wave2_.color = wave2_pattern_ # color source
plasma_wave2_.pos = 45 # initial position plasma_wave2_.pos = 45 # initial position
plasma_wave2_.beacon_size = 15 # medium wave plasma_wave2_.beacon_size = 15 # medium wave
@ -69,7 +69,7 @@ wave3_pattern_.colors = plasma_colors_
wave3_pattern_.period = 3000 wave3_pattern_.period = 3000
wave3_pattern_.transition_type = animation.SINE wave3_pattern_.transition_type = animation.SINE
wave3_pattern_.brightness = 220 wave3_pattern_.brightness = 220
var plasma_wave3_ = animation.beacon_animation(engine) var plasma_wave3_ = animation.beacon(engine)
plasma_wave3_.color = wave3_pattern_ # color source plasma_wave3_.color = wave3_pattern_ # color source
plasma_wave3_.pos = 20 # initial position plasma_wave3_.pos = 20 # initial position
plasma_wave3_.beacon_size = 12 # smaller wave plasma_wave3_.beacon_size = 12 # smaller wave
@ -115,11 +115,11 @@ palette plasma_colors = [
] ]
# Base plasma animation with medium speed # Base plasma animation with medium speed
animation plasma_base = rich_palette_animation(colors=plasma_colors, period=6s, transition_type=SINE, brightness=200) animation plasma_base = rich_palette(colors=plasma_colors, period=6s, transition_type=SINE, brightness=200)
# Add multiple wave layers for complexity # Add multiple wave layers for complexity
color wave1_pattern = rich_palette_color(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( animation plasma_wave1 = beacon(
color=wave1_pattern # color source color=wave1_pattern # color source
pos=0 # initial position pos=0 # initial position
beacon_size=20 # wide wave beacon_size=20 # wide wave
@ -129,7 +129,7 @@ plasma_wave1.priority = 10
plasma_wave1.pos = smooth(min_value=0, max_value=40, duration=8s) plasma_wave1.pos = smooth(min_value=0, max_value=40, duration=8s)
color wave2_pattern = rich_palette_color(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( animation plasma_wave2 = beacon(
color=wave2_pattern # color source color=wave2_pattern # color source
pos=45 # initial position pos=45 # initial position
beacon_size=15 # medium wave beacon_size=15 # medium wave
@ -139,7 +139,7 @@ plasma_wave2.priority = 8
plasma_wave2.pos = smooth(min_value=45, max_value=15, duration=10s) # Opposite direction plasma_wave2.pos = smooth(min_value=45, max_value=15, duration=10s) # Opposite direction
color wave3_pattern = rich_palette_color(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( animation plasma_wave3 = beacon(
color=wave3_pattern # color source color=wave3_pattern # color source
pos=20 # initial position pos=20 # initial position
beacon_size=12 # smaller wave beacon_size=12 # smaller wave

View File

@ -15,7 +15,7 @@ var engine = animation.init_strip()
var half_length_ = 30 var half_length_ = 30
# Left side red flashing # Left side red flashing
var left_red_ = animation.beacon_animation(engine) var left_red_ = animation.beacon(engine)
left_red_.color = 0xFFFF0000 # Bright red left_red_.color = 0xFFFF0000 # Bright red
left_red_.pos = 15 # center of left half left_red_.pos = 15 # center of left half
left_red_.beacon_size = 15 # half the strip left_red_.beacon_size = 15 # half the strip
@ -30,7 +30,7 @@ left_red_.opacity = (def (engine)
return provider return provider
end)(engine) # 50% duty cycle end)(engine) # 50% duty cycle
# Right side blue flashing (opposite phase) # Right side blue flashing (opposite phase)
var right_blue_ = animation.beacon_animation(engine) var right_blue_ = animation.beacon(engine)
right_blue_.color = 0xFF0000FF # Bright blue right_blue_.color = 0xFF0000FF # Bright blue
right_blue_.pos = 45 # center of right half right_blue_.pos = 45 # center of right half
right_blue_.beacon_size = 15 # half the strip right_blue_.beacon_size = 15 # half the strip
@ -73,7 +73,7 @@ engine.run()
set half_length = 30 set half_length = 30
# Left side red flashing # Left side red flashing
animation left_red = beacon_animation( animation left_red = beacon(
color=0xFF0000 # Bright red color=0xFF0000 # Bright red
pos=15 # center of left half pos=15 # center of left half
beacon_size=15 # half the strip beacon_size=15 # half the strip
@ -83,7 +83,7 @@ left_red.priority = 10
left_red.opacity = square(min_value=0, max_value=255, duration=400ms, duty_cycle=50) # 50% duty cycle left_red.opacity = square(min_value=0, max_value=255, duration=400ms, duty_cycle=50) # 50% duty cycle
# Right side blue flashing (opposite phase) # Right side blue flashing (opposite phase)
animation right_blue = beacon_animation( animation right_blue = beacon(
color=0x0000FF # Bright blue color=0x0000FF # Bright blue
pos=45 # center of right half pos=45 # center of right half
beacon_size=15 # half the strip beacon_size=15 # half the strip

View File

@ -17,17 +17,17 @@ var red_custom_ = 0xFFFF0000
var blue_custom_ = 0xFF0000FF var blue_custom_ = 0xFF0000FF
var green_custom_ = 0xFF00FF00 var green_custom_ = 0xFF00FF00
# Create animations # Create animations
var left_pulse_ = animation.beacon_animation(engine) var left_pulse_ = animation.beacon(engine)
left_pulse_.color = red_custom_ left_pulse_.color = red_custom_
left_pulse_.pos = 15 left_pulse_.pos = 15
left_pulse_.beacon_size = 15 left_pulse_.beacon_size = 15
left_pulse_.slew_size = 3 left_pulse_.slew_size = 3
var center_pulse_ = animation.beacon_animation(engine) var center_pulse_ = animation.beacon(engine)
center_pulse_.color = blue_custom_ center_pulse_.color = blue_custom_
center_pulse_.pos = 30 center_pulse_.pos = 30
center_pulse_.beacon_size = 15 center_pulse_.beacon_size = 15
center_pulse_.slew_size = 3 center_pulse_.slew_size = 3
var right_pulse_ = animation.beacon_animation(engine) var right_pulse_ = animation.beacon(engine)
right_pulse_.color = green_custom_ right_pulse_.color = green_custom_
right_pulse_.pos = 45 right_pulse_.pos = 45
right_pulse_.beacon_size = 15 right_pulse_.beacon_size = 15
@ -71,9 +71,9 @@ color blue_custom = 0x0000FF
color green_custom = 0x00FF00 color green_custom = 0x00FF00
# Create animations # Create animations
animation left_pulse = beacon_animation(color=red_custom, pos=15, beacon_size=15, slew_size=3) animation left_pulse = beacon(color=red_custom, pos=15, beacon_size=15, slew_size=3)
animation center_pulse = beacon_animation(color=blue_custom, pos=30, beacon_size=15, slew_size=3) animation center_pulse = beacon(color=blue_custom, pos=30, beacon_size=15, slew_size=3)
animation right_pulse = beacon_animation(color=green_custom, pos=45, beacon_size=15, slew_size=3) animation right_pulse = beacon(color=green_custom, pos=45, beacon_size=15, slew_size=3)
# Set different opacities # Set different opacities
left_pulse.opacity = 255 # Full slew_size left_pulse.opacity = 255 # Full slew_size

View File

@ -17,7 +17,7 @@ var scanner_bg_ = 0xFF110000
var background_ = animation.solid(engine) var background_ = animation.solid(engine)
background_.color = scanner_bg_ background_.color = scanner_bg_
# Main scanner pulse that bounces # Main scanner pulse that bounces
var scanner_ = animation.beacon_animation(engine) var scanner_ = animation.beacon(engine)
scanner_.color = 0xFFFF0000 # Bright red scanner_.color = 0xFFFF0000 # Bright red
scanner_.pos = 2 # initial position scanner_.pos = 2 # initial position
scanner_.beacon_size = 3 # pulse width scanner_.beacon_size = 3 # pulse width
@ -32,7 +32,7 @@ scanner_.pos = (def (engine)
return provider return provider
end)(engine) end)(engine)
# Add trailing glow effect # Add trailing glow effect
var scanner_trail_ = animation.beacon_animation(engine) var scanner_trail_ = animation.beacon(engine)
scanner_trail_.color = 0xFF660000 # Dim red trail scanner_trail_.color = 0xFF660000 # Dim red trail
scanner_trail_.pos = 2 # initial position scanner_trail_.pos = 2 # initial position
scanner_trail_.beacon_size = 6 # wider trail scanner_trail_.beacon_size = 6 # wider trail
@ -65,7 +65,7 @@ color scanner_bg = 0x110000
animation background = solid(color=scanner_bg) animation background = solid(color=scanner_bg)
# Main scanner pulse that bounces # Main scanner pulse that bounces
animation scanner = beacon_animation( animation scanner = beacon(
color=0xFF0000 # Bright red color=0xFF0000 # Bright red
pos=2 # initial position pos=2 # initial position
beacon_size=3 # pulse width beacon_size=3 # pulse width
@ -77,7 +77,7 @@ scanner.priority = 10
scanner.pos = triangle(min_value=2, max_value=57, duration=2s) scanner.pos = triangle(min_value=2, max_value=57, duration=2s)
# Add trailing glow effect # Add trailing glow effect
animation scanner_trail = beacon_animation( animation scanner_trail = beacon(
color=0x660000 # Dim red trail color=0x660000 # Dim red trail
pos=2 # initial position pos=2 # initial position
beacon_size=6 # wider trail beacon_size=6 # wider trail

View File

@ -35,13 +35,13 @@ var eye_color_ = animation.color_cycle(engine)
eye_color_.colors = eye_palette_ eye_color_.colors = eye_palette_
eye_color_.period = 0 eye_color_.period = 0
# Create animations # Create animations
var red_eye_ = animation.beacon_animation(engine) var red_eye_ = animation.beacon(engine)
red_eye_.color = eye_color_ red_eye_.color = eye_color_
red_eye_.pos = cosine_val_ red_eye_.pos = cosine_val_
red_eye_.beacon_size = 3 red_eye_.beacon_size = 3
red_eye_.slew_size = 2 red_eye_.slew_size = 2
red_eye_.priority = 10 red_eye_.priority = 10
var pulse_demo_ = animation.pulsating_animation(engine) var pulse_demo_ = animation.breathe(engine)
pulse_demo_.color = 0xFF0000FF pulse_demo_.color = 0xFF0000FF
pulse_demo_.period = 2000 pulse_demo_.period = 2000
pulse_demo_.priority = 5 pulse_demo_.priority = 5
@ -129,7 +129,7 @@ palette eye_palette = [red, yellow, green, violet]
color eye_color = color_cycle(colors=eye_palette, period=0) color eye_color = color_cycle(colors=eye_palette, period=0)
# Create animations # Create animations
animation red_eye = beacon_animation( animation red_eye = beacon(
color=eye_color color=eye_color
pos=cosine_val pos=cosine_val
beacon_size=3 beacon_size=3
@ -137,7 +137,7 @@ animation red_eye = beacon_animation(
priority=10 priority=10
) )
animation pulse_demo = pulsating_animation( animation pulse_demo = breathe(
color=blue color=blue
period=2s period=2s
priority=5 priority=5

View File

@ -15,7 +15,7 @@ var engine = animation.init_strip()
var rainbow_ = bytes("00FF0000" "40FFA500" "80FFFF00" "C0008000" "FF0000FF") var rainbow_ = bytes("00FF0000" "40FFA500" "80FFFF00" "C0008000" "FF0000FF")
# Create an animation using the palette # Create an animation using the palette
var rainbow_cycle_ = animation.rich_palette_animation(engine) var rainbow_cycle_ = animation.rich_palette(engine)
rainbow_cycle_.colors = rainbow_ rainbow_cycle_.colors = rainbow_
rainbow_cycle_.period = 3000 rainbow_cycle_.period = 3000
# Simple sequence # Simple sequence
@ -41,7 +41,7 @@ palette rainbow = [
] ]
# Create an animation using the palette # Create an animation using the palette
animation rainbow_cycle = rich_palette_animation(colors=rainbow, period=3s) animation rainbow_cycle = rich_palette(colors=rainbow, period=3s)
# Simple sequence # Simple sequence
sequence demo { sequence demo {

View File

@ -25,11 +25,11 @@ var daylight_colors_ = bytes(
"FF220011" # Night - dark red "FF220011" # Night - dark red
) )
# Main daylight cycle - very slow transition # Main daylight cycle - very slow transition
var daylight_cycle_ = animation.rich_palette_animation(engine) var daylight_cycle_ = animation.rich_palette(engine)
daylight_cycle_.colors = daylight_colors_ daylight_cycle_.colors = daylight_colors_
daylight_cycle_.period = 60000 daylight_cycle_.period = 60000
# Add sun position effect - bright spot that moves # Add sun position effect - bright spot that moves
var sun_position_ = animation.beacon_animation(engine) var sun_position_ = animation.beacon(engine)
sun_position_.color = 0xFFFFFFAA # Bright yellow sun sun_position_.color = 0xFFFFFFAA # Bright yellow sun
sun_position_.pos = 5 # initial position sun_position_.pos = 5 # initial position
sun_position_.beacon_size = 8 # sun size sun_position_.beacon_size = 8 # sun size
@ -50,7 +50,7 @@ sun_position_.opacity = (def (engine)
return provider return provider
end)(engine) # Fade in and out end)(engine) # Fade in and out
# Add atmospheric glow around sun # Add atmospheric glow around sun
var sun_glow_ = animation.beacon_animation(engine) var sun_glow_ = animation.beacon(engine)
sun_glow_.color = 0xFFFFCC88 # Warm glow sun_glow_.color = 0xFFFFCC88 # Warm glow
sun_glow_.pos = 5 # initial position sun_glow_.pos = 5 # initial position
sun_glow_.beacon_size = 16 # larger glow sun_glow_.beacon_size = 16 # larger glow
@ -111,10 +111,10 @@ palette daylight_colors = [
] ]
# Main daylight cycle - very slow transition # Main daylight cycle - very slow transition
animation daylight_cycle = rich_palette_animation(colors=daylight_colors, period=60s) animation daylight_cycle = rich_palette(colors=daylight_colors, period=60s)
# Add sun position effect - bright spot that moves # Add sun position effect - bright spot that moves
animation sun_position = beacon_animation( animation sun_position = beacon(
color=0xFFFFAA # Bright yellow sun color=0xFFFFAA # Bright yellow sun
pos=5 # initial position pos=5 # initial position
beacon_size=8 # sun size beacon_size=8 # sun size
@ -125,7 +125,7 @@ sun_position.pos = smooth(min_value=5, max_value=55, duration=30s) # Sun arc ac
sun_position.opacity = smooth(min_value=0, max_value=255, duration=30s) # Fade in and out sun_position.opacity = smooth(min_value=0, max_value=255, duration=30s) # Fade in and out
# Add atmospheric glow around sun # Add atmospheric glow around sun
animation sun_glow = beacon_animation( animation sun_glow = beacon(
color=0xFFCC88 # Warm glow color=0xFFCC88 # Warm glow
pos=5 # initial position pos=5 # initial position
beacon_size=16 # larger glow beacon_size=16 # larger glow

View File

@ -21,7 +21,7 @@ class cylon_effect_animation : animation.engine_proxy
var engine = self # using 'self' as a proxy to engine object (instead of 'self.engine') var engine = self # using 'self' as a proxy to engine object (instead of 'self.engine')
var strip_len_ = animation.strip_length(engine) var strip_len_ = animation.strip_length(engine)
var eye_animation_ = animation.beacon_animation(engine) var eye_animation_ = animation.beacon(engine)
eye_animation_.color = animation.create_closure_value(engine, def (engine) return self.eye_color end) eye_animation_.color = animation.create_closure_value(engine, def (engine) return self.eye_color end)
eye_animation_.back_color = animation.create_closure_value(engine, def (engine) return self.back_color end) eye_animation_.back_color = animation.create_closure_value(engine, def (engine) return self.back_color end)
eye_animation_.pos = (def (engine) eye_animation_.pos = (def (engine)
@ -51,7 +51,7 @@ template animation cylon_effect {
set strip_len = strip_length() set strip_len = strip_length()
animation eye_animation = beacon_animation( animation eye_animation = beacon(
color = eye_color color = eye_color
back_color = back_color back_color = back_color
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = period) pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = period)

View File

@ -24,7 +24,7 @@ class rainbow_pulse_animation : animation.engine_proxy
cycle_color_.colors = animation.create_closure_value(engine, def (engine) return self.pal1 end) cycle_color_.colors = animation.create_closure_value(engine, def (engine) return self.pal1 end)
cycle_color_.period = animation.create_closure_value(engine, def (engine) return self.period end) cycle_color_.period = animation.create_closure_value(engine, def (engine) return self.period end)
# Create pulsing animation # Create pulsing animation
var pulse_ = animation.pulsating_animation(engine) var pulse_ = animation.breathe(engine)
pulse_.color = cycle_color_ pulse_.color = cycle_color_
pulse_.period = animation.create_closure_value(engine, def (engine) return self.period end) pulse_.period = animation.create_closure_value(engine, def (engine) return self.period end)
# Create background # Create background
@ -71,7 +71,7 @@ template animation rainbow_pulse {
color cycle_color = color_cycle(colors=pal1, period=period) color cycle_color = color_cycle(colors=pal1, period=period)
# Create pulsing animation # Create pulsing animation
animation pulse = pulsating_animation( animation pulse = breathe(
color=cycle_color color=cycle_color
period=period period=period
) )

View File

@ -36,7 +36,7 @@ class shutter_bidir_animation : animation.engine_proxy
col2_.period = 0 col2_.period = 0
col2_.next = 1 col2_.next = 1
# shutter moving from left to right # shutter moving from left to right
var shutter_lr_animation_ = animation.beacon_animation(engine) var shutter_lr_animation_ = animation.beacon(engine)
shutter_lr_animation_.color = col2_ shutter_lr_animation_.color = col2_
shutter_lr_animation_.back_color = col1_ shutter_lr_animation_.back_color = col1_
shutter_lr_animation_.pos = 0 shutter_lr_animation_.pos = 0
@ -44,7 +44,7 @@ class shutter_bidir_animation : animation.engine_proxy
shutter_lr_animation_.slew_size = 0 shutter_lr_animation_.slew_size = 0
shutter_lr_animation_.priority = 5 shutter_lr_animation_.priority = 5
# shutter moving from right to left # shutter moving from right to left
var shutter_rl_animation_ = animation.beacon_animation(engine) var shutter_rl_animation_ = animation.beacon(engine)
shutter_rl_animation_.color = col1_ shutter_rl_animation_.color = col1_
shutter_rl_animation_.back_color = col2_ shutter_rl_animation_.back_color = col2_
shutter_rl_animation_.pos = 0 shutter_rl_animation_.pos = 0
@ -106,7 +106,7 @@ template animation shutter_bidir {
col2.next = 1 col2.next = 1
# shutter moving from left to right # shutter moving from left to right
animation shutter_lr_animation = beacon_animation( animation shutter_lr_animation = beacon(
color = col2 color = col2
back_color = col1 back_color = col1
pos = 0 pos = 0
@ -116,7 +116,7 @@ template animation shutter_bidir {
) )
# shutter moving from right to left # shutter moving from right to left
animation shutter_rl_animation = beacon_animation( animation shutter_rl_animation = beacon(
color = col1 color = col1
back_color = col2 back_color = col2
pos = 0 pos = 0

View File

@ -36,7 +36,7 @@ class shutter_central_animation : animation.engine_proxy
col2_.period = 0 col2_.period = 0
col2_.next = 1 col2_.next = 1
# shutter moving from left to right # shutter moving from left to right
var shutter_central_animation_ = animation.beacon_animation(engine) var shutter_central_animation_ = animation.beacon(engine)
shutter_central_animation_.color = col2_ shutter_central_animation_.color = col2_
shutter_central_animation_.back_color = col1_ shutter_central_animation_.back_color = col1_
shutter_central_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) - animation.resolve(shutter_size_) / 2 end) shutter_central_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len_) - animation.resolve(shutter_size_) / 2 end)
@ -88,7 +88,7 @@ template animation shutter_central {
col2.next = 1 col2.next = 1
# shutter moving from left to right # shutter moving from left to right
animation shutter_central_animation = beacon_animation( animation shutter_central_animation = beacon(
color = col2 color = col2
back_color = col1 back_color = col1
pos = strip_len - shutter_size / 2 pos = strip_len - shutter_size / 2

View File

@ -36,7 +36,7 @@ class shutter_central_animation : animation.engine_proxy
col2_.period = 0 col2_.period = 0
col2_.next = 1 col2_.next = 1
# shutter moving in to out # shutter moving in to out
var shutter_inout_animation_ = animation.beacon_animation(engine) var shutter_inout_animation_ = animation.beacon(engine)
shutter_inout_animation_.color = col2_ shutter_inout_animation_.color = col2_
shutter_inout_animation_.back_color = col1_ shutter_inout_animation_.back_color = col1_
shutter_inout_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len2_) - (animation.resolve(shutter_size_) + 1) / 2 end) shutter_inout_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len2_) - (animation.resolve(shutter_size_) + 1) / 2 end)
@ -44,7 +44,7 @@ class shutter_central_animation : animation.engine_proxy
shutter_inout_animation_.slew_size = 0 shutter_inout_animation_.slew_size = 0
shutter_inout_animation_.priority = 5 shutter_inout_animation_.priority = 5
# shutter moving out to in # shutter moving out to in
var shutter_outin_animation_ = animation.beacon_animation(engine) var shutter_outin_animation_ = animation.beacon(engine)
shutter_outin_animation_.color = col1_ shutter_outin_animation_.color = col1_
shutter_outin_animation_.back_color = col2_ shutter_outin_animation_.back_color = col2_
shutter_outin_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len2_) - (animation.resolve(strip_len_) - animation.resolve(shutter_size_) + 1) / 2 end) shutter_outin_animation_.pos = animation.create_closure_value(engine, def (engine) return animation.resolve(strip_len2_) - (animation.resolve(strip_len_) - animation.resolve(shutter_size_) + 1) / 2 end)
@ -96,7 +96,7 @@ template animation shutter_central {
col2.next = 1 col2.next = 1
# shutter moving in to out # shutter moving in to out
animation shutter_inout_animation = beacon_animation( animation shutter_inout_animation = beacon(
color = col2 color = col2
back_color = col1 back_color = col1
pos = strip_len2 - (shutter_size + 1) / 2 pos = strip_len2 - (shutter_size + 1) / 2
@ -106,7 +106,7 @@ template animation shutter_central {
) )
# shutter moving out to in # shutter moving out to in
animation shutter_outin_animation = beacon_animation( animation shutter_outin_animation = beacon(
color = col1 color = col1
back_color = col2 back_color = col2
pos = strip_len2 - (strip_len - shutter_size + 1) / 2 pos = strip_len2 - (strip_len - shutter_size + 1) / 2

View File

@ -20,7 +20,7 @@ class pulse_effect_animation : animation.engine_proxy
def setup_template() def setup_template()
var engine = self # using 'self' as a proxy to engine object (instead of 'self.engine') var engine = self # using 'self' as a proxy to engine object (instead of 'self.engine')
var pulse_ = animation.pulsating_animation(engine) var pulse_ = animation.breathe(engine)
pulse_.color = animation.create_closure_value(engine, def (engine) return self.base_color end) pulse_.color = animation.create_closure_value(engine, def (engine) return self.base_color end)
pulse_.period = animation.create_closure_value(engine, def (engine) return self.period end) pulse_.period = animation.create_closure_value(engine, def (engine) return self.period end)
pulse_.opacity = animation.create_closure_value(engine, def (engine) return self.brightness end) pulse_.opacity = animation.create_closure_value(engine, def (engine) return self.brightness end)
@ -49,7 +49,7 @@ template animation pulse_effect {
param period type time param period type time
param brightness type percentage param brightness type percentage
animation pulse = pulsating_animation( animation pulse = breathe(
color=base_color color=base_color
period=period period=period
) )

View File

@ -20,7 +20,7 @@ class pulse_effect_animation : animation.engine_proxy
def setup_template() def setup_template()
var engine = self # using 'self' as a proxy to engine object (instead of 'self.engine') var engine = self # using 'self' as a proxy to engine object (instead of 'self.engine')
var pulse_ = animation.pulsating_animation(engine) var pulse_ = animation.breathe(engine)
pulse_.color = animation.create_closure_value(engine, def (engine) return self.base_color end) pulse_.color = animation.create_closure_value(engine, def (engine) return self.base_color end)
pulse_.period = animation.create_closure_value(engine, def (engine) return self.period end) pulse_.period = animation.create_closure_value(engine, def (engine) return self.period end)
pulse_.opacity = animation.create_closure_value(engine, def (engine) return self.brightness end) pulse_.opacity = animation.create_closure_value(engine, def (engine) return self.brightness end)
@ -49,7 +49,7 @@ template animation pulse_effect {
param period type time param period type time
param brightness type percentage param brightness type percentage
animation pulse = pulsating_animation( animation pulse = breathe(
color=base_color color=base_color
period=period period=period
) )

View File

@ -5,7 +5,7 @@
set strip_len = strip_length() set strip_len = strip_length()
# Create animation with computed values # Create animation with computed values
animation stream1 = comet_animation( animation stream1 = comet(
color=red color=red
tail_length=abs(strip_len / 4) # computed value tail_length=abs(strip_len / 4) # computed value
speed=1.5 speed=1.5
@ -14,7 +14,7 @@ animation stream1 = comet_animation(
# More complex computed values # More complex computed values
set base_speed = 2.0 set base_speed = 2.0
animation stream2 = comet_animation( animation stream2 = comet(
color=blue color=blue
tail_length=strip_len / 8 + (2 * strip_len) -10 # computed with addition tail_length=strip_len / 8 + (2 * strip_len) -10 # computed with addition
speed=base_speed * 1.5 # computed with multiplication speed=base_speed * 1.5 # computed with multiplication

View File

@ -8,7 +8,7 @@ template animation cylon {
set strip_len = strip_length() set strip_len = strip_length()
animation eye_animation = beacon_animation( animation eye_animation = beacon(
color = eye_color color = eye_color
back_color = back_color back_color = back_color
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = period) pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = period)

View File

@ -12,7 +12,7 @@ color eye_color = color_cycle(colors=eye_palette, period=0)
set cosine_val = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = eye_duration) set cosine_val = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = eye_duration)
set triangle_val = triangle(min_value = 0, max_value = strip_len - 2, duration = eye_duration) set triangle_val = triangle(min_value = 0, max_value = strip_len - 2, duration = eye_duration)
animation red_eye = beacon_animation( animation red_eye = beacon(
color = eye_color # palette that will advance when we do `eye_color.next = 1` color = eye_color # palette that will advance when we do `eye_color.next = 1`
pos = cosine_val # oscillator for position pos = cosine_val # oscillator for position
beacon_size = 3 # small 3 pixels eye beacon_size = 3 # small 3 pixels eye

View File

@ -4,7 +4,7 @@
set strip_len = strip_length() set strip_len = strip_length()
# Base aurora animation with slow flowing colors # Base aurora animation with slow flowing colors
animation red_eye = beacon_animation( animation red_eye = beacon(
color = red color = red
pos = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = 5s) pos = cosine_osc(min_value = 0, max_value = strip_len - 2, duration = 5s)
beacon_size = 3 # small 3 pixels eye beacon_size = 3 # small 3 pixels eye

View File

@ -15,7 +15,7 @@ animation background = solid(color=0x000088, priority=20)
run background run background
set eye_pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 6s) set eye_pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 6s)
animation eye_mask = beacon_animation( animation eye_mask = beacon(
color = white color = white
back_color = transparent back_color = transparent
pos = eye_pos pos = eye_pos
@ -24,7 +24,7 @@ animation eye_mask = beacon_animation(
priority = 5 priority = 5
) )
animation fire_pattern = palette_gradient_animation( animation fire_pattern = palette_gradient(
color_source = fire_color color_source = fire_color
spatial_period = strip_len / 4 spatial_period = strip_len / 4
opacity = eye_mask opacity = eye_mask

View File

@ -11,7 +11,7 @@ set duration = 3s
color col2 = color_cycle(colors=PALETTE_RAINBOW, period=0) color col2 = color_cycle(colors=PALETTE_RAINBOW, period=0)
col2.next = 1 col2.next = 1
animation shutter_animation = beacon_animation( animation shutter_animation = beacon(
color = col1 color = col1
back_color = col2 back_color = col2
pos = 0 pos = 0

View File

@ -14,7 +14,7 @@ template animation shutter_bidir {
col2.next = 1 col2.next = 1
# shutter moving from left to right # shutter moving from left to right
animation shutter_lr_animation = beacon_animation( animation shutter_lr_animation = beacon(
color = col2 color = col2
back_color = col1 back_color = col1
pos = 0 pos = 0
@ -24,7 +24,7 @@ template animation shutter_bidir {
) )
# shutter moving from right to left # shutter moving from right to left
animation shutter_rl_animation = beacon_animation( animation shutter_rl_animation = beacon(
color = col1 color = col1
back_color = col2 back_color = col2
pos = 0 pos = 0

View File

@ -15,7 +15,7 @@ template animation shutter_central {
col2.next = 1 col2.next = 1
# shutter moving in to out # shutter moving in to out
animation shutter_inout_animation = beacon_animation( animation shutter_inout_animation = beacon(
color = col2 color = col2
back_color = col1 back_color = col1
pos = strip_len2 - (shutter_size + 1) / 2 pos = strip_len2 - (shutter_size + 1) / 2
@ -25,7 +25,7 @@ template animation shutter_central {
) )
# shutter moving out to in # shutter moving out to in
animation shutter_outin_animation = beacon_animation( animation shutter_outin_animation = beacon(
color = col1 color = col1
back_color = col2 back_color = col2
pos = strip_len2 - (strip_len - shutter_size + 1) / 2 pos = strip_len2 - (strip_len - shutter_size + 1) / 2

View File

@ -14,7 +14,7 @@ template animation shutter_lr {
col2.next = 1 col2.next = 1
# shutter moving from left to right # shutter moving from left to right
animation shutter_lr_animation = beacon_animation( animation shutter_lr_animation = beacon(
color = col2 color = col2
back_color = col1 back_color = col1
pos = 0 pos = 0

View File

@ -24,6 +24,6 @@ palette rainbow_with_white = [
] ]
# define a gradient across the whole strip # define a gradient across the whole strip
animation back_pattern = palette_meter_animation(level = rand_meter()) animation back_pattern = palette_meter(level = rand_meter())
run back_pattern run back_pattern

View File

@ -37,7 +37,7 @@ disco_sparkles.priority = 15
# Add moving pulse for extra effect # Add moving pulse for extra effect
color pulse_pattern = rich_palette_color(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( animation disco_pulse = beacon(
color=pulse_pattern # color source color=pulse_pattern # color source
pos=4 # initial position pos=4 # initial position
beacon_size=8 # pulse width beacon_size=8 # pulse width

View File

@ -25,7 +25,7 @@ heart_glow.opacity = smooth(min_value=30, max_value=100, duration=1s) # Gentle
heart_glow.priority = 5 heart_glow.priority = 5
# Add center pulse for emphasis # Add center pulse for emphasis
animation center_pulse = beacon_animation( animation center_pulse = beacon(
color=0xFFFFFF # White center color=0xFFFFFF # White center
pos=30 # center of strip pos=30 # center of strip
beacon_size=4 # small center beacon_size=4 # small center

View File

@ -13,11 +13,11 @@ palette lava_colors = [
] ]
# Base lava animation - very slow color changes # Base lava animation - very slow color changes
animation lava_base = rich_palette_animation(colors=lava_colors, period=15s, transition_type=SINE, brightness=180) animation lava_base = rich_palette(colors=lava_colors, period=15s, transition_type=SINE, brightness=180)
# Add slow-moving lava blobs # Add slow-moving lava blobs
color blob1_pattern = rich_palette_color(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( animation lava_blob1 = beacon(
color=blob1_pattern # color source color=blob1_pattern # color source
pos=9 # initial position pos=9 # initial position
beacon_size=18 # large blob beacon_size=18 # large blob
@ -27,7 +27,7 @@ lava_blob1.priority = 10
lava_blob1.pos = smooth(min_value=9, max_value=51, duration=20s) # Very slow movement lava_blob1.pos = smooth(min_value=9, max_value=51, duration=20s) # Very slow movement
color blob2_pattern = rich_palette_color(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( animation lava_blob2 = beacon(
color=blob2_pattern # color source color=blob2_pattern # color source
pos=46 # initial position pos=46 # initial position
beacon_size=14 # medium blob beacon_size=14 # medium blob
@ -37,7 +37,7 @@ lava_blob2.priority = 8
lava_blob2.pos = smooth(min_value=46, max_value=14, duration=25s) # Opposite direction, slower lava_blob2.pos = smooth(min_value=46, max_value=14, duration=25s) # Opposite direction, slower
color blob3_pattern = rich_palette_color(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( animation lava_blob3 = beacon(
color=blob3_pattern # color source color=blob3_pattern # color source
pos=25 # initial position pos=25 # initial position
beacon_size=10 # smaller blob beacon_size=10 # smaller blob

View File

@ -10,7 +10,7 @@ palette storm_colors = [
(255, 0x220033) # Slightly lighter purple (255, 0x220033) # Slightly lighter purple
] ]
animation storm_bg = rich_palette_animation(colors=storm_colors, period=12s, transition_type=SINE, brightness=100) animation storm_bg = rich_palette(colors=storm_colors, period=12s, transition_type=SINE, brightness=100)
# Random lightning flashes - full strip # Random lightning flashes - full strip
animation lightning_main = solid(color=0xFFFFFF) # Bright white animation lightning_main = solid(color=0xFFFFFF) # Bright white
@ -18,7 +18,7 @@ lightning_main.opacity = square(min_value=0, max_value=255, duration=80ms, duty_
lightning_main.priority = 20 lightning_main.priority = 20
# Secondary lightning - partial strip # Secondary lightning - partial strip
animation lightning_partial = beacon_animation( animation lightning_partial = beacon(
color=0xFFFFAA # Slightly yellow white color=0xFFFFAA # Slightly yellow white
pos=30 # center position pos=30 # center position
beacon_size=20 # covers part of strip beacon_size=20 # covers part of strip

View File

@ -18,7 +18,7 @@ palette matrix_greens = [
# Create multiple cascading streams # Create multiple cascading streams
color stream1_pattern = rich_palette_color(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( animation stream1 = comet(
color=stream1_pattern # color source color=stream1_pattern # color source
tail_length=15 # long tail tail_length=15 # long tail
speed=1.5s # speed speed=1.5s # speed
@ -27,7 +27,7 @@ animation stream1 = comet_animation(
color stream2_pattern = rich_palette_color(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( animation stream2 = comet(
color=stream2_pattern # color source color=stream2_pattern # color source
tail_length=12 # medium tail tail_length=12 # medium tail
speed=2.2s # different speed speed=2.2s # different speed
@ -35,7 +35,7 @@ animation stream2 = comet_animation(
) )
color stream3_pattern = rich_palette_color(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( animation stream3 = comet(
color=stream3_pattern # color source color=stream3_pattern # color source
tail_length=10 # shorter tail tail_length=10 # shorter tail
speed=1.8s # another speed speed=1.8s # another speed

View File

@ -8,28 +8,28 @@ color space_bg = 0x000011
animation background = solid(color=space_bg) animation background = solid(color=space_bg)
# Multiple meteors with different speeds and colors # Multiple meteors with different speeds and colors
animation meteor1 = comet_animation( animation meteor1 = comet(
color=0xFFFFFF # Bright white color=0xFFFFFF # Bright white
tail_length=12 # long trail tail_length=12 # long trail
speed=1.5s # fast speed speed=1.5s # fast speed
) )
meteor1.priority = 15 meteor1.priority = 15
animation meteor2 = comet_animation( animation meteor2 = comet(
color=0xFFAA00 # Orange color=0xFFAA00 # Orange
tail_length=10 # medium trail tail_length=10 # medium trail
speed=2s # medium speed speed=2s # medium speed
) )
meteor2.priority = 12 meteor2.priority = 12
animation meteor3 = comet_animation( animation meteor3 = comet(
color=0xAAAAFF # Blue-white color=0xAAAAFF # Blue-white
tail_length=8 # shorter trail tail_length=8 # shorter trail
speed=1.8s # fast speed speed=1.8s # fast speed
) )
meteor3.priority = 10 meteor3.priority = 10
animation meteor4 = comet_animation( animation meteor4 = comet(
color=0xFFAAAA # Pink-white color=0xFFAAAA # Pink-white
tail_length=14 # long trail tail_length=14 # long trail
speed=2.5s # slower speed speed=2.5s # slower speed

View File

@ -12,7 +12,7 @@ palette neon_colors = [
] ]
# Main neon glow with color cycling # Main neon glow with color cycling
animation neon_main = rich_palette_animation(colors=neon_colors, period=4s, transition_type=LINEAR, brightness=255) animation neon_main = rich_palette(colors=neon_colors, period=4s, transition_type=LINEAR, brightness=255)
# Add electrical flickering # Add electrical flickering
neon_main.opacity = smooth(min_value=220, max_value=255, duration=200ms) neon_main.opacity = smooth(min_value=220, max_value=255, duration=200ms)
@ -24,7 +24,7 @@ neon_surge.priority = 20
# Add neon tube segments with gaps # Add neon tube segments with gaps
color segment_pattern = rich_palette_color(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( animation segment1 = beacon(
color=segment_pattern # color source color=segment_pattern # color source
pos=6 # position pos=6 # position
beacon_size=12 # segment length beacon_size=12 # segment length
@ -32,7 +32,7 @@ animation segment1 = beacon_animation(
) )
segment1.priority = 10 segment1.priority = 10
animation segment2 = beacon_animation( animation segment2 = beacon(
color=segment_pattern # color source color=segment_pattern # color source
pos=24 # position pos=24 # position
beacon_size=12 # segment length beacon_size=12 # segment length
@ -40,7 +40,7 @@ animation segment2 = beacon_animation(
) )
segment2.priority = 10 segment2.priority = 10
animation segment3 = beacon_animation( animation segment3 = beacon(
color=segment_pattern # color source color=segment_pattern # color source
pos=42 # position pos=42 # position
beacon_size=12 # segment length beacon_size=12 # segment length

View File

@ -13,11 +13,11 @@ palette ocean_colors = [
] ]
# Base ocean animation with slow color cycling # Base ocean animation with slow color cycling
animation ocean_base = rich_palette_animation(colors=ocean_colors, period=8s, transition_type=SINE, brightness=200) animation ocean_base = rich_palette(colors=ocean_colors, period=8s, transition_type=SINE, brightness=200)
# Add wave motion with moving pulses # Add wave motion with moving pulses
color wave1_pattern = rich_palette_color(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( animation wave1 = beacon(
color=wave1_pattern # color source color=wave1_pattern # color source
pos=0 # initial position pos=0 # initial position
beacon_size=12 # wave width beacon_size=12 # wave width
@ -27,7 +27,7 @@ wave1.priority = 10
wave1.pos = sawtooth(min_value=0, max_value=48, duration=5s) # 60-12 = 48 wave1.pos = sawtooth(min_value=0, max_value=48, duration=5s) # 60-12 = 48
color wave2_pattern = rich_palette_color(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( animation wave2 = beacon(
color=wave2_pattern # color source color=wave2_pattern # color source
pos=52 # initial position pos=52 # initial position
beacon_size=8 # smaller wave beacon_size=8 # smaller wave

View File

@ -16,9 +16,9 @@ palette ocean_colors = [
] ]
# Create animations using the palettes # Create animations using the palettes
animation fire_anim = rich_palette_animation(colors=fire_colors, period=5s) animation fire_anim = rich_palette(colors=fire_colors, period=5s)
animation ocean_anim = rich_palette_animation(colors=ocean_colors, period=8s) animation ocean_anim = rich_palette(colors=ocean_colors, period=8s)
# Sequence to show both palettes # Sequence to show both palettes
sequence palette_demo { sequence palette_demo {

View File

@ -46,11 +46,11 @@ palette sunset_sky = [
# Create animations using each palette # Create animations using each palette
animation fire_effect = solid(color=rich_palette_color(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) animation ocean_waves = rich_palette(colors=ocean_depths, period=8s, transition_type=SINE, brightness=200)
animation aurora_lights = rich_palette_animation(colors=aurora_borealis, period=12s, transition_type=SINE, brightness=180) animation aurora_lights = rich_palette(colors=aurora_borealis, period=12s, transition_type=SINE, brightness=180)
animation sunset_glow = rich_palette_animation(colors=sunset_sky, period=6s, transition_type=SINE, brightness=220) animation sunset_glow = rich_palette(colors=sunset_sky, period=6s, transition_type=SINE, brightness=220)
# Sequence to showcase all palettes # Sequence to showcase all palettes
sequence palette_showcase { sequence palette_showcase {

View File

@ -14,11 +14,11 @@ palette plasma_colors = [
] ]
# Base plasma animation with medium speed # Base plasma animation with medium speed
animation plasma_base = rich_palette_animation(colors=plasma_colors, period=6s, transition_type=SINE, brightness=200) animation plasma_base = rich_palette(colors=plasma_colors, period=6s, transition_type=SINE, brightness=200)
# Add multiple wave layers for complexity # Add multiple wave layers for complexity
color wave1_pattern = rich_palette_color(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( animation plasma_wave1 = beacon(
color=wave1_pattern # color source color=wave1_pattern # color source
pos=0 # initial position pos=0 # initial position
beacon_size=20 # wide wave beacon_size=20 # wide wave
@ -28,7 +28,7 @@ plasma_wave1.priority = 10
plasma_wave1.pos = smooth(min_value=0, max_value=40, duration=8s) plasma_wave1.pos = smooth(min_value=0, max_value=40, duration=8s)
color wave2_pattern = rich_palette_color(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( animation plasma_wave2 = beacon(
color=wave2_pattern # color source color=wave2_pattern # color source
pos=45 # initial position pos=45 # initial position
beacon_size=15 # medium wave beacon_size=15 # medium wave
@ -38,7 +38,7 @@ plasma_wave2.priority = 8
plasma_wave2.pos = smooth(min_value=45, max_value=15, duration=10s) # Opposite direction plasma_wave2.pos = smooth(min_value=45, max_value=15, duration=10s) # Opposite direction
color wave3_pattern = rich_palette_color(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( animation plasma_wave3 = beacon(
color=wave3_pattern # color source color=wave3_pattern # color source
pos=20 # initial position pos=20 # initial position
beacon_size=12 # smaller wave beacon_size=12 # smaller wave

View File

@ -7,7 +7,7 @@
set half_length = 30 set half_length = 30
# Left side red flashing # Left side red flashing
animation left_red = beacon_animation( animation left_red = beacon(
color=0xFF0000 # Bright red color=0xFF0000 # Bright red
pos=15 # center of left half pos=15 # center of left half
beacon_size=15 # half the strip beacon_size=15 # half the strip
@ -17,7 +17,7 @@ left_red.priority = 10
left_red.opacity = square(min_value=0, max_value=255, duration=400ms, duty_cycle=50) # 50% duty cycle left_red.opacity = square(min_value=0, max_value=255, duration=400ms, duty_cycle=50) # 50% duty cycle
# Right side blue flashing (opposite phase) # Right side blue flashing (opposite phase)
animation right_blue = beacon_animation( animation right_blue = beacon(
color=0x0000FF # Bright blue color=0x0000FF # Bright blue
pos=45 # center of right half pos=45 # center of right half
beacon_size=15 # half the strip beacon_size=15 # half the strip

View File

@ -9,9 +9,9 @@ color blue_custom = 0x0000FF
color green_custom = 0x00FF00 color green_custom = 0x00FF00
# Create animations # Create animations
animation left_pulse = beacon_animation(color=red_custom, pos=15, beacon_size=15, slew_size=3) animation left_pulse = beacon(color=red_custom, pos=15, beacon_size=15, slew_size=3)
animation center_pulse = beacon_animation(color=blue_custom, pos=30, beacon_size=15, slew_size=3) animation center_pulse = beacon(color=blue_custom, pos=30, beacon_size=15, slew_size=3)
animation right_pulse = beacon_animation(color=green_custom, pos=45, beacon_size=15, slew_size=3) animation right_pulse = beacon(color=green_custom, pos=45, beacon_size=15, slew_size=3)
# Set different opacities # Set different opacities
left_pulse.opacity = 255 # Full slew_size left_pulse.opacity = 255 # Full slew_size

View File

@ -8,7 +8,7 @@ color scanner_bg = 0x110000
animation background = solid(color=scanner_bg) animation background = solid(color=scanner_bg)
# Main scanner pulse that bounces # Main scanner pulse that bounces
animation scanner = beacon_animation( animation scanner = beacon(
color=0xFF0000 # Bright red color=0xFF0000 # Bright red
pos=2 # initial position pos=2 # initial position
beacon_size=3 # pulse width beacon_size=3 # pulse width
@ -20,7 +20,7 @@ scanner.priority = 10
scanner.pos = triangle(min_value=2, max_value=57, duration=2s) scanner.pos = triangle(min_value=2, max_value=57, duration=2s)
# Add trailing glow effect # Add trailing glow effect
animation scanner_trail = beacon_animation( animation scanner_trail = beacon(
color=0x660000 # Dim red trail color=0x660000 # Dim red trail
pos=2 # initial position pos=2 # initial position
beacon_size=6 # wider trail beacon_size=6 # wider trail

View File

@ -13,7 +13,7 @@ palette eye_palette = [red, yellow, green, violet]
color eye_color = color_cycle(colors=eye_palette, period=0) color eye_color = color_cycle(colors=eye_palette, period=0)
# Create animations # Create animations
animation red_eye = beacon_animation( animation red_eye = beacon(
color=eye_color color=eye_color
pos=cosine_val pos=cosine_val
beacon_size=3 beacon_size=3
@ -21,7 +21,7 @@ animation red_eye = beacon_animation(
priority=10 priority=10
) )
animation pulse_demo = pulsating_animation( animation pulse_demo = breathe(
color=blue color=blue
period=2s period=2s
priority=5 priority=5

View File

@ -13,7 +13,7 @@ palette rainbow = [
] ]
# Create an animation using the palette # Create an animation using the palette
animation rainbow_cycle = rich_palette_animation(colors=rainbow, period=3s) animation rainbow_cycle = rich_palette(colors=rainbow, period=3s)
# Simple sequence # Simple sequence
sequence demo { sequence demo {

View File

@ -17,10 +17,10 @@ palette daylight_colors = [
] ]
# Main daylight cycle - very slow transition # Main daylight cycle - very slow transition
animation daylight_cycle = rich_palette_animation(colors=daylight_colors, period=60s) animation daylight_cycle = rich_palette(colors=daylight_colors, period=60s)
# Add sun position effect - bright spot that moves # Add sun position effect - bright spot that moves
animation sun_position = beacon_animation( animation sun_position = beacon(
color=0xFFFFAA # Bright yellow sun color=0xFFFFAA # Bright yellow sun
pos=5 # initial position pos=5 # initial position
beacon_size=8 # sun size beacon_size=8 # sun size
@ -31,7 +31,7 @@ sun_position.pos = smooth(min_value=5, max_value=55, duration=30s) # Sun arc ac
sun_position.opacity = smooth(min_value=0, max_value=255, duration=30s) # Fade in and out sun_position.opacity = smooth(min_value=0, max_value=255, duration=30s) # Fade in and out
# Add atmospheric glow around sun # Add atmospheric glow around sun
animation sun_glow = beacon_animation( animation sun_glow = beacon(
color=0xFFCC88 # Warm glow color=0xFFCC88 # Warm glow
pos=5 # initial position pos=5 # initial position
beacon_size=16 # larger glow beacon_size=16 # larger glow

View File

@ -8,7 +8,7 @@ template animation cylon_effect {
set strip_len = strip_length() set strip_len = strip_length()
animation eye_animation = beacon_animation( animation eye_animation = beacon(
color = eye_color color = eye_color
back_color = back_color back_color = back_color
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = period) pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = period)

View File

@ -10,7 +10,7 @@ template animation rainbow_pulse {
color cycle_color = color_cycle(colors=pal1, period=period) color cycle_color = color_cycle(colors=pal1, period=period)
# Create pulsing animation # Create pulsing animation
animation pulse = pulsating_animation( animation pulse = breathe(
color=cycle_color color=cycle_color
period=period period=period
) )

View File

@ -14,7 +14,7 @@ template animation shutter_bidir {
col2.next = 1 col2.next = 1
# shutter moving from left to right # shutter moving from left to right
animation shutter_lr_animation = beacon_animation( animation shutter_lr_animation = beacon(
color = col2 color = col2
back_color = col1 back_color = col1
pos = 0 pos = 0
@ -24,7 +24,7 @@ template animation shutter_bidir {
) )
# shutter moving from right to left # shutter moving from right to left
animation shutter_rl_animation = beacon_animation( animation shutter_rl_animation = beacon(
color = col1 color = col1
back_color = col2 back_color = col2
pos = 0 pos = 0

View File

@ -14,7 +14,7 @@ template animation shutter_central {
col2.next = 1 col2.next = 1
# shutter moving from left to right # shutter moving from left to right
animation shutter_central_animation = beacon_animation( animation shutter_central_animation = beacon(
color = col2 color = col2
back_color = col1 back_color = col1
pos = strip_len - shutter_size / 2 pos = strip_len - shutter_size / 2

View File

@ -14,7 +14,7 @@ template animation shutter_central {
col2.next = 1 col2.next = 1
# shutter moving in to out # shutter moving in to out
animation shutter_inout_animation = beacon_animation( animation shutter_inout_animation = beacon(
color = col2 color = col2
back_color = col1 back_color = col1
pos = strip_len2 - (shutter_size + 1) / 2 pos = strip_len2 - (shutter_size + 1) / 2
@ -24,7 +24,7 @@ template animation shutter_central {
) )
# shutter moving out to in # shutter moving out to in
animation shutter_outin_animation = beacon_animation( animation shutter_outin_animation = beacon(
color = col1 color = col1
back_color = col2 back_color = col2
pos = strip_len2 - (strip_len - shutter_size + 1) / 2 pos = strip_len2 - (strip_len - shutter_size + 1) / 2

View File

@ -6,7 +6,7 @@ template animation pulse_effect {
param period type time param period type time
param brightness type percentage param brightness type percentage
animation pulse = pulsating_animation( animation pulse = breathe(
color=base_color color=base_color
period=period period=period
) )

View File

@ -6,7 +6,7 @@ template animation pulse_effect {
param period type time param period type time
param brightness type percentage param brightness type percentage
animation pulse = pulsating_animation( animation pulse = breathe(
color=base_color color=base_color
period=period period=period
) )

View File

@ -1,7 +1,7 @@
# @desc Smooth cycling through rainbow colors with custom palette # @desc Smooth cycling through rainbow colors with custom palette
animation back = rich_palette_animation() animation back = rich_palette()
# Equivalent to # Equivalent to
# animation back = rich_palette_animation(colors=PALETTE_PALETTE_RAINBOW, period=5s, # animation back = rich_palette(colors=PALETTE_PALETTE_RAINBOW, period=5s,
# transition_type=SINE, brightness=100%) # transition_type=SINE, brightness=100%)
run back run back

View File

@ -5,5 +5,5 @@
color rainbow_rich_color = rich_palette_color(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 # Define a gradient across the whole strip
animation back_pattern = palette_gradient_animation(color_source = rainbow_rich_color) animation back_pattern = palette_gradient(color_source = rainbow_rich_color)
run back_pattern run back_pattern

View File

@ -9,6 +9,6 @@ color rainbow_rich_color = rich_palette_color(colors=PALETTE_RAINBOW_W, period=0
set strip_len = strip_length() set strip_len = strip_length()
# define a gradient across the whole strip # define a gradient across the whole strip
animation back_pattern = palette_gradient_animation(color_source = rainbow_rich_color, animation back_pattern = palette_gradient(color_source = rainbow_rich_color,
spatial_period = strip_len / 2) spatial_period = strip_len / 2)
run back_pattern run back_pattern

View File

@ -11,5 +11,5 @@ set strip_len = strip_length()
set period = sine_osc(min_value = (strip_len - 1) / 2, max_value = (3 * strip_len) / 2, duration = 5s) set period = sine_osc(min_value = (strip_len - 1) / 2, max_value = (3 * strip_len) / 2, duration = 5s)
# Define a gradient across the whole strip with variable spatial_period # Define a gradient across the whole strip with variable spatial_period
animation back = palette_gradient_animation(color_source = rainbow_rich_color, spatial_period = period) animation back = palette_gradient(color_source = rainbow_rich_color, spatial_period = period)
run back run back

View File

@ -5,5 +5,5 @@
color rainbow_rich_color = rich_palette_color(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 # define a gradient across the whole strip
animation back = palette_gradient_animation(color_source = rainbow_rich_color, shift_period = 5s) animation back = palette_gradient(color_source = rainbow_rich_color, shift_period = 5s)
run back run back

View File

@ -19,5 +19,5 @@ color rainbow_rich_color = rich_palette_color(colors=vue_meter_palette, period=0
set level = sawtooth(min_value = 0%, max_value=100%, duration = 2s) set level = sawtooth(min_value = 0%, max_value=100%, duration = 2s)
# Define a vue-meter based on all elements above # Define a vue-meter based on all elements above
animation back = palette_meter_animation(color_source = rainbow_rich_color, level = level) animation back = palette_meter(color_source = rainbow_rich_color, level = level)
run back run back

View File

@ -27,5 +27,5 @@ palette vue_meter_palette = [
color rainbow_rich_color = rich_palette_color(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 # Define a vue-meter based on all elements above
animation back = palette_meter_animation(color_source = rainbow_rich_color, level = rand_meter()) animation back = palette_meter(color_source = rainbow_rich_color, level = rand_meter())
run back run back

View File

@ -1,6 +1,6 @@
# @desc Static beacon # @desc Static beacon
# Simple beacon starting at pixel 6 with size of 7 pixels, no border # Simple beacon starting at pixel 6 with size of 7 pixels, no border
animation back = beacon_animation(back_color = blue, color = red, animation back = beacon(back_color = blue, color = red,
pos = 5, beacon_size = 7) pos = 5, beacon_size = 7)
run back run back

View File

@ -1,6 +1,6 @@
# @desc Static beacon with slew # @desc Static beacon with slew
# Simple beacon starting at pixel 6 with size of 7 pixels, no border # Simple beacon starting at pixel 6 with size of 7 pixels, no border
animation back = beacon_animation(back_color = blue, color = red, animation back = beacon(back_color = blue, color = red,
pos = 5, beacon_size = 7, slew_size = 3) pos = 5, beacon_size = 7, slew_size = 3)
run back run back

View File

@ -4,6 +4,6 @@
set slew = cosine_osc(min_value = 0, max_value = 4, duration = 2s) set slew = cosine_osc(min_value = 0, max_value = 4, duration = 2s)
# Simple beacon starting at pixel 6 with size of 7 pixels, no border # Simple beacon starting at pixel 6 with size of 7 pixels, no border
animation back = beacon_animation(back_color = blue, color = red, animation back = beacon(back_color = blue, color = red,
pos = 5, beacon_size = 7, slew_size = slew) pos = 5, beacon_size = 7, slew_size = slew)
run back run back

View File

@ -4,7 +4,7 @@
set strip_len = strip_length() set strip_len = strip_length()
# In this example, the 'cosine_osc' is created within the call # In this example, the 'cosine_osc' is created within the call
animation back = beacon_animation( animation back = beacon(
color = red color = red
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 5s) pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 5s)
beacon_size = 3 # small 3 pixels eye beacon_size = 3 # small 3 pixels eye

View File

@ -15,7 +15,7 @@ animation stars = twinkle(
run stars run stars
# We can combine a dynamic 'pos' value with a dynamic 'color' # We can combine a dynamic 'pos' value with a dynamic 'color'
animation back = beacon_animation( animation back = beacon(
color = rich_palette_color(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) pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 5s)
beacon_size = 3 # small 3 pixels eye beacon_size = 3 # small 3 pixels eye

View File

@ -11,7 +11,7 @@ palette red_blue_red_palette = [ red, 0x3333FF, red ]
color red_blue_red_color = rich_palette_color(colors=red_blue_red_palette) color red_blue_red_color = rich_palette_color(colors=red_blue_red_palette)
# Define a moving beacon to be used as an opacity mask # Define a moving beacon to be used as an opacity mask
animation moving_eye = beacon_animation( animation moving_eye = beacon(
color = white # the color is not important, only the opacity counts here color = white # the color is not important, only the opacity counts here
pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 5s) pos = cosine_osc(min_value = -1, max_value = strip_len - 2, duration = 5s)
beacon_size = 3 # small 3 pixels eye beacon_size = 3 # small 3 pixels eye
@ -19,7 +19,7 @@ animation moving_eye = beacon_animation(
) )
# The palette gradient animation is used with an animation as opacity # The palette gradient animation is used with an animation as opacity
animation eye_pattern = palette_gradient_animation( animation eye_pattern = palette_gradient(
color_source = red_blue_red_color # the beacon animation used as opacity color_source = red_blue_red_color # the beacon animation used as opacity
# spatial_period = strip_len # implicit # spatial_period = strip_len # implicit
opacity = moving_eye opacity = moving_eye

View File

@ -7,8 +7,8 @@ set strip_len = strip_length()
set shutter_size = sawtooth(min_value = 0, max_value = strip_len, set shutter_size = sawtooth(min_value = 0, max_value = strip_len,
duration = 1.5s) duration = 1.5s)
# Using beacon_animation to move a shutter from left to right # Using beacon to move a shutter from left to right
animation shutter_lr_animation = beacon_animation( animation shutter_lr_animation = beacon(
color = red color = red
back_color = blue back_color = blue
pos = 0 # Start from position 0 (left) pos = 0 # Start from position 0 (left)

View File

@ -16,8 +16,8 @@ color col1 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
color col2 = color_cycle(colors=PALETTE_RAINBOW_W, period=0) color col2 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
col2.next = 1 # Writing 1 to 'next' actually advances the color col2.next = 1 # Writing 1 to 'next' actually advances the color
# Using beacon_animation to move a shutter from left to right # Using beacon to move a shutter from left to right
animation shutter_lr_animation = beacon_animation( animation shutter_lr_animation = beacon(
color = col2 # Use two rotating colors color = col2 # Use two rotating colors
back_color = col1 # Use two rotating colors back_color = col1 # Use two rotating colors
pos = 0 # Start from position 0 (left) pos = 0 # Start from position 0 (left)

View File

@ -17,8 +17,8 @@ color col1 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
color col2 = color_cycle(colors=PALETTE_RAINBOW_W, period=0) color col2 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
col2.next = 1 # Writing 1 to 'next' actually advances the color col2.next = 1 # Writing 1 to 'next' actually advances the color
# Using beacon_animation to move a shutter from in to out # Using beacon to move a shutter from in to out
animation shutter_inout_animation = beacon_animation( animation shutter_inout_animation = beacon(
color = col2 # Use two rotating colors color = col2 # Use two rotating colors
back_color = col1 # Use two rotating colors back_color = col1 # Use two rotating colors
pos = strip_len_2 - (shutter_size + 1) / 2 pos = strip_len_2 - (shutter_size + 1) / 2

View File

@ -17,8 +17,8 @@ color col1 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
color col2 = color_cycle(colors=PALETTE_RAINBOW_W, period=0) color col2 = color_cycle(colors=PALETTE_RAINBOW_W, period=0)
col2.next = 1 # Writing 1 to 'next' actually advances the color col2.next = 1 # Writing 1 to 'next' actually advances the color
# Using beacon_animation to move a shutter from in to out # Using beacon to move a shutter from in to out
animation shutter_inout_animation = beacon_animation( animation shutter_inout_animation = beacon(
color = col2 # Use two rotating colors color = col2 # Use two rotating colors
back_color = col1 # Use two rotating colors back_color = col1 # Use two rotating colors
pos = strip_len_2 - (shutter_size + 1) / 2 pos = strip_len_2 - (shutter_size + 1) / 2
@ -26,7 +26,7 @@ animation shutter_inout_animation = beacon_animation(
) )
# Similar but out to in # Similar but out to in
animation shutter_outin_animation = beacon_animation( animation shutter_outin_animation = beacon(
color = col1 color = col1
back_color = col2 back_color = col2
pos = strip_len_2 - (strip_len - shutter_size + 1) / 2 pos = strip_len_2 - (strip_len - shutter_size + 1) / 2

View File

@ -1,7 +1,7 @@
# @desc Crenel static # @desc Crenel static
# Define a simple crenel 2+2 red/blue # Define a simple crenel 2+2 red/blue
animation back = crenel_animation( animation back = crenel(
color = red color = red
back_color = blue back_color = blue
pulse_size = 2 pulse_size = 2

View File

@ -6,7 +6,7 @@ set max_pulses = (strip_len + period - 1) / period
set nb_pulse = triangle(min_value = 0, max_value = max_pulses, duration = 2s) set nb_pulse = triangle(min_value = 0, max_value = max_pulses, duration = 2s)
animation back = crenel_animation( animation back = crenel(
color = red color = red
back_color = blue back_color = blue
pulse_size = 2 pulse_size = 2

View File

@ -4,7 +4,7 @@
set pulse_size = triangle(min_value = 0, max_value = 4, duration = 2s) set pulse_size = triangle(min_value = 0, max_value = 4, duration = 2s)
# Define a simple crenel 2+2 red/blue # Define a simple crenel 2+2 red/blue
animation back = crenel_animation( animation back = crenel(
color = red color = red
back_color = blue back_color = blue
pulse_size = pulse_size pulse_size = pulse_size

View File

@ -4,7 +4,7 @@
color rainbow_color = rich_palette_color(colors=PALETTE_RAINBOW_W2, period=5s) color rainbow_color = rich_palette_color(colors=PALETTE_RAINBOW_W2, period=5s)
# Define a simple crenel 2+2 # Define a simple crenel 2+2
animation back = crenel_animation( animation back = crenel(
color = rainbow_color color = rainbow_color
back_color = blue back_color = blue
pulse_size = 2 pulse_size = 2

View File

@ -5,7 +5,7 @@ animation back = solid(color = blue, priority = 20)
run back run back
# Define a simple crenel 2+2 opaque/transparent # Define a simple crenel 2+2 opaque/transparent
animation mask = crenel_animation( animation mask = crenel(
color = white # plain color since it's used as opacity mask color = white # plain color since it's used as opacity mask
back_color = transparent # background is transparent back_color = transparent # background is transparent
pulse_size = 2 pulse_size = 2
@ -15,7 +15,7 @@ animation mask = crenel_animation(
# Define a smooth palette using PALETTE_RAINBOW_W (7 colors + white) # Define a smooth palette using PALETTE_RAINBOW_W (7 colors + white)
color rainbow_rich_color = rich_palette_color(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 # Define a gradient across the whole strip and use crenel as opacity mask
animation pattern = palette_gradient_animation( animation pattern = palette_gradient(
color_source = rainbow_rich_color # use the rainow pattern color_source = rainbow_rich_color # use the rainow pattern
shift_period = 2s # shifting over 2s shift_period = 2s # shifting over 2s
opacity = mask # mask it with crenel pattern opacity = mask # mask it with crenel pattern

Some files were not shown because too many files have changed in this diff Show More