buttplug_patterns

Crates.iobuttplug_patterns
lib.rsbuttplug_patterns
version0.2.0
created_at2025-06-11 06:23:14.738627+00
updated_at2026-01-08 19:09:37.361183+00
descriptionA composable library for generating patterns for buttplug devices.
homepage
repositoryhttps://github.com/CockpitCutie/buttplug-patterns
max_upload_size
id1708227
size110,006
Cockpit Cutie (CockpitCutie)

documentation

README

Buttplug Patterns

A composable interface for creating complex vibration patterns for buttplugio devices!

Creating Patterns

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

Running Patterns

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;
Commit count: 52

cargo fmt