Beta

Feel the video.

Make haptics for a video.
Edit on a Mac. Feel on a phone.

Feel Editor on a Mac. A video, a timeline, and haptic events.

Three steps.

Make haptics for a video in a few minutes.

  1. 1

    Import a video.

    Start Feel Editor. Import a video. Feel Editor keeps a reference to the file. It does not copy the video.

  2. 2

    Pair your phone.

    Put the Mac and the phone on the same network. Open the phone app. Scan the QR code in Feel Editor.

  3. 3

    Edit and feel.

    Edit the timeline. The phone plays the haptics in sync with the video. Then export.

Feel what you edit.

Haptic timeline.

Edit haptic events on a timeline. The timeline aligns with the video.

Live preview.

Connect phones to the Mac. Feel the haptics while the video plays.

Feel on iPhone. A video with a haptic waveform under it.

Suggestions.

The app suggests haptics from the video and audio. Add a pattern from the preset list.

One project. Three apps.

Feel Editor

Edit, analyze, and export haptics.

macOS 14 or later See the source

Feel for iPhone

Plays haptics with Core Haptics.

iOS 17 or later See the source

Feel for Android

Plays haptics with the device vibrator.

Android 8.0 or later See the source

Use it in your app.

Export your haptics. Add them to your own iOS or Android app.
You do not install a library.

FormatFilesPlatformUse
AHAP<project>.ahapiOSPlay the pattern with Core Haptics. No video sync.
JSON<project>.jsoniOS, AndroidOpen the file in Feel for iPhone or Feel for Android.
SwiftFeelHapticVideoSync.swiftiOS 16 or laterSync haptics with AVPlayer.
KotlinFeelHapticVideoSync.ktAndroid 8.0 or laterSync haptics with a Media3 player.
// Add FeelHapticVideoSync.swift and <project>.ahap to your target.
let player = AVPlayer(url: videoURL)
let haptics = try HapticVideoSync(player: player, resource: "<project>")
player.play()

// Keep a strong reference to `haptics` while the video plays.

The haptics follow play, pause, seek, and speed changes.

Private by design.

Encrypted link.

A pre-shared key (TLS-PSK) encrypts the connection between your devices. The QR code contains the pairing code.

Your video stays put.

The apps keep a reference to each video. They do not copy it.

No data collection.

The apps do not collect your data. Feedback is optional and goes out only when you send it. Read the privacy policy.

Requirements.

Feel Editor
macOS 14 or later
Feel Player
macOS 14 or later
Feel for iPhone
iOS 17 or later. Uses Core Haptics.
Feel for Android
Android 8.0 (API 26) or later. Needs a vibration motor.
Tested on
Pixel 6a, a physical iPhone, and many phones at the same time.
Shared code
The Apple apps use one Swift package, FeelCore. It has the models, timebase, presets, export engine, and network protocol.

Questions.

Do I need a Mac?

No. Open the phone app, select a video, and feel the haptics. You need the Mac to edit the haptics.

What do I need for live preview?

Put the Mac and the phone on the same network. Scan the QR code in Feel Editor with the phone app.

Can I connect more than one phone?

Yes. Many phones can connect at the same time. This was tested.

What happens if my export folder has old files?

Export replaces files that have the same name. Export to an empty folder if you must keep the old files.

When does export stop?

Export stops if the project has no events, or if an event has an invalid number. Export shows a warning, and continues, if an event is outside the video, an event has zero intensity, or the project has no video.

Why are the Android haptics weak or off?

The Media vibration setting on the device controls the strength. If it is off, the haptics do not operate. On a Pixel, find it in Settings > Sound & vibration > Vibration & haptics.

Why do the Android haptics stop for a moment?

A system vibration, such as a touch vibration, can stop the haptics for a maximum of 1.5 seconds. The haptics then start again automatically.

Can I build the apps myself?

Yes. The source is on GitHub. Apple apps need macOS 14, Xcode, and XcodeGen. The Android app needs JDK 17 and the Android SDK. See the build guide.

What is the license?

AGPL-3.0-or-later. The names, icons, and bundle IDs belong to 7 Angle. If you fork the project, use different ones.

Free and open source.

AGPL-3.0. The apps do not collect your data.