tote

A rewriting playground

a two headed serpent-like creature, one head is a regular snake head the other is a parrot

Riffing on Le Guin's Carrier Bag Theory of Fiction, this presents a primordial vision of computation in which programs are written as a list of changes in the content of a bag, and programming can be done entirely without the need for textual representations.

Try Tote

To learn more, see the examples from Pocket Rewriting, and Fractran.

Introduction

Programming is done by dragging things from the Panel(left) into the Rules(middle) or Bag(right). Step through the evaluation by pressing the button with the squiggly symbol(bottom right) to rewrite the symbols in the Bag.

Subtract Program
:: x y sub > sub
:: x   sub > sub pos
::   y sub > sub neg
::     sub >

Once the rules have been created, add things to the Bag by dragging them from the Panel. To get the resule of 8-3, add 8 times the first symbol(triangle), 3 times the second(lozenge), and the subtract symbol(empty dot). Step through the evaluation by pressing the squiggly symbol until no transformation is possible.

Content of Bag
x=8 y=3 sub pos=5

Editing Symbols

Click on the symbols in the Panel(left) to open the Symbol Editor with which you can draw new symbols, save/load the ICN graphics, lock/unlock the dragging of the symbol in the bag, activate continuous/step mode for when the symbol is clicked on.

Setting Anchors

Clicking inside the bag during symbol editing gives that symbol an anchor position, when that symbol will be created as the result of a rule, it will spawn at that location.

Click on a rule's arrow to toggle between one of four triggers that can trigger the rule:

a merganser with a tote bag hanging over its front from around their neck

license

The license applies to all the documented projects, the projects themselves and their assets. The source code of this website and our apps are under the MIT License, but the assets and text content of this website and of our apps are under the BY-NC-SA4.0 License. We are happy to pass knowledge, and that others can learn from our projects, improve on them, or make them into something else that is useful.

DO NOT resell or mint our work, doing so is very lazy, and disrespectful to us.

You can find our more recent projects on Sourcehut.