digital-matrix-rain
v1.1.0
Published
A cool matrix-style digital rain animation for terminal/console applications
Maintainers
Readme
🌊 Digital Matrix Rain NPM Package
A cool matrix-style digital rain animation for terminal/console applications. Create the iconic "Matrix" falling green text effect in your Node.js applications!
✨ Features
- 🎨 Multiple colors (green, red, blue, yellow, magenta, cyan, white)
- ⚡ Customizable speed and density
- 🖥️ Auto-detects terminal size
- 🎮 CLI tool included
- 📦 Easy to integrate into any Node.js project
- 🔧 Highly configurable
🚀 Installation
npm install digital-matrix-rain🎯 Quick Start
Command Line Usage
# Basic matrix animation
npx digital-matrix-rain
# Or if installed globally
npm install -g digital-matrix-rain
digital-matrix
# With custom options
digital-matrix --speed 50 --color cyan --density 0.2Programmatic Usage
const { matrix, MatrixRain } = require('digital-matrix-rain');
// Quick start - classic green matrix
matrix();
// Custom configuration
const animation = new MatrixRain({
color: 'red',
speed: 80,
density: 0.15
});
animation.start();
// Run for specific duration (5 seconds)
animation.run(5000);🎨 API Reference
MatrixRain Class
Main class for creating matrix animations.
const animation = new MatrixRain(options);Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| width | number | Terminal width | Animation width in characters |
| height | number | Terminal height | Animation height in lines |
| speed | number | 100 | Animation speed in milliseconds |
| density | number | 0.1 | Drop density (0.0 - 1.0) |
| color | string | 'green' | Color theme |
| chars | string | Mixed alphanumeric | Custom character set |
Methods
start()- Start the animationstop()- Stop the animationrun(duration)- Run for specific duration in milliseconds
Helper Functions
// Quick matrix with default settings
matrix();
// Create animation instance
const animation = createMatrixAnimation(options);
// Run demo
demo();🎨 Available Colors
green(classic Matrix)redblueyellowmagentacyanwhite
🛠️ CLI Options
digital-matrix [options]
Options:
-s, --speed <number> Animation speed in ms (default: 100)
-c, --color <color> Color theme (default: green)
-d, --density <number> Drop density 0.0-1.0 (default: 0.1)
-h, --help Show help
Examples:
digital-matrix
digital-matrix --speed 50 --color cyan
digital-matrix -s 150 -c red -d 0.2🎮 Examples
Basic Example
const { MatrixRain } = require('digital-matrix-rain');
const matrix = new MatrixRain();
matrix.start();
// Stop after 10 seconds
setTimeout(() => {
matrix.stop();
}, 10000);Custom Animation
const { MatrixRain } = require('digital-matrix-rain');
const customMatrix = new MatrixRain({
color: 'cyan',
speed: 60,
density: 0.2,
chars: '01ⱦ⌘▓▒░█' // Custom cyberpunk characters
});
customMatrix.start();Multiple Animations
const { MatrixRain } = require('digital-matrix-rain');
// Sequence of different colored animations
const colors = ['green', 'red', 'blue', 'cyan'];
let index = 0;
function nextAnimation() {
if (index >= colors.length) return;
const matrix = new MatrixRain({
color: colors[index],
speed: 80
});
matrix.run(3000);
index++;
setTimeout(nextAnimation, 3500);
}
nextAnimation();📝 Scripts
npm test # Run tests
npm start # Start basic animation
npm run matrix # CLI matrix animation
npm run demo # Run color demo🎬 Demo
Run the included demo to see all colors and effects:
npm run demo🕹️ Controls
- Ctrl+C: Stop the animation and exit
🔧 Development
git clone <your-repo>
cd digital-matrix-rain
npm install
npm test📄 License
ISC
👨💻 Author
arsh
🤝 Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
🌟 Inspiration
Inspired by the iconic digital rain effect from "The Matrix" movie series. Perfect for:
- Terminal applications
- CLI tools
- Cyberpunk-themed projects
- Screen savers
- Demo applications
- Educational projects
"Welcome to the Matrix... 🕶️"
