An open API service indexing awesome lists of open source software.

https://github.com/coldbricks/Chloe-Vibes

Converts sound into calibrated haptic force in real time. Deterministic, dual-client, parity-locked.
https://github.com/coldbricks/Chloe-Vibes

android ble bluetooth-low-energy haptic-feedback haptics kotlin lovense nsfw open-source remote-control sex-tech teledildonics vibrator

Last synced: 6 days ago
JSON representation

Converts sound into calibrated haptic force in real time. Deterministic, dual-client, parity-locked.

Awesome Lists containing this project

README

          

# ChloeVibes

### Audio-reactive haptics for **Windows** and **Android**

**System audio → calibrated force** in real time. One signal engine, two clients, parity-locked in CI — not a slider toy bolted onto a BLE chat.

| | |
|--|--|
| **Version** | [**v1.5.1**](https://github.com/coldbricks/Chloe-Vibes/releases/latest) |
| **Clients** | Windows (Rust · egui) · Android (Kotlin · Compose) |
| **Devices** | Lovense BLE · Buttplug / Intiface (desktop) |
| **Sister app** | [**ChloeVR**](https://github.com/coldbricks/ChloeVR) — XR cinema + stage (shares this engine’s beat DNA) |
| **Author** | [Ash Airfoil](https://github.com/coldbricks) |

[![Release](https://img.shields.io/github/v/release/coldbricks/Chloe-Vibes?style=flat-square)](https://github.com/coldbricks/Chloe-Vibes/releases)
[![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](LICENSE)
[![Platform](https://img.shields.io/badge/Windows%20%7C%20Android-haptics-informational?style=flat-square)](https://github.com/coldbricks/Chloe-Vibes/releases)


ChloeVibes wordmark

---

## What it does

```
┌──────────────────────┐ ┌──────────────────────┐
│ WINDOWS │ │ ANDROID │
│ WASAPI loopback │ │ Visualizer / mic │
│ Buttplug · Intiface │ │ Direct Lovense BLE │
│ FIND BOOM tuner │ │ Same engine (port) │
└──────────┬───────────┘ └──────────┬───────────┘
│ │
└──────────┬─────────────────┘
v
fixed signal chain
FFT → gate → beat → ADSR → out
v
device 0…20
```

Play music. ChloeVibes listens to the system mix, finds the punch (kick, hat, pad…), and drives a haptic device with a **musical envelope** — not a raw loudness follower unless you ask for one.

**Default path = Bass Drum boom:** instant peak, long musical decay, near-zero floor. Press **FIND BOOM** once to auto-tune band / gate / trigger / envelope to whatever is playing.

> **Safety.** This commands a physical device on a body. Desktop has a dead-man watchdog, panic-stop, and verified stop-all. Android does not yet have a watchdog. You own the ceiling. Red **Stop all devices** is always the right move.

---

## Screenshots (app UI only)

Docs show the **console UI** only — no device photography, no adult media. The product is adult haptic software; the surfaces below are pro-audio style controls.


Desktop console meters tracking live audio

Desktop console — output level and envelope tracking live system audio (Advanced FFT + ADSR).


Windows desktop console

Windows — transport, gate, spectrum, envelope, presets, device panel.


Android signal chain
    
Android Climax controls

Android — signal chain (left) and optional Climax engine (right).

---

## Install (prebuilt)

1. Open the [**latest release**](https://github.com/coldbricks/Chloe-Vibes/releases/latest)
2. Download:
- **Windows:** `ChloeVibes-windows-x64.exe`
- **Android:** `ChloeVibes-android.apk` (debug, sideload)
3. **Windows:** run the exe. Prefer [Intiface Central](https://intiface.com/central/) on `ws://127.0.0.1:12345`; if nothing is listening, the app starts an embedded Buttplug server.
4. **Android:** sideload the APK, grant mic / nearby devices as prompted (Visualizer needs `RECORD_AUDIO` even for system audio).

Stable rolling links (same binaries as the versioned Latest when kept in sync):

| Platform | URL |
|----------|-----|
| Windows | `https://github.com/coldbricks/Chloe-Vibes/releases/latest/download/ChloeVibes-windows-x64.exe` |
| Android | `https://github.com/coldbricks/Chloe-Vibes/releases/latest/download/ChloeVibes-android.apk` |

---

## Quick start

| Step | What to do |
|------|------------|
| 1 | Connect the device (scan → enable) |
| 2 | Play a track with a clear kick |
| 3 | Press **FIND BOOM** (desktop) or pick **Bass Drum** / a BOOM tempo macro |
| 4 | Raise volume / multiplier only as far as you mean to |
| 5 | **Stop all devices** when done |

Expert knobs (trigger shape, slew, curves) live under **OVERRIDE** — the main surface is presets + FIND BOOM.

---

## What’s new in v1.5.1

| Area | Change |
|------|--------|
| **Prefire that lands** | Strength floor + one-shot latch; Gate→Beat order; 50 ms lead |
| **Motor-honest rests** | Silence-class hard-snap; micro-pauses 90–120 ms; BLE peak-hold bypass |
| **Edge & Deny live** | Climax ON; deep deny true-rest; post-deny punch; dual-motor climax wired |
| **Android dead-man** | 2 s pipeline watchdog + sticky Stop all |
| **Boom catalog** | Deep 90 / Club 125 / Hard 140 honesty + velocity upgrade |

v1.5.0: FIND BOOM · Domi hang · UI declutter · crash hardening.

---

## Signal chain (invariant)

Order never changes on either client:

```
SYSTEM AUDIO
→ Spectral (2048-pt FFT, 8 bands)
→ Gate (hysteresis · optional auto)
→ Beat (onset · tempo · 50 ms pre-fire + confidence decay)
→ ADSR (A/D/S/R · curves · overshoot)
→ Climax (optional · off by default)
→ Output map (0…20 · asymmetric slew)
→ BLE / Buttplug
```

Desktop can switch to **Original Chloe Vibes (RMS)** loudness mode. Android always runs the advanced chain.

Deep dive (parity, protocols, limitations, build): [`docs/TECHNICAL_REFERENCE.md`](docs/TECHNICAL_REFERENCE.md)
Design notes: [`docs/AUTO_LOCK_DESIGN.md`](docs/AUTO_LOCK_DESIGN.md) · [`docs/TEMPORAL_ARCHITECTURE.md`](docs/TEMPORAL_ARCHITECTURE.md)

---

## Device support

| | Windows | Android |
|--|---------|---------|
| Transport | Buttplug 9 → Intiface (or embedded) | Direct Lovense BLE (NUS) |
| Reach | Anything the server exposes | Lovense over BLE |
| Dual-motor | Per actuator index | **Edge / Edge 2 only** (fixture-verified) |

---

## Build from source

```bash
# Desktop
cargo build --release
cargo test
cargo test --test parity

# Android
cd android && ./gradlew assembleDebug testDebugUnitTest
```

| | |
|--|--|
| **Desktop package** | `chloe-vibes` (Cargo) |
| **Android applicationId** | `com.ashairfoil.chloevibes` |
| **Android SDK** | min 26 · target / compile 35 |
| **Version** | 1.5.1 · versionCode 6 |

CI: `fmt` · `clippy -D warnings` · release build · Rust + Kotlin parity golden.

---

## Architecture

```
Windows Android
─────── ───────
eframe / egui console Jetpack Compose UI
WASAPI capture thread Visualizer / mic
src/audio.rs ──────── parity ─→ Kotlin engine port
src/auto_lock.rs (FIND BOOM) (presets mirrored)
Buttplug client BleDeviceManager
```

---

## Releases

| Version | Notes |
|---------|--------|
| **v1.5.1** (local / tryout) | Peak-feel WAVE-002 · prefire · Edge & Deny · Android watchdog |
| **[v1.5.0](https://github.com/coldbricks/Chloe-Vibes/releases/tag/v1.5.0)** | FIND BOOM · Domi hang · UI declutter · crash hardening |
| [v1.4.0](https://github.com/coldbricks/Chloe-Vibes/releases/tag/v1.4.0) | AUTO-LOCK beat lock + punch |
| [v1.3.0](https://github.com/coldbricks/Chloe-Vibes/releases/tag/v1.3.0) | Reliability · safety · first AUTO-LOCK |

Always prefer the [**latest release**](https://github.com/coldbricks/Chloe-Vibes/releases/latest).

---

## Status

Actively developed on real hardware (Domi / Edge). Desktop is the FIND BOOM + safety reference; Android tracks the same engine via parity CI.

---

## Credits

**Ash Airfoil** — product, signal taste, hardware QA
Stack: **Rust** · **egui** · **Buttplug** · **Kotlin Compose** · **Lovense BLE**

---

## Privacy & content

ChloeVibes is a **local control surface**. It does not host media or device catalogs.
You provide the audio and the hardware. Adult-oriented product; repository screenshots are UI-only.