A shader-based visual effects plugin for Obsidian that projects lens flare, bloom, glare, glitter, and glow effects over the entire UI.
- Shader-Based Effects: Real-time WebGL rendering of visual effects
- Global UI Coverage: Effects render across the entire Obsidian interface, not just the editor
- Cursor Tracking: Effects follow your mouse cursor and keyboard input
- Multiple Effect Types:
- Bloom: Soft glow around bright areas
- Lens Flare: Cinematic streaks and halos
- Glitter: Sparkling particle effects
- Glow Pulse: Animated breathing effect
- Performance Optimized: Configurable quality presets and automatic pause when window loses focus
- Customizable: Extensive settings for fine-tuning each effect
- Download the latest release from the Releases page
- Extract the files to your vault's
.obsidian/plugins/obsidian-special-effects/folder - Ensure the folder contains:
main.jsmanifest.jsonstyles.css
- Reload Obsidian or restart the app
- Enable the plugin in Settings → Community plugins
-
Clone this repository:
git clone https://github.com/alephtex/obsidian-special-effects.git cd obsidian-special-effects -
Install dependencies:
npm install
-
Build the plugin:
npm run build
-
Copy the built files to your vault's plugin folder:
cp main.js manifest.json styles.css [your-vault]/.obsidian/plugins/obsidian-special-effects/
- Open Obsidian Settings → Community plugins
- Find "Special Effects Renderer" and enable it
- The effects will start rendering immediately
Access settings via Settings → Special Effects Renderer:
- Enable effects: Master toggle for all effects
- Auto pause when unfocused: Automatically pause rendering when Obsidian loses focus
- Quality: Choose between Ultra, High, Medium, or Low quality presets
- Global intensity: Overall strength multiplier for all effects
- Bloom strength: Controls how strongly bright areas bleed into bloom
- Lens flare strength: Intensity of streaks and halos
- Glitter density: Amount of sparkles in bright regions
- Glow pulse animation: Enable animated breathing effect
- Follow cursor: Anchor glow effects to mouse/cursor position
The plugin includes three curated presets:
- Studio Lens: Balanced bloom and flare for a cinematic feel
- Minimal Glow: Soft bloom with subtle glow, gentle on performance
- Cyber Glitter: High-energy sparkle and fast pulses for futuristic vibes
- Toggle Special Effects: Quickly enable/disable effects
- Apply Next Effect Preset: Cycle through available presets
The plugin is designed to be performant:
- Adaptive Quality: Lower quality settings reduce shader complexity
- Auto-Pause: Automatically pauses when Obsidian loses focus (optional)
- Efficient Rendering: Uses WebGL for hardware-accelerated rendering
- Status Bar Metrics: Monitor FPS and frame time in the status bar
- Obsidian v1.5.0 or higher
- WebGL-capable graphics card (most modern systems)
obsidian-special-effects/
├── src/
│ ├── main.ts # Plugin entry point
│ ├── settings.ts # Settings and presets
│ ├── settings-tab.ts # Settings UI
│ └── overlay/
│ ├── effect-renderer.ts # WebGL shader renderer
│ ├── editor-overlay.ts # Editor-specific overlay
│ ├── global-overlay.ts # Global UI overlay
│ └── overlay-manager.ts # Overlay lifecycle management
├── styles.css # Plugin styles
├── manifest.json # Plugin manifest
├── package.json # Dependencies
├── tsconfig.json # TypeScript config
└── esbuild.config.mjs # Build configuration
npm run buildnpm run build -- --watchThe project uses TypeScript for type safety. Configuration is in tsconfig.json.
- Check that the plugin is enabled in Settings → Community plugins
- Verify WebGL is available (check browser console for errors)
- Try adjusting the quality setting to "Low"
- Ensure "Enable effects" is turned on in plugin settings
- Lower the quality setting
- Reduce effect intensity
- Disable "Follow cursor" if not needed
- Enable "Auto pause when unfocused"
This was a known issue in earlier versions. Update to the latest version to fix.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Built with Obsidian Plugin API
- Uses WebGL for hardware-accelerated rendering
- Inspired by cinematic post-processing effects
Benjamin Steimer
- GitHub: @alephtex
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with details about your problem
- Include Obsidian version and system information
Made with ❤️ for the Obsidian community