This site documents an ongoing design project. The platform is in development.  |  butterflydreaming.info

In Detail

For the curious and the technical

This page contains technical and design detail aimed primarily at developers, designers, and researchers. If you are exploring the platform as a potential participant, the User Journey and Participate pages will be more immediately useful.

Interface philosophy

The interface should feel calm, exploratory, and collaborative. It communicates shared presence without social pressure. Dyadic controls are small, explicit, and reversible. The main screen is dominated by node browsing — the symbolic field is always the foreground, never the mechanics.

Technical language is avoided throughout. The interaction vocabulary is intentionally simple and non-mechanical:

Offer — propose a node Accept — agree a parent node Weave — open the fusion editor Approve — sign off on the draft

Layout: the browsing view

During the wandering and orbit phases, the interface is organised around three panels:

+----------------------------------------------------------+ | Symbolic field (nodes / graph / list) | | | | [Node detail] [Between you] | | Title / text / tags Bridge suggestions | | | | [Offer] [Bookmark] [Near you] [Near partner] | +----------------------------------------------------------+ | Proposal tray: A offered [X] B offered [Y] Locked: — | +----------------------------------------------------------+

Reading the diagram element by element:

The Symbolic field occupies the main body of the screen — the browsable surface of the Text-Graph, displayed as a node list, visual graph, or clustered view depending on user preference. This is always the foreground; the dyadic controls sit around its edges.

The Node detail panel opens when a user selects a node. It shows the full text of the fragment, its archetype tags, its provenance (seed source or the dyad session that created it), and its position in the genealogy — which nodes are its parents, and which child nodes it has generated. A user can dwell here, reflect, and decide whether to Offer the node to their partner.

The Near you and Near partner panels show nodes from each user's individual browsing trail — what each person has been drawn to independently. These are visible to both users as gentle orientation signals, not as personal data.

The Between you panel is the gravity well — a live surface of nodes that bridge the two users' browsing trails, updated dynamically as the dyad moves through the graph browsing experience. It is the most actively modulated panel: the AI surfaces nodes here that connect what both users have been exploring.

The Proposal tray runs along the bottom of the screen. Either user may place a node here by pressing Offer. Both users see the tray simultaneously. Locked: — indicates that no parent node has yet been mutually agreed — once a node is accepted by both users it moves from the tray into a locked Parent A or Parent B slot, and the dash is replaced by the node title.

The gravity well scoring function that drives the Between you panel is:

score(node) = wA × attentionA(node) + wB × attentionB(node) + wAB × overlap(node)

Overlap increases when both users have interacted with a node, or with nearby nodes in the same archetype cluster. Only ephemeral, in-session signals are used — no personal data, no long-term profiling.

Layout: the Weave editor

+----------------------------------------------------------+ | Parent A: [text snippet] Parent B: [text snippet] | +----------------------------------------------------------+ | Shared draft (child node) | | | | _____________________________________________________ | | | | | | | | | | |_____________________________________________________| | | | | [A: Approve ✓] [B: Approve ✓] [Save when both] | +----------------------------------------------------------+

Reading the diagram element by element:

The Parent A and Parent B nodes sit at the top of the screen throughout the entire drafting session — always visible, always present as the symbolic anchors from which the child node grows. They cannot be edited at this stage; they are the fixed inheritance.

The shared draft area is a single collaborative text space — not a turn-based chat, not two separate input fields. Both users write into the same text simultaneously, in real time. Either may add, delete, or reshape any part of the draft at any point. This is co-authorship in the most literal sense: the text belongs to neither user individually.

The Approve / Save flow is a two-step gate. Each user has their own Approve button. Once a user presses Approve their confirmation is recorded — but Save only activates when both users have approved the current version simultaneously. If either user edits the draft after approving, all approvals reset. This prevents one user from making a final change after the other has signed off. The child node is published to the Text-Graph only when both users are actively satisfied with the exact text in front of them.

The handshake protocol

The proposal and agreement process is an explicit handshake. The system never assumes readiness — every stage gate requires active user action.

