Making Feelings Tangible: Notes from a Human Technologies Semester
By Phil Wornath - The Hague University
TL;DR - Four quick prototypes to test how tech can soften hard times: a VR Jacuzzi for instant calm, a wearable smart mask for emotions + distancing, a playful raffle machine for hygienic engagement, and a glowing “MagicFlask” that nudges hydration. Each project explores the same thread: use minimal, accessible tech to create maximum human impact.
Why this class mattered (to me)
Spring 2020 was strange. Between hospital visits, lockdown rules, and remote group work, Human Technologies became a sandbox to ask a simple question with many answers: How do we design small, tangible interactions that change how people feel and behave-without over‑engineering?
The common constraints: lightweight hardware, cross‑platform where possible, short timeframes, and the willingness to pivot when a tool or platform blocked progress.
Challenge 1 - AR/VR
The Immersive Jacuzzi (with benefits)
Insight
A hospital oxygen pump sounded exactly like a jacuzzi. Paired with throwback holiday music, it triggered a vivid, calming memory. That moment reframed my goal: can simple multisensory cues (sound > visuals) reliably induce calm and escape?
Research highlights
- Guest lecture (Mr. Maureira): huge potential for VR in psychological contexts, but AR often wins for broader utility. I went sound‑first to respect how easily visuals can break immersion.
- Everyday longings during lockdown: beach rides, cat cafés, and the Döner shop ritual-they are all immersive interfaces (soundscapes, rhythms, social cues) that we were suddenly missing.
Tinkering path
- Platform detour: Roblox VR supports Vive/Rift-not Cardboard. iOS streaming options (Riftcat/Trinus) were Windows‑only, and VM port bridging (Port 7000) became a time sink.
- Plan B: A‑Frame (WebVR) for zero‑friction, cross‑platform experiments. iOS autoplay audio required tap‑to‑consent-a useful design constraint.
Prototype concept: Tridirectional Quarantine Framework
Sound as the primary driver, visuals as supportive:
- Kebab Corner - spinning rotisserie, oriental soundtrack, occasional “piece to plate”.
- Beach Corner - wave loops + ambient.
- Cat Corner - purring loop.
In Roblox, I solved object physics with Weld + Anchored and added spatial audio tied to objects for a head‑tracked feel.
Demo
- Video: VR Challenge / Phil -
- Playable: Phil’s Paradise (Roblox) - https://www.roblox.com/games/5105605078/Phils-Paradise
What I learned
- Sound carries immersion when visuals are constrained.
- Cardboard‑grade VR works best when interaction = head orientation and positional sound.
- Tool heaviness matters: avoid pipelines that force heavy OS/platform lock‑in under time pressure.
Challenge 2 - Wearables
másemocio: a smart mask for emotions + distance
Problem
Masks hide smiles and flatten the micro‑interactions that make public life humane-especially in service contexts (hotels, hospitality). I explored whether a mask could show emotion and gently enforce distance.
Core idea
- OLED iconography on a mask extension: default 🙂, switch to ⚠️ / ☹️ when someone enters a 1–1.5 m radius (ultrasonic sensor), plus an auditory nudge (piezo).
- Early explorations included EMG (muscle) and conductive stretch sensing to reflect real smiles-banked as future work.
Build
- ESP8266 (NodeMCU) + OLED (SH1106) + HC‑SR04 + piezo.
- OTA updates, simple web server for telemetry (future: smile time, encounters).
- Worn as Velcro add‑on in a tailored fabric sock.
Code fragment (distance → multimodal feedback)
if (distance < 50) { // cm
drawWarningFace();
buzzPattern();
} else {
drawSmile();
}
Result
- Final prototype video:
- Works reliably in motion; small screen was readable but begs for bigger iconography.
What I learned
- Binary emotion (default smile → warning) is good enough to ship. Real facial mirroring is cool, but not necessary for MVP.
- Sound is effective but socially loud. Next: swap piezo for haptic.
- ESP8266 web telemetry opens doors for private, consent‑based contact logs (BLE/IR keys → on‑chain opt‑in) if pursued.
Challenge 4 - Playful Interaction
Jeezlot: a hygienic, contact‑light raffle machine
Context
Local church raffle needed a COVID‑proof, memorable flow-no coin handling, no shared buttons, still fun.
Design principles
- Low friction learning curve, short interactions, variable rewards (slot‑machine research).
- Contact‑light selection for child/teen/adult prize categories.
Interaction flow
- “Coin” event via mic sensor (after calibrating the hidden potentiometer).
- Age selection by hovering LDR zones (auto‑calibrated thresholds for any lighting).
- Trigger with an ultrasonic “magic wand” gesture (theatrical!).
- Reward: 8×32 LED matrix animations + sound; a servo‑driven Jesus arm waves. 🎰
Build
- Arduino R3, mic + 3× LDR, HC‑SR04, servo, MAX7219 LED matrix (MD_Parola), piezo.
- Enclosure: banana box (ALDI), because prototypes should be playful.
Demos & repo
What I learned
- Auto‑adapting LDR thresholds (per lighting) remove staff headaches.
- Non‑blocking patterns (millis/NeoPatterns) keep the machine responsive.
- Physical theater (servo arm) turns a tool into a story.
Challenge 3 - Artificial Creature
MagicFlask: a glowing companion that nudges hydration
Problem
During deep work I forget to drink water. In winter a teapot + candle solved it (always visible, always warm). I wanted a year‑round, ambient, creature‑like presence that gently cues sips.
Concept
A flask sits on a RGB LED ring (Echo‑style glow). It runs a Pomodoro loop, idles as ambient light, and communicates mood through color and motion. Touch the aluminum ring to switch modes.
Sensing attempts (what stuck and what didn’t)
- Ultrasonic level from the top: unreliable (measures bottle, not water).
- Humidity near the lid: not meaningful for level-but great idea for aerosol detection in mask project.
- Fine scale under the flask: precise, but beyond MVP; parked for V2.
- Capacitive touch: ESP32 touch pins → aluminum ring = robust mode switch.
System
- ESP32 + WS2812‑type LED ring; non‑blocking patterns for smooth animation.
- Optional Processing UI over serial for status mirroring.
Demo & code
What I learned
- Ambient light is a powerful behavior cue-people refilled without explicit level readout.
- Touch affordances on everyday objects feel delightfully magical when invisible.
What I’d do differently next time
- Pick the lightest viable toolchain first. Heavy engines (Unreal) ate disk and time; web‑first and microcontrollers shipped faster.
- Design for consented simplicity. Start with the smallest signal that moves behavior (sound, icon, color). Layer complexity later.
- Instrument for learning. ESP telemetry (local web endpoints) gives real feedback loops without cloud dependencies.
- Plan time for platform “gotchas.” iOS audio policies, VR streaming over VMs, and Roblox VR support all shaped scope-budget that up front.
Toolkit & parts (recurring)
- MCUs: ESP8266 (NodeMCU), ESP32, Arduino R3
- I/O: HC‑SR04, LDRs, mic sensor (w/ trim pot), piezo, servo, OLED (SH1106), WS2812 ring, MAX7219 matrix
- Libs: MD_Parola/MAX72xx, NeoPatterns / millis patterns, SH1106Wire, ArduinoOTA
- Visual: A‑Frame (WebVR), Roblox Studio + Lua scripts
Watch/Play
- Playlist (all projects):
- VR Jacuzzi video:
- Smart Mask video:
- Jeezlot video:
- MagicFlask video:
Acknowledgments
Thanks to classmates, guest lecturers (esp. Mr. Maureira), family & friends who test‑piloted, and the patient staff in the hospital ward who accidentally provided the original jacuzzi soundscape.
One line takeaway: When tools get lighter, feelings become the interface-and tiny prototypes can move real behavior.
I pulled your notes into a clean, publish-ready project article with sections for each challenge, build details, links, and “what I learned” takeaways. Want me to tailor it for Medium (with a punchier intro and preview image) or for your portfolio site (shorter module cards + case-study CTA)?