Smart Deals - promotions, discount codes and sales

Matrix Code Rain Animation

Fast, accurate, and free online Matrix Code Rain Animation tool that runs directly in your browser.

Secure (SSL)
Client-Side Processing
100% Free
Instructions
  • 1
    Enter data
    Enter content, paste text or load a file from disk.
  • 2
    Click the button
    The tool will immediately process your data in the browser.
  • 3
    Get the result
    Copy the finished text or save the file to your device.
function runTool() {
  return "Result ready in 0.1s";
}
800
450
16
35
0.08
16

embed: <div style="position:relative;width:800px;max-width:100%;height:450px;overflow:hidden;border-radius:16px;"> <canvas id="matrix-rain" style="width:100%;height:100%;display:block;"></canvas> <script>(function(){ var cfg = {"charset":"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ","width":800,"height":450,"fontSize":16,"speed":35,"fade":0.08000000000000000166533453693773481063544750213623046875,"textColor":"#00ff66","bgColor":"#000000","glow":true,"glowStrength":16,"fullpage":false}; var canvas = document.getElementById("matrix-rain"); if(!canvas) return; var ctx = canvas.getContext("2d"); var dpr = window.devicePixelRatio || 1; var cols = 0; var drops = []; function rgbFromHex(hex){ return [parseInt(hex.slice(1,3),16), parseInt(hex.slice(3,5),16), parseInt(hex.slice(5,7),16)]; } function resize(){ var rect = canvas.getBoundingClientRect(); canvas.width = Math.floor(rect.width * dpr); canvas.height = Math.floor(rect.height * dpr); ctx.setTransform(dpr,0,0,dpr,0,0); cols = Math.max(1, Math.floor(rect.width / cfg.fontSize)); drops = new Array(cols).fill(1); } function pickChar(){ return cfg.charset.charAt(Math.floor(Math.random()*cfg.charset.length)); } function draw(){ var rect = canvas.getBoundingClientRect(); var rgb = rgbFromHex(cfg.bgColor); ctx.fillStyle = "rgba("+rgb[0]+","+rgb[1]+","+rgb[2]+","+cfg.fade+")"; ctx.fillRect(0,0,rect.width,rect.height); ctx.font = cfg.fontSize + "px monospace"; ctx.fillStyle = cfg.textColor; if(cfg.glow){ ctx.shadowColor = cfg.textColor; ctx.shadowBlur = cfg.glowStrength; } else { ctx.shadowBlur = 0; } for(var i=0;i<drops.length;i++){ ctx.fillText(pickChar(), i*cfg.fontSize, drops[i]*cfg.fontSize); if(drops[i]*cfg.fontSize > rect.height && Math.random()>0.975) drops[i] = 0; drops[i]++; } } resize(); if (window.matrixRainInterval) clearInterval(window.matrixRainInterval); if (window.matrixRainResize) window.removeEventListener("resize", window.matrixRainResize); window.matrixRainResize = resize; window.addEventListener("resize", window.matrixRainResize); window.matrixRainInterval = setInterval(draw, cfg.speed); })();</script> </div> preview html: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Deszcz kodu Matrix</title> <style>body{margin:0;padding:24px;background:#000000;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;} .wrap{width:800px;max-width:100%;height:450px;border-radius:18px;overflow:hidden;} canvas{display:block;width:100%;height:100%;} </style> </head> <body> <div class="wrap"><canvas id="matrix"></canvas></div> <script>(function(){ var cfg = {"charset":"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ","width":800,"height":450,"fontSize":16,"speed":35,"fade":0.08000000000000000166533453693773481063544750213623046875,"textColor":"#00ff66","bgColor":"#000000","glow":true,"glowStrength":16,"fullpage":false}; var canvas = document.getElementById("matrix"); var ctx = canvas.getContext("2d"); var dpr = window.devicePixelRatio || 1; var cols = 0; var drops = []; function rgbFromHex(hex){ return [parseInt(hex.slice(1,3),16), parseInt(hex.slice(3,5),16), parseInt(hex.slice(5,7),16)]; } function resize(){ var rect = canvas.getBoundingClientRect(); canvas.width = Math.floor(rect.width * dpr); canvas.height = Math.floor(rect.height * dpr); ctx.setTransform(dpr,0,0,dpr,0,0); cols = Math.max(1, Math.floor(rect.width / cfg.fontSize)); drops = new Array(cols).fill(1); } function pickChar(){ return cfg.charset.charAt(Math.floor(Math.random()*cfg.charset.length)); } function draw(){ var rect = canvas.getBoundingClientRect(); var rgb = rgbFromHex(cfg.bgColor); ctx.fillStyle = "rgba("+rgb[0]+","+rgb[1]+","+rgb[2]+","+cfg.fade+")"; ctx.fillRect(0,0,rect.width,rect.height); ctx.font = cfg.fontSize + "px monospace"; ctx.fillStyle = cfg.textColor; if(cfg.glow){ ctx.shadowColor = cfg.textColor; ctx.shadowBlur = cfg.glowStrength; } else { ctx.shadowBlur = 0; } for(var i=0;i<drops.length;i++){ ctx.fillText(pickChar(), i*cfg.fontSize, drops[i]*cfg.fontSize); if(drops[i]*cfg.fontSize > rect.height && Math.random()>0.975) drops[i] = 0; drops[i]++; } } resize(); window.addEventListener("resize", resize); setInterval(draw, cfg.speed); })();</script> </body></html>

Rate this tool:

Related tools

Other tools you may find useful

Matrix Code Rain Animation - Cascading Code Effect

Matrix Code Rain Animationis an interactive visualization of the famous "digital rain" effect from the Matrix movie series. Watch columns of characters cascade against a black background, just like in the iconic opening scenes of the Wachowski films.

Where does the code rain effect come from?

The "digital rain, Matrix code" effect first appeared in the film "The Matrix" (1999) directed by the Wachowski siblings as a visual representation of "The Matrix" - a simulated reality. The original film animations were created by Simon Whiteley, who was inspired by Japanese culture - the characters in the film are reflections of characters from cooked Japanese sushi on a blackboard (apparently from his wife's recipe). The effect has become one of the most recognizable elements of cyberpunk aesthetics and hacker pop culture.

How does animation work?

The animation is implemented in JavaScript using the Canvas API. Algorithm: defines columns of characters across the entire width of the screen, each column has an independent Y position and random speed, characters are randomly selected from the set (katakana, numbers, letters), new characters appear at the top with a light green color ("head"), older characters gradually fade to dark green, when reaching the bottom the column resets randomly. The effect is rendered on thetag in the requestAnimationFrame loop.

Animation customization

You can customize: the set of characters used (katakana, ascii, numbers, custom), column falling speed, column density, color (classic green, blue, red or custom), font size and depth effect (different shades for foreground and background). The animation works in fullscreen mode - perfect as a screensaver or background during a presentation.

Implementing your own Matrix animation

The effect is easy to implement yourself in JavaScript: you need a canvas, an array of Y positions for each column and a function that draws fading characters. The code takes about 30-50 lines and is a great project for those learning graphic programming. Our generator allows you to experiment with parameters without writing code.

FAQ

Does Matrix animation use a lot of CPU resources?

Animation is optimized - uses requestAnimationFrame (syncs with monitor refresh) and Canvas 2D (hardware acceleration in modern browsers). On a typical computer it uses 2-5% of the CPU. For weaker devices, you can reduce the number of columns or the animation speed.

How to save Matrix animation as video or GIF?

In Chrome you can use Screen Recorder (Ctrl+Shift+I → Recording). Alternatively, tools such as OBS Studio, LICEcap (GIF) or ffmpeg allow you to record a canvas animation. Programmatically, you can use the MediaRecorder API to record a canvas stream:canvas.captureStream(30)returns a video stream.

What characters are used in the original Matrix effect?

The original film used a mixture of katakana (Japanese syllabary - ァ, カ, サ, タ...), numerals and mirror Latin letters. Whiteley literally scanned characters from Japanese sushi recipes. Our generator uses katakana by default, but you can switch to ASCII or digits.

Can I use the Matrix effect on my website?

Yes - the Matrix effect is free to use. A canvas/JS implementation is available on GitHub (many variants) and can be embedded as a background, decorative element, or interactive section of the page. Take care of readability - dark text on an animated background is difficult to read, so use the animation as a background element with low opacity or turn it off for users who prefer reduced motion.

What is the symbols
Install Webp.pl Have the tools in your own pocket!