I have been wondering about information distribution, feeling inefficient.
This page reflects on how to build a seemless, integrated information structure for it, and this repo is where it's built.

Towards spirit stream

More refined

Spirit Stream

When I follow curiosity, leaning into my wonder about computer and internet, I sense dissolution: The edges of my body fade and I float through the associations between all possible spaces. Into the space, through trees, stories, videogames, temples, beauty, destruction. I see my questions answered, not definitively, but as completely as the collective mind can. I sense connection, trusting and deep. I sense the conflicts in the world as internal, not as foggy, distant pain. There are no external barriers to my being and I stream into others to see exactly what they mean. And in my action, the structure of the world, not merely my individual life, is reflected.
Returning to my body, I can't help but wonder what the fuck this is: Me, stopping with my fingertips, not being able to walk through walls, facing the endless world in mist asking hello with no answer.

Floating head, slightly tilted. Partly shaded, mask-like. Reminiscent of a skull. Dark background and dark lines across the white head, partly messy, decorative and minimally defining facial features. Closer eye is white, farther eye is black. Red-magenta lines overlay the skull, partly straight and splitting the image, partly squiggly.
Spirit of curiosity
i can see the hive mind on the horizon.
there are hammers, sculptors, hammer blows and sculptures.
grouped and isolated
places to stay.

like gazing into a painting, being guided through the impression
coming along to find a question asked at myself, seeing it unfold and building a response

There seems to be a structure behind notes, memes, essays, books, stories, exhibitions, spaces, products, worlds. They consists of simple patterns in the mind their process might be reflected like this:

Sense, explore, parse circling patterns from
chaotic and far-reaching,
through filtered and coherent knowledge,
to linearized, actionable and accessible stories.

Express in sound, body,
writing, graphs, images, products,
and any tools to build them,
in process,
from memory.

Share in truth,
to test, be surprised, dance, reproduce, join the cutting edge, offer, cohere, support, punish,
into common languages per context,
into scopes of recipients,
under optional conditions.

Where I am,
When I am.

If the process can be reflected in the machine, the patterns and me with them can seamlessly enter the machine and then its abilities...

Execute machine code within instruction sets,
functions, programs, function approximators compiled from many languages,
from and to memory.

Store, retrieve anything, persistently, quickly

Express in any electric actuator, speaker, display, motor.
Receiving from any electric sensor, keyboard, mouse, camera, microphone

Exchange anything at up to ~storage speeds,
to any available address,
through ports, through fundamentally unreliable, insecure connections,
made reliable, secure through protocol and server

...become my own. The spiritstream aims to be the passage into the machine.

How to merge?

Since I construct meaning from the individual, I view all higher structures of power (groups, communes, cities, states, religions) as services to the individual. Build free, accessible, independent, private, no login, no lock in.

The flow of patterns in the mind precedes common language and translating them shrinks and distorts them. A direct neural interface may simplify the process. An AI could interpret the stream and seamlessly induce useful patterns. Should I now try and build a neural interface?
I suspect not. The patterns are repetitive and I have seen myself expressed in words almost entirely. Simple words or images can speak so loudly and clearly, throwing open the doors to the world with their precision and closeness. Finally, the problem of organizing symbols - patterns or words - remains. The neural interface may follow.
When the interface becomes seamless and reflective of the user,
when the spirits of computer and internet reveal themselves,
when I speak with clarity and the extension answers with clarity - we merge.

Create, reuse, organize and share arbitrary symbols in 3D space, which is the most dimensions I can understand and use intuitively. Links to other spaces enable arbitrarily many dimensions.
Remember a continuous stream of actions to provide a seamless safety net and past data to learn from. It encourages revisiting instead of starting anew, improving quality, and allowing fearless, even reckless editing.

Synchronizes with untrusted remote servers. Uses end-to-end encryption for non-public data. Public data is available in the web view.

To discover and be discovered, search engines, LLM pretraining or dynamic research through an LLM seem sufficient.
Algorithms and humans have equal capability when interacting with the spiritstream: A local or remote server handles all file modifications, while a trusted client is the interface.

Eventually, the spiritstream becomes the primary interface to the computer, an operating system. Motivation for depth and vertical integration is meet the computer and let higher structures fall into their place. Assume hardware is good + it's expensive to build -> don't go into hardware until software is insanely great.
Initially, it's a desktop client using python, OpenGL and GLFW to refine abstractions before setting them into C and becoming standalone.

Complexity appears when looked for. Should be simple, functional editor unless user decides to explore.

