top of page

Exoloom - Early Access

Briefing

Welcome to the Exoloom Early Access program. Let's start with some context.
 

  • A "Loom" interface affords a style of interacting with a Large Language Model (LLM) where, instead of having a straightforward back-and-forth chat with the model, the system generates multiple completions at every step. Conceptually this creates a graph (specifically, a tree) of possible completions.

    • This style of interface opens up many possibilities, but the two most obvious are:​

      • The user can see 'what might have been', get a broader sense of what the LLM is capable of, find basins, and explore the 'textual multiverse' implicit in LLMs.​

      • The user can exert much more control over the interaction by curating completions (choosing which branches to proceed along) and interfacing at a finer level. In the limit, boundaries blur and the user and the LLM become a single symbiotic agent, a "Cyborg".

    • This interaction paradigm was initially explored by Love Laverkvist in their "Multiverse" app, and Janus in their original "Loom" app.

    • More about Loom interfaces and the textual multiverse here: ​What is a Loom?

  • The primary goals for Exoloom are:​

    • To be more accessible than any of the other existing Loom interfaces​; A user should be able to navigate to the URL, log in, and start Looming, with no installation process and extremely minimal configuration setup.

    • To become an online hub for launching shared expeditions into the textual multiverse (which is to say, allow multiple users to simultaneously explore the same Loom tree, and allow many users to asynchronously explore saved public trees).

  • Base Models vs Instruct Models​

    • Exoloom works best with Base Models, such as Llama 405b Base. Note that the intended use is to write a 'document' (which can be anything... a novel, research paper, chat log, social media feed, blog post, legal document, movie script, poem, etc) collaboratively with an LLM. This is different from 'chatting' directly.

      • Base models are not trained to have conversations or an 'assistant' personality, so if you try to talk to them directly, they will often just continue your sentences.​

        • It is possible to write in a specialized format as if you are in a chat log or movie script, and you can potentially talk to a character this way, but it's up to you to enforce the specialized format.​​

      • Although Exoloom technically can call Instruct Models (such as Claude or GPT-4), it is not currently configured to prompt them in a 'user/assistant' form. We plan on making an Instruct Model mode in the future.​​​​

​

​

Interface - Basics

​Getting Started

  1. Go to: https://exoloom.io

  2. Click "Login" and follow the Login/Signup prompting. (enter your email, submit, navigate to the link in the email, enter your display name)

  3. Click "New Tree" to enter Editor Mode with a new Loom Tree.

  4. You will start with some free Flux credits, which you can use right away.​​

 

Basic Flow

  1. First you have to enter some text to start with. Press the Spacebar or the "User Input" button, then you can type or paste text freely. To enter a line-break, press Shift+Enter.

  2. Once you have some starting text, press Enter to create a Node with that text as its content.

  3. Press Enter again (or press the "Weave" button) to generate several completions.

  4. Once the completions load in, you can Sample them by mousing over the Choices along the bottom of the screen, or by navigating through them with the Tab / Shift+Tab or Left Arrow / Right Arrow keys.

  5. To Activate the currently Sampled Node, press 'Enter', or Down Arrow, or click the Choice card.

  6. At this point, you can continue generating and selecting more completions (steps 3-5).

  7. At any point, you can add a User Input Node (steps 1-2)


Interface - Details

loom visual guide.png

​Nav View

  • Hover over any node in the tree to see a preview of its contents and author.

  • Click any node in the tree to make it the Active Node. 

  • 'Show Pruned Nodes' switch will toggle between showing vs. hiding pruned nodes in the Nav View.

  • 'Pruning Mode' button will toggle Pruning Mode on/off. While in Pruning Mode, you can click Nodes to Prune (hide) them, and you can click Pruned Nodes to Unprune (restore) them. Viewers with Write permission for the tree will be able to preview the content of and Unprune Pruned Nodes; viewers without write permission will not be able to see or recover the content of Pruned Nodes (though they can see that a node was Pruned at that location in the Tree). (hotkey: hold 'p')

  • ​'Recenter' button will center the view on the Active Node.

  • 'Next Unvisited Node' button will navigate to the Parent Node of the next Unvisited Node and sample the Unvisited Node. This is an easy way to go back and find Nodes/paths that you didn't look at on your first pass. (hotkey: ']')

​

Canvas View​

  • 'Copy' button will copy the full context from the Root Node to the Active Node to your clipboard. (Note: this will not include the pipe-character separators which are visible in Canvas View)

  • 'Paste' button will paste text from your clipboard directly into the User Input field.

  • 'Bookmark' button (or hotkey 'b') will bring up a menu where you can enter a label for a bookmark pointed at the Active Node. You can browse or delete your bookmarks under the 'Bookmarks' menu in the Menu Bar.

  • 'Export': Export a Loom file (this includes the entire Tree, and Bookmarks)

  • 'Prompts': Select a Default Prompt from the Prompts menu if you're feeling uncreative.

  • 'Library': Go to the Library View.

  • 'Unsample': Unsample the currently Sampled Node (if there is one). (hotkey: 'Esc')

  • 'Random Choice': Choose a random completion out of the available Choices (hotkey: 'r')

  • 'Link': Copy a shareable URL link to the Tree at the current Active Node. Note that the Tree Visibility must be set to PUBLIC to allow anyone else to view the link.

  • 'Back / Forward': Navigate backward or forward through your previous most-recent Node selections. (hokeys: ',' and '.')

  • 'Detail View' Toggle: When Detail View is active, User text will be a slightly different color than LLM output in Canvas mode, and you will see '|' separators between each Node's content.

  • 'Mode Indicator': This is an indicator, not a button. 'T' means you are in Text input mode and can type into the Canvas, "arrow" icon means you are in Nav mode and can navigate between Nodes.

  • 'Insert Mode': If you want to edit the context at an arbitrary location in the Canvas, hold down 'Cntl' (or enter User Input Mode by pressing 'Spacebar') and click the text where you want to insert a change. When you press 'Enter' to commit your change, the original node will remain, but a new node will be created which only contains the contents up to where you clicked, combined with the collapsed content of the remaining nodes in the context up to your Active Node. [Not available in Chat Mode].

  • 'Splitting Mode': If you only want to keep a Node's contents up to a certain point, you can activate Splitting Mode and click (on the text) where you want to split the node. There is a button to toggle Splitting Mode, or you can hold the hotkey 'ctrl + s'.

 

