Web & Frontendlow risk

webgl-raymarched-hero

A real-time raymarched 3D hero — soft-shadowed morphing metaballs with a fresnel rim light, sphere-traced per pixel in a fragment shader with a slow camera orbit. No meshes, no textures. Rendered as a single self-contained `index.html`. Use when the brief asks for a "raymarch", "signed distance field", "SDF", "3D hero", "metaballs", "blobs", or a shader-based 3D scene. Open Design serves this in powered-preview mode so the GPU stack actually runs.

nexu-io/open-design·plugins/_official/examples/webgl-raymarched-hero/SKILL.md
61/ 100推荐值

导入这个 Skill

选择你的 coding agent,复制项目级或个人级安装命令。

固定到平台收录的 commit
导入当前项目.agents/skills/webgl-raymarched-hero
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/examples/webgl-raymarched-hero -a codex -y
导入个人环境~/.agents/skills/webgl-raymarched-hero
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/examples/webgl-raymarched-hero -a codex -g -y
手动放置目录.agents/skills/webgl-raymarched-heroOfficial docs ↗
导入当前项目.claude/skills/webgl-raymarched-hero
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/examples/webgl-raymarched-hero -a claude-code -y
导入个人环境~/.claude/skills/webgl-raymarched-hero
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/examples/webgl-raymarched-hero -a claude-code -g -y
手动放置目录.claude/skills/webgl-raymarched-heroOfficial docs ↗
导入当前项目.agents/skills/webgl-raymarched-hero
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/examples/webgl-raymarched-hero -a github-copilot -y
导入个人环境~/.copilot/skills/webgl-raymarched-hero
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/examples/webgl-raymarched-hero -a github-copilot -g -y
手动放置目录.agents/skills/webgl-raymarched-heroOfficial docs ↗
导入当前项目.agents/skills/webgl-raymarched-hero
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/examples/webgl-raymarched-hero -a cursor -y
导入个人环境~/.cursor/skills/webgl-raymarched-hero
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/examples/webgl-raymarched-hero -a cursor -g -y
手动放置目录.agents/skills/webgl-raymarched-heroOfficial docs ↗
导入当前项目.agents/skills/webgl-raymarched-hero
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/examples/webgl-raymarched-hero -a gemini-cli -y
导入个人环境~/.gemini/skills/webgl-raymarched-hero
npx skills add https://github.com/nexu-io/open-design/tree/7533db3f4342d09b27368fa5d907ebd3cdb93b75/plugins/_official/examples/webgl-raymarched-hero -a gemini-cli -g -y
Native Gemini CLIgemini skills install https://github.com/nexu-io/open-design.git --scope workspace --path plugins/_official/examples/webgl-raymarched-hero
手动放置目录.agents/skills/webgl-raymarched-heroOfficial docs ↗
⚠ 安装命令使用开源 skills CLI。执行前请检查来源、脚本和权限。
# Raymarched Hero Skill

Produce a single self-contained `index.html` that renders a real-time 3D scene **entirely in a fragment shader** via sphere tracing, full-screen, with a clean typographic overlay on top.

## Why this is a powered artifact

Open Design detects `getContext('webgl2')` and renders this file in **powered preview** — a cross-origin-isolated iframe with `allow-same-origin`. The full GPU pipeline is available; you do not need to work around the opaque sandbox.

## Resource map

```
webgl-raymarched-hero/
├── SKILL.md      ← you're reading this
└── example.html  ← a working SDF metaball raymarcher (READ FIRST)
```

## Workflow

### Step 0 — Read the reference
Read `example.html` end to end. Note the shape: one fullscreen triangle; a `map(p)` signed-distance function that smooth-unions (`smin`) several moving spheres; normals by finite differences; a `softShadow` march; and a camera built from `ro`/`ta` with a slow orbit. Shading = diffuse × soft shadow + fresnel rim + a tight specular.

### Step 1 — Choose the SDF
Keep the marcher cheap so it holds 60fps:
- **Metaballs** (default): a few spheres blended with `smin` — organic, always readable.
- **Rounded primitives**: box/torus/capsule SDFs with domain repetition for a structured hero.
- **Displaced surface**: a sphere plus a low-amplitude noise displacement for a molten look.

### Step 2 — Build `index.html`
- One file, zero external requests. Fullscreen triangle + fragment raymarch.
- Bound the march: cap iterations (~90), early-out on hit (`d < 0.001`) and on far distance; clamp DPR to ~1.5 — raymarching is per-pixel heavy.
- Light it: diffuse, a soft/penumbra shadow, a fresnel rim (`pow(1 - dot(n,-rd), 3)`), and one specular lobe. Gentle gamma at the end.
- Compile shaders with error logging so a typo fails loudly, not silently black.

### Step 3 — Overlay + brand
- Map the accent colors to the active DESIGN.md when one is present; otherwise a restrained dark palette with one vivid accent (the reference tints the surface toward lime `#63fe13` and rims it in teal).
- Headline ≤ 13ch plus one supporting line. Keep the 3D form as the hero.

### Step 4 — Self-review (P0)
- [ ] Renders continuously at ~60fps; the FPS badge updates.
- [ ] Surface has real depth cues: shadow, rim, and a moving specular.
- [ ] No banding artifacts at the silhouette; normals are stable.
- [ ] Resizes crisply on window resize (no stretching / blur).
- [ ] Degrades to a message (not a blank page) if `webgl2` is unavailable.