38 lines
1.3 KiB
Markdown
38 lines
1.3 KiB
Markdown
# Wayland Shader Demo
|
|
|
|
A lightweight, interactive shader playground built with **C++**, **Wayland**, and **OpenGL ES 2.0**.
|
|
|
|

|
|
|
|
## Features
|
|
|
|
### 🌌 Interactive Fractals
|
|
* **Deep Zoom Mandelbrot**: Features an **Infinite Zoom** engine using Perturbation Theory (CPU computes 128-bit reference orbit, GPU renders delta). Zoom level up to $10^{34}$!
|
|
* **Customizable**: Use the sidebar sliders to adjust the **Exponent** (create "Multibrots") and morph the set with **Julia** offsets ($C_{real}$, $C_{imag}$).
|
|
* **Fractal Explorer**: Standard fractal shaders included.
|
|
|
|
### 🧪 Physics & Simulations
|
|
* **Fluid Dynamics**: Real-time interactive fluid simulation (mouse drag to swirl).
|
|
* **Reaction Diffusion**: "Living" texture simulation (Gray-Scott model).
|
|
* **Double Pendulum**: Chaotic physics visualization.
|
|
|
|
### 🎨 Visuals
|
|
* **Plasma & Tunnel**: Classic demoscene effects.
|
|
* **Sidebar UI**: Custom immediate-mode GUI with embedded font rendering.
|
|
|
|
## Controls
|
|
* **Left Click**: Select shader from sidebar.
|
|
* **Scroll**: Zoom (Mandelbrot).
|
|
* **Drag (Left Click)**: Pan view / Interact with Fluid / Adjust Sliders.
|
|
|
|
## Build & Run
|
|
```bash
|
|
make
|
|
./shader-demo
|
|
```
|
|
|
|
## Dependencies
|
|
* Wayland Client & EGL
|
|
* GLESv2
|
|
* libxkbcommon
|