Keyboard Navigation​

Note: the User Input field must not be focused in order to use keyboard navigation & hotkeys.​

  • Up Arrow / Down Arrow: navigate up and down through the Tree (Up => Parent Node, Down => Sampled Node)

  • Tab / Shift+Tab or Left Arrow / Right Arrow: Toggle through Child Nodes to Sample one at a time

  • Enter: Navigate to Sampled Node.

  • ​Enter (while there is no Sampled Node): Generate more completions.

  • Pg Up / Pg Down: Scroll text up/down in the Canvas.

  • b: Add a bookmark pointing to the Active Node.

  • r: Navigate to a random Child Node.

  • ]: Navigate to next Unvisited Node.

  • , / . : Navigate backward or forward through your previous most-recent Node selections.

  • Spacebar: Activate User Input Mode.

  • Esc: Deactivate User Input Mode, or Unsample currently Sampled Node, or navigate up to Parent Node

  • x: Prune Sampled Node

  • p: hold to toggle Pruning Mode. In Pruning Mode, click nodes in Nav View or Choice Cards in the Choices view to prune/unprune them.

  • ctrl + s: hold to toggle Splitting Mode. 

  • ctrl: hold to toggle Insert Mode. [Not available in Chat Mode].

​

Library View

​This is where all your saved Trees will be selectable.

  • Logout: to log out of your account.

  • Import: Import a Loom file into your Library.

  • New Tree: Create and save a new Tree

  • Trees:

    • Click a Tree to open it​

    • Edit: Click the pencil icon on a Tree to change its:

      • Title

      • Description

      • Visibility:

        • Private (default): Only you can access the Tree

        • Public Read: Only you can modify the Tree, but others can view it

        • Public Write: Anyone can view the Tree, and any logged-in user can modify it

          • Note: Currently, you will not see updates to the Tree from other users in real-time; to load updates made by other users concurrently, you must refresh the page.​

    • Delete: Click the red 'X' on a Tree to delete it from your Library.


Looming 101

Looming is an art, not a science, at this stage. There's no right or wrong way to do it, but here are some tips to get interesting results:

  • Initial Prompt:

    • The more text you use in your Root Node, the more the model will have to work with. While you can start out with a very short and vague (a couple words, or a single sentence) initial prompt and see where it goes, most of the places it goes will probably be especially random and unlikely to be in an interesting or coherent style.​​

    • "Slop in, slop out"​ (usually)

    • Every word gets taken into account by the LLM, guiding what basin it will gravitate towards. Made a typo? The model will now assume the character or author is the kind of person who makes typos. Trying to summon a genius character with prose that sounds like it's from a bad movie about a genius character? You'll get a bad movie's idea of a genius character. Use the British spelling of a word? I guess we're in England now. Accidentally added a couple extra spaces? Expect more random extra spaces in the output.

    • Try layering multiple complementary prompts in sequence. For example, to get more psychedelic results from the "Interdimensional Cable" default prompt, use the "Eschaton Emulator" prompt right before it.  

  • Exploration:​​

    • The path-of-least-resistance in the Exoloom interface is to generate completions, pick your favorite, generate completions, pick your favorite, [...], going deep down one path. But exploring side branches can be very interesting and is vital for developing better instincts about the landscape of the latent space. Try experimenting with breadth-first exploration rather than always getting sucked into depth-first exploration.

    • The deeper you get into a tree, the more your curation choices are influencing the output. Deeper layers of the tree implicitly reflect more bits of information (in the information theoretic sense) about your preferences than shallow layers. You can view this as a specific kind of optimization pressure you're exerting: curation pressure.

    • As you navigate through the textual multiverse, occasionally reflect on where the LLM appears to think it is. Is it in a travel blog? A 4chan comment thread? A news story? A research paper? An HTML document? Is the context so bizarre and out-of-distribution that the model is beginning to show signs of self-awareness that it's an LLM generating text, or even that it's in a Loom program?​​

    • Remember to add well-labeled Bookmarks along the way at Nodes with interesting content or at major branching points. Otherwise it can be hard to find these points in the tree later.

​

Where this is Going

​We have a long list of features planned, but some of the core features include:

  • 'Multiplayer' simultaneous editing of Trees

  • LLM self-looming / autoloom

  • Advanced navigation

  • Semantic zoom

  • Mobile version

  • Twitch integration

 

Feedback

We appreciate any bug reports or general feedback. We're particularly interested in hearing about:

  • What are you using Exoloom for?

  • What features do you wish existed?

  • Are there any parts of the interface which you find frustrating or confusing?

  • Have you generated any especially surprising outputs?

​

Please use these forms to submit specific Bug Reports or Feedback:

​

You can also use the 'delvers-guild' channel of the Kaleidoscope Discord for general discussion, collaboration, and feedback about both Exoloom and Loom exploration in general. We look forward to hearing from you, and let the journey begin!

© 2024 Kaleidoscope Research Inc.

bottom of page