Installation
Choose your framework. The registry installs one component file and its PixiJS dependency.
Installation unavailable
The preview is public, but its installable release is still being prepared.
The registry command writes the component to src/lib/components/ui/AsciiBloom.svelte and installs its dependencies.
The registry command writes the component to src/components/ui/AsciiBloom.tsx and installs its dependencies.
The registry command writes the component to src/components/ui/AsciiBloom.vue and installs its dependencies.
The effect uses two cached preprocessing targets and one final composition pass.
The ASCII bitmap map is embedded in the generated component and does not require a font asset.
Overview
ASCII Bloom extracts the brightest pixels, blurs them in two directions, and screen-blends the result over the source image.
A second threshold places small translucent ASCII glyphs only in cells reached by the blurred highlight layer, then shifts their shape and brightness with the shimmer over time.
Basic usage
The shader fills its parent. Your layout decides whether that parent is a card, hero, or viewport.
- Raise Bloom threshold to isolate smaller highlights. Bloom softness controls how gradually nearby tones join them.
- Glyph threshold controls where characters appear without rebuilding the cached bloom passes.
- Saturation changes the combined image and bloom without rebuilding the cached preprocessing passes.
- Set Speed to zero for a static overlay, or raise it to make the glyph shimmer and character changes travel faster.
Component API
Types below match the selected Svelte component.
Additional classes for the parent-sized root element.
- Type
string
URL or data URL of the image processed by the bloom passes.
- Type
string- Range / values
Image URL or data URL
Controls how the source image is placed inside the canvas.
- Type
"cover" | "fit" | "stretch"- Default
"cover"- Range / values
cover, fit, stretch
Minimum source luminance that contributes to the bloom.
- Type
number- Default
0.7- Range / values
0.2–0.95
Width of the transition into the extracted highlights.
- Type
number- Default
0.15- Range / values
0.01–0.4
Horizontal and vertical blur radius in render pixels.
- Type
number- Default
20- Range / values
0–48
Brightness of the blurred highlight layer.
- Type
number- Default
0.5- Range / values
0–3
Color saturation applied after the source image and bloom are combined.
- Type
number- Default
2- Range / values
0–2
Width and height of each ASCII cell in render pixels.
- Type
number- Default
12- Range / values
8–32
Maximum opacity of the ASCII overlay.
- Type
number- Default
0.8- Range / values
0–1
Minimum blurred highlight energy that reveals the glyphs.
- Type
number- Default
0.18- Range / values
0–0.8
Speed of the subtle shimmer moving across the ASCII glyphs.
- Type
number- Default
2- Range / values
0–2
Stops the render loop while keeping the current frame visible.
- Type
boolean- Default
false
Enables pointer-driven effects when the shader supports them.
- Type
boolean- Default
false
Caps render resolution independently from the element size.
- Type
number- Default
2- Range / values
1–3
Scales GPU resolution without changing layout dimensions.
- Type
number- Default
1- Range / values
0.25–1
Runs after the shader is mounted successfully, including a WebGL fallback.
- Type
(backend: ShaderBackend) => void- Range / values
webgpu, webgl
Runs when automatic initialization changes the requested WebGPU backend to WebGL.
- Type
(backend: ShaderBackend, reason: string) => void- Range / values
webgl
Reports source-loading or renderer failures so the host application can decide how to recover.
- Type
(error: Error) => void
Exposes the imperative component lifecycle methods.
- Type
Component public instance- Range / values
pause, resume, reset, resize, destroy
Types below match the selected React component.
Additional classes for the parent-sized root element.
- Type
string
URL or data URL of the image processed by the bloom passes.
- Type
string- Range / values
Image URL or data URL
Controls how the source image is placed inside the canvas.
- Type
"cover" | "fit" | "stretch"- Default
"cover"- Range / values
cover, fit, stretch
Minimum source luminance that contributes to the bloom.
- Type
number- Default
0.7- Range / values
0.2–0.95
Width of the transition into the extracted highlights.
- Type
number- Default
0.15- Range / values
0.01–0.4
Horizontal and vertical blur radius in render pixels.
- Type
number- Default
20- Range / values
0–48
Brightness of the blurred highlight layer.
- Type
number- Default
0.5- Range / values
0–3
Color saturation applied after the source image and bloom are combined.
- Type
number- Default
2- Range / values
0–2
Width and height of each ASCII cell in render pixels.
- Type
number- Default
12- Range / values
8–32
Maximum opacity of the ASCII overlay.
- Type
number- Default
0.8- Range / values
0–1
Minimum blurred highlight energy that reveals the glyphs.
- Type
number- Default
0.18- Range / values
0–0.8
Speed of the subtle shimmer moving across the ASCII glyphs.
- Type
number- Default
2- Range / values
0–2
Stops the render loop while keeping the current frame visible.
- Type
boolean- Default
false
Enables pointer-driven effects when the shader supports them.
- Type
boolean- Default
false
Caps render resolution independently from the element size.
- Type
number- Default
2- Range / values
1–3
Scales GPU resolution without changing layout dimensions.
- Type
number- Default
1- Range / values
0.25–1
Runs after the shader is mounted successfully, including a WebGL fallback.
- Type
(backend: ShaderBackend) => void- Range / values
webgpu, webgl
Runs when automatic initialization changes the requested WebGPU backend to WebGL.
- Type
(backend: ShaderBackend, reason: string) => void- Range / values
webgl
Reports source-loading or renderer failures so the host application can decide how to recover.
- Type
(error: Error) => void
Exposes the imperative component lifecycle methods.
- Type
AsciiBloomHandle- Range / values
pause, resume, reset, resize, destroy
Types below match the selected Vue component.
Additional classes for the parent-sized root element.
- Type
string
URL or data URL of the image processed by the bloom passes.
- Type
string- Range / values
Image URL or data URL
Controls how the source image is placed inside the canvas.
- Type
"cover" | "fit" | "stretch"- Default
"cover"- Range / values
cover, fit, stretch
Minimum source luminance that contributes to the bloom.
- Type
number- Default
0.7- Range / values
0.2–0.95
Width of the transition into the extracted highlights.
- Type
number- Default
0.15- Range / values
0.01–0.4
Horizontal and vertical blur radius in render pixels.
- Type
number- Default
20- Range / values
0–48
Brightness of the blurred highlight layer.
- Type
number- Default
0.5- Range / values
0–3
Color saturation applied after the source image and bloom are combined.
- Type
number- Default
2- Range / values
0–2
Width and height of each ASCII cell in render pixels.
- Type
number- Default
12- Range / values
8–32
Maximum opacity of the ASCII overlay.
- Type
number- Default
0.8- Range / values
0–1
Minimum blurred highlight energy that reveals the glyphs.
- Type
number- Default
0.18- Range / values
0–0.8
Speed of the subtle shimmer moving across the ASCII glyphs.
- Type
number- Default
2- Range / values
0–2
Stops the render loop while keeping the current frame visible.
- Type
boolean- Default
false
Enables pointer-driven effects when the shader supports them.
- Type
boolean- Default
false
Caps render resolution independently from the element size.
- Type
number- Default
2- Range / values
1–3
Scales GPU resolution without changing layout dimensions.
- Type
number- Default
1- Range / values
0.25–1
Runs after the shader is mounted successfully, including a WebGL fallback.
- Type
(backend: ShaderBackend) => void- Range / values
webgpu, webgl
Runs when automatic initialization changes the requested WebGPU backend to WebGL.
- Type
(backend: ShaderBackend, reason: string) => void- Range / values
webgl
Reports source-loading or renderer failures so the host application can decide how to recover.
- Type
(error: Error) => void
Exposes the imperative component lifecycle methods.
- Type
Component public instance- Range / values
pause, resume, reset, resize, destroy