Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add CesiumGS/cesiumjs-skills --skill cesiumjs-custom-shadergit clone --depth 1 https://github.com/CesiumGS/cesiumjs-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/cesiumgs/cesiumjs-skills/cesiumjs-custom-shader)<a href="https://agentmods.dev/skills/cesiumgs/cesiumjs-skills/cesiumjs-custom-shader"><img src="https://agentmods.dev/badge/skills/cesiumgs/cesiumjs-skills/cesiumjs-custom-shader/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/cesiumgs/cesiumjs-skills/cesiumjs-custom-shader"><img src="https://agentmods.dev/badge/skills/cesiumgs/cesiumjs-skills/cesiumjs-custom-shader.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00061 | $0.05335 |
| Opus 5.5 | $0.00024 | $0.02134 |
| Sonnet 5.5 | $0.00012 | $0.01067 |
| Haiku 4.5 | $0.00006 | $0.00534 |
Grade A, and why
cesiumjs-custom-shader scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 376 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CesiumJS CustomShader
Version baseline: CesiumJS 1.144. All imports use ES module style.
CustomShader injects user GLSL into the Model / Cesium3DTileset / VoxelPrimitive rendering pipeline. It exposes glTF attributes, feature IDs, and EXT_structural_metadata to per-vertex and per-fragment code, and returns values through the built-in czm_modelVertexOutput and czm_modelMaterial structs.
Use this skill for writing the shader body. Use:
cesiumjs-materials-shaders— for FabricMaterial,ImageBasedLighting,PostProcessStage(bloom, SSAO, FXAA, tonemapping).cesiumjs-3d-tiles— for declarative per-feature coloring viaCesium3DTileStyle, and forVoxelPrimitivesetup/configuration.cesiumjs-models-particles— forModel.fromGltfAsync, animations,ModelFeature.getProperty().
Out of scope
- Fabric
Materialfor entity polylines/polygons/walls — seecesiumjs-materials-shaders. PostProcessStagescreen-space effects — seecesiumjs-materials-shaders.ImageBasedLighting— seecesiumjs-materials-shaders.Cesium3DTileStyledeclarative JSON styling — seecesiumjs-3d-tiles. Do not combine with CustomShader on the same tileset.- Authoring
EXT_structural_metadata/EXT_mesh_featuresin glTF — tooling concern, not runtime.
Minimal example
import { CustomShader, Model } from "cesium";
const shader = new CustomShader({
fragmentShaderText: `
void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) {
material.diffuse = vec3(1.0, 0.0, 0.0);
}
`,
});
const model = await Model.fromGltfAsync({ url: "./aircraft.glb", customShader: shader });
viewer.scene.primitives.add(model);
Note: Writing
material.alpharequirestranslucencyMode: CustomShaderTranslucencyMode.TRANSLUCENT— see "Translucency" below. On opaque models with the defaultINHERITmode, alpha writes are silently ignored.
Visual eval framing: after adding a shadered
Model, wait until the model is ready enough to render, then frame a known target point explicitly. Do not rely on the first post-load frame or on a tiny default-scale model. For public model evals, setminimumPixelSize(usually 256-400), use a moderatescale, and add a silhouette or strong color tint when the shader effect is the thing being judged.
What ships with it
10 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- examples/_sandcastle-template.html 409 B
- examples/01-diffuse-tint.js 1.2 KB runs code
- examples/02-texture-swap.js 1.3 KB runs code
- examples/03-feature-id-tileset.js 1.3 KB runs code
- examples/04-translucent-override.js 1.2 KB runs code
- examples/05-vertex-displacement.js 1.7 KB runs code
- examples/06-metadata-ramp.js 1.8 KB runs code
- examples/07-voxel-shader.js 1.3 KB runs code
- examples/README.md 972 B
- REFERENCE.md 18 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago Changed · +24 lines 56b87733ddc4
- 1mo ago First seen · 352 lines · 61 tokens per session scan A e98924200edc
cesiumjs-custom-shader is a skill published in the GitHub repository CesiumGS/cesiumjs-skills (193 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 61 tokens to every session and 5,335 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
motherduck-create-dive
Create, edit, design, publish, share, or embed MotherDuck Dives, including responsive layout, light/dark themes, and buttons that write back through Flights.
motherduck-create-flight
Create, run, schedule, or debug MotherDuck Flights, Python jobs executed on MotherDuck compute.
motherduck-build-cfa-app
Build MotherDuck analytics into customer-facing applications with tenant isolation, backend routing, and serving APIs.
motherduck-build-data-pipeline
Build ingestion-to-serving pipelines on MotherDuck, including stage boundaries, transformations, and publication. Use for any recurring ingestion from an API, SaaS app, or database into MotherDuck.
motherduck-connect
Set up or troubleshoot MotherDuck connections, the MotherDuck MCP server in AI clients, authentication, client runtimes, and read scaling.
motherduck-migrate-to-motherduck
Plan or implement migrations to MotherDuck with SQL translation, source-to-target validation, cutover, and rollback.