✨ New

  • Variables & Values: Name a value once in the new Values tab and reference it from any property. Rename it and every linked property updates together. Values can be typed, renamed, or detached from a property whenever you want a one-off.
  • Expressions: Drive any property with an expression written right in the property input. Flip into expression mode for live previews and autocomplete, and expressions now understand strings, vectors, and colors. "Made with " + brand, (10, 20) * 2, or mix(color, color, t) all work.
  • Image fills: Shapes can now be filled with images instead of just colors. Control how the image maps onto the shape with fit (cover, contain, stretch, or natural size), position, repeat, and crop, all from a unified fill picker.
  • LumiDSL docs: The scene language now has a public home at lumidsl.com with readable reference docs, live examples, and a playground to try LumiDSL right in the browser.
  • Code view: The DSL code editor is now available and comes with syntax highlighting and autocomplete driven by the language schema.

🛠 Improvements

  • Expression errors: A broken formula now keeps the last good value and surfaces diagnostics instead of failing silently.
  • Expression persistence: Incomplete expressions survive save and reload exactly as you left them, instead of being mangled into plain text.
  • Player power-saving: Embedded players automatically pause when the tab is hidden or the canvas scrolls out of view, saving CPU and battery.

🐛 Fixes

  • Fixed image fills on text rendering transparent.
  • Linked values now live-update their properties without spamming undo history.