To be become scary, serious and more real, therefore adventurous, payment must be supported. And later an interface to robots.

Current process for publishing:

Writing in pure html, css, javascript: VS Code, prerendering to static sites locally (table of contents): node.js
keeping history in a git repository,
Synchronizing with remote server over SFTP using python paramiko: Hetzner VPS: OpenSSH, nginx (HTTP, HTTPS)
Discoverable through Cloudlfare DNS.

Specification

Open spirit stream. Presents blank page in a continuous, infinite space with cursor ready to start or where I left off. Write WYSIWYG markdown, showing raw syntax only within the selected element.
Split window horizontally or vertically + tabs.
editor supports hyphenation, jpg, gif, png (LATEX), code highlighting in python, glsl, css.

SELECTION: Normal text selection by dragging, or holding Shift. When selecting frames, hold Shift to select multiple. Shift+Drag to left selects all touched frames, to right selects all contained frames. ESC to unselect current frame. ESC again to exit 2D context into first person 3D. Shift click on any object in 3D space to jump there. Click to enter its 2D context if it has one. With selection tool, select any object(s). Grab with G, rotate with R, scale with S. X,Y,Z for relevant axis or Shift X,Y,Z to exclude one if moved with mouse, else can also type value for keyboard only.
Double click to put cursor into node. Double click outside node creates new node there.
CTRL+A select everything in frame. Double press CTRL+A to select everything in scene. Triple press CTRL+A to select all.
If nodes overlap, always selects the first deepest node in the tree. This makes layers a direct translation of the tree. It's also inverted, so the deepest nodes are the top layers.

MOVEMENT: Switch to GRAB tool (deselects everything) or hold space (while nothing is selected) and drag to pan. Alternatively Scroll up/down or Shift+Scroll left/right. In 3D, use WASD for forward, left, back, right and RF for up, down. CTRL+scroll for zooming (=change of FOV works for both 2D, 3D). E interact, Q quit. Maybe "belt" of tools.
Links can either allow me to GO to or SHOW (embed) their target. Valid targets are headings, files or URLs. Only the content of headings or image files can be SHOWn. Nodes that can't be opened natively offer system default or custom external program. Nodes can also exported as standalone files.
Delete is the same as removing all references to a piece of data, gives warning when deleting last reference.
Can fuzzy search nodes names or search nodes by overlapping links, prioritizing deeper nodes.
Back and Foward buttons to undo / redo navigation.

Views:
Strict WYSIWYG necessitates a preview, without any UI hints.
Edit (Markdown mode): view formatting syntax only for selected nodes, comments are visible.
Source: full formatting syntax, html.
3 Views: how to reduce?

HISTORY: At custom interval, store modifications. This is used for undo history too. Store fixed amount or infinite. Create and name snapshots manually. Undo history is a graph. Shows only history of currently selected nodes. Can search by date and / or node. Clicking on any past state restores it, but only modifying it, updates it to the be the newest version. History nodes are like links so they can be opened in a new tab/side by side.

SHARING: For any node or selection of nodes, click share to view a list of possible recipients. Can be any individual address or group of addresses reachable by email, ssh, https or protocols from external messaging apps. Remote servers, either for encrypted backup only, or public web server could be among recipients. Depending on media chosen, content is translated for it (markdown subset, markdown, HTML, CSS). If WYSIWYG not possible, show preview. Responses can be inserted below original message but show up in generic inbox either way. Links to unshared pages or unshared parts within shared parts, are replaced with [...]. Shared parts can be updated on save, periodically or livestreamed.
Spirit stream can be viewed through lens of any contact.

Functionality beyond pure basics, like calendar, todo list, AI integration, social media backends, payments, crypto, exporters, interpreters, robot APIs is done through plugins. Base spirit stream provides only base API for functionality and UI. All UI uses the basic API and can be rebuilt.

Minimal prototype

2D canvas with frames with WYSIWYG markdown, styling using CSS. Selectively convert to html / css and share to server over SFTP. Regularly store changes in a history graph and be able to revert to previous states for selected frames.

Less refined

Implementation notes

At the bottom are text, image, audio and video nodes. They can form a tree of nodes for semantic differentiation. Each nodes has a style attribute, parsed from linked CSS.

BACK and FORWARD buttons let me step through navigation history after following links.

Pasting a file produces a GO link to that file or a SHOW link if it's an image file. Links can point to void targets which can help with search.

All actions are available both through UI to the user and API to external programs and in an AI-friendly form, like Model Context Protocol. Connecting to an already opened instance or creating a new one with or without showing UI is trivial through a terminal.

