The front door opens modestly, with plain titles

The first card says what redoal is, in two features for the two people
it exists for (the one who draws, the one who leaves a voice) and no
button; the second is a look around (the live count, releases, the
iPhone beta, varde, UHHM); only then the drawing and the notes. Bold
statement titles become what-you-get titles: "Meet a network you
carry in your hand" and "Follow the build as it lands" fold into the
opener and the look-around, "Hear from us when it matters" is "Get a
note when something lands", "Hear from this address" is "Get a note
when a voice lands here", "What just happened" is "What your drawing
became", "Come draw on the wall" is "See it in person at Podium".

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH
This commit is contained in:
Bendik Aagaard Lynghaug
2026-09-23 18:25:04 +02:00
co-authored by Claude Fable 5.1
parent 0a51852cb2
commit 531dbbf2de
3 changed files with 107 additions and 126 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ event:
duration: 31d
place: Podium, Hausmanns gate 34, Oslo
alternatives:
- name: Come draw on the wall
- name: See it in person at Podium
description: >
The installation runs the same code as this site, on screens
you can stand in front of together — the network at the scale
+104 -123
View File
@@ -1,14 +1,115 @@
id: /
name: What shapes us?
name: What is redoal, and what can you do here?
description: >
redoal is a gesture-addressed network. Draw a line and it becomes
an address — the drawing itself, ready to use the moment your hand
lifts. Similar drawings land near each other, and everything else
follows from that. Draw one below and see who's near.
follows from that. What it is comes first; the drawing is further
down the page.
responsible:
name: Bendik Aagaard Lynghaug
contact: bl@uhhm.no
alternatives:
# The opener: what redoal is, in two features and no button. The
# two people it exists for are the one who draws and the one who
# leaves a voice; both keep what they made.
- name: What redoal is
description: >
The one trick, and what it enables — the parts that run today,
said plainly.
features:
- name: A drawing is an address, and yours to use
description: >
The computer measures how your line curves, turns, and keeps
rhythm, and boils it down to a twenty-byte fingerprint.
Similar drawings get similar fingerprints — two spirals land
like two houses on the same street, and that closeness is
the whole network. Your machine asks the machines around it,
"has anyone been near this shape?", and your spiral finds my
spiral directly, peer to peer.
icon: lucide:map-pin
- name: A voice stays where you left it, sealed by your own hand
description: >
A drawing is a place, and places hold voices. Listen to the
recordings people left at a gesture, leave your own on top,
and when someone stands at the same drawing right now, just
talk. Every recording carries a signature from the leaver's
own machine: keep the key and you're recognized, delete it
and you were never here. A child, an elder, or a newcomer
still learning the local script arrives on the same terms.
icon: lucide:mic
# The look around: nothing to fill in.
- name: Have a look around first
description: >
The network as it runs right now, and where it is going.
features:
- name: The count so far
description: >
Live from the front-door relay — the running tally of what's
been left at places.
icon: lucide:activity
resource:
source:
kind: url
url: https://relay.redoal.com/pulse
public: true
# /pulse (redoal ADR-0023) returns { voices_echoed: N }; shape
# it into one card — the number as the heading, the phrase
# beneath. Emit a bare object, not a wrapped [ … ]: the portal
# collects the jq output stream into an array itself, so a
# wrapping [ ] nests it ([[{…}]]) and drops to a raw JSON dump.
jq: >
{ "name": (.voices_echoed | tostring),
"description": "voices echoed so far" }
empty: The first voice hasn't echoed yet.
- name: Releases
description: Run one of the desktop applications, free, no sign-up.
icon: lucide:package
resource:
source:
kind: gitea_releases
owner: redoal
repo: redoal
public: true
empty: Nothing released yet — the first cut lands here.
# url pinned to null while the repo is private - a private
# release's html_url 404s for anonymous visitors, and the
# card renders an unlinked heading instead (same lesson as
# uhhm/questions 9b7162f).
jq: >
.[] | {name: .name, description: .body, tag: .tag_name,
published: .published_at, url: null}
- name: The iPhone app, in beta
description: >
The iPhone build rides TestFlight (Apple's beta program) —
[join the redoal testers](https://testflight.apple.com/join/eR9dvHkz)
with one tap on your iPhone; no invitation, no email, no
waiting on us.
icon: lucide:smartphone
- name: Carried by iroh, through varde
description: >
What is left at a place is kept and mirrored by
[varde](https://project.uhhm.no/uhhm/varde), a small
daemon that moves bytes between consenting machines over
[iroh](https://iroh.computer) — verified, rate-limited, and
legible to the network it runs on. Recordings travel that way,
with no company carrying them.
icon: lucide:waypoints
- name: Built in the open at UHHM
description: >
[UHHM](https://uhhm.no) builds and carries the gesture math,
the relay, and the portal this page runs on — and hosts the
network's first node. It is a prototype and an artwork before
it is a product: what you can touch is real and running, the
transport that reaches across the internet is being built
now, and the rough edges are where the interesting questions
live. A client, a relay, an instrument — if you want to put
the network on a surface it isn't on yet, say so through the
path below.
icon: lucide:anvil
# The offers.
- name: Draw a path and see who's near
description: >
By associating similar movements while facilitating discourse we
@@ -35,126 +136,7 @@ alternatives:
relay: wss://relay.redoal.com
optional: true
- name: Meet a network you carry in your hand
description: >
The one trick, and what it enables — the parts that run today,
said plainly.
features:
- name: The count so far
description: >
Live from the front-door relay — the running tally of what's
been left at places.
icon: lucide:activity
resource:
source:
kind: url
url: https://relay.redoal.com/pulse
public: true
# /pulse (redoal ADR-0023) returns { voices_echoed: N }; shape
# it into one card — the number as the heading, the phrase
# beneath. Emit a bare object, not a wrapped [ … ]: the portal
# collects the jq output stream into an array itself, so a
# wrapping [ ] nests it ([[{…}]]) and drops to a raw JSON dump.
jq: >
{ "name": (.voices_echoed | tostring),
"description": "voices echoed so far" }
empty: The first voice hasn't echoed yet.
- name: A drawing is an address
description: >
The computer measures how your line curves, turns, and keeps
rhythm, and boils it down to a twenty-byte fingerprint.
Similar drawings get similar fingerprints — two spirals land
like two houses on the same street, and that closeness is
the whole network.
icon: lucide:map-pin
- name: Your machine asks the room
description: >
To find someone, your machine asks the machines around it:
"has anyone been near this shape?" Your spiral finds my
spiral directly, peer to peer. The whole directory is the
shapes people know, passed along on a napkin.
icon: lucide:users
- name: Voices stay where you left them
description: >
A drawing is a place, and places hold voices. Listen to the
recordings people left at a gesture, leave your own on top,
and when someone stands at the same drawing right now, just
talk — live, machine to machine.
icon: lucide:mic
- name: Sealed by your own hand
description: >
Every recording and every stored stroke carries a signature
from the leaver's own machine — proof that it arrived
intact and that the same hand made the same things. The key
lives only with you: keep it and you're recognized, delete
it and you were never here.
icon: lucide:stamp
- name: Draw and speak, and you're in
description: >
The primitives are the drawn line and the human voice. A
child, an elder, or a newcomer still learning the local
script arrives on the same terms as everyone else — that is
the whole entry requirement.
icon: lucide:hand
- name: Carried by iroh, through varde
description: >
What is left at a place is kept and mirrored by
[varde](https://project.uhhm.no/uhhm/varde), a small
daemon that moves bytes between consenting machines over
[iroh](https://iroh.computer) — verified, rate-limited, and
legible to the network it runs on. Recordings travel that way,
with no company carrying them.
icon: lucide:waypoints
- name: Built in the open at UHHM
description: >
[UHHM](https://uhhm.no) builds and carries the gesture math,
the relay, and the portal this page runs on — and hosts the
network's first node. It is a prototype and an artwork before
it is a product: what you can touch is real and running, the
transport that reaches across the internet is being built
now, and the rough edges are where the interesting questions
live.
icon: lucide:anvil
- name: Follow the build as it lands
description: >
The network as it is being built — and we need collaborators on
every new surface it grows. Desktop releases run free; the iPhone
beta is one tap away below.
features:
- name: Communicate
description: >
A client, a relay, an instrument — if you want to put the
network on a surface it isn't on yet, say so through the
path above and we'll find each other.
icon: lucide:message-circle
- name: Releases
description: Start exploring by running one of our applications.
icon: lucide:package
resource:
source:
kind: gitea_releases
owner: redoal
repo: redoal
public: true
empty: Nothing released yet — the first cut lands here.
# url pinned to null while the repo is private - a private
# release's html_url 404s for anonymous visitors, and the
# card renders an unlinked heading instead (same lesson as
# uhhm/questions 9b7162f).
jq: >
.[] | {name: .name, description: .body, tag: .tag_name,
published: .published_at, url: null}
- name: Test the iPhone app
description: >
The desktop releases above run free, no sign-up. The iPhone
build rides TestFlight (Apple's beta program) — [join the
redoal testers](https://testflight.apple.com/join/eR9dvHkz)
with one tap on your iPhone; no invitation, no email, no
waiting on us.
icon: lucide:smartphone
- name: Hear from us when it matters
- name: Get a note when something lands
description: >
Notes from the build — sent only when there is something worth
saying.
@@ -175,4 +157,3 @@ alternatives:
- name: email
label: Email
type: email
+2 -2
View File
@@ -54,7 +54,7 @@ alternatives:
value: "{key}"
optional: true
- name: Hear from this address
- name: Get a note when a voice lands here
description: >
The fallback for a phone without the app: one note when
something is left at exactly this shape — and nothing about
@@ -81,7 +81,7 @@ alternatives:
type: hidden
value: "{key}"
- name: What just happened
- name: What your drawing became
description: ""
features:
- name: An address, not an upload