BondageDating

SBBJ Version Two Release

Updated on May 21, 2014, with the first release. I probably should have started a new topic, but... oh well. I am excited to share the next major update…

member_7cae14b0c0 14 Sept 2026 #1

[ Updated on May 21, 2014, with the first release. I probably should have started a new topic, but… oh well.] I am excited to share the next major update of… you guessed it… SBBJ v2 (Self Bondage Blowjob Trainer) This is a complete rewrite of SBBJ v1, which you can find here… A full description of what this application does can also be found in that topic. So what’s new?

  • Still written in C++, now using Qt-5.x libraries.
  • A webcam is still required. Do NOT try to use an IP camera with this - dropped connections can leave you in a real bind, literally. Don’t do it.
  • Entire architecture changed to a more modular structure to allow flexibility for adding new features.
  • Multi-thread processing of camera input and multi-thread audio output
  • User requested items: change image capture directory, adjust audio output volume, secondary audio output device (still needs to be tied to ‘punishment’ option), allow UI image over-rides by user.
  • Fancy splash screen and credits box. Ooooh! Aaaah!
  • And probably a lot more I have forgotten about. Whats missing?
  • Head play options. Disabled for now pending re-test
  • Punishment app. not implemented yet. I’ve run out of time for now.
  • Punishment trigger to serial port (eStim/arduino) devices envisioned, but not in there.
  • Audio not retested for custom sequential / random output from folders named for required audio tags. Download links follow. The password for all packages is ‘the community’. Please DO NOT remove the password from the packages, it is there to prevent young and casual users from being exposed to adult content should they find a copy somewhere. Please DO NOT distribute this software anywhere else; it should only be retrievable from the links provided. Feel free to link to this topic from elsewhere if you desire.

Mac OS X package: sbbj-2.29.dmg (21.0 MB) Compiled on Mac OS v10.9.2 (Mavericks). May work on earlier versions.


Ubuntu v13.10 (x86_64): download Install: libopencv_2.b (1.3MB) and sbbj_2.b (9.1MB) Install/run with: Code: Select all

sudo dpkg -i libopencv_2.b sbbj_2.b
sudo apt-get install -f
sbbj

Ubuntu v12.04 (x86_64): download Install: sbbj_2.b (9.1MB), qtlibs5_5.b (18.2 MB) Install/run with: Code: Select all

sudo dpkg -i qtlibs5_5.b sbbj_2.b
sudo apt-get install -f
sbbj

Windows 7 (x86): Updated for v2.52: Download & install. Nothing fancy here. THESE ARE THE LATEST WINDOWS VERSIONS as of 2021: BlowjobTrainer-2.55-ming32-1.exe libQt-5.10.0-mingw53_32.exe OpenCV-2.4.10-mingw53_32.exe Been along time gone, but hey - still alive! And as of 08/17/21 still still alive!


For any issues, report them here with a screenshot. I would also need to know what operating system, architecture, version, etc… (Win 7, 64bit, SP1 for example) If anyone would care to provide translation services for this software, please PM me, and I will instruct you on how to. Enjoy!

member_7cae14b0c0 14 Sept 2026 #2

New version for Windows, v2.31. Nothing major has changed from the previous 2.29 release: - Fix for held deep throat rewards - Split installer into 3 parts: sbbj, qt libraries, opencv libraries - Compiled with Ming32 rather than Microsoft compilers. (Uses OpenGL instead of DirectX as well) - License changes. Downloads are: NOW ALL BROKEN. LATEST VERSIONS IN PREVIOUS POST. - BlowjobTrainer-2.31-ming32-2.exe - libQt-5.4.1-ming32-1.exe - OpenCV-2410-ming32-1.exe ALL 3 packages must be installed. ALL OLDER VERSIONS MUST BE UNINSTALLED. The libraries from older packages are incompatible with these ones. ---------------------------------------------------------------------------------------------------------------------------------- New version 2.50 for Mac. This is exactly the same as v2.29 onwards, just recompiled for Mac, with newer Qt/OpenCV libraries, in the hopes it will fix some odd crashing issues (hi subslut26). - sbbj-2.50.dmg .

member_7cae14b0c0 14 Sept 2026 #3

As I mentioned on page 9 of this thread, I am releasing the source code for this project for anyone who would like to have it. Here it is, for v2.50: bjt-v2.50-eff957fef9af2e5e178de87bca34ce0ec86fa227.zip. Please note that this is just v2.31, with a version bump coinciding with the code base moving to a git repository. I have also created a private git repository on If anyone wishes to collaborate on the code, they can make an account there, and PM me with those details and I can give access. As I mentioned on that page 9 post, I have further developed what was to be v3.0 of the software, but it is basically in pieces at the moment, passes unit testing, but not whole project compilation. I will attempt to integrate what I have as branches in the git repo, so the work can continue. ================================================================================= = END OF RESERVED POSTS =================================================================================

