← All projects
// Cornell · Coding for Design · Generative Media

Weather Particles

A web-based particle system that turns live, location-specific weather into an ambient atmosphere that keeps changing with the sky outside.

Year2025
RoleConcept, Visual Direction · Cloudy & Windy States
Team2 designers
CourseCoding for Design
ToolsWeatherAPI · Three.js · JavaScript
Generative Art · Data-Driven Visuals · Creative Coding · Ambient Media
Overview

Weather is something we feel through light, temperature, movement, and mood, yet on screens it is reduced to an icon and a number. Weather Particles reads the live conditions where the visitor is and turns them into a single, continuously evolving particle field.

Instead of drawing rain or clouds, the system treats weather as a set of forces acting on particles: their motion, density, and structure carry the meaning. As an extension, we proposed showing it on a ceiling as a luminous installation.

What we built

48 weather codes → 5 states1 shared flow-field ruleLive data by visitor locationCeiling installation proposal

My contribution at a glance

Concept & visual directionCloudy stateWindy state

The particle engine, weather-API mapping, and the Sunny, Rainy, and Snowy states were developed by my teammate.

Live demo: rain becomes a fall of stretched, glowing particles.
Idea
01

Weather as forces, not pictures

We avoided literal scenes and symbols. Every weather condition acts on the same particle field, so a change in the sky shows up as a change in how things move.

A

Not a picture
no rain drawings, no cloud icons

B

A field of forces
motion, density, and structure carry meaning

C

Personal and live
your location, your weather, right now

System
02

From an API response to a flow field

The visitor’s live conditions come from WeatherAPI. We sorted its 48 condition codes into five weather states, and each state maps raw readings such as wind, cloud cover, precipitation, UV, and temperature onto one shared set of particle parameters.

Live weatherWeatherAPI · by location
→
Weather state48 codes → 5 states
→
Mappingreadings → parameters
→
Flow fieldone shared rule
→
RenderingThree.js · stretch, fracture, frost
velocity = shape force + large flow + small flow + direction + vertical bias
// one rule for every state; only the parameters change
System pipeline: weather data, mapping, weather state, field, particles, rendering.
The shared flow-field rule and the parameters each state can tune.
Config sample: weather input → mapping parameters → physical behavior → visual encoding.
States
03

One field, many skies

Each state reads different inputs but speaks the same visual language, so moving from clear to stormy feels like the same world changing rather than a new scene loading.

Cloudy · mine
Volume and softness

Cloud cover sets the volume and softness of the field, air quality its clarity, and wind a slow lateral drift.

Rainy
From hover to fall

Precipitation pulls particles off their shapes into falling streaks; humidity makes the rain heavier and more diffuse.

Snowy
Building up

Precipitation and wind drive a sharper, fractured fall, with an accumulation parameter that grows over time.

Sunny
Radiating

UV index sets rotation and spread; temperature shifts the palette from cool to warm.

Windy · mine
Direction as motion

Wind speed and direction set the strength and heading of the global drift across the field.

Windy: the field drifts with the wind’s direction and speed.
The particle field in motion.
Methodology: how each state’s weather inputs map to particle behavior.
Installation
04

From a browser tab to a ceiling

The same system can run at architectural scale. We proposed working with the campus art museum to project it onto the ceiling of a cantilevered canopy outside the building, so passers-by would walk under a luminous version of the weather above them.

Final tool: what it is, what is novel, and how to interact.
Takeaway

Weather you feel, not read.

Mapping every condition onto one shared set of forces keeps the piece coherent: the data changes the behavior, never the scene.