Skip to content

alephtex/obsidian-special-effects

Repository files navigation

Obsidian Special Effects Renderer

A shader-based visual effects plugin for Obsidian that projects lens flare, bloom, glare, glitter, and glow effects over the entire UI.

Obsidian Special Effects Version License

Features

  • 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

Installation

Manual Installation

  1. Download the latest release from the Releases page
  2. Extract the files to your vault's .obsidian/plugins/obsidian-special-effects/ folder
  3. Ensure the folder contains:
    • main.js
    • manifest.json
    • styles.css
  4. Reload Obsidian or restart the app
  5. Enable the plugin in Settings → Community plugins

Development Installation

  1. Clone this repository:

    git clone https://github.com/alephtex/obsidian-special-effects.git
    cd obsidian-special-effects
  2. Install dependencies:

    npm install
  3. Build the plugin:

    npm run build
  4. Copy the built files to your vault's plugin folder:

    cp main.js manifest.json styles.css [your-vault]/.obsidian/plugins/obsidian-special-effects/

Usage

Basic Usage

  1. Open Obsidian Settings → Community plugins
  2. Find "Special Effects Renderer" and enable it
  3. The effects will start rendering immediately

Configuration

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

Presets

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

Commands

  • Toggle Special Effects: Quickly enable/disable effects
  • Apply Next Effect Preset: Cycle through available presets

Performance

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

Requirements

  • Obsidian v1.5.0 or higher
  • WebGL-capable graphics card (most modern systems)

Development

Project Structure

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

Building

npm run build

Watch Mode

npm run build -- --watch

TypeScript

The project uses TypeScript for type safety. Configuration is in tsconfig.json.

Troubleshooting

Effects not showing

  1. Check that the plugin is enabled in Settings → Community plugins
  2. Verify WebGL is available (check browser console for errors)
  3. Try adjusting the quality setting to "Low"
  4. Ensure "Enable effects" is turned on in plugin settings

Performance issues

  1. Lower the quality setting
  2. Reduce effect intensity
  3. Disable "Follow cursor" if not needed
  4. Enable "Auto pause when unfocused"

Effects appear inverted

This was a known issue in earlier versions. Update to the latest version to fix.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

License

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

Acknowledgments

  • Built with Obsidian Plugin API
  • Uses WebGL for hardware-accelerated rendering
  • Inspired by cinematic post-processing effects

Author

Benjamin Steimer

Support

If you encounter any issues or have questions:

  1. Check the Issues page
  2. Create a new issue with details about your problem
  3. Include Obsidian version and system information

Made with ❤️ for the Obsidian community

About

Shader-based visual effects plugin for Obsidian

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors