Blender Time Of Day logo

Blender Time Of Day

Community
EL4CTEO
blender-time-of-day

Time of day and atmosphere in Blender 5.2 - measured sky + sun for dawn, morning, noon, golden hour, sunset, blue hour, overcast, night/moonlight with stars and city glow, exposure balance, height fog from visibility, god rays, Cycles vs EEVEE volumes, compositor grade, stylized moods (cyberpunk neon, horror, underwater, desert). Use for any day/night, sunset, foggy or mood lighting scene.

Overview

PublisherEL4CTEO
Repositoryblender-skills
Skill nameblender-time-of-day
Stars
426
Forks
39
Bundled files
5
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 5 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by EL4CTEO on GitHub. Read the source before you install it.

Installation

Install the Blender Time Of Day AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/EL4CTEO/blender-skills/tree/main/skills/blender-time-of-day
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/EL4CTEO/blender-skills.git /tmp/blender-skills
mkdir -p .claude/skills
cp -r /tmp/blender-skills/skills/blender-time-of-day .claude/skills/blender-time-of-day
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Blender Time Of Day in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Blender Time Of Day on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Blender Time Of Day is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Time of Day & Atmosphere

The execution model is in blender-core. Studio and product lighting are in blender-lighting-lookdev, render settings in blender-rendering, and rain, snow, wetness and lightning in blender-weather-fx.

One call

scripts/scene_mood.py -- --time golden                       # sun 6 deg, warm, long shadows
scripts/scene_mood.py -- --time night --fog-visibility 250   # moonlight + stars + haze
scripts/scene_mood.py -- --time noon --overcast 0.8          # soft grey day
scripts/scene_mood.py -- --mood cyberpunk                    # moonless, neon rim pair, fog, bloom
scripts/scene_mood.py -- --time morning --fog-visibility 120 --fog-height 4   # valley fog

Times: noon morning afternoon golden sunrise sunset blue_hour night moonless. Moods: cyberpunk horror underwater desert (each sets defaults that explicit flags override). Override the sun with --elevation DEG (negative = below the horizon) and --heading DEG (0 = +Y, 90 = +X). If you leave out --heading, the sun sits 135° from the camera's view direction, which gives side/back light that shows form. Front light looks flat.

The script builds ENV_World, the ENV_Mood collection (sun or moon, fog box, accent lights) and, for moods, ENV_Grade (a compositor tree). Your objects are untouched, and re-running replaces everything it made. It returns the key light's strength, color and elevation, the exposure, and any warnings.

How it stays physically right

  • Sky: ShaderNodeTexSky MULTIPLE_SCATTERING (5.0+; SINGLE_SCATTERING is the legacy "Nishita") with sun_disc=False. A Sun lamp is the sun, because it gives sharp shadows in both engines. The lamp's color and its strength relative to the sky come from a table measured from Blender 5.2's own sky model at each elevation (sunset sun ≈ [1.0, 0.22, 0], noon ≈ [1.0, 0.86, 0.68]). That keeps the sky and the sun consistent.
  • Scale: noon gives a sun of ≈ 4 W/m² with a grey card at 0.18 under AgX at exposure 0.
  • Exposure balance: each preset meters a grey card between the ground and a wall facing the sun, then scales the environment lights so the card lands at the preset's brightness (noon 1.0, golden 0.85, sunset 0.7, blue hour 0.35, night 0.2, moonless 0.1). Your practical lights keep their usual wattage and read correctly against it.
  • Physical alternative: --use-exposure puts the difference in view_settings.exposure instead. The result returns practical_scale: multiply your lamp wattages by it to keep the same look.
  • Night: the moon is a Sun lamp at 0.3 W/m² before scaling (35°, cool [0.72, 0.82, 1.0]; moonlight is physically ~4100 K, and it reads blue because of the Purkinje shift). The night dome is a zenith gradient, a city glow at the horizon (sodium orange; magenta for cyberpunk), and stars visible to camera rays only.
  • Fog: a box volume around the scene and the camera. Density = 3.912 / visibility (Koschmieder: visibility in meters → extinction per meter). Add --fog-height for an exponential ground fog. Exposure compensates for light lost in fog by up to 4 EV, so fog stays dense instead of just dark. The background seen by the camera is blended toward the fog color.

