Skip to content

Commit 6bcca1a

Browse files
authored
Merge pull request #15 from web3dev1337/feature/readme-refresh
docs: refresh README with showcase examples + add LICENSE
2 parents fa9394d + 93adb01 commit 6bcca1a

17 files changed

Lines changed: 284 additions & 214 deletions

CLAUDE.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@
66
3. Run on `http://localhost:4444` (do NOT use port 3000)
77

88
## Project Overview
9-
WebGL shader-based procedural texture generator. Originally by mebiusbox (MIT). Enhanced into a professional multi-layer texture creation tool with PBR export, 3D preview, gradient editor, undo/redo, and 119 pre-rendered sprite sheet particle effects (100 pixy-based + 19 custom GLSL).
9+
WebGL shader-based procedural texture generator. Uses mebiusbox's MIT-licensed pixy.js shader library. Built into a professional multi-layer texture creation tool with PBR export, 3D preview, gradient editor, undo/redo, and 119 pre-rendered sprite sheet particle effects (100 pixy-based + 19 custom GLSL).
1010

1111
## Key Files
1212
- `editor.html` - Main editor (loads src/app.js, has layers/PBR/gradient/export)
13-
- `index.html` - Original editor (loads fxgen.module.min.js, kept for compat)
14-
- `fxgen.module.min.js` - Original minified app (kept for index.html)
15-
- `pixy.module.min.js` - 439KB shader library (DO NOT MODIFY)
13+
- `index.html` - Redirect to showcase.html
14+
- `pixy.module.min.js` - 439KB MIT-licensed shader library by mebiusbox (DO NOT MODIFY)
1615
- `gallery.html` - Live animated gallery of 70+ effects
1716
- `particles.html` - 3D particle viewport + Browse 100 mode
1817
- `sprite-gallery.html` - 119 animated sprite sheets from pre-rendered PNGs
@@ -74,7 +73,6 @@ WebGL shader-based procedural texture generator. Originally by mebiusbox (MIT).
7473
- **Analogous cool**: Warp Rainbow (teal→blue→violet HSV sweep)
7574

7675
## Gotchas
77-
- `s` (fxgen app object) is module-private — not accessible from outside
7876
- Gallery uses IntersectionObserver + round-robin (max 6/frame) for GPU efficiency
7977
- Puppeteer needs Xvfb for WebGL: `xvfb-run --auto-servernum node save-sprites.mjs`
8078
- Custom shaders NOT in editor yet — only in sprite gallery. Editor uses pixy effects only.

CODEBASE_DOCUMENTATION.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# ShaderBrew — Codebase Documentation
22

3-
Enhanced fork of mebiusbox's MIT-licensed WebGL procedural texture generator. Transformed from a single-effect viewer into a multi-layer texture creation tool with PBR export, 3D preview, gradient editor, undo/redo, and 160 animated sprite sheet effects (100 FXGEN + 52 custom GLSL + 8 composites).
3+
WebGL procedural texture generator built on mebiusbox's MIT-licensed pixy.js shader library. Multi-layer texture creation tool with PBR export, 3D preview, gradient editor, undo/redo, and 160 animated sprite sheet effects (100 FXGEN + 52 custom GLSL + 8 composites).
44

55
## Quick Navigation
66

