by Leonxlnx
A concrete ring restaurant above a sea of clouds: a real-time Three.js scene and a 45 s drone film, built with Claude Code
# Add to your Claude Code skills
git clone https://github.com/Leonxlnx/halo-above-the-cloudsGuides for using ai agents skills like halo-above-the-clouds.
See how halo-above-the-clouds compares with popular alternatives.
halo-above-the-clouds is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Leonxlnx. A concrete ring restaurant above a sea of clouds: a real-time Three.js scene and a 45 s drone film, built with Claude Code. It has 50 GitHub stars.
halo-above-the-clouds's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/Leonxlnx/halo-above-the-clouds" and add it to your Claude Code skills directory (see the Installation section above).
halo-above-the-clouds is primarily written in JavaScript. It is open-source under Leonxlnx on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh halo-above-the-clouds against similar tools.
No comments yet. Be the first to share your thoughts!
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
A concrete ring restaurant hanging between two snowy dolomite pinnacles at blue hour, above a sea of clouds, with Lake Brienz and the Bernese Alps below. It is a real-time Three.js scene (r187, WebGL2), and a 45 s drone film rendered offline from that same scene.

Watch the film (45 s, 1080p30, MP4)
The scene was built by Claude Code (Claude Opus 5.5) from 11 AI-generated reference images, with several agents working in parallel on terrain, rock and snow, clouds, sky, structure and the film. Every frame of the film is rendered from the 3D scene. No reference image is projected into it.
![]() |
![]() |
You need Node 22.12+ and a GPU with WebGL2.
npm install
npm run data # downloads the baked scene data (~0.3 GB) into data/
npm run dev
Open http://localhost:5173. The first load can take a few minutes while the shaders compile.
?noclouds to the URL on a weaker GPU.tools/terrain.mjs, src/terrain.js, src/glsl/rock.js)
tools/fardem.mjs)tools/farmid.mjs)tools/farsummit.mjs).tools/farkey.mjs).src/structure.js, src/glsl/structure.js)
src/clouds.js): a volumetric raymarch of a curved cloud sea. It runs at half resolution for film
frames and quarter resolution in the interactive viewer. Shape, billow, curl and detail noise volumes come from
tools/noise3d.mjs, tools/noise_billow.mjs and tools/noise_curl.mjs. Light from the towns glows up from
underneath.tools/skybake.mjs, src/sky.js, src/glsl/common.js, src/glsl/far.js)
tools/lights.mjs, src/lights.js, src/glsl/water.js): about 117k village and road lights, with
reflections on the lake.src/post.js): HDR bloom, a filmic grade with toe and shoulder, and grain.src/timeline.js): 11 free-flight shots with roll, cuts, a fade-in and a fade-out.src/matte.js can project the reference images onto far regions for stills. The reference images are not in this
repo, so the matte is skipped. The film does not use it. For the same reason, the tools that compare against the
references (gradetune.mjs, matte_*.mjs and the comparison in shot.mjs) need your own images in ref/.

The renderer drives headless Chrome through puppeteer-core. It is set up for Chrome on Windows; set CHROME to the
browser's path anywhere else. Encoding needs ffmpeg (with libx264) on your PATH.
npm run dev # keep running in a second terminal
node tools/render.mjs --out out/frames --w 1920 --h 1080 --K 8 --jpg
powershell -File tools/encode.ps1 -Frames out/frames -Ext jpg -Audio music.wav
--K sets how many jittered sub-frames are averaged into each frame. More sub-frames give smoother
antialiasing and motion blur. --shutter sets the blur length (default 0.5 of a frame). K 1 has no blur.encode.ps1 stops at whichever ends first, the frames or the audio, so trim the track to 45 s and fade
it out first.render.mjs skips frames that already exist, so you can stop it and pick up later. Use --times 2,15.5
to render only the frames at those film times.tools/gpulock.mjs, override with GPU_LOCK), so only
one headless renderer uses the GPU at a time.npm run data is all you need to run the scene. To rebuild the data from scratch:
node tools/terrain.mjs --refetch # fetch the DEM, sculpt the near field, bake AO
node tools/lights.mjs # village and road lights
node tools/fardem.mjs # polar far level
node tools/farmid.mjs # 4-12 km mid level
node tools/farsummit.mjs --lf # summit and crest pass
node tools/farkey.mjs # key-light shadows for the far ranges
node tools/noise3d.mjs # cloud shape, detail and weather noise
node tools/noise_billow.mjs
node tools/noise_curl.mjs
node --max-old-space-size=14000 tools/skybake.mjs # sky dome, needs ~5 GB RAM
Run them in this order. terrain.mjs rewrites data/terrain/meta.json, and the far tools add their levels to it.
The sky dome is baked from two Poly Haven HDRIs. Download both at 8k before baking:
data/sky/src/belfast_sunset_puresky_8k.hdrdata/sky/src_cedar/cedar_bridge_sunset_1_8k.hdrNo tool downloads the textures in data/tex. They are 2k Poly Haven sets (cliff_side, marble_cliff_03,
rock_face_03, snow_02, concrete_wall_006 and a few spares) and come with npm run data.