Open 3D Skills

Eight skills for 3D and animated websites: three.js scenes from code, scroll films, transparent video, exploded machine views

  • 353 ★ on the repository
  • Last commit
  • MIT
Skill

Extended access

Why this level

  • The scripts run headless browsers, ffmpeg and Python on your machine and write files into the project folder
  • Skills that generate media spend money on an outside service, so the plan and cost need approval before running
All reasons and checks

moh4696/open-3d-skills

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/open-3d-skills

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The scripts run headless browsers, ffmpeg and Python on your machine and write files into the project folder
  • Skills that generate media spend money on an outside service, so the plan and cost need approval before running

This is third-party code. Review the repository files before installing.

What it does

Open 3D Skills is a set of eight skills that walk an agent through building 3D sites from concept to a recorded video. `threejs-scene` builds three.js scenes entirely from code with no model files: buildings, machines, landscapes, light, shadows, post-processing and camera flights. `scroll-film` turns generated clips into films scrubbed by scrolling, `alpha-cutout` keys transparent video out of a plate, and `cursor-rig` builds a character whose head follows the cursor. `exploded-view` makes interactive explainers of devices with labels and cut sections. `motion-assets` plans image and clip generation: an asset list with prompts and costs waits for your approval before the first spend. `site-check` tests a page in Chromium and WebKit at three sizes, and `frame-capture` records a page at 60 frames per second on a virtual clock. Each skill is its own folder with a `SKILL.md`, so you can install them one by one. Node 22.20 or newer, Python 3.9 or newer and ffmpeg are required. An image and video generation service is needed by four of the eight skills.

Who it is for. Web developers and designers who build 3D and scroll-animated landing pages and work in Claude Code, Codex, Cursor, Gemini CLI or OpenCode.

Good fit when

  • A landing page needs a three.js scene, a building at golden hour, a vehicle or a landscape, built in code with no model downloads
  • A machinery maker's site explains a motor by taking it apart into labeled parts with a cut section
  • Generated clips must be joined into a film that plays as the page scrolls, with a phone version
  • A character with a transparent background must play in Safari, so the video is keyed out of a plate
  • Before handing a page to a client you run it through Chromium and WebKit, catch blank canvases and measure frames

Not a fit when

  • The page is static with no 3D or animation: ordinary layout skills are enough
  • You need ready 3D models from Blender or GLB as the base of a scene: `threejs-scene` builds scenes in code, and loaded models are supported only in `exploded-view`
  • There is no Python 3.9, Node 22.20 or ffmpeg and you cannot install them
  • Company rules ban image and video generation: four skills rely on an outside service

Example request

Build a three.js scene with a round pavilion on a lawn at golden hour and check it with site-check on a phone

Limitations

  • Node 22.20 or newer, Python 3.9 or newer with the packages from `requirements.txt` (Playwright, Pillow, NumPy, OpenCV), `python3 -m playwright install chromium webkit` and ffmpeg are required.
  • `motion-assets`, `alpha-cutout`, `cursor-rig` and `scroll-film` rely on an image and video generation service that you pay for separately. The author names Higgsfield, MiniMax, Kling, Seedance and Nano Banana, but no single service is required.
  • The scripts run browsers and ffmpeg on your machine, and the skills store no service keys.

How to disable. `npx skills remove` or deleting the folders from the agent's skills directory removes the set. A shell-script install is removed with `./install.sh --uninstall`, and the Claude Code plugin with `/plugin uninstall open-3d-skills`.

FAQ

How do I install Open 3D Skills in Claude Code?

The shortest route is `npx skills add Moh4696/open-3d-skills`: the installer asks which skills to install and for which agents. The Claude Code alternative is `/plugin marketplace add Moh4696/open-3d-skills` and `/plugin install open-3d-skills@open-3d-skills`, which prefixes the skills with `open-3d-skills:`.

Can I install a single skill?

Yes, for example `npx skills add Moh4696/open-3d-skills --skill scroll-film`. Skills mention each other by name, but each one works on its own.

Do I need a particular video generation service?

No. The skills describe what a model must be able to do (start and end frames, image editing that holds framing) and how to check its output. The author built them on Higgsfield, MiniMax, Kling, Seedance and Nano Banana and marks where behavior was observed.

Does it work with React, Vue or Svelte?

Yes. The modules are plain ES modules with no build step, and the techniques are framework-free.

Why build scenes from code instead of models?

Code-built scenes are small, sharp at any size, free of model licensing questions and easy for an agent to change. `exploded-view` works with loaded GLB files.

Discussion

No questions or reviews yet.

Skills

Ten reference skills for Three.js: scene setup, geometry, materials, lighting, shaders, animation and post-processing

SkillMinimal access4.2KRepository stars

Three skills for web 3D: GLSL shaders, Three.js scenes with React Three Fiber and GPU particle systems.

PluginMinimal access54Repository stars

Three.js Architecture Effects

threejs-architecture-effects

A skill building an orbitable Three.js building that assembles itself: brick, frame, procedural materials. The result is a working Vite and React site

SkillMinimal access729Repository stars

Three.js Awesome Graphics Skills

threejs-awesome-graphics-agent-skills

A three.js skills pack for great scene and game graphics: lighting, PBR, shaders, TSL and WebGPU, post-processing, particles

