Firebred45's picture
it shouldn't be a hacker terminal make it look like I'm coding and creating a basic AI tool
cb4f2a4 verified
// Matrix rain effect
document.addEventListener('DOMContentLoaded', function() {
// Create matrix rain canvas
const canvas = document.createElement('canvas');
canvas.className = 'matrix-rain';
document.body.appendChild(canvas);
const ctx = canvas.getContext('2d');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
const characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
const fontSize = 14;
const columns = canvas.width / fontSize;
const drops = [];
for (let i = 0; i < columns; i++) {
drops[i] = 1;
}
function draw() {
ctx.fillStyle = 'rgba(0, 0, 0, 0.05)';
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = '#0ea5e9';
ctx.font = fontSize + 'px monospace';
for (let i = 0; i < drops.length; i++) {
const text = characters.charAt(Math.floor(Math.random() * characters.length));
ctx.fillText(text, i * fontSize, drops[i] * fontSize);
if (drops[i] * fontSize > canvas.height && Math.random() > 0.975) {
drops[i] = 0;
}
drops[i]++;
}
}
setInterval(draw, 33);
// Randomly blink some text
setInterval(() => {
const randomLine = Math.floor(Math.random() * 13) + 1;
const line = document.querySelector(`.typing-animation p:nth-child(${randomLine})`);
if (line) {
line.classList.add('text-matrix-200');
setTimeout(() => {
line.classList.remove('text-matrix-200');
}, 200);
}
}, 1000);
// Resize handler
window.addEventListener('resize', () => {
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
});
// Add some random terminal commands after initial animation
setTimeout(() => {
const terminal = document.querySelector('.typing-animation');
const commands = [
"$ git add .",
"$ git commit -m 'Add model training script'",
"$ python test.py",
"Running unit tests...",
"12 tests passed",
"$ tensorboard --logdir=logs",
"TensorBoard running at http://localhost:6006",
"$ docker build -t ai-tool .",
"Building Docker image...",
"Successfully built 1a2b3c4d5e6f",
"$ docker run -p 5000:5000 ai-tool",
"AI service started successfully"
];
let delay = 25000; // Start after initial animation
commands.forEach(cmd => {
setTimeout(() => {
const p = document.createElement('p');
p.className = 'text-matrix-300 mb-4';
p.textContent = cmd;
terminal.appendChild(p);
// Scroll to bottom
terminal.parentElement.scrollTop = terminal.parentElement.scrollHeight;
}, delay);
delay += 2000;
});
}, 25000);
});