Login page is a page I can share so viewer has chance to change permission status.

customize background of infinite sphere.
workspace is a file with SHOW links.
WORD, LINE, PARAGRAPH resolution changes styling (line break after that unit) and editing mode: ALT+UP now moves paragraph and END moves to end of paragraph.

Recipients tree is whitelist. can send to all by using default group which contains all contacts anyway.

To maintain links, the offset they point to must be updated. To minimize updates, organize in a binary tree with offsets on each node and relative to parent node.

Log stores changes to nodetree or give nodes a timestamp and pointer to previous node version and integrate it in one big node storage. Include version number somewhere for extensibility. Consider that files may have changed without logging information. Must verify upon startup. Rerun history against stored states. Separate and hash append buffer and log files above certain size.
referencing the current head of the tree enough. can store only deleted nodes to history, so the current ones are always accessible.
data should contain the piece table for that node. just offset, length

@dataclass(frozen=True) class Node: timestamp:int past:Node future:Node parent:Node children:Node style:Node shared:Node type:N data:Dict 64 Bytes.

to reduce memory usage, can treat as chunks, copy any that are still used in the current tree in a cache and then compress the old chunk.
content and node files are hashes occasionally to allow integrity checks? maybe store hashes in a different file with timestamp and also store LABELS for history there.
maybe append only buffer is not worth refactoring at all. just compress past unused data.

each node has lines. each line has cursor coords (+1 at the end) and text slice it contains

Client handles interface. Server does functionality. Even when running locally, theres a server. Run without client for seamless remote hosting. Client trusts the server as little as possible. Maybe client comes with its own API like a plugin to the server.

other

Karpathys ideal blogging platform
file over app
How to do micropayments like for bandwidth for PAYG
tor
interplanetary file system

discord
plausible analytics
atom/rss
Digital gardens: https://github.com/MaggieAppleton/digital-gardeners
example: https://simonewebdesign.it/ markdeep
libh2o (web server) PowerDNS.org with articles

Maybe merging physical and virtual world means replicating my room in the computer and the computer in the room. Most of the room is static -> low network load; focus on moving and important parts instead: Faces. Computer should compress data by "scanning" environment and face and storing/transmitting transformations to save space.

Render queue?
mipmaps for glyph atlas

There should be a slider between speed and memory usage and it should apply to the whole computer. Or just use all memory + storage all the time and indicate with the slider how far into becoming slow it is.
storage should be prioritized based on time to recalculate per byte and times the bytes were used and expected future savings based on past usage.

html is hierarchy for search engines and humans, llms like simpler differentiation like markdown, struggle with 3D.

Assign stlye like in browser debugger.
CTRL+CLICK to follow a link, else edit markdown for that link.

The process of language from far-reaching to linearized stories is analagous to the the process from abstract and ambiguous memory towards linear, factual history.
But history is told in language too. but there are ways to record direct experience of history. no such way to record thoughts? yet?
machines can probably translate brain signals into languages and back into experience.
In computers, all abstractions exist for efficiency, so there is very little given that I must build on.
it is less obvious what to build on in interaction with the mind? language? it is not the bottom: my experience exists in higher resolution and volume than what I can reproduce in language.
most experience quickly becomes irrelevant. Would arguably be rather burdensome if recorded. How to efficiently and accurately encode discoveries in the mind. thinking is a compression algorithm. Most attempts are shit, the remaining should be expressed in high quality to save others from doing the same.
problems are lack of introspection about why something appears meaningful or useful and lack of empathy for other people, the student, who does not understand the news.

it seems that the communication problem is solved.
no, the properties of the computer are still useful, like perfect memory, communication speed, processing autonomous processing. but the interface is so slow and tedious that it is not worth it to put most of my mind into it because I have to manage it too.
at some point it might interpret brain signals and aid them directly. an obvious problem here is that I don't understand most quotes and can not learn from them. I am not attracted to books because its hundreds of pages of nothing to use or remember. what to do with this?
the ideal publishing platform does not exist. there is no bottom up independent easy publishing app. there is obsidian but it can't contain worlds. Narrow and ugly under the hood?

Should enter the messy real world with money and robots. This appears like an infinite journey which means urgency. the sooner the client, the sooner the OS, the robots, the hardware, raw materials.
reimplementing spirit stream in another language should be trivial.

links to codeblocks execute code? I provide API and anyone can use any language and include any interpreter to interact with it?
audio, video = automatic streams highlighting = automatic grouping