Welcome to arbor, a programming language and system for augmented environments
and computational tools.

Using Arbor

At batou, arbor is used for human-computer interaction research and “augmented behaviour” programming. Arbor is an interpreted lisp-like language. It can also be hosted in Java, Kotlin and Javascript systems as a libary.

Arbor is much more purposeful if used in what we call an augmented environment or a digital workspace. At the moment, there is only one arbor-enabled physical system, the augmented desk in our lab. However, you can download a command-line distribution for desktop systems.


Command line REPL. JAR-based distributions for desktop systems.


The .zip file comes with a small installation help:

> sh install_help.sh

The quickest way to add arbor to your path is by creating an alias in your bash profile or equivalent.

If you're going to use the package manager, the variable ARBOR_HOME should be set (export ...) to the installation directory (where you keep arbor.jar).

On Augmented Environments

Discover Arbor on the Augmented Desk

Some examples of arbor being used to create behaviours on a computable surface.

(define draw-edge
 (lambda (origin destination)
  (line (position origin) (position destination))))

(define-behaviour graph
 (prepare .)
   (for-each (entities)
    (lambda (it) (draw-edge entity it)))))

Gravity: A physics simulation

An "Augmented Document"

Using the package manager

The current arbor distribution comes with a separate package manager program, built as a language library. It is included in the .zip file.

To use packages.jar as a language library from an arbor session:

		arbor > (import-lib 'packages.jar)
		Gratus ut packages.
		Success. Found arbor home: ...
		Arbor-Packages located.
		Loading Procedures:
		 + [email protected]
		 + [email protected]
		 + [email protected]

		arbor > ([email protected])

		  description=Wikidata knowledge-explorer

Spaces, tools and software hand-crafted in Barcelona