
Haptic feedback SDK offering ready-to-use presets, system-style impacts, custom pattern composer with discrete events and continuous amplitude/frequency envelopes, plus realtime gesture-driven composer and worklet-friendly API.
A haptic feedback SDK for iOS, Android, React Native, Kotlin Multiplatform, Flutter, and the Web. Pulsar provides ready-to-use haptic presets, a pattern composer for custom haptic sequences, and a real-time composer for gesture-driven feedback.
| Platform | Package |
|---|---|
| React Native | |
| iOS | Swift Package |
| Android | Maven Central |
| Kotlin Multiplatform | Maven Central |
| Flutter | pub.dev |
| Web |
npx expo install react-native-pulsar react-native-workletsimport { Presets, usePatternComposer, useRealtimeComposer } from 'react-native-pulsar';
// Play a preset
Presets.dogBark();
// Play a system haptic
Presets.System.impactMedium();Latest available version: 0.1.1
npm install pulsar-hapticsimport { Presets } from 'pulsar-haptics';
// Play a preset
Presets.tap();Plays through the Web Vibration API, with an audio fallback. Real vibration is unavailable on iOS/iPadOS Safari (Apple does not implement the Web Vibration API) — see the Web SDK docs.
Latest available version: 1.1.4
Add Pulsar as a Swift Package dependency in Xcode, or add it to your Package.swift:
dependencies: [
.package(url: "https://github.com/software-mansion-labs/pulsar-ios", from: "1.1.4")
]import Pulsar
let pulsar = Pulsar()
pulsar.getPresets().hammer()Latest available version: 1.1.2
Add Pulsar as a Gradle dependency:
dependencies {
implementation("com.swmansion:pulsar:1.1.2")
}import com.swmansion.pulsar.Pulsar
val pulsar = Pulsar(context)
pulsar.getPresets().hammer()Latest available version: 0.0.3
Add Pulsar KMP as a Gradle dependency in your shared module (works on Android and iOS targets):
dependencies {
implementation("com.swmansion:pulsar-kmp:0.0.3")
}import com.swmansion.pulsar.kmp.Pulsar
val pulsar = Pulsar.create()
pulsar.getPresets().play("Hammer")Note: Published on pub.dev as
pulsar_haptics, notpulsar. The shorterpulsarname was reserved by an unrelated author before this project was published and is not maintained by Software Mansion.
Latest available version: 0.0.3
Add Pulsar to your pubspec.yaml:
dependencies:
pulsar_haptics: ^0.0.3import 'package:pulsar_haptics/pulsar.dart';
final pulsar = Pulsar();
await pulsar.getPresets().hammer();Full API reference and guides are available at the documentation site.
See CONTRIBUTING.md for development setup and guidelines.
Pulsar library is licensed under The MIT License.
Download the Pulsar companion app to feel haptic presets directly on your device:
Join the Software Mansion Community Discord to chat about haptics or other Software Mansion libraries.
Since 2012 Software Mansion is a software agency with experience in building web and mobile apps. We are Core React Native Contributors and experts in dealing with all kinds of React Native issues. We can help you build your next dream product – Hire us.
A haptic feedback SDK for iOS, Android, React Native, Kotlin Multiplatform, Flutter, and the Web. Pulsar provides ready-to-use haptic presets, a pattern composer for custom haptic sequences, and a real-time composer for gesture-driven feedback.
| Platform | Package |
|---|---|
| React Native | |
| iOS | Swift Package |
| Android | Maven Central |
| Kotlin Multiplatform | Maven Central |
| Flutter | pub.dev |
| Web |
npx expo install react-native-pulsar react-native-workletsimport { Presets, usePatternComposer, useRealtimeComposer } from 'react-native-pulsar';
// Play a preset
Presets.dogBark();
// Play a system haptic
Presets.System.impactMedium();Latest available version: 0.1.1
npm install pulsar-hapticsimport { Presets } from 'pulsar-haptics';
// Play a preset
Presets.tap();Plays through the Web Vibration API, with an audio fallback. Real vibration is unavailable on iOS/iPadOS Safari (Apple does not implement the Web Vibration API) — see the Web SDK docs.
Latest available version: 1.1.4
Add Pulsar as a Swift Package dependency in Xcode, or add it to your Package.swift:
dependencies: [
.package(url: "https://github.com/software-mansion-labs/pulsar-ios", from: "1.1.4")
]import Pulsar
let pulsar = Pulsar()
pulsar.getPresets().hammer()Latest available version: 1.1.2
Add Pulsar as a Gradle dependency:
dependencies {
implementation("com.swmansion:pulsar:1.1.2")
}import com.swmansion.pulsar.Pulsar
val pulsar = Pulsar(context)
pulsar.getPresets().hammer()Latest available version: 0.0.3
Add Pulsar KMP as a Gradle dependency in your shared module (works on Android and iOS targets):
dependencies {
implementation("com.swmansion:pulsar-kmp:0.0.3")
}import com.swmansion.pulsar.kmp.Pulsar
val pulsar = Pulsar.create()
pulsar.getPresets().play("Hammer")Note: Published on pub.dev as
pulsar_haptics, notpulsar. The shorterpulsarname was reserved by an unrelated author before this project was published and is not maintained by Software Mansion.
Latest available version: 0.0.3
Add Pulsar to your pubspec.yaml:
dependencies:
pulsar_haptics: ^0.0.3import 'package:pulsar_haptics/pulsar.dart';
final pulsar = Pulsar();
await pulsar.getPresets().hammer();Full API reference and guides are available at the documentation site.
See CONTRIBUTING.md for development setup and guidelines.
Pulsar library is licensed under The MIT License.
Download the Pulsar companion app to feel haptic presets directly on your device:
Join the Software Mansion Community Discord to chat about haptics or other Software Mansion libraries.
Since 2012 Software Mansion is a software agency with experience in building web and mobile apps. We are Core React Native Contributors and experts in dealing with all kinds of React Native issues. We can help you build your next dream product – Hire us.