npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

threlte-postprocessing

v0.0.10

Published

About 📬 postprocessing for svelte three.js (threlte)

Readme

Threlte Postprocessing

Version Downloads License

Threlte Postprocessing is a postprocessing effects library for Threlte, bringing powerful post-processing capabilities to your Svelte 3D applications. Built on top of three.js and postprocessing, it provides a set of ready-to-use effects that can be easily integrated into your Threlte scenes.

npm install threlte-postprocessing

Quick start 🚀

<script lang="ts">
  import { Canvas } from "@threlte/core";
  import Scene from "./Scene.svelte";
</script>

<Canvas>
  <Scene />
</Canvas>
<script lang="ts">
  import { EffectComposer } from 'threlte-postprocessing'
  import { DepthOfFieldEffect, BloomEffect, NoiseEffect, VignetteEffect } from 'threlte-postprocessing/effects'
</script>

<EffectComposer>
  <DepthOfFieldEffect focusDistance={0} focalLength={0.02} bokehScale={2} height={480} />
  <BloomEffect luminanceThreshold={0} luminanceSmoothing={0.9} height={300} />
  <NoiseEffect opacity={0.02} />
  <VignetteEffect eskil={false} offset={0.1} darkness={1.1} />
</EffectComposer>

Demo

Link to demo

Features ✨

  • 🎯 Seamless integration with Threlte and Svelte
  • ⚡️ Simple, declarative API
  • 🎨 Rich set of post-processing effects
  • 📦 Tree-shakeable effects
  • 🔧 Fully typed with TypeScript
  • 🎮 Real-time effect parameter updates

Effects Documentation 📚

Bloom

Adds a glow effect to bright areas of the scene.

<BloomEffect
  intensity={1.0}           // The intensity of the bloom effect (default: 1.0)
  luminanceThreshold={0.9}  // Minimum luminance required for bloom (default: 0.9)
  luminanceSmoothing={0.025}// Smoothing of the luminance threshold (default: 0.025)
  mipmapBlur={false}       // Whether to use mipmap blur (default: false)
  height={480}             // Render height (default: 480)
/>

BrightnessContrast

Adjusts the brightness and contrast of the scene.

<BrightnessContrastEffect
  brightness={0}           // Brightness adjustment (-1 to 1, default: 0)
  contrast={0}            // Contrast adjustment (-1 to 1, default: 0)
/>

ChromaticAberration

Simulates lens color separation artifacts.

<ChromaticAberrationEffect
  offset={[0.002, 0.002]}  // RGB offset vector (default: [0.002, 0.002])
  radialModulation={false} // Enable radial offset modulation (default: false)
  modulationOffset={0.15}  // Modulation offset (default: 0.15)
/>

ColorAverage

Reduces the image to a single average color.

<ColorAverageEffect />

ColorDepth

Reduces the color depth of the image.

<ColorDepthEffect
  bits={16}               // Number of bits per channel (default: 16)
/>

ColorGrading

Applies color adjustments to the final render.

<ColorGradingEffect
  lut={texture}            // Color lookup texture
  lutSize={32}            // Size of the lookup texture (default: 32)
  intensity={1.0}         // Effect intensity (default: 1.0)
/>

Depth

Renders the scene's depth buffer.

<DepthEffect
  inverted={false}        // Invert the depth values (default: false)
  near={0}               // Near plane distance (default: 0)
  far={1}               // Far plane distance (default: 1)
/>

DepthOfField

Simulates camera focus effects by blurring objects based on their distance from the focal point.

<DepthOfFieldEffect
  focusDistance={0.0}      // Distance to the focus point (default: 0.0)
  focalLength={0.02}       // Focal length of the simulated camera (default: 0.02)
  bokehScale={2.0}         // Size of the bokeh effect (default: 2.0)
  height={480}             // Render height (default: 480)
/>

DotScreen

Creates a dot-screen effect similar to halftone printing.

<DotScreenEffect
  angle={1.57}            // Pattern angle in radians (default: 1.57)
  scale={1.0}             // Pattern scale (default: 1.0)