77
```
88
ENTRY POINTS:
99
editor.html Main editor (loads src/app.js)
10-
index.html Original editor (loads fxgen.module.min.js, kept for compat)
10+
index.html Redirect to showcase.html
1111
gallery.html Live animated gallery of 70+ effects
1212
showcase.html Feature showcase (pipeline + custom GLSL previews)
1313
demos.html Interactive material demos
@@ -67,8 +67,7 @@ PRESET & LOADER:
6767
preset-loader.js Preset bar UI + JSON/URL loading
6868
6969
LIBRARY (DO NOT MODIFY):
70-
pixy.module.min.js 439KB shader library — 70+ effects, noise functions, Composer
71-
fxgen.module.min.js 42KB original app (kept for index.html compat)
70+
pixy.module.min.js 439KB MIT-licensed shader library by mebiusbox — 70+ effects, noise functions, Composer
7271
7372
DATA:
7473
presets/ 38 JSON preset files (13 custom + 25 built-in)
@@ -197,7 +196,7 @@ Exportable individually or as ZIP bundle.
197196

198197
| Phase | Status | Description |
199198
|-------|--------|-------------|
200-
| 0 | DONE | Deobfuscated fxgen into src/ modules |
199+
| 0 | DONE | Built src/ modules using pixy.js shader API |
201200
| 1 | DONE | Multi-layer compositing (LayerManager, 9 blend modes, Compositor) |
202201
| 2 | DONE | Gradient map color ramp (editor + 5 presets + GLSL shader) |
203202
| 3 | DONE | Enhanced UI layout (layer panel, toolbar, split-pane) |
@@ -229,7 +228,6 @@ xvfb-run --auto-servernum --server-args="-screen 0 1280x1024x24" node save-custo
229228
| Component | Files | Size |
230229
|-----------|-------|------|
231230
| pixy.module.min.js | 1 | 439KB |
232-
| fxgen.module.min.js | 1 | 42KB |
233231
| src/ modules | 22 | ~3,800 lines |
234232
| sprites/ | 118 | ~133MB |
235233
| presets/ | 38 | ~200KB |

LICENSE

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
MIT License
2+
3+
Copyright (c) 2017 mebiusbox (pixy.js shader library — pixy.module.min.js)
4+
Copyright (c) 2025 web3dev1337 (ShaderBrew — everything else)
5+
6+
Permission is hereby granted, free of charge, to any person obtaining a copy
7+
of this software and associated documentation files (the "Software"), to deal
8+
in the Software without restriction, including without limitation the rights
9+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
copies of the Software, and to permit persons to whom the Software is
11+
furnished to do so, subject to the following conditions:
12+
13+
The above copyright notice and this permission notice shall be included in all
14+
copies or substantial portions of the Software.
15+
16+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
SOFTWARE.

PLAN.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## Context
44

5-
ShaderBrew (originally EffectTextureMaker by mebiusbox, MIT) is a WebGL shader-based procedural texture generator. We forked it and have been enhancing it into a professional multi-layer texture creation tool.
5+
ShaderBrew is a WebGL shader-based procedural texture generator built on mebiusbox's MIT-licensed pixy.js shader library. Enhanced into a professional multi-layer texture creation tool.
66

77
**Current state (work already done on branch `work1`):**
88
- Created `gallery.html` - live animated gallery of all 70+ effects with IntersectionObserver for GPU efficiency
@@ -114,10 +114,10 @@ Created 5 basic V1 presets + 8 advanced V2 presets with intentional parameter in
114114

115115
## Implementation Plan
116116

117-
### Phase 0: Deobfuscate & Structure -- DONE (commit ff2d265)
117+
### Phase 0: Project Structure -- DONE (commit ff2d265)
118118
**Files created:** `src/app.js`, `src/pixy-api.js`, `src/defaults.js`, `src/render-pipeline.js`, `src/sprite-sheet.js`, `src/alpha-export.js`, `src/noise-sphere.js`, `src/preset-loader.js`, `src/ui/gui-setup.js`, `editor.html`
119119

120-
- [x] Deobfuscated fxgen.module.min.js into 10 focused modules in src/
120+
- [x] Built 10 focused modules in src/ using pixy.js shader API
121121
- [x] Created pixy-api.js facade
122122
- [x] Created editor.html loading from src/
123123
- [ ] Verify everything works identically (needs browser test)

README.md

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,25 @@
22

33
Professional WebGL procedural texture generator. Multi-layer compositing, PBR map generation, 3D material preview, 52 custom GLSL shaders, and 65+ procedural effects — all running in your browser with zero dependencies.
44

5-
**[Live Demo](https://web3dev1337.github.io/shaderbrew/showcase.html)** | **[Open Editor](https://web3dev1337.github.io/shaderbrew/editor.html)**
5+
**[Live Showcase](https://web3dev1337.github.io/shaderbrew/showcase.html)** | **[Open Editor](https://web3dev1337.github.io/shaderbrew/editor.html)**
6+
7+
---
8+
9+
## What It Does
10+
11+
The **[Showcase](https://web3dev1337.github.io/shaderbrew/showcase.html)** walks through the full pipeline in 7 chapters:
12+
13+
| Chapter | What You See |
14+
|---------|-------------|
15+
| **Raw Canvas** | 65+ procedural effects — explosions, corona, caustics, frozen lightning |
16+
| **Color Balance** | RGB channel shifting on raw effects |
17+
| **Gradient Mapping** | One explosion through 10 different color palettes |
18+
| **Multi-Layer Compositing** | Organic caustics + digital matrix blended with 9 modes |
19+
| **Combination** | Full chains — two effects blended and gradient-mapped |
20+
| **PBR Maps** | Auto-generated Normal, Roughness, AO, Metallic from any texture |
21+
| **3D Preview** | PBR materials applied to lit, rotating geometry in real-time |
22+
23+
The hero demo builds a **Dark Ritual Portal** from scratch — layering a raymarched warp tunnel with a sprite ring and alpha compositing it into a final effect.
624

725
---
826

@@ -23,13 +41,15 @@ Professional WebGL procedural texture generator. Multi-layer compositing, PBR ma
2341
<img src="docs/media/dark-ritual-portal.gif" width="160" alt="Dark Ritual Portal">
2442
</p>
2543

44+
The showcase features 12 of these live — Volumetric Nebula, Black Hole, Cosmic Jellyfish, God Rays, Reality Shatter, Dimensional Portal, Time Vortex, Particle Collider, Void Tendril, and Summoning Circle among them.
45+
2646
---
2747

2848
## Pages
2949

3050
| Page | Description |
3151
|------|-------------|
32-
| **[Showcase](https://web3dev1337.github.io/shaderbrew/showcase.html)** | Guided tour — live renders, 3D preview, PBR maps, 7 chapters |
52+
| **[Showcase](https://web3dev1337.github.io/shaderbrew/showcase.html)** | Guided tour — 7 chapters, live renders, PBR pipeline walkthrough |
3353
| **[Editor](https://web3dev1337.github.io/shaderbrew/editor.html)** | Full texture editor — layers, gradients, PBR export, undo/redo |
3454
| **[Gallery](https://web3dev1337.github.io/shaderbrew/gallery.html)** | Live animated gallery of 70+ procedural effects |
3555
| **[Material Forge](https://web3dev1337.github.io/shaderbrew/demos.html)** | 3D material demo — textures on lit spinning objects with bloom |
@@ -41,24 +61,18 @@ Professional WebGL procedural texture generator. Multi-layer compositing, PBR ma
4161
## Features
4262

4363
### Editor
44-
- **65+ procedural effect types** — explosions, fire, plasma, voronoi, fractals, caustics, and more
45-
- **52 custom GLSL shaders** — raymarched nebulae, black holes, warp tunnels, fractals, cosmic phenomena
46-
- **Multi-layer compositing** — unlimited layers with 9 blend modes (Normal, Multiply, Screen, Overlay, etc.)
64+
- **65+ procedural effect types** — explosions, fire, plasma, voronoi, fractals, caustics
65+
- **52 custom GLSL shaders** — raymarched nebulae, black holes, warp tunnels, fractals
66+
- **Multi-layer compositing** — unlimited layers with 9 blend modes
4767
- **Gradient color mapping** — multi-stop gradient editor with 5 presets
48-
- **PBR map generation**auto-generates Normal, Roughness, AO, and Metallic maps
49-
- **3D material preview** — real-time on sphere/cube/torus knot with environment reflections, ACES tone mapping, PCF shadows
68+
- **PBR map generation** — Normal, Roughness, AO, Metallic
69+
- **3D material preview** — real-time on sphere/cube/torus knot with environment reflections
5070
- **Undo/Redo** — 50-state history (Ctrl+Z / Ctrl+Shift+Z)
5171
- **Export** — PNG, JPEG, ZIP bundles with all PBR maps, up to 2048x2048
5272

5373
### Sprite Sheets
5474
- **119 pre-rendered sprite sheets** — 6x6 grid, 36 frames each
5575
- **Game-ready** — transparent PNGs with alpha for particle systems and VFX
56-
- **Export** — GIF and MP4 video export via Puppeteer + ffmpeg
57-
58-
### Showcase
59-
- **Dark Ritual Portal** — multi-layer composite build walkthrough
60-
- **Material Forge** — live 3D scene with PBR materials, bloom, and environment lighting
61-
- **7 chapters** — raw effects, color balance, gradients, layers, compositing, PBR maps, 3D preview
6276

6377
---
6478

@@ -71,40 +85,23 @@ Professional WebGL procedural texture generator. Multi-layer compositing, PBR ma
7185
- **JSZip** — ZIP export (loaded on demand)
7286
- No build step, no bundler — pure ES modules served directly
7387

74-
## Architecture
75-
76-
```
77-
editor.html Main editor
78-
src/
79-
app.js Main coordinator
80-
render-pipeline.js 6-pass pipeline (Base > Polar > ColorBalance > Tiling > Normal > Copy)
81-
layer-manager.js Multi-layer CRUD, reorder, duplicate
82-
compositor.js Ping-pong RT compositor, 9 blend modes
83-
gradient-editor.js Multi-stop gradient editor
84-
pbr-generator.js Normal / Roughness / AO / Metallic pass generation
85-
preview-3d.js 3D preview — PMREM environment, ACES tone mapping, shadows
86-
history.js Undo/redo (50 snapshots)
87-
export.js PNG / JPEG / ZIP export
88-
ui/ GUI panels, layer panel, toolbar, action dock
89-
shaders/ Blend modes, gradient map, tiling, PBR shaders
90-
shader-defs.js 52 custom GLSL shader sources
91-
```
92-
9388
## Running Locally
9489

9590
```bash
9691
git clone https://github.com/web3dev1337/shaderbrew.git
9792
cd shaderbrew
9893
python3 -m http.server 4444
99-
# Open http://localhost:4444/editor.html
94+
# Open http://localhost:4444/showcase.html
10095
```
10196

10297
## Credits
10398

104-
Built on [EffectTextureMaker](https://github.com/mebiusbox/EffectTextureMaker) by [mebiusbox](https://github.com/mebiusbox) (MIT License). The original tool provides the core procedural shader library (pixy) and single-layer editor.
99+
Uses [pixy.js](https://github.com/mebiusbox/pixy.js) by [mebiusbox](https://github.com/mebiusbox) (MIT License)the procedural shader library that powers the 65+ built-in effect types.
105100

106-
ShaderBrew adds multi-layer compositing, gradient mapping, PBR generation, 3D preview, 52 custom GLSL shaders, sprite sheet generation, the showcase, material forge, and the enhanced editor UI.
101+
Everything else (editor, layers, compositing, gradient mapping, PBR generation, 3D preview, 52 custom GLSL shaders, sprite sheets, showcase, material forge) is original ShaderBrew code.
107102

108103
## License
109104

110-
MIT
105+
MIT — see [LICENSE](LICENSE) for details.
106+
107+
`pixy.module.min.js` bundles GLSL from Shadertoy authors (CC-BY-NC-SA 3.0) and other sources — see [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) for full attribution.

THIRD_PARTY_LICENSES.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Third-Party Licenses
2+
3+
## pixy.js Shader Library
4+
5+
`pixy.module.min.js` is by [mebiusbox](https://github.com/mebiusbox) and licensed under MIT.
6+
Source: https://github.com/mebiusbox/pixy.js
7+
8+
pixy.js bundles GLSL shader code from the following third-party sources.
9+
Shadertoy shaders use [CC-BY-NC-SA 3.0](https://creativecommons.org/licenses/by-nc-sa/3.0/)
10+
unless the author specified otherwise.
11+
12+
### Shadertoy Sources
13+
14+
| Effect | Source | Author |
15+
|--------|--------|--------|
16+
| Explosion | [Xd3GWn](https://www.shadertoy.com/view/Xd3GWn), [XdSXDc](https://www.shadertoy.com/view/XdSXDc) ||
17+
| Explosion2 | [lsySzd](https://www.shadertoy.com/view/lsySzd) | Duke |
18+
| Cloud | [XsfXW8](https://www.shadertoy.com/view/XsfXW8), [XslGRr](https://www.shadertoy.com/view/XslGRr) | Inigo Quilez (iq) |
19+
| Fire | [XsXSWS](https://www.shadertoy.com/view/XsXSWS) | xbe |
20+
| Flame | [MdX3zr](https://www.shadertoy.com/view/MdX3zr) ||
21+
| FlameEye | [ltBfDt](https://www.shadertoy.com/view/ltBfDt) ||
22+
| Corona | [XdV3DW](https://www.shadertoy.com/view/XdV3DW) ||
23+
| Sun | [MlKGDc](https://www.shadertoy.com/view/MlKGDc), [MsBGRh](https://www.shadertoy.com/view/MsBGRh), [4lBXzy](https://www.shadertoy.com/view/4lBXzy), [4sfGzS](https://www.shadertoy.com/view/4sfGzS), [4tlSzl](https://www.shadertoy.com/view/4tlSzl) | Inigo Quilez (iq) et al. |
24+
| Flare | [4scXWB](https://www.shadertoy.com/view/4scXWB) ||
25+
| Flare2 | [Xs33R2](https://www.shadertoy.com/view/Xs33R2) ||
26+
| Flare3 | [4sX3Rs](https://www.shadertoy.com/view/4sX3Rs) ||
27+
| Caustics | [MdKXDm](https://www.shadertoy.com/view/MdKXDm) ||
28+
| Energy | [XdjcWc](https://www.shadertoy.com/view/XdjcWc) ||
29+
| Particle | [llGBWw](https://www.shadertoy.com/view/llGBWw) ||
30+
| Cross | [ls3GRS](https://www.shadertoy.com/view/ls3GRS) ||
31+
| MagicCircle | [4dfXDn](https://www.shadertoy.com/view/4dfXDn) ||
32+
| Mandara | [MtcSz4](https://www.shadertoy.com/view/MtcSz4) ||
33+
| Mandalas | [4tdSDr](https://www.shadertoy.com/view/4tdSDr) ||
34+
| BrushStroke | [lt23D3](https://www.shadertoy.com/view/lt23D3) ||
35+
| Squiggles | [MstBD4](https://www.shadertoy.com/view/MstBD4) ||
36+
| Bubbles | [Xl2Bz3](https://www.shadertoy.com/view/Xl2Bz3) ||
37+
| Speckle | [XlSBDz](https://www.shadertoy.com/view/XlSBDz) ||
38+
| Pentagon | [MlBfWz](https://www.shadertoy.com/view/MlBfWz) ||
39+
| KochCurve | [XdcGzH](https://www.shadertoy.com/view/XdcGzH) ||
40+
| MarbleNoise | [lsf3WH](https://www.shadertoy.com/view/lsf3WH) ||
41+
| CoherentNoise | [4dS3Wd](https://www.shadertoy.com/view/4dS3Wd) ||
42+
| iqnoise/iqhash (utility) | [Xd23Dh](https://www.shadertoy.com/view/Xd23Dh) | Inigo Quilez (iq) |
43+
| Hash functions (utility) | [4djSRW](https://www.shadertoy.com/view/4djSRW) | Dave Hoskins |
44+
45+
### GitHub Sources
46+
47+
| Component | Source | Author | License |
48+
|-----------|--------|--------|---------|
49+
| Simplex noise | [ashima/webgl-noise](https://github.com/ashima/webgl-noise) | Stefan Gustavson | MIT |
50+
| Color balance | [liovch/GPUImage](https://github.com/liovch/GPUImage) | liovch | BSD-3 |
51+
| Sky scattering | [SimonWallner/kocmoc-demo](https://github.com/SimonWallner/kocmoc-demo) | Simon Wallner ||
52+
| Cloud overlay | [GameTechDev/CloudsGPUPro6](https://github.com/GameTechDev/CloudsGPUPro6) | Intel GameTechDev ||
53+
54+
### Special Thanks
55+
56+
As credited by mebiusbox on the EffectTextureMaker page:
57+
doxas, liovch, iq, KeyMaster-, knighty, XT95, Brandon Fogerty, FabriceNeyret2,
58+
TambakoJaguar, mu6k, anisoptera, namortrailblazer, vamoss, xbe,
59+
Iulian Marinescu Ghetau, Duke, hclarke, 104, vchizhov, smkgames,
60+
Stefan Gustavson, skaplun, Koltes, arxyz, diviaki, Sunpy, Hadyn,
61+
Dave_Hoskins, maysssam, joltz0r, Xor
62+
63+
## ShaderBrew Custom GLSL Shaders
64+
65+
The 52 custom shaders in `shader-defs.js` and `gen-custom.html` are original work
66+
and do not derive from Shadertoy or other third-party sources.
67+
68+
## Three.js
69+
70+
Three.js 0.174.0 — MIT License
71+
https://github.com/mrdoob/three.js
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
User asked to refresh README with showcase examples and verify license status.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
- [x] Create branch off latest master
2+
- [x] Research upstream license (mebiusbox EffectTextureMaker)
3+
- [x] Rewrite README with showcase-based examples
4+
- [x] Add proper LICENSE file with dual copyright
5+
- [x] Commit and push
6+
- [ ] Create PR

classic.html

Lines changed: 0 additions & 78 deletions
This file was deleted.

0 commit comments

Comments
 (0)