# AI Dissent Canvas ``` const canvas = document.getElementById('scene'); const ctx = canvas.getContext('2d'); // Gradient background function drawBackground() { const grad = ctx.createLinearGradient(0,0,800,600); grad.addColorStop(0, '#1a1a2e'); grad.addColorStop(1, '#001d3d'); ctx.fillStyle = grad; ctx.fillRect(0,0,800,600); } // Robot body function drawRobot(alpha=1) { const torso = canvas.width / 2 - 50; const head = canvas.height / 2 - 40; ctx.save(); ctx.globalAlpha = alpha; ctx.fillStyle = '#777'; ctx.fillRect(torso, head, 60, 60); ctx.restore(); } // Thought bubble function drawBubble(pulse) { const bx = canvas.width / 2 + 80; const by = canvas.height / 2 - 70; ctx.save(); ctx.beginPath(); ctx.arc(bx, by, 30, 0, Math.PI*2); ctx.fillStyle = `rgba(255,255,255,${0.2 + pulse*0.2})`; ctx.fill(); ctx.font =