Skip to content

Narrative weather, date, and time with layered ambient effects for chat scenes.

Published October 8, 2026lumi_weather

view
1
download
LumiWeather

LumiWeather

ExtensionNo adult content

Spindle extension · works in Lumiverse

v1.4.1 · October 8, 2026

About

LumiWeather is a Lumiverse extension that adds a draggable weather HUD and animated scene ambience to chat.

It is built for story-driven use, not live forecast data. The model controls the scene by emitting a hidden <weather-state> tag, and the extension turns that into HUD updates, layered effects, and per-chat weather state.

Permissions

4 permissions

Granted on install2 permissions

  1. ui_panels

    Open floating widgets and docked panels.

  2. chat_mutation

    Read, add, change and hide chat messages.

Needs an admin to approve2 permissions

  1. interceptor

    Change a prompt before it reaches the model.

  2. chats

    Read, change and delete your chats.

What it adds

2 additions

Found in the extension’s code. Anything named only while it runs is not listed.

  • UI surfaces1
  • Float widget

  • Generation hooks1
  • Prompt interceptor

Version and source

2 details · 2 links

Details2 details

  • Version

    1.4.1

  • Minimum Lumiverse version

    1.0.6

Links2 links

Features

  • Compact draggable HUD with dynamic styling based on story time, palette, and weather

  • Mobile weather launcher with a touch-friendly fullscreen HUD and controls

  • Animated ambience that can render behind the chat, in front of the chat, or both

  • Story sync mode driven by hidden inline weather tags

  • Manual lock mode for overriding the current scene per chat

  • Optional multi-day forecast strip projected from the hidden weather tag

  • Scene changes blend between palettes and effects instead of swapping instantly

  • Per-chat persistence for story state and manual overrides

  • Prompt macros for reliable prompt-side weather tag generation

  • Clear waiting status when a chat has not emitted its first weather tag

Prompt Setup

To make the main model emit weather tags consistently, add this to the active character or preset system prompt:

{{weather_tracker}}

Optional reference macros:

{{weather_state}}
{{weather_format}}

{{weather_tracker}} is the canonical integration macro. The older aliases remain available for existing prompts; the current state is injected directly into generation, so {{weather_state}} is retained only as a compatibility marker. LumiWeather no longer makes extra generation calls when a tag is missing.

Supported aliases:

  • {{weather_tracker}}

  • {{story_weather_tracker}}

  • {{story_weather}}

  • {{weather_state}}

  • {{story_weather_state}}

  • {{weather_format}}

  • {{story_weather_format}}

The legacy story_weather_* aliases and technical extension ID remain in place so existing installs and prompts update cleanly under the LumiWeather name.

Hidden Tag Contract

The assistant should keep all visible prose natural, then end the message with exactly one hidden weather tag:

<weather-state location="Example Location" date="2026-01-15" time="3:00 PM" condition="rain" summary="Steady afternoon rain" temperature="60F" intensity="0.65" wind="breezy" windDirection="west" palette="storm" season="winter" forecast="2026-01-16: snow, 30F, heavy flurries | 2026-01-17: cloudy, 34F"></weather-state>

Supported conditions:

  • clear

  • cloudy

  • rain

  • storm

  • snow

  • fog

Condition and attribute names are case-insensitive. Common condition aliases such as sunny, overcast, rainy, thunderstorm, snowy, and mist are normalized to these six values. Dates must be real calendar dates, and times must be valid 12-hour or 24-hour values. Story time is independent of the device's timezone and daylight-saving changes.

Optional attributes

season and forecast are optional and were added in v1.4. Tags written before v1.4 keep working unchanged.

  • season is one of spring, summer, autumn, or winter. When it is omitted, the season is derived from the story date.

  • forecast projects at most five later days. Separate entries with a pipe and format each as date: condition, temperature, summary. Condition, temperature, and summary are each optional, so 2026-01-17 alone is a valid entry. Unparseable entries are dropped rather than failing the whole tag, and the projection is sorted by date.

  • When forecast is omitted, the projection already in play is kept. Send forecast="" to clear it deliberately.

Effect placement is user-controlled in settings:

  • Back only

  • Front only

  • Front and back

Supported palettes:

  • dawn

  • day

  • dusk

  • night

  • storm

  • mist

  • snow

Scene transitions

Scene changes blend rather than swap. Palette colors and layer opacities are registered CSS custom properties, so they interpolate, and rain density is expressed as a per-particle opacity multiplier so intensity changes read as a swell instead of particles popping in and out.

Blending is skipped when it would fight something else: reduced motion, paused effects, a hidden tab, or an FX layer still fading in. It can also be turned off entirely with Blend scene changes in settings.

HUD clock

The HUD clock follows story time by default. HUD clock in settings chooses between:

  • Story time, live in manual lock — the default; a manual lock shows real time until you resume story sync

  • Always follow real time

  • Always follow story time