* @summary SharedWorker renderer for the Portal Home "Neural Swarm" background. * * Implements the **"Neural Swarm"** visual theme, a dynamic, mutable network simulation that * visualizes the Neo.mjs Application Engine as a living ecosystem. * * **Visual Architecture:** * 1. **Living Topology
| 82 | * @singleton |
| 83 | */ |
| 84 | class HomeCanvas extends Base { |
| 85 | static colors = { |
| 86 | dark: { |
| 87 | agentHead : '#FFFFFF', |
| 88 | background: ['rgba(62, 99, 221, 0.15)', 'rgba(139, 166, 255, 0.15)'], |
| 89 | nodeHigh : '#FFFFFF', |
| 90 | packet : '#FFFFFF', |
| 91 | shockwave : '#FFFFFF', |
| 92 | spark : '#D500F9' // Bright neon purple for high contrast |
| 93 | }, |
| 94 | light: { |
| 95 | agentHead : '#3E63DD', // PRIMARY |
| 96 | background: ['rgba(62, 99, 221, 0.05)', 'rgba(139, 166, 255, 0.05)'], |
| 97 | nodeHigh : '#3E63DD', // PRIMARY |
| 98 | packet : '#3E63DD', // PRIMARY |
| 99 | shockwave : '#3E63DD', // PRIMARY |
| 100 | spark : '#4B0082' |
| 101 | } |
| 102 | } |
| 103 | |
| 104 | static config = { |
| 105 | /** |
| 106 | * @member {String} className='Portal.canvas.HomeCanvas' |
| 107 | * @protected |
| 108 | */ |
| 109 | className: 'Portal.canvas.HomeCanvas', |
| 110 | /** |
| 111 | * @member {Boolean} singleton=true |
| 112 | * @protected |
| 113 | */ |
| 114 | singleton: true |
| 115 | } |
| 116 | |
| 117 | /** |
| 118 | * Pre-allocated buffer for agent data (Seeker Drones). |
| 119 | * @member {Float32Array|null} agentBuffer=null |
| 120 | */ |
| 121 | agentBuffer = null |
| 122 | /** |
| 123 | * Pre-allocated buffer for node data (The Graph). |
| 124 | * @member {Float32Array|null} nodeBuffer=null |
| 125 | */ |
| 126 | nodeBuffer = null |
| 127 | /** |
| 128 | * Pre-allocated buffer for data packets (Signal Pulses). |
| 129 | * @member {Float32Array|null} packetBuffer=null |
| 130 | */ |
| 131 | packetBuffer = null |
| 132 | /** |
| 133 | * Active shockwave effects. |
| 134 | * @member {Object[]} shockwaves=[] |
| 135 | */ |
| 136 | shockwaves = [] |
| 137 | /** |
| 138 | * Active spark particles (Data Debris). |
| 139 | * @member {Object[]} sparks=[] |
| 140 | */ |
| 141 | sparks = [] |