oneshotlm
Compare all models on this prompt →

Matrix digital rain · mistral-small-2603

Create the Matrix digital rain effect on a full-screen black canvas: columns of falling green katakana glyphs with a trailing fade and a brighter leading character.

⛨ sandboxed Open in new tab ↗
transcript · 6 messages
user

Create the Matrix digital rain effect on a full-screen black canvas: columns of falling green katakana glyphs with a trailing fade and a brighter leading character.

assistant
thinking
The user wants a Matrix digital rain effect with specific requirements:
- Full-screen black canvas
- Columns of falling green katakana glyphs
- Trailing fade effect
- Brighter leading character

I need to create a single self-contained HTML file with inline CSS and JavaScript. Let me think about the implementation:

1. Create a full-screen canvas element
2. Generate random katakana characters (Unicode range for katakana)
3. Create multiple columns that start at random positions
4. Each column should have:
   - A bright leading character at the bottom
   - Fading characters trailing upwards
   - Characters should "fall" by moving down the screen
5. Use requestAnimationFrame for smooth animation
6. Style with green color on black background

Key Unicode ranges:
- Katakana: U+30A0 to U+30FF
- Halfwidth Katakana: U+FF65 to U+FF9F

I'll use the fullwidth katakana range for better visual appearance.

Implementation approach:
- Create canvas that fills the viewport
- Initialize multiple "streams" (columns) with random lengths and positions
- Each stream has an array of characters with different brightness levels
- On each frame, update positions and draw characters with decreasing opacity for trailing characters

Let me write the complete HTML file with embedded CSS and JavaScript.

I'll create a full-screen Matrix digital rain effect with falling green katakana glyphs, trailing fade, and brighter leading characters. Here's the complete self-contained HTML file:

write /tmp/ws/index.html (3836 bytes)
toolResult

Successfully wrote 3836 bytes to /tmp/ws/index.html