member_7cae14b0c0 14 Sept 2026 #4

The prior version of sbbj allowed a single run of a 'Tease' application, as well as an audio 'Tease' file being played on a failed suck. I am trying to come up with an effective design to allow use of all your favorite toys with this application. To do so, I need to gather some more information on what sort of controllers you have for these devices, and how they are activated. I believe that the simplest solution now would be to implement an 'event' driven system of running external applications. This would allow the user to select any 'event', and run another application when it is encountered. (A list of events can be found in another post here). This would be configured with a 'timeOut' value, and/or a finishing 'event' which would terminate the application. This would allow any number of 3rd party applications to be triggered from this software. Examples: Code: Select all ``` skSuck event encountered: run application: "./myApp 1 400 foo" - which does something... ``` Code: Select all ``` skFail encountered: run "punishApp arg1 arg2...". Time-out for 60 seconds, or event 'skPass', possibly with a 'depth' specification. - this app. would activate your estim / arduino controller / whatever when you fail. The app. would run for max. of 60 seconds or until a suck is completed successfully. ``` This would allow others to develop whatever software they need for their devices, and a wide range of configuration options. Comments?

member_03d31c19ef 15 Sept 2026 #5

Currently I am using an Arduino and connect to it via a little commandline programm called arduino-serial. Not fast, but it does its job well Code: Select all ``` ./arduino-serial -b 9600 -q -p /dev/tty.usbmodemfa2411 -s "1" // switch on vibrator for 60 seconds ./arduino-serial -b 9600 -q -p /dev/tty.usbmodemfa2411 -s "2" // switch on estim for 5 seconds ``` And the corresponding Arduino Code Code: Select all ``` /* Serial Connection to Arduino */ int inByte = 0; // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); establishContact(); pinMode(11, OUTPUT); pinMode(12, OUTPUT); } // the loop routine runs over and over again forever: void loop() { if (Serial.available() > 0) { inByte = Serial.read(); if (inByte == '1') { digitalWrite(11, HIGH ); // Turn Vibrator on delay(60000); // for 60 seconds digitalWrite(11, LOW); // then turns Vibrator off } else if (inByte == '2') { digitalWrite(12, HIGH ); // Turn Tens on delay(5000); // for 5 seconds digitalWrite(12, LOW); // then turns Tens off } else { // Turn everything else on and off } } } void establishContact() { while (Serial.available() <= 0) { Serial.println("no connection"); // send an initial string delay(100); } } ``` But I am open for every better Idea:wink:

member_7cae14b0c0 15 Sept 2026 #6

I just read a quick howto here which suggests that it would not be too difficult to code up a GUI to control an arduino board. The example only shows how to light up an LED, but it seems fairly straight-forward. I can likely code up a controller, with a UI to embed in SBBJ, but unfortunately, I do not have an Arduino nor a toy to test, which I have been meaning to get to..... So this is a possibility for the wishlist later on. Would you recommend a specific Arduino make/model? I will wait and see what other responses I get here, but I think the generic solution of running external applications that I proposed would be better for overall compatibility. I can likely have that implemented in about 6 hours of coding time.

member_3175fd85f9 15 Sept 2026 #7

(repost from another thread to keep things orderly) > member_3175fd85f9 wrote:Or in other words, taking the BJ trainer as an example, the Dom could set up a session-file, mail it to the sub. > He/she then goes through the scenario, and the program subsequently produces a report-file (encrypted of course) stating time taken, failed sucks etc. > This gets mailed back to the the Dom for verification. > Nice. I like it. > A lot, actually.:mrgreen: > Not a programmer myself, but I shouldn't think it would be too hard to do. > The values are already being set in the program, it's merely a matter of exporting them to a text-file and then encrypting them. > It doesn't have to be NSA-level encryption, a simple checksum based on a password should suffice. > member_7cae14b0c0 wrote:It is possible to put this in SBBJ v2. You would need to further refine your needs for this, and post it as a feature request in that topic. Based on what you describe, I would envision the following requirements: > - Dom would need to have a copy of SBBJ v2 installed to generate the config. file. > - app. may require the ability to obfuscate config file in some manner so the Sub cannot see what is going to be required. > - app. must be able to load the config on demand, preferably after Sub has been tied. > - app. could modify requirements based on if Sub. started at the required time, or based on how late the session was started. > - app. would need to generate some result set (report), possibly with captured images/video from the session > - app. would need to obfuscate the resulting report for submission to Dom, or do so automatically, via configured email / upload / 3rd party application. > Does that sum it up? That is alot of new features. Newer features are added by popular demand, so if you would like this, I suggest quoting this message in the topic mentioned above to see what interest is generated. I agree, it is a lot of features, but it doesn't have to be all of them at once. Bearing in mind that I'm not a programmer and thus could be talking out of my ass, I'd suggest starting with a proof of concept and simply(?) making SBBJ capable of loading a previously created 'script'. Which would require two modules; one capable of exporting the SBBJ settings into e.g. a ASCII or csv file, and a parser capable of converting the file back into SBBJ settings. If there's sufficient interest, the next step would be the reporting function. Again, it doesn't have to be fully featured from the start; it could be something as simple as a pass/fail grade. Once that is up and running, stuff can be added as and when required. Since the numbers are already being tracked by the program I would assume exporting them is possible. But again, what the hell do I know?:) The encryption and mailing parts, while nice, aren't strictly necessary. Script loading and exports would be sufficient to use it as long as the users are willing to use an honour system. Cheerfully

