{"id":"blue-marble","version":"1.0.0","title":"Blue Marble","summary":"A turning blue planet with continents, swirling clouds, a glowing rim and the lights of night cities. Loops perfectly.","kind":"object","target":"three","collections":["backgrounds","hypnotic-loops"],"tags":["planet","earth","space","globe","clouds","atmosphere","night lights","stars","blue marble","loop","3d"],"loopable":true,"motion":"procedural","durationSeconds":16,"status":"published","media":{"poster":"https://aipixelwizard.com/media/blue-marble/1.0.0/poster.webp","preview":"https://aipixelwizard.com/media/blue-marble/1.0.0/preview.mp4","sample":"https://aipixelwizard.com/media/blue-marble/1.0.0/sample.mp4","sampleBytes":5423637,"sampleNote":"Pre-rendered with the default settings. Customised settings must be exported locally (npm run render)."},"urls":{"page":"https://aipixelwizard.com/visuals/blue-marble","manifest":"https://aipixelwizard.com/api/v1/visuals/blue-marble/versions/1.0.0","agentMd":"https://aipixelwizard.com/registry/blue-marble/1.0.0/agent.md","files":"https://aipixelwizard.com/registry/blue-marble/1.0.0/","demo":"https://aipixelwizard.com/registry/blue-marble/1.0.0/index.html"},"description":"An Earth-like planet seen from space: invented continents and oceans drawn from seeded noise, with forests, deserts, mountains and ice caps coloured by height and latitude; a shell of swirling cloud that slides over the land; a blue haze of atmosphere along the rim; the sun low to one side so there is a day side, a terminator and a night side glittering with the lights of cities; and a field of stars. Choose an earthlike or a desert world, the seed, how much of it is ocean, the clouds, the atmosphere, where the sun is and whether the camera pushes in.","role":"Object (3D, three.js): a cinematic space backdrop for science, tech, environment and sci-fi content.","useCases":["A science, climate or environment title scene","A sci-fi or space-tech backdrop","A global-company or network opener"],"synonyms":["earth from space","spinning planet","earth globe","world from orbit","procedural planet","blue planet"],"digest":"a6b1dbf49705db559b33118a639555db090f32f8872c3fc2e3f9aafccf3b6c37","implementation":{"target":"three","runtime":"browser","language":"javascript","module":"esm","entry":"src/blue-marble.js","exports":[{"name":"createBluePlanet","signature":"createBluePlanet({ kind?, seed?, ocean?, clouds?, atmosphere?, sunAngle? }) => { group, sunDirection, setProgress(progress), dispose() }","description":"The planet, its cloud shell, atmosphere and stars as a group (radius 2); no lights needed: the sun is in the shaders."}],"reusable":["src/blue-marble.js"],"demo":"demo.js","harness":"index.html"},"dependencies":[{"id":"three","version":"0.185.1","scope":"source","reason":"Renderer, geometry and shader materials."},{"id":"apw-runtime","version":"1.0.0","scope":"demo","reason":"Demo harness."}],"uses":[],"usedBy":[],"params":[{"key":"kind","label":"World","type":"select","default":"earth","options":[{"value":"earth","label":"Earthlike"},{"value":"arid","label":"Desert world"}]},{"key":"seed","label":"Seed","type":"integer","min":1,"max":999,"step":1,"default":5},{"key":"ocean","label":"Ocean","help":"How much of the surface is sea.","type":"number","min":0.2,"max":0.8,"step":0.02,"default":0.5},{"key":"clouds","label":"Clouds","type":"number","min":0,"max":1.2,"step":0.05,"default":1},{"key":"atmosphere","label":"Atmosphere","type":"number","min":0,"max":1.5,"step":0.05,"default":1},{"key":"sun","label":"Sun angle","help":"Degrees from the camera's side.","type":"number","min":10,"max":90,"step":1,"default":40},{"key":"zoom","label":"Push in","type":"boolean","default":true}],"presets":[{"id":"default","label":"Earthlike, evening terminator","params":{}},{"id":"arid","label":"Desert world","params":{"kind":"arid","seed":17,"ocean":0.3,"atmosphere":0.7}},{"id":"ocean","label":"Water world, thick clouds","params":{"seed":2,"ocean":0.76,"clouds":1.2}},{"id":"quarter","label":"Crescent, sun behind","params":{"sun":80,"seed":9}}],"output":{"width":1080,"height":1080,"fps":30,"durationSeconds":16,"posterSeconds":4,"alpha":false,"motion":"procedural","loop":{"seamless":true,"cycleSeconds":16,"method":"The planet turns once and the cloud shell twice per loop, and the camera push-in is a cosine of the loop, so the last frame meets the first."},"seed":{"param":"seed","behavior":"Seed draws the continents, deserts, clouds and the stars: same seed, same world."}},"composition":{"inputs":"Time within the loop; the kind of world, seed, ocean, clouds, atmosphere, sun angle and push-in.","outputs":"A full frame rendered in 3D with shader-lit spheres.","coordinates":"The planet (radius 2) is at the origin with the sun in direction (sin a, 0.18, cos a); the camera looks at it from z ≈ 9.5.","lighting":"Self-lit by shaders: Lambert day side, an ocean sun glint, night-side city lights, a cloud shell lit by the same sun and an additive Fresnel atmosphere that is brighter on the sun side.","timing":"setProgress(progress) sets the two spins; frames render in any order.","compatibleWith":["kinetic-title","number-reveal"],"notes":["The colour map (1024 × 512) is drawn once from three octaves of seeded 3D noise sampled on the sphere, so it has no seam or pole pinch; the alpha channel marks where city lights glow; the cloud map is a domain-warped fractal."]},"reuse":["Climate or science title: Earthlike, evening terminator.","Sci-fi opener: Desert world.","Global network backdrop: Water world."],"integration":{"newProject":"Create a WebGLRenderer with tone mapping, add createBluePlanet().group to a scene on a dark background and call planet.setProgress(progress) each frame.","existingProject":"Copy src/blue-marble.js; add planet.group to your scene (no lights needed)."},"performance":{"notes":"Three spheres with small shaders, 1600 stars and two 1024 × 512 maps drawn once at start (about a second of CPU). A couple of milliseconds a frame on an integrated Intel GPU.","limits":"Software WebGL renders in under a second a frame."},"limitations":["The world is invented, not real geography; there is no relief shading or normal map, so mountains read by colour only.","No moon and no city lights on the day side."],"license":{"spdx":"MIT","notice":"Copyright (c) 2026 AI Pixel Wizard. Released under the MIT License. See LICENSE in this folder.","thirdParty":[]},"rights":{"approvedForPublicRelease":true},"provenance":"Adapted from the owner's threejs-sketches/space-cosmic/blue-marble (MIT) and rebuilt for AI Pixel Wizard in October 2026 as an original object: seam-free seeded continents and swirled clouds baked from 3D noise, a day/terminator/night shader with ocean glint and city lights, a Fresnel atmosphere and whole-turn motion for an exact loop.","changelog":[{"version":"1.0.0","date":"2026-10-05","notes":"Initial release."}],"verification":{"testedOn":"2026-10-06","inputs":{"blue-marble@1.0.0":"a6b1dbf49705db559b33118a639555db090f32f8872c3fc2e3f9aafccf3b6c37","three@0.185.1":"664ca387e5fab46ff2daaa6895e1d015426850891af5ea5082cbbcc3985b068c","apw-runtime@1.0.0":"5be859cdac74823ba0bcc32c6daf06688a871104d24db5d4ceaffffd84d7c40d"},"environment":"Chrome 154.0.8037.97 headless on Linux 7.0.0-38-generic (x64), Node 22.14.0","renderer":"WebGL 2 via SwiftShader (software)","width":1080,"height":1080,"fps":30,"frames":480,"renderSeconds":597.4,"loopCheck":{"checked":true,"seamless":true,"maxDifference":0,"note":"Frame 0 vs end state (progress 1): mean |Δ| 0.0000, max |Δ| 0 of 255."},"determinism":{"checked":true,"identical":true},"errors":[],"media":{"poster":"/media/blue-marble/1.0.0/poster.webp","preview":"/media/blue-marble/1.0.0/preview.mp4","sample":"/media/blue-marble/1.0.0/sample.mp4","sampleBytes":5423637}},"files":[{"path":"LICENSE","size":1072,"sha256":"8a5f3a96f07e11522ec4bdd0a583356f99bad1245920f9709cee09b995a45153","contentType":"text/plain; charset=utf-8","url":"https://aipixelwizard.com/registry/blue-marble/1.0.0/LICENSE"},{"path":"asset.json","size":7520,"sha256":"fcf7d7a556bffe9e6dbd064ddeb1672fadb9ca87c9e31e64b54abc7c4f02cf33","contentType":"application/json; charset=utf-8","url":"https://aipixelwizard.com/registry/blue-marble/1.0.0/asset.json"},{"path":"demo.js","size":1418,"sha256":"0a544f6c75afe143a7ef0e80e965355361f3556495df73b49d7b56014b6e4ca1","contentType":"text/javascript; charset=utf-8","url":"https://aipixelwizard.com/registry/blue-marble/1.0.0/demo.js"},{"path":"index.html","size":525,"sha256":"f60f9b742bf7177b76c490422b9f9440147de0375b3e4a1b958218aa2076d05a","contentType":"text/html; charset=utf-8","url":"https://aipixelwizard.com/registry/blue-marble/1.0.0/index.html"},{"path":"src/blue-marble.js","size":10793,"sha256":"ab8061ba1b97ad3b9cc63401ad885082f21a4fb7b8cf0db60906bfb465a839db","contentType":"text/javascript; charset=utf-8","url":"https://aipixelwizard.com/registry/blue-marble/1.0.0/src/blue-marble.js"}],"warnings":[]}