{
  "schemaVersion": 2,
  "generatedAt": "2026-04-11T08:12:42.197Z",
  "siteOrigin": "https://misery.co",
  "docsBasePath": "/shaderpad",
  "llmsUrl": "https://misery.co/shaderpad/llms.txt",
  "llmsFullUrl": "https://misery.co/shaderpad/llms-full.txt",
  "examplesIndexUrl": "https://misery.co/shaderpad/examples/source/",
  "aiAgentGuideUrl": "https://misery.co/shaderpad/docs/getting-started/ai-agent-guide/",
  "entries": [
    {
      "kind": "doc",
      "section": "Getting Started",
      "title": "Overview",
      "description": "ShaderPad is a lightweight, dependency-free library that reduces boilerplate when working with fragment shaders.",
      "markdownPath": "/index.md",
      "markdownUrl": "https://misery.co/shaderpad/index.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/",
      "htmlUrl": "https://misery.co/shaderpad/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/page.md"
    },
    {
      "kind": "doc",
      "section": "Getting Started",
      "title": "AI agent guide",
      "description": "A single-page guide for AI agents and coding assistants writing correct ShaderPad programs.",
      "markdownPath": "/docs/getting-started/ai-agent-guide.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/getting-started/ai-agent-guide.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/getting-started/ai-agent-guide",
      "htmlUrl": "https://misery.co/shaderpad/docs/getting-started/ai-agent-guide/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/getting-started/ai-agent-guide/page.md"
    },
    {
      "kind": "doc",
      "section": "Getting Started",
      "title": "Installation",
      "description": "Install ShaderPad and understand when you also need MediaPipe.",
      "markdownPath": "/docs/getting-started/installation.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/getting-started/installation.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/getting-started/installation",
      "htmlUrl": "https://misery.co/shaderpad/docs/getting-started/installation/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/getting-started/installation/page.md"
    },
    {
      "kind": "doc",
      "section": "Getting Started",
      "title": "Learning shaders",
      "description": "A few practical ways to build intuition for shaders and find good teachers.",
      "markdownPath": "/docs/getting-started/learning-shaders.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/getting-started/learning-shaders.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/getting-started/learning-shaders",
      "htmlUrl": "https://misery.co/shaderpad/docs/getting-started/learning-shaders/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/getting-started/learning-shaders/page.md"
    },
    {
      "kind": "doc",
      "section": "Getting Started",
      "title": "Quickstart",
      "description": "Render your first animated shader with ShaderPad.",
      "markdownPath": "/docs/getting-started/quickstart.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/getting-started/quickstart.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/getting-started/quickstart",
      "htmlUrl": "https://misery.co/shaderpad/docs/getting-started/quickstart/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/getting-started/quickstart/page.md"
    },
    {
      "kind": "doc",
      "section": "Core Concepts",
      "title": "Built-in inputs",
      "description": "Learn the built-in varying and uniforms that ShaderPad updates for you.",
      "markdownPath": "/docs/core-concepts/built-in-inputs.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/core-concepts/built-in-inputs.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/core-concepts/built-in-inputs",
      "htmlUrl": "https://misery.co/shaderpad/docs/core-concepts/built-in-inputs/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/core-concepts/built-in-inputs/page.md"
    },
    {
      "kind": "doc",
      "section": "Core Concepts",
      "title": "Canvas and input",
      "description": "Choose canvas ownership, cursor targeting, and responsive sizing behavior.",
      "markdownPath": "/docs/core-concepts/canvas-and-input.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/core-concepts/canvas-and-input.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/core-concepts/canvas-and-input",
      "htmlUrl": "https://misery.co/shaderpad/docs/core-concepts/canvas-and-input/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/core-concepts/canvas-and-input/page.md"
    },
    {
      "kind": "doc",
      "section": "Core Concepts",
      "title": "Format and precision",
      "description": "Choose ShaderPad texture formats, data types, filters, and history precision deliberately.",
      "markdownPath": "/docs/core-concepts/format-and-precision.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/core-concepts/format-and-precision.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/core-concepts/format-and-precision",
      "htmlUrl": "https://misery.co/shaderpad/docs/core-concepts/format-and-precision/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/core-concepts/format-and-precision/page.md"
    },
    {
      "kind": "doc",
      "section": "Core Concepts",
      "title": "History",
      "description": "Use output history and texture history for feedback, delay, and temporal effects.",
      "markdownPath": "/docs/core-concepts/history.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/core-concepts/history.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/core-concepts/history",
      "htmlUrl": "https://misery.co/shaderpad/docs/core-concepts/history/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/core-concepts/history/page.md"
    },
    {
      "kind": "doc",
      "section": "Core Concepts",
      "title": "Shader lifecycle",
      "description": "Understand construction, rendering, stepping, pausing, and cleanup.",
      "markdownPath": "/docs/core-concepts/shader-lifecycle.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/core-concepts/shader-lifecycle.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/core-concepts/shader-lifecycle",
      "htmlUrl": "https://misery.co/shaderpad/docs/core-concepts/shader-lifecycle/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/core-concepts/shader-lifecycle/page.md"
    },
    {
      "kind": "doc",
      "section": "Core Concepts",
      "title": "Textures",
      "description": "Work with images, videos, canvases, typed arrays, and ShaderPad outputs.",
      "markdownPath": "/docs/core-concepts/textures.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/core-concepts/textures.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/core-concepts/textures",
      "htmlUrl": "https://misery.co/shaderpad/docs/core-concepts/textures/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/core-concepts/textures/page.md"
    },
    {
      "kind": "doc",
      "section": "Core Concepts",
      "title": "Uniforms",
      "description": "Initialize and update custom uniforms, including uniform arrays.",
      "markdownPath": "/docs/core-concepts/uniforms.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/core-concepts/uniforms.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/core-concepts/uniforms",
      "htmlUrl": "https://misery.co/shaderpad/docs/core-concepts/uniforms/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/core-concepts/uniforms/page.md"
    },
    {
      "kind": "doc",
      "section": "Guides",
      "title": "Chaining shaders",
      "description": "Build offscreen, multi-pass, and ShaderPad-as-texture workflows.",
      "markdownPath": "/docs/guides/chaining-shaders.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/guides/chaining-shaders.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/guides/chaining-shaders",
      "htmlUrl": "https://misery.co/shaderpad/docs/guides/chaining-shaders/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/guides/chaining-shaders/page.md"
    },
    {
      "kind": "doc",
      "section": "Guides",
      "title": "Performance",
      "description": "ShaderPad-specific ways to reduce bandwidth, copies, and unnecessary work.",
      "markdownPath": "/docs/guides/performance.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/guides/performance.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/guides/performance",
      "htmlUrl": "https://misery.co/shaderpad/docs/guides/performance/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/guides/performance/page.md"
    },
    {
      "kind": "doc",
      "section": "Guides",
      "title": "Saving images",
      "description": "Export ShaderPad output to PNG with the save utility.",
      "markdownPath": "/docs/guides/saving-images.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/guides/saving-images.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/guides/saving-images",
      "htmlUrl": "https://misery.co/shaderpad/docs/guides/saving-images/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/guides/saving-images/page.md"
    },
    {
      "kind": "doc",
      "section": "Guides",
      "title": "Webcam input",
      "description": "Use webcam video as a live texture in ShaderPad.",
      "markdownPath": "/docs/guides/webcam-input.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/guides/webcam-input.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/guides/webcam-input",
      "htmlUrl": "https://misery.co/shaderpad/docs/guides/webcam-input/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/guides/webcam-input/page.md"
    },
    {
      "kind": "doc",
      "section": "Plugins",
      "title": "autosize",
      "description": "Resize the canvas automatically and keep render resolution in sync.",
      "markdownPath": "/docs/plugins/autosize.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/plugins/autosize.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/plugins/autosize",
      "htmlUrl": "https://misery.co/shaderpad/docs/plugins/autosize/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/plugins/autosize/page.md"
    },
    {
      "kind": "doc",
      "section": "Plugins",
      "title": "face",
      "description": "Face landmarks, masks, and helper functions for ShaderPad.",
      "markdownPath": "/docs/plugins/face.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/plugins/face.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/plugins/face",
      "htmlUrl": "https://misery.co/shaderpad/docs/plugins/face/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/plugins/face/page.md"
    },
    {
      "kind": "doc",
      "section": "Plugins",
      "title": "hands",
      "description": "Hand landmarks and handedness helpers for ShaderPad.",
      "markdownPath": "/docs/plugins/hands.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/plugins/hands.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/plugins/hands",
      "htmlUrl": "https://misery.co/shaderpad/docs/plugins/hands/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/plugins/hands/page.md"
    },
    {
      "kind": "doc",
      "section": "Plugins",
      "title": "helpers",
      "description": "GLSL helpers for aspect fitting and history sampling.",
      "markdownPath": "/docs/plugins/helpers.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/plugins/helpers.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/plugins/helpers",
      "htmlUrl": "https://misery.co/shaderpad/docs/plugins/helpers/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/plugins/helpers/page.md"
    },
    {
      "kind": "doc",
      "section": "Plugins",
      "title": "pose",
      "description": "Pose landmarks and segmentation helpers for ShaderPad.",
      "markdownPath": "/docs/plugins/pose.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/plugins/pose.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/plugins/pose",
      "htmlUrl": "https://misery.co/shaderpad/docs/plugins/pose/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/plugins/pose/page.md"
    },
    {
      "kind": "doc",
      "section": "Plugins",
      "title": "segmenter",
      "description": "Segmentation masks and category/confidence sampling for ShaderPad.",
      "markdownPath": "/docs/plugins/segmenter.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/plugins/segmenter.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/plugins/segmenter",
      "htmlUrl": "https://misery.co/shaderpad/docs/plugins/segmenter/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/plugins/segmenter/page.md"
    },
    {
      "kind": "doc",
      "section": "API Reference",
      "title": "Events",
      "description": "Lifecycle and plugin events emitted by ShaderPad.",
      "markdownPath": "/docs/api/events.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/api/events.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/api/events",
      "htmlUrl": "https://misery.co/shaderpad/docs/api/events/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/api/events/page.md"
    },
    {
      "kind": "doc",
      "section": "API Reference",
      "title": "Methods",
      "description": "Public methods on ShaderPad instances.",
      "markdownPath": "/docs/api/methods.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/api/methods.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/api/methods",
      "htmlUrl": "https://misery.co/shaderpad/docs/api/methods/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/api/methods/page.md"
    },
    {
      "kind": "doc",
      "section": "API Reference",
      "title": "Plugins",
      "description": "Write custom ShaderPad plugins with lifecycle hooks, GLSL injection, and plugin-owned textures.",
      "markdownPath": "/docs/api/plugins.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/api/plugins.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/api/plugins",
      "htmlUrl": "https://misery.co/shaderpad/docs/api/plugins/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/api/plugins/page.md"
    },
    {
      "kind": "doc",
      "section": "API Reference",
      "title": "Properties",
      "description": "Public instance and class properties exposed by ShaderPad.",
      "markdownPath": "/docs/api/properties.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/api/properties.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/api/properties",
      "htmlUrl": "https://misery.co/shaderpad/docs/api/properties/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/api/properties/page.md"
    },
    {
      "kind": "doc",
      "section": "API Reference",
      "title": "ShaderPad",
      "description": "Constructor overview and API entry point for ShaderPad.",
      "markdownPath": "/docs/api/shaderpad.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/api/shaderpad.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/api/shaderpad",
      "htmlUrl": "https://misery.co/shaderpad/docs/api/shaderpad/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/api/shaderpad/page.md"
    },
    {
      "kind": "doc",
      "section": "API Reference",
      "title": "Uniforms",
      "description": "Complete reference for ShaderPad's built-in uniforms.",
      "markdownPath": "/docs/api/uniforms.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/api/uniforms.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/api/uniforms",
      "htmlUrl": "https://misery.co/shaderpad/docs/api/uniforms/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/api/uniforms/page.md"
    },
    {
      "kind": "doc",
      "section": "API Reference",
      "title": "Utilities",
      "description": "Utility exports from ShaderPad.",
      "markdownPath": "/docs/api/utilities.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/api/utilities.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/api/utilities",
      "htmlUrl": "https://misery.co/shaderpad/docs/api/utilities/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/api/utilities/page.md"
    },
    {
      "kind": "doc",
      "section": "Reference",
      "title": "Contributing",
      "description": "ShaderPad's philosophy, plugin guidance, and the bar for contributions to core.",
      "markdownPath": "/docs/about.md",
      "markdownUrl": "https://misery.co/shaderpad/docs/about.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": "/docs/about",
      "htmlUrl": "https://misery.co/shaderpad/docs/about/",
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/app/docs/about/page.md"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Basic",
      "description": "Interactive dot grid with cursor tracking and animated custom uniforms.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/basic.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/basic.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/basic.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Sway",
      "description": "Animated visualizer with user-controlled patterns.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/sway.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/sway.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/sway.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "LYGIA import",
      "description": "Using #include to pull LYGIA utilities into a shader.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/lygia.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/lygia.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/lygia.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "History tiles",
      "description": "Saving distinct frames into history, then composing them into a grid.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/history-tiles.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/history-tiles.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/history-tiles.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Cursor feedback",
      "description": "A shader that feeds back on itself through a 5x5 tiled history buffer.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/cursor-feedback.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/cursor-feedback.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/cursor-feedback.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Reading history",
      "description": "An illustration of how to read past frames using the historyZ helper.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/reading-history.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/reading-history.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/reading-history.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Selfie",
      "description": "Capture shader output to PNG with the save utility.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/selfie.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/selfie.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/selfie.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Webcam trails",
      "description": "Webcam echo trails built from texture history.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/webcam-trails.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/webcam-trails.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/webcam-trails.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Webcam channel trails",
      "description": "RGB webcam echoes blended from modified history frames.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/webcam-channel-trails.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/webcam-channel-trails.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/webcam-channel-trails.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Webcam grid",
      "description": "A webcam timeline arranged into a grid of delayed frames.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/webcam-grid.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/webcam-grid.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/webcam-grid.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Single-channel textures",
      "description": "An R8 webcam pass chained into history to show single-channel textures in action.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/single-channel-textures.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/single-channel-textures.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/single-channel-textures.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Fragmentum",
      "description": "A procedural animation ported from Shadertoy.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/fragmentum.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/fragmentum.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/fragmentum.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Webcam",
      "description": "Webcam compositing with a picture-frame overlay.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/webcam.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/webcam.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/webcam.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Face detection",
      "description": "Face landmarks, masks, and regions visualized live.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/face-detection.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/face-detection.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/face-detection.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Pose detection",
      "description": "Pose landmarks and segmentation overlays on live video.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/pose-detection.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/pose-detection.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/pose-detection.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Hand detection",
      "description": "Hand landmarks and centers visualized over webcam input.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/hand-detection.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/hand-detection.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/hand-detection.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Segmenter",
      "description": "Live multi-category segmentation masks composited over webcam video.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/segmenter.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/segmenter.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/segmenter.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "MediaPipe chaining",
      "description": "Two-pass webcam compositing with shared face detection.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/mediapipe-chaining.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/mediapipe-chaining.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/mediapipe-chaining.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Background blur",
      "description": "An advanced segmentation filter demonstrating a chained ShaderPad pipeline.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/background-blur.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/background-blur.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/background-blur.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Camo",
      "description": "Face- or body-centered camouflage with a live mode toggle.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/camo.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/camo.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/camo.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Elastics",
      "description": "Elastic glowing hand connections between fingertips and thumbs.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/elastics.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/elastics.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/elastics.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "Finger pens",
      "description": "Interactive ink strokes demo controlled by your fingertips.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/finger-pens.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/finger-pens.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/finger-pens.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "MIDI fingers",
      "description": "Hand tracking routed to MIDI CC output with a live visual overlay.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/midi-fingers.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/midi-fingers.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/midi-fingers.ts"
    },
    {
      "kind": "example",
      "section": "Examples",
      "title": "God rays",
      "description": "Volumetric glow from tracked hands and face landmarks.",
      "markdownPath": null,
      "markdownUrl": null,
      "assetPath": "/examples/source/god-rays.ts",
      "assetUrl": "https://misery.co/shaderpad/examples/source/god-rays.ts",
      "htmlPath": null,
      "htmlUrl": null,
      "language": "ts",
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/docs/src/examples/demos/god-rays.ts"
    },
    {
      "kind": "reference",
      "section": "Reference",
      "title": "Repository README",
      "description": "Long-form repository overview, API walkthrough, and example-driven reference.",
      "markdownPath": "/README.md",
      "markdownUrl": "https://misery.co/shaderpad/README.md",
      "assetPath": null,
      "assetUrl": null,
      "htmlPath": null,
      "htmlUrl": null,
      "language": null,
      "sourceUrl": "https://github.com/miseryco/shaderpad/blob/main/README.md"
    }
  ]
}
