| Crates.io | buttplug_patterns |
| lib.rs | buttplug_patterns |
| version | 0.2.0 |
| created_at | 2025-06-11 06:23:14.738627+00 |
| updated_at | 2026-01-08 19:09:37.361183+00 |
| description | A composable library for generating patterns for buttplug devices. |
| homepage | |
| repository | https://github.com/CockpitCutie/buttplug-patterns |
| max_upload_size | |
| id | 1708227 |
| size | 110,006 |
A composable interface for creating complex vibration patterns for buttplugio devices!
Patterns are created using a builder pattern, there are several primitives and methods to transform them to create complex patterns.
use buttplug_patterns::shapes::{SineWave, Pause};
let my_pattern = SineWave::new(1.0, Duration::from_secs_f64(1.0)) // Sine wave from 0.0 to 1.0 over 1 second
.repeat(2.0) // repeat the sine wave for 2 cycles
.chain(Pause::new(Duration::from_secs_f64(1.0))) // pause for 1 second
.forever() // repeat forever
Patterns can be run using the Driver struct, which will actuate the pattern on connected devices.
use buttplug::{client::ButtplugClient, core::connector::new_json_ws_client_connector};
use buttplug_patterns::{Driver, SineWave};
let connector = new_json_ws_client_connector("ws://localhost:12345");
let bp = ButtplugClient::new("pattern test");
bp.connect(connector).await.unwrap();
Driver::new(bp, SineWave::new(1.0, Duration::from_secs_f64(1.0)).forever()).run().await;