# 3d Four Seasons

Add coordinated spring, summer, fall, and winter states to a 3D scene, blending...

- Repository: https://github.com/MengTo/Skills (7170 stars)
- Category: Media
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add MengTo/Skills --skill 3d-four-seasons -g -a claude-code -y`
Codex: `npx skills add MengTo/Skills --skill 3d-four-seasons -g -a codex -y`
Cursor: `npx skills add MengTo/Skills --skill 3d-four-seasons -g -a cursor -y`
Gemini CLI: `npx skills add MengTo/Skills --skill 3d-four-seasons -g -a gemini-cli -y`

## Description

Add coordinated spring, summer, fall, and winter states to a 3D scene, blending foliage, sunlight, sky, ground materials, snow, and particles without rebuilding the world. Use for seasonal controls, architectural walkthroughs, and outdoor scenes with four-season transitions.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 3D Four Seasons

Keep one recognizable place across all four seasons. Each season should change several mutually consistent visual cues while preserving camera state and interactions.

## Author the seasonal identity

Inventory deciduous trees, evergreens, exposed surfaces, sheltered surfaces, lights, sky, and existing weather. Use species and climate appropriate to the project; the table is a temperate-scene starting point.

| Season | Foliage and ground | Light and atmosphere | Motion |
| --- | --- | --- | --- |
| Spring | Fresh foliage; blossom on appropriate species | Soft warm daylight; gentle haze | Sparse petals or young leaves |
| Summer | Dense deep greens; full ground cover | Stronger daylight; readable shaded greens | Restrained leaf drift and breeze |
| Fall | Species-specific amber, red, and brown; litter | Lower warm sun; golden haze | More falling leaves |
| Winter | Bare deciduous branches; retained evergreens; exposed snow | Cool sky fill; pale sun; warm interiors | Optional sparse snow; little leaf drift |

Choose particle effects only when they serve the scene. A seasonal selector does not require a storm or a full weather simulator.

## Share one state

Use a four-component blend in the order `[spring, summer, fall, winter]`. Accept `autumn` as an alias for `fall`, then normalize to one internal key. The weights start nonnegative and sum to one.

```js
const presets = {
  spring: [1, 0, 0, 0], summer: [0, 1, 0, 0],
  fall: [0, 0, 1, 0], winter: [0, 0, 0, 1],
};
const weights = [0, 1, 0, 0];
let target = presets.summer;
function setSeason(name) {
  const key = name === 'autumn' ? 'fall' : name;
  if (!Object.hasOwn(presets, key)) return false;
  target = presets[key];
  return true;
}
function stepSeason(dt, reducedMotion = false) {
  const a = reducedMotion ? 1 : 1 - Math.exp(-1.4 * Math.min(Math.max(dt, 0), 0.05));
  for (let i = 0; i < 4; i++) weights[i] += (target[i] - weights[i]) * a;
}
```

The rest: https://github.com/MengTo/Skills/blob/HEAD/agent-skills/3d/3d-four-seasons/SKILL.md