member_594860848d 15 Sept 2026 #8

is it possible to directly send a string to a port instead to run an external application? I don't know actually if it is difficult; I can anyway build specific applications to send the string, and them run the applications, but I think many of us are using something controlled by RS232... Luana

member_7cae14b0c0 15 Sept 2026 #9

> member_594860848d wrote:is it possible to directly send a string to a port instead to run an external application? I don't know actually if it is difficult; I can anyway build specific applications to send the string, and them run the applications, but I think many of us are using something controlled by RS232... > Luana RS232 is just the technical name for the Serial port on the computer, generally a 25 or 9 pin port. Devices are being controlled via the application you create, which then sends information through the serial port. Are you claiming that the information being sent to the serial port is simple ASCII text? If this is the case, then yes, I can probably do this; but as I have no device, it will be difficult to test. I will look into this in the next few weeks, and let you know how easy it will be.

member_594860848d 15 Sept 2026 #10

perhaps I'm not so able to explain my ideas in English; but I know very well serial ports, and I work everyday with something serial from 100kbps up to many Gbps... so my toy controllers are something similar to Arduino (not Arduino; I have something that just for me is cheaper and simpler, even if it is more complex) and the easiest way to interface something with a PC is serial port. So it would be great if I can put somewhere some ASCII or hex string (like the common "0xnumber") related to each event (and one global related to speed, parity etc). I think that other people also could use this system; since each microcontroller or electronic device can use a serial port...

member_7cae14b0c0 15 Sept 2026 #11

@luanachiantelle, I'll see what I can do. What serial port settings do you use? Baud / stop bits, ... and all that?

member_594860848d 15 Sept 2026 #12

normally: data 8bits baud rate = variable stop bits 1 parity none no flow control; CTS etc

member_7cae14b0c0 15 Sept 2026 #13

@luanachiantelle, I have built a test app to configure the serial port and output a simple ASCII string. If it works, I can integrate this into the sbbj application. The only catch is that I need to include all the necessary QT libraries with it. So... What OS are you running? I'll package up the Qt5.2 libs along with a test app for you to try out on your device. .

member_594860848d 15 Sept 2026 #14

I usually run sbbj on Windows 7. I think I'll have some time to test it in the next few days, if you'd like me to. Best regards, Luana

member_7cae14b0c0 15 Sept 2026 #15

@luanachiantelle Give this a go: serialDevice-1.0_FULL.exe 16.2 MB Input your serial port settings and pick an ASCII string to send to the device. The goal is to check if your device responds correctly. If it does, I can add this feature into any of my apps.

member_03d31c19ef 15 Sept 2026 #16

Hi kevlar, Yes, I successfully connected to my Arduino UNO. The settings were: Device: COM3 9600 Baud 8 Data Bits Parity None 1 Stop Bit No Flow control. The string sent was: 1 (see the Arduino UNO code example above) tekoma

member_7cae14b0c0 15 Sept 2026 #17

If it works, then it can be used in sbbj. The next question is how exactly should we use it? - Simplest usage: a single 'serialDevice' object that sends a user-defined string when an sbbjEvent occurs. You just allow any user-defined string for any event. These are 'single responses'. - Multiple responses to events, like sending more start/stop strings with some time interval between them? - Variable responses? For example: A fail event sends a specific string to the Arduino device. Each subsequent 'fail' sends the same type of event but changes an argument (like increasing intensity). Another example: configure it so that 5 fail events must occur before sending a string to the Arduino. - Paired responses? Example: A failure during deep throat sends a string to start the Arduino, which runs continuously until a successful deep throat occurs. (Add variable response here too to increase intensity with more fails). After the successful DT (the end of the pair), another string is sent to stop the Arduino.