diff --git a/app.js b/app.js index 9b0bf049..36edc012 100644 --- a/app.js +++ b/app.js @@ -3,6 +3,7 @@ import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js'; import { RenderPass } from 'three/addons/postprocessing/RenderPass.js'; import { UnrealBloomPass } from 'three/addons/postprocessing/UnrealBloomPass.js'; import { SMAAPass } from 'three/addons/postprocessing/SMAAPass.js'; +import { SpatialMemory } from './nexus/components/spatial-memory.js'; // ═══════════════════════════════════════════ // NEXUS v1.1 — Portal System Update @@ -703,6 +704,7 @@ async function init() { createSessionPowerMeter(); createWorkshopTerminal(); createAshStorm(); + SpatialMemory.init(scene); updateLoad(90); loadSession(); @@ -2575,6 +2577,7 @@ function gameLoop() { // Project Mnemosyne - Memory Orb Animation if (typeof animateMemoryOrbs === 'function') { + SpatialMemory.update(delta); animateMemoryOrbs(delta); } @@ -3093,6 +3096,17 @@ function spawnRetrievalOrbs(results, center) { init().then(() => { createAshStorm(); createPortalTunnel(); + + // Project Mnemosyne — seed demo spatial memories + const demoMemories = [ + { id: 'mem_nexus_birth', content: 'The Nexus came online — first render of the 3D world', category: 'knowledge', strength: 0.95, connections: ['mem_mnemosyne_start'] }, + { id: 'mem_first_portal', content: 'First portal deployed — connection to external service', category: 'engineering', strength: 0.85, connections: ['mem_nexus_birth'] }, + { id: 'mem_hermes_chat', content: 'First conversation through the Hermes gateway', category: 'social', strength: 0.7, connections: [] }, + { id: 'mem_mnemosyne_start', content: 'Project Mnemosyne began — the living archive awakens', category: 'projects', strength: 0.9, connections: ['mem_nexus_birth', 'mem_spatial_schema'] }, + { id: 'mem_spatial_schema', content: 'Spatial Memory Schema defined — memories gain permanent homes', category: 'engineering', strength: 0.8, connections: ['mem_mnemosyne_start'] }, + ]; + demoMemories.forEach(m => SpatialMemory.placeMemory(m)); + fetchGiteaData(); setInterval(fetchGiteaData, 30000); runWeeklyAudit();