A JavaScript port of Ken Perlin's improved noise algorithm from Java, featuring interactive visualizations and a Piet Mondrian-inspired animation.
This project demonstrates the porting of Ken Perlin's Improved Noise algorithm from Java to JavaScript, along with several HTML demonstrations showcasing different applications of the noise function.
ImprovedNoise.java- Original Java reference implementation by Ken Perlin (2002)ImprovedNoise.js- JavaScript port of the improved noise algorithmnoise-2d.js- Additional 2D noise utilitiesother-noise.js- Alternative noise implementationsBall.java- Java utility class
Basic Perlin noise visualization displaying 5,000 small squares arranged in a grid pattern. The noise values control the grayscale color of each square, creating an organic, cloud-like pattern.
Animated demonstration featuring 100 floating circles with:
- Random colors and transparency
- Perlin noise-driven movement
- Smooth 60fps animation
- Organic, flowing motion patterns
A sophisticated homage to Piet Mondrian's geometric compositions featuring:
- Diamond-rotated canvas (45-degree rotation)
- Two animated black lines controlled by Perlin noise
- Minimalist aesthetic with subtle shadows
- Responsive design that adapts to viewport orientation
- Smooth 30fps animation creating organic movement within geometric constraints
The JavaScript port maintains full compatibility with Ken Perlin's original Java implementation:
- Identical permutation table (256 values)
- Same fade, lerp, and grad functions
- Consistent output values across implementations
- Optimized for web performance
- Faithful Port: Direct translation maintaining mathematical accuracy
- Browser Compatible: Works in all modern browsers
- Performance Optimized: Efficient for real-time animation
- Multiple Demos: Various applications from simple to artistic
- Open any of the HTML files in a web browser
index.html- Static noise pattern visualizationindex2.html- Animated floating particlesindex3.html- Mondrian-inspired geometric animation
- Ken Perlin - Original Improved Noise algorithm (2002)
- Vincent Bruijn - JavaScript port and artistic implementations (2022)
- Inspired by Piet Mondrian's geometric compositions
ISC License - See package.json for details
- Ken Perlin's Noise Page
- Original paper reference:
paper445.pdf
Unless stated otherwise (c) 2022
Vincent Bruijn [email protected]