← All projects
JavaScript P5.js WebGL GLSL Autodesk Maya Adobe Photoshop
Case Study
Viridian Fishing
Overview: Viridian Fishing (also shown as "Viridian Moonlight") is a stylized 3D scene built in p5.js featuring a hand-crafted GLSL dithering shader and procedural noise applied to low-poly geometry. The project depicts a moonlit pond environment, combining an original fish model with reshaped primitives to create an atmospheric, retro-inspired real-time scene. Press E when a fish is within reach to catch it, filling your bucket with your haul.
Key Features
- Custom GLSL dithering shader
- Procedural gradient noise
- Original 3D assets
- Low-poly scene composition
- Orbital camera control
Gallery
Contributions
- Researched and implemented a custom GLSL fragment shader producing a dithering effect that quantizes surface shading based on light intensity, replicating the pixelated look of early 3D graphics.
- Adapted Inigo Quilez's gradient noise algorithm from The Book of Shaders to drive procedural surface coloring on 3D geometry in p5.js WebGL mode.
- Modeled an original low-poly fish and constructed a full scene using stretched and transformed geometric primitives for lily pads, cattails, and a pond surface.
- Iterated across two project phases — first establishing noise-driven color on a 3D model, then building the complete dithering pipeline and scene composition.
Impact
- Delivered a fully custom shader pipeline in a browser-based sketch, without relying on any external rendering engine.
- Established a reusable approach for combining procedural noise with hand-modeled assets in p5.js WebGL scenes.
Quick facts
Solo technical art project
Team
Individual project