Ayva Software Overview (random stroker, JavaScript framework, remote control, and the future)



I haven’t properly introduced myself to this community yet. I’m Sorites Paradox.

I’m the creator of Ayva Software (https://ayvasoftware.io)—a hobby turned nano-business with an employee count of one :blush:. I specialize in writing software to control open source multi-axis strokers, as well as some commercial ones. This currently includes the OSR2, SR6, SSR1, and The Handy.

I’m most interested in procedural generation and interactive play, and have until recently stayed out of the Funscript world. However, I am working on adding some Funscript features to software I’ve written, and may dip my toe into this space more and more from time to time.

Here’s everything I’ve built so far:

Ayva Stroker Lite

This is by far the most advanced random stroker app out there, and it’s completely free! :heart:.


  • Create, import, and export your own custom multiaxis strokes with variations.
  • Create, import, and export your own custom AyvaScripts*
  • Run any TempestStroke* in Ayva’s library.
  • Change the speed (bpm) of the currently running stroke.
  • Enter Free Play mode where strokes are randomly selected according to user preferences.
  • Set the duration range for random strokes.
  • Smooth transitions between strokes.
  • Set the duration range for transitions.
  • Set the bpm range.
  • Set the bpm to change continuously or only on transitions to the next stroke.
  • Enable default twist movements.
  • Choose what strokes to include in Free Play mode.
  • Set device output limits.
  • Connect to an output via the Web Serial API, Bluetooth LE, or a WebSocket.
  • Emulator to see 3D simulation of movements on screen (with or without hardware device connected).

*AyvaScripts - scripts using a framework I created called Ayva.js (detailed below) that allow the creation of arbitrarily complex routines written in JavaScript.
*TempestStroke - an algorithm created by TempestMAx for generating multi-axis stroke patterns inspired by orbital motion equations. Allows for endless, nuanced stroke patterns across many axes at once.

Additional Screenshots:

Stroke Editor

AyvaScript editor (example shown is an orgasm script :eggplant::sweat_drops:)

App: https://www.ayva-stroker-lite.io/
Guide: https://ayvajs.github.io/ayvajs-docs/tutorial-ayva-stroker-lite.html
Live Stream w/TempestMAx (1h16m): https://www.youtube.com/watch?v=2C_DBSA9Q4Y

Ayva Remote

Ayva Remote is a Web App that allows anyone in the world to control your device.


  • Create private rooms and invite anyone to control device via a private link.
  • Control device via touch screen on mobile, or with a mouse (other forms of control such as an advanced multi-axis joystick are under development!)
  • Anonymous
  • In-app chat
  • Currently control up to two axes at once (Stroke+Twist, Stroke+Roll, Stroke+Pitch)
  • Give and take control instantaneously
  • Connect to device via Web Serial, Bluetooth LE, or WebSocket
  • Minimize and run alongside any other software / web site / app (such as Zoom, cam girl sites, etc)

About: https://remote.ayvasoftware.io/about
Video Guide: https://www.youtube.com/watch?v=3wu5xeMsL_I


Ayva.js is an open source, lightweight, behavior-based JavaScript library for controlling Open Source Multi Axis Stroker Robots (any device that can be controlled with TCode). I use it in all of my software.


  • Perform arbitrarily complex movements across multiple axes using an expressive Motion API.
  • Construct arbitrarily complex behaviors using a generator function based Behavior API.
  • Built-in common motion shapes (cosine, parabolic, linear).
  • Built-in Classic Stroke behavior and orbital motion based behaviors (Tempest Strokes).
  • Run built-in patterns by name (orbit-grind, vortex-tease, swirl-tease, etc).
  • Configurable. Setup an arbitrary number of axes with limits, alias, and type (linear, rotation, or auxiliary).
  • Supports the OSR2+, SR6, or any device that can be controlled with TCode.
  • Agnostic about the nature of the target device(s) (doesn’t care if device is simulated or actual).
  • Supports outputing commands to multiple devices at once.
  • Cross platform with zero dependencies.
  • Runs in a browser, as part of a Node.js app, or theoretically anywhere with a JavaScript runtime.
  • Extensively tested (100% coverage).
  • Thoroughly documented.
  • Quick and easy setup.




OSR Emulator

A simple, open source web-based graphical emulator for the OSR2, SR6, and SSR1. I use this emulator in all of my apps to preview movements. But it’s available as a standalone component anyone can use. TCode can be sent to an instance of the emulator as if it were an actual device, and the movements that would be generated are simulated on a 3D model of a the device:





Ayva WebSocket Hub

This app allows you to stream motion from any of my apps to Virt-a-mate scenes.

OSR Wiki

Your support:

I started Ayva Software because I just fucking love making stuff like this. And all of this is software that I use. Sharing it with others so they also get joy from it is just a huge, validating bonus :blush:. By day I am the Team Lead for a software engineering team at some company, and just work on Ayva Software as a hobby. So I will continue to create and improve software like this no matter what in my spare time, but your support is really motivating! And it helps me cover the costs. This includes but is not limited to the cost of domains, web services, certificates, databases, bandwidth, etc (much of this is currently coming out-of-pocket).

Ayva Software is not a giant corporation. It’s just me. A user like you that enjoys getting stroked in all the ways :blush:.

If you like my work, consider supporting me through Patreon. While I may release patron only software or features from time to time, much of my work will remain free and open source:

THANK YOU and Happy Stroking! :heart:


This looks fantastic, thanks for sharing!


This is really cool. I’m very interested in the websocket app to get the motions in to VAM. I tried it the other day and obviously I couldn’t do it. I look forward to progress in that area.


I’ll release that soon! Hopefully within the next week.



I’m gonna vouch for AYVA Remote, absolute the best fun I’ve had when I found someone to do it.
The slight issue I have with it at the moment is that some ladies don’t exactly trust the link if they don’t know what it is, If it’s not Feelconnect or Lovense, they tend to shy away.
It works incredibly well though, user friendly enough for people to figure out very quick! Hope to use it more!

1 Like

Yay!!! I LOVE hearing about folx enjoying the app! And any feedback in general is super helpful. So thank you!

I’ve noticed that too (some being shy about opening a link).

I hope that as more people use it folx will become familiar with it and it will gain some credibility. In the meantime yeah it can be hit or miss.

That’s one reason for the providers section of the app. These are folx who have experience with and are excited about doing it, so its easier to find someone. There’s only 5 people on there right now but most of them are pretty active and available. I hope to keep adding to it.

If you’re open to it you could share the folx you used it with and maybe I’ll see if they want to be added to the directory too.


I love this app. Congrats on making it! Absoulute stellar work! I didn’t actually know there was such an amazing behavior editor in there. You should make that more prominent. I just played around with it and its so much fun creating your own behaviors. If I end up using it a lot I’mma share my behaviors here.
I’d love to see your VAM integration man. I make VAM scenes (actually just one, it’s called SuperVAMDeepthroat) and currently I wish there was a way to trigger custom SR motions via triggers in VAM. the SerialToy plugins aren’t bad but usually what comes out isn’t a prefered motion and VAM has trouble correctly detecting depth and so on. If I can play & loop custom motions with my VAM animations that would be great.
Anyways, thanks for making this!

1 Like

Thank you!!!

I’ve been thinking about putting together an in-depth video series on Ayva Stroker Lite that will include a lot of stuff about the behavior editor. Soo excited to hear about others actually using it. I had always intended for folx to share behaviors or stroke patterns. I may eventually create a website / online community just for that. It really does feel underutilized. So many possibilities.

For now I’ll probably start sharing some of mine on here too. :blush:


1 Like

Just released my latest newsletter for everything I’m working on:

1 Like

@StyleMavin @StayBlocky

I just released the app that allows streaming Ayva Software into VaM. The guide isn’t complete yet but there’s enough info up that you can probably figure out how to get it working.

Have fun :blush:


I got it working, at least for the L0 axis, but I’m not seeing any other axis movement in VAM.

Here is the error I’m seeing.

!> Exception caught: System.FormatException: Input string was not in the correct format
at System.Int32.Parse (System.String s) [0x00000] in :0
at BusDriver.ValuesSource.AbstractValuesSource.ParseCommands (System.String data) [0x00000] in :0
at BusDriver.ValuesSource.AbstractValuesSource.UpdateValues (System.String data) [0x00000] in :0
at BusDriver.ValuesSource.UdpValuesSource.Update () [0x00000] in :0
at BusDriver.Plugin.FixedUpdate () [0x00000] in :0

I used to get this error. It’s a bug in BusDriver that I fixed a while ago. It should go away if you download the latest version.

That’s weird I thought I had the latest version. I have version three. What’s the latest version?
Update. I have learned how to read, and now I know the answer.

1 Like

Latest newsletter for Ayva Software updates has been posted:

Is it possible to connect Ayva websock hub to device with khrulls firmware?

Yup! That’s one of the reasons I made it :slight_smile:

1 Like

Awesome just got it working!

1 Like

how can I make ayva lite to make continuance twist ,(i guess because hardware limitation the twist need to go all the way clockwise and than invert the twist direction)
can you maybe add this feature as a toggle ? sure gonna subscribe!
(if making it please make it the option available for ssr1 also)

1 Like

you mean literally non-stop? like the twist goes a full 360 degrees in one direction but keeps going all the way around forever without reversing directions?

because if that’s what you are asking I think you’d be correct that there is a hardware limitation for that. i believe you would need a continuous rotation servo, and I’m not sure if there is a firmware that supports actually doing a non-stop twist :confused:, so that might need to be made.