/>

Glitch

Creates digital glitch effects.

<GlitchEffect
  delay={[1.5, 3.5]}      // Min/max delay between glitches (default: [1.5, 3.5])
  duration={[0.6, 1.0]}   // Min/max glitch duration (default: [0.6, 1.0])
  strength={[0.3, 1.0]}   // Min/max glitch strength (default: [0.3, 1.0])
  mode={GlitchMode.CONSTANT} // Glitch mode (CONSTANT, SPORADIC)
/>

GodRays

Creates volumetric lighting effects.

<GodRaysEffect
  decay={0.95}            // Light decay factor (default: 0.95)
  density={0.96}          // Ray density (default: 0.96)
  weight={0.4}            // Ray weight (default: 0.4)
  exposure={0.6}          // Ray exposure (default: 0.6)
  samples={60}            // Number of samples (default: 60)
/>

Grid

Overlays a grid pattern on the scene.

<GridEffect
  scale={1.0}             // Grid scale (default: 1.0)
  lineWidth={0.0}         // Grid line width (default: 0.0)
/>

HueSaturation

Adjusts the hue and saturation of the scene.

<HueSaturationEffect
  hue={0}                 // Hue adjustment (-Math.PI to Math.PI, default: 0)
  saturation={0}          // Saturation adjustment (-1 to 1, default: 0)
/>

Noise

Adds film grain or noise to the scene.

<NoiseEffect
  opacity={0.02}           // Noise opacity (default: 0.02)
  premultiply={false}      // Whether to premultiply the noise (default: false)
  blendFunction={BlendFunction.SCREEN} // Blend mode for the noise
/>

Pixelation

Creates a pixelated effect by reducing the resolution.

<PixelationEffect
  granularity={5}         // Size of pixels (default: 5)
/>

Scanline

Adds scanlines to the scene, similar to old CRT displays.

<ScanlineEffect
  density={1.25}          // Line density (default: 1.25)
/>

Sepia

Applies a sepia tone to the scene.

<SepiaEffect
  intensity={1.0}         // Effect intensity (default: 1.0)
/>

SMAA (Subpixel Morphological Antialiasing)

Provides high-quality antialiasing.

<SMAAEffect
  preset={SMAAPreset.HIGH} // Quality preset (LOW, MEDIUM, HIGH, ULTRA)
  edgeDetectionMode={EdgeDetectionMode.COLOR} // Detection mode (COLOR, DEPTH, LUMA)
/>

ToneMapping

Applies tone mapping to the scene.

<ToneMappingEffect
  mode={ToneMappingMode.REINHARD} // Tone mapping mode (REINHARD, OPTIMIZED, ACES, HEJL)
  exposure={1.0}          // Exposure level (default: 1.0)
  maxLuminance={16.0}     // Maximum luminance (default: 16.0)
  middleGrey={0.6}        // Middle grey point (default: 0.6)
  whitePoint={16.0}       // White point (default: 16.0)
/>

Vignette

Darkens the edges of the scene.

<VignetteEffect
  offset={0.5}             // Offset of the effect (default: 0.5)
  darkness={0.5}           // Intensity of the darkening (default: 0.5)
  eskil={false}            // Use Eskil's vignette technique (default: false)
/>

Custom Fluid Effect

Fluid like in react-fluid

<script lang="ts">
    import { FluidEffect } from "threlte-postprocessing/custom";
</script>

<!-- Don't forget to wrap it with <EffectComposer>! -->
<FluidEffect />

And more...

You can check more effects in effects folder

Contributing 🤝

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-effect)
  3. Commit your changes (git commit -m 'Add amazing effect')
  4. Push to the branch (git push origin feature/amazing-effect)
  5. Open a Pull Request

Performance Tips 💨

  • Only use the effects you need
  • Adjust effect quality settings based on device capabilities
  • Consider using the <EffectComposer> component for better control
  • Enable effect pass switching for dynamic performance optimization

Credits 🙏

This library builds upon several amazing projects:

License 📄

This project is licensed under the MIT License - see the LICENSE file for details.