SkillMinimal access990Repository stars

Three skills for memorable websites: scroll scenes and 3D, a scroll audit and a landing page strategy.

SkillExtended access51Repository stars

Web Animation Skills

web-animation-skills

Web animation skills: GSAP, SVG, Lottie, micro-interactions, page transitions, 60 frames per second. Install with npx skills or as a plugin

SkillMinimal access90Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialRepository starsMain difference
Open 3D Skills (this card)no353
Three.js Skillsno4,168ten Three.js reference skills, while Open 3D Skills focuses on code-built scenes, transparent video, recording and page checks
scroll-craftno4,997a skill for premium scroll sites with a design standard, while here scenes, scroll films and recordings are separate skills

README in short

The page shows pavilion and motor example scenes, then explains installation through `npx skills`, Claude Code and Codex plugins, the Gemini CLI extension and a shell script. A table describes each of the eight skills and the scripts it ships with, followed by the workflow, requirements, common questions and related projects.

README badge

Original SKILL.md

---
name: threejs-scene
description: Builds real-time 3D websites in three.js from code alone, with no model files. Covers buildings and landmarks, vehicles, machines, landscapes and product studies made of procedural geometry (profile sweeps, lathes, instancing), canvas textures, shader patches, a physically based sky and sun, soft shadows, ambient occlusion and bloom, light presets, camera vantages and flights, quality tiers, and a starter that runs at 60 fps. Use when someone asks for a 3D website, a three.js scene, a WebGL hero, an interactive 3D model of a real place or object, a "3D version" of something, or when an existing three.js page looks flat, plasticky, aliased, washed out or slow.
---

# three.js scene

A convincing 3D page is mostly light and proportion, not polygon count. The White House reads as the White House because its storeys, column spacing and cornice depth are right, and because a low sun throws long shadows across it, not because every window has a frame. This skill builds scenes the way an architect's model is made: from real dimensions, in code, with lighting done properly.

## Start from the starter

`assets/starter/` is a complete, working scene (a round pavilion on a lawn) with everything below already wired. Copy it, keep `env.js`, `kit.js` and `main.js`, and replace `scene.js` with your subject.

```bash
cp -r assets/starter my-scene && cd my-scene
python3 -m http.server 8000      # any static server; ES modules need http://, not file://
```

| File | Holds |
| --- | --- |
| `index.html` | Import map pinned to three r169 (`three@0.169.0`), canvas, title, light buttons, loader |
| `main.js` | Renderer, camera, post stack, quality tiers, vantages and flights, recording hooks, frame loop |
| `env.js` | Sky, sun, image-based light, fog, clouds, night sky; three presets that blend; shadow fitting |
| `kit.js` | Seeded RNG, canvas textures, instancing kit, lathe, arc, profile sweep with mitred corners |
| `scene.js` | The example subject and every pattern worth copying |

URL parameters work out of the box: `?view=front|corner|low|aerial`, `?light=morning|golden|night`, `?quality=high|balanced|fast`, and `?record=1` for a frame-exact recording with `frame-capture`.

## Workflow

1. **Collect references and dimensions before writing geometry.** Plans, elevations, a photo from each side, the real measurements (storey heights, bay spacing, column diameter, wheelbase). Write them as constants at the top of the scene file in metres. A building built from guessed proportions looks like a toy however detailed it is.
2. **Block it out in boxes** at the right size and check from the vantages a visitor will see. Fix proportions now; detail hides nothing.
3. **Detail by kind, not by instance.** Write one column, one window, one baluster as a function, then place hundreds through the `Kit` (one draw call per part). Mouldings, kerbs, steps and rails are profiles swept along paths (`sweep`); round things are lathes.
4. **Light it** with a preset from `env.js`, then tune exposure, sun elevation and fog for the mood. Most of the realism arrives in this step.
5. **Add life:** wind in trees, water, flags, people or traffic as instanced sprites, lamps that come on at night. Drive all of it from the shared uniforms (`U.uTime`, `U.uWind`, `U.uNight`) so recording and light changes stay in sync.
6. **Measure and check** with `site-check`: frame time, draw calls, every vantage at every light, a phone. Then record with `frame-capture`.

## Rendering setup that matters

These are set in `main.js`; keep them unless you know why not.

- **Tone mapping** `ACESFilmicToneMapping` with exposure per preset (0.6 to 1.0). Without tone mapping, bright skies clip and everything looks like a game from 2009.
- **Antialiasing in the composer, not the canvas:** `antialias: false` on the renderer, and a `HalfFloatType` render target with `samples: 4` for the effect composer. Canvas MSAA does nothing once post-processing is on.
- **Post stack:** `RenderPass` → `GTAOPass` (ambient occlusion: contact shadows under cornices, between columns, where walls meet ground) → `UnrealBloomPass` (strength about 0.12 by day, 0.5 at night) → `OutputPass` (tone mapping and sRGB last). The GTAO pass is subclassed to hide anything with `userData.noAO` (sky layers, particles, glass) because AO darkens whatever it sees.
- **Image-based light from the sky itself:** `env.js` renders a private copy of the sky into a PMREM environment map, so reflections and ambient light match the sky's colour at every preset. Regenerate it while presets blend (every sixth frame is enough: PMREM is expensive).

Report a problem