Fog and volumetrics

Look--fog-visibility (m)
Clear air / distant haze5000–20000
Haze, desert dust1000–3000
Mist500–1000
Fog100–500
Dense fog, horror20–60
Underwater (clear → murky)30 → 8
  • God rays need four things: a strong key (sun/spot), occluders (windows, trees, a gobo), forward scattering (--fog-anisotropy 0.6–0.85), and EEVEE use_volumetric_shadows (the script turns it on).
  • Cycles 5.x renders volumes with null scattering by default (unbiased, no step size). scene.cycles.volume_biased=True brings back ray marching (volume_step_rate). Height fog is a heterogeneous volume and is noisier, so give it more samples or denoise.
  • EEVEE volumes are froxels: volumetric_tile_size 4 → 2 for detail, and volumetric_end must cover the fog (the script sets it). Very dense fog close to the camera bands, so prefer Cycles for it.
  • Cheap distant haze without volumes: the Mist pass (view_layer.use_pass_mist, world.mist_settings.start/depth) mixed in the compositor.
  • Deeper detail is in references/fog-volumetrics.md.

Rules

  • Decide the light direction first (side/back), then the time. Low sun (golden, sunset) = long shadows and warm key against a cool sky fill, which is the most flattering combination.
  • Night is not "a blue tint": keep contrast (hard moon shadows, pools of warm practicals, dark silhouettes), lower saturation, and add practical sources. See references/night-and-moods.md.
  • Practicals use real color temperatures (light.use_temperature=True, light.temperature): sodium 2000 K, tungsten 2700 K, warm LED 3000 K, neutral LED 4000 K, neon as emissive tubes. Watts and conversions are in references/light-values.md.
  • Keep the view transform AgX (the script sets it, along with a mood look like AgX - Punchy). --keep-view preserves yours.
  • Verify every mood with a render, not the viewport: fog, stars and bloom only show in rendered output. Use blender-rendering render_batch.py --preset preview.

Gotchas

  • Below the horizon the sky texture shows a dark "ground". Extend the ground plane or terrain to the horizon, or keep the horizon out of frame.
  • The bloom/glare threshold is scene-linear, before the view exposure. With --use-exposure the script scales the threshold for you.
  • The script won't overwrite a compositor tree that isn't ENV_Grade; it reports that instead.
  • SunLight.use_nodes and light node trees are deprecated in 5.x (removal planned for 6.0). Use light color and temperature instead.
  • The sky texture's sun_direction only applies to the legacy Preetham/Hosek models. sun_rotation 0 places the sun toward +Y and 90° toward +X (measured).
  • Changing the render engine doesn't need a re-run. The script sets both the EEVEE and Cycles volume settings.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Blender Time Of Day AI skill do?

Time of day and atmosphere in Blender 5.2 - measured sky + sun for dawn, morning, noon, golden hour, sunset, blue hour, overcast, night/moonlight with stars and city glow, exposure balance, height fog from visibility, god rays, Cycles vs EEVEE volumes, compositor grade, stylized moods (cyberpunk neon, horror, underwater, desert). Use for any day/night, sunset, foggy or mood lighting scene.

Why use Blender Time Of Day on TypingMind?

Because you install it once and use it with any model. Blender Time Of Day is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Blender Time Of Day in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/EL4CTEO/blender-skills/tree/main/skills/blender-time-of-day. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Blender Time Of Day?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Blender Time Of Day?

As many as you like. As long as a model supports skills, you can use Blender Time Of Day with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Blender Time Of Day AI skill free?

Yes. It is published on GitHub by EL4CTEO under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