Shelter FM asset credits
Piano
Salamander Grand Piano by Alexander Holm, licensed under Creative Commons Attribution 3.0 Unported. Commercial use and redistribution are permitted with attribution and the license notice.
MP3 copies C3, C4, and C5 are from the Tone.js Salamander collection. The original author and license notice is bundled alongside the samples. The files are unchanged; playback adjusts pitch, timing, and levels.
Drums
Roland TR-808 recordings by Michael Fischer (Technopolis), from sounds-tr808-fischer, published under CC0 1.0 Universal. Commercial use and redistribution are permitted; attribution is not required.
BD5050.WAV, SD2525.WAV, and CH.WAV are bundled unchanged as kick.wav, snare.wav, and hat.wav. The repository license is included. Playback adjusts timing and levels.
City walk
Rain audio
Rain recording by Ove Melaa, from Rain (Ambient, Not Loopable), published under CC0 1.0 Universal. Attribution is optional. Shelter FM trims the short recording, crossfades its ends into a 36-second loop, and encodes it as MP3. Source and preparation notes are bundled.
Scene
The buildings, streetlights, rain, and guided route are generated for Shelter FM using Three.js.
Asphalt 02 by Rob Tuytel, from Poly Haven, is published under CC0. The unchanged 1K diffuse, OpenGL normal, and ambient-occlusion/roughness/metalness maps are bundled in /textures/ and used on the wet road.
Brown Brick 02 by Rob Tuytel, from Poly Haven, is also CC0. The unchanged 1K diffuse and OpenGL normal maps are used on the building facades. Window interiors, fictional shop signs, benches, and the favicon were created for Shelter FM.
Midnight Train
Train rumble by gryc, from Background Rumble Noise, licensed under Creative Commons Attribution 3.0 Unported. Shelter FM trims seconds 4–25, crossfades the ends into a 19-second loop, and converts it to MP3. Playback lowers its level.
Forest Cabin
Birds recorded by Thimras, from Park ambiences, published under CC0 1.0 Universal. Shelter FM trims seconds 20–60, raises the level by 16 dB, crossfades the ends into a 36-second loop, and converts it to MP3. Source and preparation notes are bundled.
Station images
The Midnight Train and Forest Cabin scenes were generated for Shelter FM using OpenAI’s image generation tool. The original PNGs are retained; the website serves compressed WebP copies with the same dimensions and composition. These images are loading and graphics fallbacks. All three stations use live procedural Three.js scenes; the train and cabin include a generated wood-grain texture.
Fallback illustration
The temporary Rainy Window SVG illustration was created for Shelter FM.