I am working on a prototype device that has multiple independent linear stroke elements, of different (fixed) lengths. The relative order of the elements is fixed. Each element could potentially be independently twisted. There will also be other features of the device that depend on the type of contact taking place: hand, mouth etc.
FunGen (AI, see forum post here on EroScripts) can be used to generate the detailed data needed by this device according to one of its programmers.
Unfortunately, these features arenât handled by the current Funscript or TCode specification and I want to propose changes to enable them while maintaining backwards compatibility.
Hoping for input from other builders and TCode player programmers.
*** Funscripts
Funscripts currently describe what a toy should do. I would like to tweak them to describe what the contact surfaces currently are (as seen by the AI model).
The filename format would become: vidname[.contacttype].[motiontype].funscript
contacttype = h, m, or v, defaults to v
motiontype = pitch, twist etc, defaults to linear âforwardsâ motion
Some combinations of contacttype and motiontype are nonsensical, obviously.
Within the funscript file, we currently have entries like {âposâ:41,âatâ:1567445}. For files with contact type âhâ or âmâ (hand, mouth), I propose to add an extra attribute âlenâ, which, using the same units as âposâ would describe the length of the contact taking place, not just its starting point. Length would default to the range maximum when not specified.
*** TCode
TCode currently also only has support for one element on each channel/axis pair and no contact length.
I propose adding extra channels M,N,O,P,Q for linear motion and S,T,U,V,W for rotational motion. A channel index might be better for future expansion, but would make the current command format cumbersome and 6 channels for each motion type seems like enough for the foreseeable future.
Also needed would be a format for device capabilities to be queried, namely: a set of stroke elements with each detailing:
- its length, defaulting to full-length
- an order number if fixed, smaller numbers being closest to user
- available rotational angle
*** TCode Players
The player software would on startup query the device for itâs capabilities. The player would then deploy the device stroker elements to best mimic the contact surfaces described by the funscript files.
This leaves space for some âartistic interpretationâ by the player. For instance, for a device with elements of length 3, 1 and 5, if the funscript describes a base hand-hold (hand contact) and blowjob (long mouth contact), the player would use the first element for the hand, the second for the lips, leave a space, then the final element to simulate the throat.