Three 7 cm cups sit in the Hap (합 · hợp · 合), a round table where three people meet. Each finger pad lights its element at once. Light then steps inward along a vessel to the centre: jeonghwasu, a bowl of water. Ripples start on each person's side of the bowl. As the three hands come into agreement the ripples meet, and the water fills with one shared colour. Press the sliders, play the demo, and turn the sound on.
The table at the centre of Circulation is called the Hap. 合 is the last of the five transport points (五輸穴), the "sea" point where a channel's flow enters and joins. The character means to join and unite in all three languages: Korean 합 (hap, as in 화합, harmony), Vietnamese hợp (as in hợp tác, to cooperate) and Chinese 合 (hé, as in 合作). Circulation follows the same five stages, from fingertip to centre.
| Stage | 漢字 | Korean | Vietnamese | Chinese | Classical meaning | In Circulation |
|---|---|---|---|---|---|---|
| Well | 井 | 정 jeong | tỉnh | jǐng | where qi emerges | a fingertip on its pad |
| Spring | 滎 | 형 hyeong | huỳnh | yíng | where it trickles | light running down the groove rod |
| Stream | 輸 | 수 su | du | shū | where it pours together | five fingers merge into one vessel at the cup's seat |
| River | 經 | 경 gyeong | kinh | jīng | where it travels | light stepping inward along the vessel |
| Hap | 合 | 합 hap | hợp | hé | where it enters and joins | the bowl at the centre, where three people's light meets in the water |
Together the five are 五輸穴: 오수혈 in Korean, ngũ du huyệt in Vietnamese, wǔshūxué in Chinese (simplified 荥, 输, 经). Readings to confirm with native speakers before publication.
Demo cycles the scenarios every 10 s. Moving a slider stops it.
With sound on, listen for the beating between the three cups slowing down as agreement rises. A ring around a cup is the buzz that person feels when someone else's light reaches the centre. A faint ring on a pad means another person is pressing that finger.
The centre of the Hap is a bowl of water: jeonghwasu (정화수, 井華水), clear well water drawn at dawn and set out in a bowl for the people one cares for. The 井 in its name is the same "well" as the fingertip well point where Circulation begins. The three vessels carry each person's light to the bowl. This is 合, where the three meet.
Each cup has five finger pads, and how a person presses mixes the five element colours into their own colour. Each person has their own light and their own small motor on their side of the bowl. When the three hands press in unalike ways, each light colours its side of the water and each motor starts ripples on that side, so the ripples cross one another. As the hands come into tune, the ripples meet and become one slow ripple from the centre, the water fills with one shared colour, and moving water patterns appear on the ceiling. Participants hold the cups and never touch the water.
Nobody: the centre breathes faintly at 6 breaths per minute.
In development, October 2026. The exact bowl and dish arrangement follows the prototype (Fri 30 Oct). The first idea for the centre, a field of acrylic rods, is kept in the design log at the end of this page.
Each sense has a part you get alone and a part that only exists when two or three people hold at once. Sight, sound, touch and breath all carry the same message: the others are here, and you are moving toward each other.
| Sense | You alone | With the others | Hardware |
|---|---|---|---|
| Sight | Your pads light their element. Your dome shows your blended colour. | Ghost touch: when another person presses their index finger, the index pad on your cup glows faintly, so you see their hand on your own cup. Ripples from each side meet in the bowl.in sim | Already in the pixel count. |
| Sound | Each finger sounds its note from the five-tone scale: Earth C, Metal D, Wood E, Fire G, Water A. These are the classical gong, shang, jue, zhi and yu, which have long been paired with the five elements. | Beating into unison: the three cups play the same notes slightly out of tune, so they beat against each other. As agreement rises the detuning closes and the beating slows to stillness. At the bloom a low drone joins.in sim | Patrick's part. The sim's tones are a placeholder sketch. Patrick's sound design replaces them, driven by the messages below. |
| Touch | The give of the pad under each finger. | Feeling them arrive: a short soft buzz in your cup each time another person's light reaches the centre. You feel the others without looking.in sim, as a ring | One 10 mm coin vibration motor per cup. |
| Breath | Your dome breathes at 6 breaths per minute. | One shared breath: all three domes and the bowl light breathe in the same phase. People tend to fall into it, and squeeze rhythm then becomes part of agreement.in sim | None. |
| Warmth | None. | The cups warm slightly at the bloom, echoing fire cupping. Optional.not in sim | 5 V heating film with a thermal cut-off. I'd leave it out unless there's time. |
One person alone sees their light travel inward and ripple on their own side of the bowl. The ripples only meet when a second hand arrives. This invites strangers to join.in sim
When all three press hardest with the same finger, that element washes the whole table for a few seconds. It's a call people discover together and then repeat on purpose. Try "Still water".in sim
When all three release within about two seconds of each other, the bowl gives one last slow glow and fades. That glow is the session's mark, like the afterglow on each cup.not in sim
Patrick owns the sound. The hub sends everything the sound system needs as OSC on port 9001, next to TouchDesigner on 9000. Any sound engine that reads OSC can use it: Max, Pure Data, SuperCollider or TouchDesigner itself.
| Address | Values | Rate | Meaning |
|---|---|---|---|
| /circulation/cup/<id>/fingers | 5 floats, 0–1 | 30 Hz | Pressure per finger: thumb (Wood), index (Fire), middle (Earth), ring (Metal), little (Water). id is 0, 1 or 2. |
| /circulation/cup/<id>/held | int 0 / 1 | on change | Someone is holding this cup. |
| /circulation/sync | float 0–1 | 30 Hz | Agreement, already smoothed. 0 is apart, about 0.55 is ripples meeting, above 0.85 is in tune. |
| /circulation/bloom | float 0–1 | 30 Hz | How far the three colours have become one in the bowl. |
| /circulation/breath | float 0–1 | 30 Hz | Phase of the shared breath (10 s cycle), so sound can breathe with the light. |
| /circulation/arrive | int cup id | event | A pulse of light from that cup reached the centre. The same moment as the buzz in the other cups. |
| /circulation/flood | string element | event | All three pressed hardest with the same finger. |
| /circulation/release | int 1 | event | All three let go within about 2 s of each other: the closing bloom. |
The interaction rules: what agreement means, when the flood and the closing bloom happen, and the 10 s shared breath. Sound should reinforce these moments, not add new ones.
Tuning and timbre. Whether the five-tone scale stays. One speaker under the bowl or one per cup. Whether the out-of-tune beating idea is kept.
Volume ceiling for a quiet room, and what plays when nobody is holding. The sim uses silence.
The bowl sits on a low base in the 26 cm recess at the centre of the table. Around it are three lights and three small motors, one of each on each person's side, facing that person's vessel. Each light colours its side of the water in that person's colour; each motor starts ripples on that side when the person's light arrives. In tune, the three lights show one colour and the ripples meet in one slow ring. The moving water throws patterns onto the ceiling. Participants hold the cups; nobody touches the water.
| Part | Count | Pixels | Does |
|---|---|---|---|
| Finger pad + groove | 5 × 3 | 15 | Instant, individual. Element colour, brightness follows pressure. Also shows ghost touch. |
| Dome | 3 | 21 (3 × jewel) | The hand's blended colour, breathing in shared phase. |
| Merge node (5 → 1) | 3 | 3 | Five tributaries become one vessel at the cup's seat. |
| Vessel nodes | 3 × 3 | 9 | Light steps inward node by node, about 5 s from cup to bowl. |
| Side lights | 3, one per person | 3+ (TBC) | On the bowl's side, facing that person's vessel. Each lights its side of the water in that person's colour; in tune, all three show one shared colour. Covered in waterproof resin. |
| Bowl and dish | 1 + 1 spare dish | — | White porcelain bowl and clear borosilicate dish. Filled fresh before each session. |
| Vibration motor | 3 | — | 10 mm coin motor in each cup, driven through a small transistor. |
| Rim motors | 3, one per person | — | Small vibration motors on the rim, covered in waterproof resin. When a person's light arrives, the motor on their side sends ripples across the water. In tune, they pulse together and the ripples meet. |
| Speaker + amp | TBC | — | Patrick specifies. Space under the bowl base or one per cup. |
Cups: final cups have five pads. The prototype on Fri 30 Oct has three, for cost and time.
Drawn to scale. The bowl sits low at the centre, well below a seated person's eye line, so the three people see each other and the water at the same time. The light goes up from the water to the ceiling.
Ø 7 cm gives a 22.0 cm circumference, so five pads sit at a 4.4 cm pitch. The thumb-to-little-finger order follows the generating cycle. A clear 3 mm rod in each groove carries the pad's light down to the table.
About 2.2 × 2.6 cm oval, one FSR behind each. One NeoPixel just behind the pad lights both the pad and the top of its groove rod.
3 mm clear acrylic, sanded so it glows along its length. Pad ring printed in opaque black PETG so the five channels don't bleed into each other.
White or translucent print, lit by a 7-LED jewel. Shows the hand's blended colour and breathes at 6 per minute. A coin vibration motor sits under the dome.
The first centre was a field of 31 clear acrylic rods in a 26 cm light box: three rings at Ø22, 14 and 7 cm rising to a core rod, with three strands of light orbiting and fusing as the hands came into agreement. On 28 Oct it was replaced by the bowl of water. The drawings and schedule are kept here as a record.
The light box is a 26 cm drum set into the table, with the lid flush to the tabletop. It has five layers, top to bottom. The rods drop into sockets in the lid, pass through a black baffle, and stop just above their own pixel. The rod colours show a moment of medium agreement: three strands orbiting on the middle ring.
Left: one rod socket at 6× scale, which is where most of the light is won or lost. Right: a half-section through the table edge showing how the drum hangs from below and the vessel enters it.
Every light source is a single addressable pixel, so one ESP32 in the table can drive all of it from one data line.
| Part | Count | Rod | Pixels | Does |
|---|---|---|---|---|
| Finger pad + groove | 5 × 3 | Ø3 mm × cup height | 15 | Instant, individual. Element colour, brightness follows pressure. Also shows ghost touch. |
| Dome | 3 | — | 21 (3 × jewel) | The hand's blended colour, breathing in shared phase. |
| Merge node (5 → 1) | 3 | — | 3 | Five tributaries become one vessel at the cup's seat. |
| Vessel nodes | 3 × 3 | Ø4 → 6 → 8 mm, 6–8 cm segments | 9 | Light steps inward node by node, about 5 s from cup to centre. |
| Outer ring, Ø 22 cm | 14 | Ø4 mm × 8 cm | 14 | Far orbit: three separate strands. |
| Middle ring, Ø 14 cm | 10 | Ø5 mm × 15 cm | 10 | Strands braid as agreement rises. |
| Inner ring, Ø 7 cm | 6 | Ø6 mm × 22 cm | 6 | Tight orbit. |
| Core | 1 | Ø12 mm × 30 cm | 7 (jewel) | The bloom: one fused colour. |
| Vibration motor | 3 | — | — | 10 mm coin motor in each cup, driven through a small transistor. |
| Speaker + amp | TBC | — | — | Patrick specifies. Space is reserved in the service tray, behind a grille in the drum wall. |
| Total | 31 rods | 85 | 5 V 4 A supply with brightness capped in firmware. |