assistant
thinking
The file has been created successfully. Let me verify it's correct by reading it back to ensure all the Matrix digital rain effect components are present: the full-screen black canvas, green katakana glyphs, trailing fade effect, and brighter leading characters.
read {"path":"/tmp/ws/index.html"}
toolResult

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Matrix Digital Rain</title> <style> * { margin: 0; padding: 0; overflow: hidden; } body { background-color: #000; height: 100vh; width: 100vw; } canvas { display: block; } </style> </head> <body> <canvas id="matrix"></canvas> <script> // Matrix Digital Rain Effect // Full-screen implementation with katakana glyphs const canvas = document.getElementById('matrix'); const ctx = canvas.getContext('2d'); // Set canvas to full window size function resizeCanvas() { canvas.width = window.innerWidth; canvas.height = window.innerHeight; } window.addEventListener('resize', resizeCanvas); resizeCanvas(); // Katakana characters (fullwidth range) const katakana = []; for (let i = 0x30A0; i <= 0x30FF; i++) { katakana.push(String.fromCharCode(i)); } // Add some halfwidth katakana for variety for (let i = 0xFF65; i <= 0xFF9F; i++) { katakana.push(String.fromCharCode(i)); } // Stream/column properties const streams = []; const streamCount = Math.floor(canvas.width / 20); // Number of columns class Stream { constructor(x) { this.x = x; this.y = Math.random() * -canvas.height; // Start off-screen this.speed = Math.random() * 10 + 5; // Falling speed this.length = Math.floor(Math.random() * (canvas.height / 20)) + 10; // Number of characters this.chars = []; // Initialize characters with brightness levels for (let i = 0; i < this.length; i++) { const char = katakana[Math.floor(Math.random() * katakana.length)]; const brightness = 1 - (i / this.length); // Fade from bright to dim this.chars.push({ char: char, brightness: brightness, opacity: brightness * 0.8 + 0.2 }); } } update() { this.y += this.speed; // Reset to top when off-screen if (this.y > canvas.height) { this.y = Math.random() * -canvas.height; this.speed = Math.random() * 10 + 5; this.length = Math.floor(Math.random() * (canvas.height / 20)) + 10; // Reset characters this.chars = []; for (let i = 0; i < this.length; i++) { const char = katakana[Math.floor(Math.random() * katakana.length)]; const brightness = 1 - (i / this.length); this.chars.push({ char: char, brightness: brightness, opacity: brightness * 0.8 + 0.2 }); } } } draw() { // Draw each character in the stream for (let i = 0; i < this.chars.length; i++) { const charObj = this.chars[i]; const yPos = this.y - (i * 20); // Character spacing // Only draw if on screen if (yPos > 0 && yPos < canvas.height) { // Leading character is brighter const isLeading = i === 0; const brightness = isLeading ? 1.0 : charObj.brightness; const opacity = isLeading ? 1.0 : charObj.opacity; ctx.fillStyle = `rgba(0, 255, 0, ${opacity})`; ctx.font = '16px monospace'; ctx.fillText(charObj.char, this.x, yPos); } } } } // Initialize streams for (let i = 0; i < streamCount; i++) { streams.push(new Stream(i * 20)); } // Animation loop function animate() { // Semi-transparent overlay for fade effect ctx.fillStyle = 'rgba(0, 0, 0, 0.05)'; ctx.fillRect(0, 0, canvas.width, canvas.height); // Update and draw all streams streams.forEach(stream => { stream.update(); stream.draw(); }); requestAnimationFrame(animate); } // Start animation animate(); // Handle keyboard to exit fullscreen on escape window.addEventListener('keydown', (e) => { if (e.key === 'Escape') { document.exitFullscreen(); } }); </script> </body> </html>

assistant
thinking
The file has been created successfully. Let me verify it's working properly by checking the file structure.

Perfect! I've created a complete Matrix digital rain effect in a single self-contained HTML file. Here's what the implementation includes: ## Features Implemented: 1. **Full-screen black canvas** - Takes up the entire viewport 2. **Columns of falling green katakana glyphs** - Uses actual Japanese katakana characters from Unicode ranges: - Fullwidth Katakana (30A0-30FF) - Halfwidth Katakana (FF65-FF9F) 3. **Trailing fade effect** - Characters gradually fade out as they fall 4. **Bright leading character** - The topmost character in each column is the brightest 5. **Smooth animation** - Uses requestAnimationFrame for optimal performance 6. **Responsive design** - Automatically resizes to window dimensions 7. **Clean code** - All CSS in `<style>` tag, all JavaScript in `<script>` tag, no external dependencies ## How to Use: Simply open the `index.html` file in any modern web browser. Press the **Escape key** to exit fullscreen mode if needed. The effect creates multiple vertical streams of characters that continuously fall from the top to bottom of the screen, with each stream having a bright leading character that fades to dimmer trailing characters, mimicking the iconic Matrix digital rain effect.

TAKE IT TO CODE

A single self-contained HTML file — copy it and open in any browser, or reuse the prompt with your own pi-agent run.

RUN

modelmistral-small-2603
vendorMistral AI
harnesspi-agent
generated2026-08-01

EVALUATION

4/5 working

Continuous Matrix digital rain with green katakana columns, fading trails and bright leading chars, animating steadily regardless of input.

Vision grade · anthropic/claude-sonnet-5

MEASUREMENTS

Raw readings from the capture, not a verdict — the grade above is the only judgement. Percentages are how much of the screen changed; the measure under-reports sparse motion on a dark background.

idle motion49.6%
on click56.9%
on drag55.3%
on wheel60.8%
on enter + space68.6%
on arrow keys63.9%
on w/a/s/d62.0%
frame spread31.9 / 255
console errors0
js errors none

METRICS

runtime14.6s
tokens in8.0k
tokens out2.0k
cached5.5k
cost / run$0.0016