CanHaptics Lab 3: Communicate something with Haply

Task: create a vocabulary of 3 words and communicate them using only haptic feedback

Goals

Materials

Tools

tl;dr

Summary of our vocabulary, rendering features and user reactions

Sketching words

Word #1: Sticky

Sketch for mode 1
if (s.h_avatar.isTouchingBody(l1)) {
s.h_avatar.setDamping(700);
} else if (s.h_avatar.isTouchingBody(l2)) {
s.h_avatar.setDamping(800);
} else if (s.h_avatar.isTouchingBody(l3)) {
s.h_avatar.setDamping(950);
}
Mode 1: feeling “stickiness” through viscous layers

Word #2: Curvy/bouncy

Initial concept of a bouncy movement (source)
Sketch for mode 2
c1 = new FCircle(10);
c1.setPosition(2, 12);
c1.setSensor(false);
c1.setStatic(true);
Mode 2: “bounciness” with large static circles

Word #3: Bumpy/spaced

Inspiration for recreating a bumpy texture with small, static objects (source)
Sketch for mode 3
for (int x = -10; x < worldWidth + 10; x++) {
b1 = new FCircle(0.5);
b1.setPosition(x, 10);
b1.setFill(0);
b1.setDensity(500);
b1.setSensor(false);
b1.setNoStroke();
b1.setStatic(true);
b1.setName(“mode_3”);
world.add(b1);
}
void removeBodyByName(String bodyName) {
ArrayList<FBody> bodies = world.getBodies();
for (FBody b : bodies) {
try {
if (b.getName().equals(bodyName)) {
world.remove(b);
}
}
catch(NullPointerException e) {
// do nothing
}
}
}
Mode 3: textures with small static objects

Word #4: Sandy/grainy

Sketch for mode 4
Randomly generated pixel intensities, varying from 0–255 (source)
if (s.h_avatar.isTouchingBody(l4)) {
PVector xDiff = (posEE.copy()).sub(posEELast);
posEELast.set(posEE);
// threshold is very low, just to capture movement
if ((xDiff.mag()) < threshold) {
s.h_avatar.setDamping(700);
fEE.x = random(-1, 1);
fEE.y = random(-1, 1);
}
}
In my experience, the use of random forces and damping create the illusion of physically rendering “static” noise
Mode 4: texture rendering with damping and force feedback

Evaluation

The only visual cues present on our interface were instructions on how to switch among the modes and an indicator of the current mode. In the evaluations table, “chipper” corresponds to “wood chipper”

Reflections

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store