70BPMBLE REQUIREDSIMULATOR ACTIVENO SKIN CONTACTHOLDING LAST READINGSIGNAL RESTOREDWARM-UP: 5:00DUAL STIM (-15 BPM)DECAY: -0 BPMLEARNED -0 BPMCEILING140 BPMHOLD TO 140MIC LISTEN
Resting HR:
Climax HR:
WATCHDOG: NO HEART-RATE READING, MOTORS HALTED
💬"Calm and steady. Breathe."
Voice Active
Primary Channel (Strokers / Machines)
Zone: 0-100%0%
Secondary Channel (Prostate / Milker)
0%
CLIMAX LIMIT REACHED: PRIMARY CUT — SECONDARY MILKING ACTIVE
STALL PAUSE: PRIMARY HALTED — CRAWL RESUMES AFTER THE PAUSE
GAME MODE ACTIVE
SOFT LANDING IN PROGRESS: DECELERATING TO 0%
⚡ Stimulation Intensity
100% (Default Balanced)
50% Gentle100% Balanced (Center)150% Intense
Real-time stimulation multiplier. Dial left for lighter tease or right for more aggressive power without changing your HR thresholds.
Edges
0
Pauses
0
Active Mode
Full Length Strokes Only
Locks physical sleeve travel to full bounds regardless of mode
Configuration
Connect to chest straps or watches broadcasting Bluetooth GATT Heart Rate (0x180D).
Current Device
No device paired
Battery: --%
Status: Not connected
Test motor reactions without a physical sensor.
Simulated Heart Rate70 BPM
Enter your Handy Connection Key from handyfeeling.com.
Status: Offline
Stimulation RolePrimary (Tease)
Max Speed Cap:100%
Bounds: 0% - 100%
Protects against sleeve slip-out or base jamming. Strokes scale inside these physical bounds.
Min % (Lower Guard):
Max % (Upper Guard):
Bridge toys via Intiface Central (server started, URL ws:// not wss:// for localhost). OSR2 / SR6 / OSSM: add the serial/T-code device in Intiface first, connect EdgeLoop to ws://localhost:12345, then use Test on each Linear and Rotate axis. Stroke maps to Linear; twist/roll map to Rotate. Assign leftover axes Secondary or OFF. Roles, caps and rotation settings are remembered per toy.
WebSocket URLOffline
Connect to Intiface server to detect your toys.
Drive an OSR2, SR6, OSSM or any other T-Code v0.3 stroker straight over its USB serial port (115200 baud), without Intiface Central. Close Intiface Central, MultiFunPlayer or any other app that holds the COM port first, then press Connect and pick the port in the browser dialog. On Linux your user must be in the dialout group.
Serial portOffline
No device
Connect to list the device axes.
Bounds: 0% - 100%
Protects against sleeve slip-out or base jamming. Linear (L) axes scale inside these physical bounds; STOP rests at the lower guard. Shared with The Handy modal.
Min % (Lower Guard):
Max % (Upper Guard):
L0 (stroke) is Primary by default and follows the stroke zone and the hardware travel envelope; V0 is Secondary; every other axis is OFF until you assign it. Rotation axes swing around centre by the engine speed. Tap Test to see which motor an axis is. Roles, caps and invert are remembered per device name.
Recorded Sessions & Funscripts
No completed sessions recorded yet.
5 Minutes
Restricts strokes to lower half (0%–55%) while soft, expanding as erection builds.
Target Mode
Exact Session Length:
min
Mystery Window:
tomin
Endless Mode:Runs indefinitely until manually stopped
With The Oracle, climax and denial stay locked until the Mystery minimum (or the Fixed length). Endless has no minimum.
Endgame Trigger
What the strokers do once your pulse crosses the pullback percent of Climax HR below. Full Stop parks the primary at 0%; Crawl keeps a 10% micro-motion so the edge stays alive. Force Orgasm overrides both.
% of Climax HR
100% is the Climax HR you typed. 95% pulls back early; 105% lets you sit a little past it. Crawl / Full Stop and the stall timers start at this mark. The edge releases 5 BPM below the lower of Climax HR and this trigger.
Pullback at 140 BPM (100% of 140)
Two timers, only used with Crawl. Allow on the edge is how long pulse may sit at the pullback mark before the primary is cut. Pause the primary is how long that halt lasts (then crawl resumes and the allow window starts again). Turn the guard off to stay on crawl until you recover, Force Orgasm, or STOP. The secondary channel keeps running either way.
Allow on the edge:
sec
Pause the primary:
sec
ALWAYS ON
Stops every motor and pauses the session when no usable pulse has arrived for the timeout. A short gap keeps the last reading instead of dropping to 0. Watches and relay apps often update only every 2-5 s, so keep this at 8 s or more for them.
Signal-loss timeout:
sec
Auto-resume when signal returnsOff: the session stays paused until you press RESUME.
Offsets ceiling down automatically when secondary prostate toys are active.
Ceiling Offset:
BPM
Every X Edges:
Drop Heartrate Max By:
Heartrate Floor:
Shows each cue on the dashboard and speaks it with the browser's local voice.
One phrase per line. As many lines as you want for each event — a random unused line is picked each time. Tokens: {hr}{maxHr}{minHr}{edges}{minutes}.
Encouragement every
sec (0 = off)
Listens for your voice and panting. Stroker and vibrator rumble is filtered out. Raise the noise gate until the meter stays dark with toys running, then speak or pant to confirm it lights.
Live level
Tap Test, then make noise. Toys should stay below the gate.
Noise gate
40
Backup & Restore
Exports every Session Setup value, including your voice-phrase lists. Import restores them. Phrase files can also be exported on their own from the Audio & Mic tab.
Local Bio-Learning Memory
Zero breakthrough events recorded. Calibrated limits active.
Tap Came Early after an accidental climax. EdgeLoop stores that locally and lowers the working climax ceiling on every future session (your typed Climax HR stays as the baseline). Wipe memory to restore the original ceiling.
Share this direct WebRTC link with a single controller. A second controller replaces the first.
1-on-1 Session URL
Controller Status:Waiting for controller...
Share this link with any number of read-only viewers. They see the live telemetry exactly as the controller does, but every control is disabled. Only the 1-on-1 link can control the session.
Viewer Join Link
Connected Viewers0 Watching
No viewers currently connected.
Health & Operational Disclaimer
1. Age Restriction: EdgeLoop is designed exclusively for adults 18 years of age or older.
2. Health Safety: Discontinue use immediately if you experience dizziness or palpitations.
3. Zero Content Hosting: EdgeLoop does not host adult media; it is a telemetry controller.
4. Privacy: Telemetry and keys remain strictly in your browser session.
EdgeLoop reads any sensor that broadcasts the standard Bluetooth Heart Rate service. Then click HR Monitor → Scan & Pair.
Galaxy Watch: install the "Heart for Bluetooth" app on the watch and start its broadcast.
Apple Watch: broadcast with HeartCast or Echo to EdgeLoop on a second device (PC, Mac, tablet). iOS cannot loop back on the same iPhone; in Bluefy on the iPhone, pair a chest strap instead.
Budget GloryFit / Da Fit watches do not broadcast the Heart Rate service and cannot work.
Chest straps
Polar H10, Coospo H6M, Cycplus H2 Pro, Garmin, Wahoo: pair directly; the most stable option.
Wet the electrodes before wearing, or the strap reports nothing or poor contact.
Browsers
Chrome / Edge on Windows, macOS, Android and ChromeOS: works out of the box. iPhone / iPad: use Bluefy.
Linux Chrome: enable chrome://flags/#enable-experimental-web-platform-features and use a native (non-Flatpak / non-Snap) browser, or Bluetooth stays hidden.
Firefox and Safari do not support Web Bluetooth.
Step 1 of 3
Connect a heart rate monitor
Tap HR Monitor and Scan & Pair a BLE strap or watch. Chest straps (Polar H10, etc.) stay more stable than optical sensors. You can also use the built-in HR simulator while testing.
Apple Watch cannot loop back on the same iPhone. Broadcast HeartCast/Echo to EdgeLoop on a PC, Mac, or tablet, or use a chest strap.
Step 2 of 3
Connect your toys
Three ways in: The Handy with its Wi-Fi connection key; Intiface Central at ws://localhost:12345 for vibrators and Bluetooth toys; or TCode Serial for OSR2, SR6 and OSSM strokers straight over USB (Chrome or Edge on a desktop, no Intiface needed). The heart-rate simulator in the HR Monitor modal stands in for a sensor, not for a toy.
In the TCode or Intiface tray, assign each axis Primary, Secondary, or OFF, then tap Test so you know Linear (stroke) and Rotate (twist/roll) are mapped. The Hardware Travel Envelope (Handy or TCode modal) bounds every stroke.
Step 3 of 3
Set your ceiling and start
Enter Resting HR and Climax HR, then open Session Setup for duration, warm-up, and guards. Pick a mode (or a game) and press Start when both HR and a toy are ready.
The engine throttles automatically. If you go over, tap Came Early so local bio-learning lowers the working ceiling next time. Two guards watch the sensor: the signal-loss timeout (3-20 s) pauses the motors when readings stop, and auto-resume picks the session back up when they return.
Age Verification
You must be at least 18 years old to use EdgeLoop.
Opened as a local file — the app cannot start
Chrome blocks the JavaScript modules when you double-click index.html. Serve the folder over http, then open that address:
cd ~/Desktop/EdgeLoop
python3 -m http.server 8787
Then visit http://127.0.0.1:8787 (or use npx wrangler dev).