A haptic feedback SDK for iOS, Android, React Native, and Kotlin Multiplatform. Pulsar provides ready-to-use haptic presets, a pattern composer for custom haptic sequences, and a real-time composer for gesture-driven feedback.
- Presets - Library of built-in haptic patterns (hammer, dogBark, buzz, pulse) and system feedback styles (impacts, notifications, selection)
- Pattern Composer - Define custom haptic patterns using discrete events and continuous amplitude/frequency envelopes
- Realtime Composer - Live amplitude and frequency control for gesture-driven haptics
- Cross-platform - Consistent API across iOS (Swift), Android (Kotlin), React Native (TypeScript), and Kotlin Multiplatform
- Worklet-compatible - All React Native preset functions and hook methods work inside Reanimated worklets
| Platform | Package |
|---|---|
| React Native | |
| iOS | Swift Package |
| Android | Maven Central |
| Kotlin Multiplatform | Maven Central |
| Flutter | pub.dev |
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: 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.
- SDK Overview - Core concepts: types of haptics, preloading, and caching
- iOS SDK - Swift API reference
- Android SDK - Kotlin API reference
- React Native SDK - TypeScript API reference
- Kotlin Multiplatform SDK - Kotlin Multiplatform API reference
- Flutter SDK - Dart API reference
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.
