A haptic feedback SDK for Flutter. Pulsar gives you 150+ ready-to-play presets, a pattern composer for fully custom sequences, and a realtime composer for gesture-driven feedback — all behind a single Dart-friendly API that bridges to native CoreHaptics on iOS and the platform vibrator on Android.
Features
- 150+ built-in presets – Expressive patterns (
hammer,dogBark,heartbeat,fanfare…) plus system feedback (impact, notification, selection) - Pattern Composer – Build custom haptics from discrete events and continuous amplitude/frequency envelopes
- Realtime Composer – Live amplitude and frequency control for sliders, gestures, and continuously evolving feedback
- Adaptive presets – Define iOS and Android variants in one object and let Pulsar pick the right one per platform
- Audio simulation – Optional companion audio so haptics feel right even on devices with weaker vibration motors
- Cross-platform – The same Dart API runs on iOS 13+ and Android API 24+
Quick start
Note: This package is published as
pulsar_haptics, notpulsar. The shorterpulsarname on pub.dev was reserved by an unrelated author before this project was published and is not maintained by Software Mansion. Always depend onpulsar_haptics.
Latest available version: 0.0.3
dependencies:
pulsar_haptics: ^0.0.3
On Android, declare the vibration permission in your AndroidManifest.xml:
<uses-permission android:name="android.permission.VIBRATE" />
Preset example
import 'package:pulsar_haptics/pulsar.dart';
final pulsar = Pulsar();
// Built-in expressive preset
await pulsar.getPresets().hammer();
// System feedback
await pulsar.getPresets().systemImpactMedium();
await pulsar.getPresets().systemNotificationSuccess();
Pattern composer example
Compose a "double tap → swell" haptic that mixes discrete pulses with a smooth continuous envelope:
import 'package:pulsar_haptics/pulsar.dart';
final pulsar = Pulsar();
final composer = pulsar.getPatternComposer();
await composer.playPattern(
PatternData(
discretePattern: const [
DiscretePoint(time: 0, amplitude: 1.0, frequency: 0.6),
DiscretePoint(time: 90, amplitude: 0.8, frequency: 0.6),
],
continuousPattern: const ContinuousPattern(
amplitude: [
ValuePoint(time: 200, value: 0.0),
ValuePoint(time: 350, value: 0.9),
ValuePoint(time: 600, value: 0.0),
],
frequency: [
ValuePoint(time: 200, value: 0.3),
ValuePoint(time: 600, value: 0.9),
],
),
),
);
Realtime composer example
Drive haptic intensity from a Slider for tactile UI feedback:
import 'package:flutter/material.dart';
import 'package:pulsar_haptics/pulsar.dart';
final pulsar = Pulsar();
final realtime = pulsar.getRealtimeComposer();
Slider(
value: intensity,
onChanged: (value) {
setState(() => intensity = value);
realtime.set(value, 0.5); // amplitude, frequency
},
onChangeEnd: (_) => realtime.stop(),
);
Adaptive preset example
Pick the best implementation per platform from one declaration:
final adaptive = AdaptivePreset(
ios: AdaptivePresetCallback(() => pulsar.presets.systemNotificationSuccess()),
android: AdaptivePresetPattern(
PatternData(
discretePattern: const [
DiscretePoint(time: 0, amplitude: 1.0, frequency: 0.5),
DiscretePoint(time: 150, amplitude: 0.6, frequency: 0.4),
],
continuousPattern: const ContinuousPattern(amplitude: [], frequency: []),
),
),
);
final haptics = await pulsar.createAdaptiveHaptics(adaptive);
await haptics.play();
Documentation
Full API reference and guides are available at the documentation site.
- SDK Overview – Core concepts: types of haptics, preloading, and caching
- Flutter SDK – Dart API reference
Try the Pulsar App
Download the Pulsar companion app to feel haptic presets directly on your device:
Community Discord
Join the Software Mansion Community Discord to chat about haptics or other Software Mansion libraries.
License
Pulsar library is licensed under The MIT License.
Pulsar is created by Software Mansion
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 mobile and cross-platform issues. We can help you build your next dream product – Hire us.
Libraries
- pulsar
- Pulsar — rich haptic feedback for Flutter.
- pulsar_haptics
- pulsar_method_channel
- pulsar_platform_interface
- pulsar_types