library / retro & cyberpunk / kernel-panic-data-dump
live - 60fps 1920 x 1080
kernel-panic-data-dump.html - self-contained
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kernel Panic Data Dump</title>
<style>
    @import url('https://fonts.googleapis.com/css2?family=VT323&display=swap');
    body {
        margin: 0;
        height: 100vh;
        background-color: #0000AA; /* Classic Blue Screen of Death color */
        color: #FFF;
        font-family: 'VT323', monospace;
        font-size: 20px;
        line-height: 1.2;
        overflow: hidden;
    }
    
    .panic-container {
        padding: 2vw;
        height: 100%;
        box-sizing: border-box;
        animation: flicker-glitch 10s infinite;
    }

    h1 {
        color: #FF4136; /* Bright Red for the error */
        text-align: center;
        margin: 0 0 20px 0;
        text-shadow: 0 0 5px #FF4136;
    }

    .line {
        opacity: 0;
        white-space: pre;
        animation: type-line 0.1s forwards;
    }
    
    @keyframes type-line {
        to { opacity: 1; }
    }
    
    /* Animation applied to the container after lines are drawn */
    @keyframes flicker-glitch {
        0%, 70%, 100% {
            transform: translate(0,0);
            opacity: 1;
        }
        75% { transform: translate(1px, -1px); }
        80% { transform: translate(-1px, 2px); }
        85% { transform: translate(-2px, -1px); }
        90% { transform: translate(1px, 2px); }
        95% { transform: translate(0,0); opacity: 0; } /* Fade to reset */
    }

</style>
</head>
<body>
    <div class="panic-container" id="container">
        <!-- Content will be generated by JS -->
    </div>
    
    <script>
        const container = document.getElementById('container');
        const lines = [
            '*** KERNEL_PANIC - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)',
            'CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.0-150-generic',
            'Hardware name: System Product Name/System manufacturer',
            'Call Trace:',
            ' dump_stack+0x6d/0x9a',
            ' panic+0x101/0x2e3',
            ' kernel_init+0x13c/0x140',
            ' ret_from_fork+0x1f/0x40',
            'Registers:',
            ' RAX: 0000000000000000 RBX: ffffffff82040d80 RCX: 0000000000000000',
            ' RDX: 0000000000000000 RSI: ffffffff821f5e88 RDI: 0000000000000001',
            ' RSP: ffff88813f647e88 RBP: ffff88813f647eb8 R8:  0000000000000001',
            '---[ end Kernel panic - not syncing: VFS: Unable to mount root fs ]---',
            'REBOOTING IN 10s...'
        ];
        
        function runSequence() {
            container.innerHTML = `<h1>!! KERNEL FAULT !!</h1>`; // Reset content
            lines.forEach((text, index) => {
                const p = document.createElement('p');
                p.className = 'line';
                p.textContent = text;
                p.style.animationDelay = `${index * 0.1}s`; // Staggered typing effect
                container.appendChild(p);
            });
        }
        
        runSequence();
        setInterval(runSequence, 10000); // Loop every 10 seconds
    </script>
</body>
</html>

About this animation

Simulated system crash data dump.

Under the hood

High-Speed DOM Text Injection

To simulate a rapid UNIX terminal panic, the script relies on raw string concatenation and ultra-fast setInterval loops. It appends hex logs natively to an overflowing
and anchors the scroll position to the bottom.

Source Code
Source copied
Partner hosting options for the copied effect:
Vercel Netlify Hostinger