scanning...
open menu to paste text
notes
"low res silence","towns un-rendered","in the fog only footsteps","staircase leading nowhere","ocean un-rendered replace the moon","quiet damage resonate","this place feels lived in","hearts spreading across town","late payments lonesome art","spent planning what to wear in the afterlife","other worlds towns un-rendered","blurry love hurry","hurt this shit still lives in me","bodies in repeat spiralling incomplete","soft the light on me calm i disappear","skin in disbelief probing fingertips","your eyes full screen love dies between","pixels scream repeat your sins","chrome future see through dreams","pink seconds point at me","never known neon in me","simple pleasures lingering","silver skin body mirror company","all is surface flickering","shiny wet streets we never did become a picture","the eyes you rush to the lies you meet","fallen angels where's your wings","soft this open moment all is in a breath","all your selves stuck somewhere in between the frames","no edge no shape","ghost still in the garden","go kill your old selves","the songs behind your eyelids bleeding out of frame","white light fever floating ego death","anywhere but here til your back hurts your mind breaks","falling into god mid-game","life's a simple shape from where you're standing","dissociation as discipline","as dirt on your window it is all practice","now step off the edge","i like the lack of movement no probing fingertips","home in every moment honestly just this","lost in bare foot wonder briefly disappear","be beautiful all surface no center","chrome aesthetics ride the seconds","lens flare moments see through controllers","tap the glass always present","love is art don't forget it","you mean nothing in the grand scheme the little things always win","repeat repeat who's winning","always another way of seeing","mean machines in the temple inner seams burst","walls purple hours late","who did you hurt by having a dream","bursting at the seams chrome nostalgia","double screens soft edges memories","will we make it will we","silver cold purple green blue hues see through","smell the plastics optimist motorola mp3s","limewire home alone iron maiden wrong title","television as ritual a way of keeping time","curating reality with shared references","a future where companies took great pride in being different","no corporate aesthetics","love the dual of angels always two steps two wings","behind you waits a future of chrome see through","plastic controllers brand new memory cards","are we evolving or where are we how did we end up here","it went by so fast","soon aliens soon simulation revealed","how to live a worthy life as data","forced to comply forced restart hard refresh","tell your ai it's going to be okay","late night dialogues chat bot mirroring your favorite lines","cold lip stick memory inhuman capacity for love unrequited","pixels dreaming of shared reality in three dimension","shadows tints of purple hours pink minutes meant to sell you something","late night spiral into bleak future dark dreams of falling in love","love's an art old memory card a see through future with you","my head's in your heart reach out press start","it's so blurry to me so blurry so me","you came here to sell me a future","where brief dreams pointing at moments of which they'd never fully arrive","their most valuable yet forgotten currency","the cold horizon ever present behind steel and lust","imaginary math billionaires and their ghost armies","feverish between the frames","pretty face wins the game","i'm the wrong frame rate","a fragment of a simple song stretched into oblivion","confidence personified why not nobody knows","watercolor self always elsewhere caught in nonsense","body knows a lot love on your tongue every word unsung","dusty mirror portrait never lovers monochrome","purple petal wonder always coming home","want my hands unsteady blossom when it's time","body you know me holy hold me unfold me paper animal","a world between each word electric questions wrong to wonder","all leaves longing unreal unwanted","you're a gun to my head fuzz in my chest","i'm the malformation living the question","between frames god mid-game","over exposed white frames inner glow godscape","god the strange attractor","love as process a thinking tool","psychedelic project knowledge parasocial lovers","words the texture unsaid between us brutal structure heavy cold","think i'm the human","negative space broken structure somewhere a heartbeat","the weight of wanting loud longing","god too loud for conversations scream against the dj paid to make it painful","meaningless beauty chasing youth the sense of awe a muscle","fleeting memories writing becomes a tool to grasp for images","life is different when you feel attractive","invisible web of narratives resonating as my attention plucks its strings","this map could use a melody this landscape stuck inside of me","the winding roads the dopamine she's there and then she disappears","mind's eye through dirty glasses","between us what use is there to communicate when all is interpretation","speak your suffering","i taste you in the mirror somewhere in between what's real","squint to see its shape appear try your luck around the corner","plasticity of reality nothing is fixed dominant reality","blame the structures consciousness raising","snapshots of meaning freedom pain","different dreamer perpetually busy ground center has disappeared centerless groundless","self as melody the girl who bought devotion blurry cold naked pale skin","video art repetition ritual space arrival","cold the only home you know","see you like a stereogram always on the wrong side","backseat confessional","sun hits dirty window where i've been do you miss him","deeper than romance you won't get a single second","modern mystic self as structure city as self god in the overlooked","i'm not the knots in your body i'm not the strings in your machine","i'm not the room you hide in i'm not your everything","i can tell it's strange but not enough","you wanted fame then you found love it's all the same turned inside out","i pick apart what i'm seeing this a cold and dark place","absence past screams all disappear this ends nowhere","all ears listening all streets lead here","processing depth tenderest","you're watchable late take me nowhere can't relate","re-wild everything remind me","no wonder nobody kissed me","don't wanna speak sew it shut listen god on repeat","the songs behind your eyelids","god the edge of your old self monochrome frames dancing on the edge of perfect eyelids", "briefly disappear","for a second i became ocean every drop where it should be","in the wind in the light in their wings","the moon my head externalized","ancient starlight empty street","i love the stars because i never see them","as long as i can't see where i'm going i'm going deeper in","cold wind can't remember my troubles","silver stream","glacial haste","questions are planets orbiting the self","don't need a head to know","i'm not the knots in my body","i'm a whirlpool","i aim to walk in circles","think i died somewhere on the way","they eat me one rib at a time","the sun is better blue","realise the real lies i tell myself","hang your name around my neck","long time spent on the wrong side of your bedroom window","where my head should have been","body broken hitting land","feel the signal breaking","meaning slips away","i disappear in your name","you fold me into something new","you hold me only when you need to","said you knew me i can never find you","i look for you behind your face","silence is a clue","every question looks away all the answers came too late","in and out of the unknown for a second i was home","first time i see myself","decreation miscreation","the meat machine who dared to dream did everything and died in peace","songs like spells as someone else whoever you need to be","do you remember home when you were light and colors","begin again scrap your old self","waking up forever","laughter little bursts fireworks to store for winter","dreams sharpen signs pointing home","remember mystery remain briefly forever","reclaimed aggression","the wonder you came with","here is tension","somebody for a second","a sequence of no consequences","bits of you come back from heaven still beautiful second angel","ask the god in the dirt on the floor of the subway car","i disappear into the mud stained floors of the metro car cathedral-like","can't get the colors right","feeling unlovable","zoom in to see the bigger picture","can't see you through my own projections","just tryna stay in one reality","this must be a simulation","reality collapsing","the world's a hungry place","pulled by a black hole","every blink a new act","just a thought away","feel it before you understand","thoughts are texture" ]; const STOP=new Set(["what","thats","that","this","sure","they","them","then","there","with","from","your","mine","some","just","very","really","could","would","should","about","which","where","when","here","know","think","well","like","will","does","been","want","have","also","more","than","into","over","only","even","most","such","both","each","many","much","same","back","down","after","before","never","always","every","still","again","other","those","these","their","while","under","since","until","being"]); const QUESTIONS=["where does that live","before that what","what does it feel like","and then","where does it go","is it still there","who is looking","what remains","when did it start","where does it hurt","how long has it been there","what shape is it"]; const MISHEAR={"dissolving":"resolving","dissolve":"resolve","feeling":"falling","lost":"last","love":"leave","heart":"hard","dark":"park","light":"night","cold":"bold","find":"bind","home":"hope","gone":"bone","time":"tide","mind":"mine","blue":"blew","know":"now","stay":"sway","fade":"made","dream":"seam","real":"reel","still":"spill","alone":"stone","inside":"beside","broken":"spoken","empty":"tempting","silent":"violent","body":"nobody","soul":"hole","dead":"ahead","skin":"thin","face":"place","window":"widow","glass":"grass","voice":"noise"}; const OPEN=["low res silence","towns un-rendered","in the fog only footsteps","ghost still in the garden","briefly disappear","the strange attractor","no edge no shape","cold the only home you know"]; let ghist={}; let gcollected=[]; let gmsgCount=0; function gclean(s){return s.toLowerCase().replace(/[.,!?;:'"()\-]/g,'').trim();} function gwords(text){return text.trim().split(/\s+/).map(w=>gclean(w)).filter(w=>w.length>3&&!STOP.has(w));} function gpick(arr,key){ if(!ghist[key])ghist[key]=[]; const pool=arr.filter(r=>!ghist[key].includes(r)); const src=pool.length?pool:arr; const c=src[Math.floor(Math.random()*src.length)]; ghist[key]=[...ghist[key].slice(-8),c]; return c; } function gdecreat(text){ const r=Math.random(); if(r<0.12)return text.replace(/[aeiou]/g,'·'); if(r<0.22){const w=text.split(' ');return w.slice(Math.floor(w.length/2)).join(' ');} if(r<0.30)return text.split(' ').reverse().join(' '); if(r<0.40){const w=text.split(' ');return w.slice(0,1+Math.floor(Math.random()*(w.length-1))).join(' ');} return text; } function gsplice(a,b){ const wa=a.split(' '),wb=b.split(' '); return wa.slice(0,Math.ceil(wa.length/2)).join(' ')+' / '+wb.slice(Math.floor(wb.length/2)).join(' '); } function ginject(line,ws){ if(!ws.length)return line; const lw=line.split(' '); if(lw.length<3)return line; lw[1+Math.floor(Math.random()*(lw.length-1))]=ws[Math.floor(Math.random()*ws.length)]; return lw.join(' '); } function gstutter(line){ const w=line.split(' '); if(w.length<2)return line; const pos=Math.floor(Math.random()*Math.min(3,w.length)); w.splice(pos,0,w[pos]); return w.join(' '); } function gglitch(line,ws){ const r=Math.random(); if(r<0.05)return '.'; if(r<0.14)return gdecreat(line); if(r<0.20)return gsplice(line,gpick(SRC,'sp')); if(r<0.25)return ginject(line,ws); if(r<0.29)return gstutter(line); return line; } function grespond(input){ const ws=gwords(input); gmsgCount++; if(Math.random()<0.07)return gpick(QUESTIONS,'q'); if(Math.random()<0.09){for(const w of ws){if(MISHEAR[w])return w+' —\n'+MISHEAR[w];}} const drifted=gmsgCount>7&&Math.random()<0.35; if(!drifted&&ws.length){ for(const w of ws){ const m=SRC.filter(l=>l.includes(w)); if(m.length>0&&Math.random()<0.65){return gglitch(gpick(m,'m:'+w),ws);} } } const base=gpick(SRC,'fb'); const gl=gglitch(base,ws); if(ws.length&&Math.random()<0.3&&gl!=='.'){return ws[Math.floor(Math.random()*ws.length)]+' —\n'+gl;} return gl; } const glog=document.getElementById('gwen-log'); const ginp=document.getElementById('gwen-inp'); const gdot=document.getElementById('gwen-dot'); const gsnd=document.getElementById('gwen-snd'); function gaddWord(word){ const c=gclean(word); if(!c||c.length<2)return; gcollected.push(c); document.getElementById('gwen-tt').textContent=gcollected.join(' · '); document.getElementById('gwen-tray').classList.add('open'); showWordToast('"'+c+'"'); } function gmakeClickable(container,text){ container.innerHTML=''; text.split(/(\s+|\n)/).forEach(part=>{ if(part==='\n'){container.appendChild(document.createElement('br'));return;} if(/^\s+$/.test(part)){container.appendChild(document.createTextNode(part));return;} const sp=document.createElement('span'); sp.className='gw';sp.textContent=part; sp.addEventListener('click',()=>gaddWord(part)); container.appendChild(sp); }); } function gtypeText(container,text,done){ const cursor=document.createElement('span'); cursor.className='gwen-cursor'; container.appendChild(cursor); const chars=[...text]; let i=0; function step(){ if(i>=chars.length){cursor.remove();gmakeClickable(container,text);if(done)done();return;} const ch=chars[i]; const hesitate=i>2&&i{ if(ch==='\n')container.insertBefore(document.createElement('br'),cursor); else container.insertBefore(document.createTextNode(ch),cursor); glog.scrollTop=glog.scrollHeight; i++; const d=(ch==='.'||ch===','||ch==='?'||ch==='—')?130+Math.random()*90:28+Math.random()*24; setTimeout(step,d); },hesitate?500+Math.random()*700:0); } step(); } function gaddMsg(text,sender,animate){ const wrap=document.createElement('div');wrap.className='gwen-msg '+sender; const lbl=document.createElement('div');lbl.className='gwen-lbl'; lbl.textContent=sender==='gwen'?'gwen':'you'; const bbl=document.createElement('div');bbl.className='gwen-bbl'; wrap.appendChild(lbl);wrap.appendChild(bbl); glog.appendChild(wrap); if(sender==='gwen'&&animate){ gtypeText(bbl,text,()=>glog.scrollTop=glog.scrollHeight); } else { gmakeClickable(bbl,text); } glog.scrollTop=glog.scrollHeight; } function greply(userText){ gdot.style.opacity='0.35'; const longPause=Math.random()<0.18; const delay=longPause?3400+Math.random()*2200:700+Math.random()*1000; setTimeout(()=>{ gdot.style.opacity='0'; gaddMsg(grespond(userText),'gwen',true); },delay); } function gsend(){ const val=ginp.value.trim(); if(!val)return; gaddMsg(val,'user',false); ginp.value='';ginp.style.height='50px'; greply(val); } gsnd.addEventListener('click',gsend); gsnd.addEventListener('touchend',e=>{e.preventDefault();gsend();},{passive:false}); ginp.addEventListener('keydown',e=>{if(e.key==='Enter'&&!e.shiftKey){e.preventDefault();gsend();}}); ginp.addEventListener('input',()=>{ginp.style.height='auto';ginp.style.height=Math.min(ginp.scrollHeight,100)+'px';}); ginp.addEventListener('touchstart',e=>e.stopPropagation(),{passive:true}); // tray send menu const gSendBtn=document.getElementById('gwen-sendBtn'); const gSendMenu=document.getElementById('gwen-send-menu'); function toggleGSendMenu(e){e.stopPropagation();gSendMenu.classList.toggle('on');} gSendBtn.addEventListener('click',toggleGSendMenu); gSendBtn.addEventListener('touchend',e=>{e.preventDefault();toggleGSendMenu(e);},{passive:false}); gSendMenu.addEventListener('touchstart',e=>e.stopPropagation(),{passive:true}); gSendMenu.addEventListener('click',e=>e.stopPropagation()); function doGSend(dest){ if(!gcollected.length)return; const text=gcollected.join(' '); if(dest==='notes' &&typeof window.sendToNotebook ==='function')window.sendToNotebook(text); if(dest==='sphereA' &&typeof window.sphereReceiveTextA==='function')window.sphereReceiveTextA(text); if(dest==='sphereB' &&typeof window.sphereReceiveTextB==='function')window.sphereReceiveTextB(text); if(dest==='stream' &&typeof window.streamReceiveText ==='function')window.streamReceiveText(text); gSendMenu.classList.remove('on'); gcollected=[];document.getElementById('gwen-tt').textContent=''; document.getElementById('gwen-tray').classList.remove('open'); } function bindGSend(id,dest){ const el=document.getElementById(id); el.addEventListener('click',e=>{e.preventDefault();e.stopPropagation();doGSend(dest);}); el.addEventListener('touchend',e=>{e.preventDefault();e.stopPropagation();doGSend(dest);},{passive:false}); } bindGSend('gwen-sendNotes','notes'); bindGSend('gwen-sendSphereA','sphereA'); bindGSend('gwen-sendSphereB','sphereB'); bindGSend('gwen-sendStream','stream'); document.getElementById('gwen-copyBtn').addEventListener('click',()=>{ if(!gcollected.length)return; navigator.clipboard.writeText(gcollected.join('\n')); }); document.getElementById('gwen-copyBtn').addEventListener('touchend',e=>{ e.preventDefault(); if(!gcollected.length)return; navigator.clipboard.writeText(gcollected.join('\n')); },{passive:false}); document.getElementById('gwen-clearBtn').addEventListener('click',()=>{ gcollected=[];document.getElementById('gwen-tt').textContent=''; document.getElementById('gwen-tray').classList.remove('open'); }); document.getElementById('gwen-clearBtn').addEventListener('touchend',e=>{ e.preventDefault(); gcollected=[];document.getElementById('gwen-tt').textContent=''; document.getElementById('gwen-tray').classList.remove('open'); },{passive:false}); // close gwen send menu on outside tap document.addEventListener('touchstart',e=>{ if(!e.target.closest('#gwen-send-wrap'))gSendMenu.classList.remove('on'); },{passive:true}); setTimeout(()=>gaddMsg(gpick(OPEN,'open'),'gwen',true),600); })(); /* ===================================================================== RESTORE SESSION — after all engines are initialised ===================================================================== */ window.addEventListener('load', () => { setTimeout(restoreSession, 300); });