P0
Wandering
The dyad has formed and both users are exploring the graph together. No proposals have been made yet. This is the open, unhurried phase — the gravity well is building, browsing trails are overlapping, and the AI modulator may be surfacing bridge nodes. Either user may Offer a node at any time, but there is no pressure to do so. The encounter is already happening.
P1
Proposals open
At least one node has been proposed and placed in the shared proposal tray. Proposals remain retractable — this is an invitation, not a commitment. The partner may Accept, offer an alternative, or continue exploring without responding. Multiple proposals may be in the tray simultaneously.
P2
One parent locked
The first parent node has been accepted by both users and is locked into the Parent A slot. The dyad now continues browsing and proposing to find the second parent. The locked node remains visible as an anchor — it may influence what both users browse next.
P3
Weave opens
Two parents are locked. The Weave editor opens automatically. Drafting begins. Both parents remain visible at the top of the shared editing space throughout.
ActionEffect
Offer(node)Creates a proposal card visible to both users. Retractable at any time before acceptance.
Accept(node)Locks node as parent if both have accepted. Shows as Parent A or Parent B.
Retract(node)Removes a proposal if not yet locked.
Replace(parent)Unlocks a slot and returns to proposal state. Requires both users to confirm if already locked.
Approve(draft)Records this user's approval of the current draft text.
Save(child)Publishes the child node to the Text-Graph. Requires both approvals active simultaneously.

The archetype cluster system

Nodes in the Text-Graph are tagged by archetypal family. These tags guide AI recommendations and support navigation through the graph browsing experience without constraining interpretation. The working cluster set is:

Nature archetypes

Water / Reflection Fire / Spark Landscape / Weather Seasons / Cycles Garden / Wild

Human experience

Journey / Path Threshold / Crossing Community / Encounter Memory / Time Wound / Healing Love / Bond

Symbolic imagination

Dream / Vision Word / Silence Paradox Myth / Archetype Light / Dark Descent / Ascent Order / Chaos Self / Double

Moderation architecture

ButterflyDreaming is intentionally anonymous and does not track user identities. Moderation therefore cannot rely on identity enforcement. Instead it uses layered technical screening, applied at multiple points — during typing, proposing, weaving, and saving.

The goal of moderation is not punitive control but gentle guidance that keeps the environment supportive and safe for vulnerable participants.

1
Client — immediate feedback

Runs directly on the user's device. Includes English dictionary whitelist checks, spell-checking assistance, lightweight toxicity signals, and out-of-vocabulary ratio detection. Provides immediate visual feedback before text is submitted. Detects obfuscation patterns and unusually high proportions of non-English vocabulary.

2
Server — policy enforcement

Applies stronger policy rules once text is submitted. Checks for policy violations, applies rate limits and quarantine for suspicious sessions, and logs minimal decision metadata. The authoritative moderation layer.

3
Cloud — escalation only

Reserved for borderline or high-risk cases — threats, hate speech, sexual content, self-harm indicators. Returns a decision to the server. Used sparingly to preserve privacy and minimise cost.

Moderation pipeline: user text → client spellcheck + whitelist → OOV ratio → server policy filter → optional cloud → allow or request rephrase

The node data model

Each symbolic text node in the Text-Graph carries the following data. Session data is minimal and ephemeral — no user identity is ever stored.

FieldDescription
idMemgraph node ID (primary key)
urlPermanent public URL: domain.org/n/{id}
textThe symbolic content
sourceseed | dyad_child
tagsArchetype cluster tags (optional array)
langLanguage code (default: en)
created_atTimestamp
moderationStatus and flags
countersViews, selects, fusions

Graph edges in the Text-Graph: PARENT_OF · BRIDGE_TO · CREATED · USED_PARENT · TAGGED_AS

Storage: Memgraph for the node graph and relationships; MongoDB for session state and moderation logs.

Preventing famous-node collapse

In early growth, a few iconic seed nodes can dominate attention through preferential attachment — a small number of well-connected nodes accumulate ever more traffic, while the rest of the Text-Graph is neglected.

The platform mitigates this through: seeding many equal-weight fragments; fragmenting famous lines into smaller atoms; and including a small percentage of quiet nodes — under-visited, older, or isolated cluster nodes — in every graph browsing experience browsing panel. Random pairing itself helps, by mixing interpretive styles and preventing clique formation.

Iterative tuning uses simple behavioural metrics: time-to-first-proposal, acceptance rate, Weave completion rate, cross-cluster fusion rate, and under-visited selection share.

Guest commenting welcome — no account needed. Log in with a Hyvor account to receive reply notifications and maintain a consistent identity.