Category: 3d printing

Molding the Basic Node for the Internet of Sex Toys – part 2

In this series of posts we describe how-to make a vibrating sex toy which is part of the Internet of Things.

part 1: Basic Node for the Internet of Sex Toys

part 2: Molding the Basic Node

part 3: Software for the Basic Node

In part 2 we describe how-to make a mold form for the basic node. We need three forms:

  • the mold form which consists of two parts
  • the inlay which protects the electronics of the basic node
  • a “hanging” for the inlay




We used Tinkercad to construct the parts. The molding form is based on Tinkercad’s banana form. You can edit and share them from your browser:





Print out all forms. The STL files are available at Thingiverse. You might want to use XTC or similar for smoothing the inner part of the mold form.

Assembling the Inlay

We use the inlay to protect the electronics.

Simply put the electronics inside so that the upper body of the switch is on the same level as the upper inlay. We use hot glue to fix the basic node.

Then fix the receiver coil of the wireless charging module on top of the inlay. The next step is to fix the hanging at the inlay.

Now fix the LiPo battery on the bottom side of the inlay using hot glue or similar. Fix the wires. Finally you might fix the wires of the vibration motor next to the middle of the LiPo battery.

Use tinkering wire to fix both parts of the molding form.

Put the inlay in the form. Fix the hanging with a tape or similar. The motors shouldn’t touch the inner part of the form.

Now prepare the silicone. We use Shore A 45 silicone (approx. 250 ml) from It is hard but still a bit flexible. You may add color, too. You have about 10 minutes to stir the silicone and poor it in the form.

After some hours you can remove the form. As you can see there is overhang which make removing the form very hard. The form could break when removing. Better preparation of the form (eg rasping) could improve the results.

If the blue LED of the Wemos board is still active you were successful.

Now you need a charging station. The construction is shown here. It is also possible to connect the sender (or transmitter) module with a 5V power source (eg. from the USB port). Just put the bottom of the molded basic node on the sender coil.


In the next part we introduce an updated version of the software including over the air update and WiFi management.

More Sex Tech Projects

fellatio_dildo_for_women_w_vacuum_feedbackThere are at least a few (new) open source or DIY projects. Future of Sex reported about a Strap-on project named Dildo It Yourself.

They created a website for sharing designs for strap-on dildos. In addition the strap-on dildos is part of a harness. Some parts can be 3d printed but the harness must be made by leather or other material which could be out of scope for most DIY people. The inventors say that their toys are made for ecosexuals which practise sex in nature.

insertableAnother project is very impressive as it offers a touch surface for a “insertible toy” eg a penis. This could be used for teledildonics application for capturing and transmitting haptical experience. The construction of the capacitive surface is very impressive. In addition algorithms are introduced for gesture recognition. Gestures? The author explains: “Well, I want to be able to tell what the user is doing with the device (e.g. blowjob, licking, hand job and penetrative buttsex)”.

Another exciting project is a masturbator demonstrator which was molded using 3d printed forms.


gesturecontrolFinally there is a very interesting website from the “mad scientist” Franklin. He has made a lot of stuff like a gesture controlled vibrator, a brain controlled vibrator and a Bionic cock.

For commercialisation a Company Tacit pleasure was found. That was back in 2014, but the work is still interesting.

Although these projects are very different in aspects like audience, technical elaborateness and motivation they show the richness of sex tech projects.

OpenSCAD as silicone molding form generator

scadmoldform1tryballs_revisited_3_finalAn alternative to 3d-printed sex toys are silicone toys. For making such a sex toy you need a molding form, where you pour in the silicone. If you use Tinkercad to build the form for the balls motive, you may need more than one hour. If you are not experienced in 3d constrcution it may take days. That’s ok and can be fun as you can realize your fantasies step by step.



molded-with-ueberh-querBut if you want to change a detail or want to resize some parts of it, it will take a long time as you have to unbuilt parts of the form, make changes and then reassemble. Sometimes building from scratch is faster.

In the last blog post we have introduced OpenSCAD to construct a sex toy form. Now we want to build a hull for the sex toy for overmolding.

The basic idea is very simple:

  • Generate two forms. The smaller one has the size of the sex toy you want to make. The larger one will be the form where you pour in the silicone.
  • Than use the OpenSCAD difference command which “subtracts” or cuts out the smaller form from the larger form.

But it is more complicated:

  • You have to include a frame otherwise the form would fall over.
  • You need two forms (A and b) so you could open the form after molding.
  • Both forms must be fastened together when molding. Therefore you need holes for tinkering wire.

bi-round-12-scadWe have created a solution for molding form generation which is as flexible as our OpenSCAD sex toy generator. In addition you can change the thickness of the frame. Therefore you have to change the variable frame_thickness.

The SCAD script uses the module base which is already introduced. The generation of the frame is done in the module frame. The frame consists of a base plate and two supporting frames which stabilize the whole form. In addition there are extensions to the frame in the upper part of the form. These extensions will provide holes for fastening both forms.

The module complete_form constructs the form which is tricky. The union command is used to join the complete outer form and the frame. Now we have a filled form and have to remove the inner part. This is done by subtracting another complete form which is a bit smaller than the outer form. This is done with the difference command.

Another module hole provides all holes for the tinkering wire. At last we construct part A and part B of the molding form. Again the difference command is used to cut out one half of the form. This is done by subtracting a cube which is placed in the middle of the complete form. In addition the holes must be subtracted from the complete form.

You can build in the body interaction vibrator development board to make a vibrating dildo, controlled by motion or by another body interaction vibrator development board. Read more here.

Try out with the Thingiverse customizer.

Download the zipped SCAD file here: bi1-round12

Or copy and paste the source code to the SCAD software:

// bodyinteraction toy form and mold form generator
// radius of bottom part
r_bottom=25; // [15:5:80] 
// height of bottom part
h_bottom=30; // [10:5:80] 
// top rounding of bottom part
rounding=10; // [10:5:20]
// radius of ball 1 
r_ball1=21; // [15:5:50] 
// radius of ball 2
r_ball2=15; // [15:5:50] 
//radius of ball 3 
r_ball3=11; // [15:5:50] 
// radius of connecting cylinders
connector_radius=8; // [10:2:20]
// distance between balls and bottom part
ball_distance=15; // [10:2:40]
// offset (thickness of hull)
// thickness of frame

height=h_bottom+3*ball_distance+r_ball1*2+r_ball2*2+r_ball3*2; echo(height);

// form part A
difference() {
//form part B
difference() {

module holes (height,h_bottom){
for (i=[h_bottom+30:10:height])

for (i=[0:10:h_bottom+20])

for (i=[h_bottom+30:10:height])
for (i=[0:10:h_bottom+20])

module complete_form (r_bottom,h_bottom,rounding,r_ball1,r_ball2,r_ball3,connector_radius,ball_distance,o,frame_thickness,height) {
 difference() {
 union() {
 //complete frame

module frame(width,o,height,frame_thickness,r_bottom,h_bottom,rounding) {
 translate([-width/2,-width/2-2*o,height]) cube(size=[width,width+2*o,frame_thickness]);
 translate([-width/2,-frame_thickness/2,0]) cube(size=[width,frame_thickness,height]);
 //frame 1 extensions
 translate([-width/2-010,-frame_thickness/2,-5]) color("blue")cube(size=[12,frame_thickness,60]);
 translate([-width/2-10,-frame_thickness/2,55]) color("red")rotate([0,45,0]) cube(size=[12,frame_thickness,20]);
 translate([+width/2-2,-frame_thickness/2,-5]) color("green")cube(size=[12,frame_thickness,60]);
 translate([+width/2+01,-frame_thickness/2,47]) color("green")rotate([0,-45,0]) cube(size=[12,frame_thickness,20]);
 translate([-frame_thickness/2,-width/2,0]) cube(size=[frame_thickness,width, ,
 // stabilize bottom with cylinder
 cylinder(h=r_bottom*2-rounding*.5, r1= r_bottom-rounding, r2=0);


module base (r_bottom,height,rounding,connector_radius,ball_distance, c1,c2,c3) {
 union () {
 // connector
 color("DarkSlateBlue") cylinder (h=height-0,r=r_bottom-rounding,$fn=60);
 color("MediumSlateBlue")cylinder (h=height-rounding,r=r_bottom,$fn=60);
 translate([0,0,height-rounding]) color("SlateBlue") rotate_extrude() 
 translate([r_bottom-rounding,0,0]) circle(r=rounding,$fn=120);
 // circle (ball) 1, 2 and 3
 translate([0,0,height+ball_distance+c1]) color("Indigo")sphere(r=c1,center=true,$fn=60);
 translate([0,0,height+2*ball_distance+2*c1+c2]) color("Violet")sphere(r=c2,center=true,$fn=60);
 translate([0,0,height+3*ball_distance+2*c1+2*c2+c3]) color("Purple")sphere(r=c3,center=true,$fn=60);


Go to the first part of the SCAD tutorial

OpenSCAD as sex toy generator

balls_scadOpenSCAD is a free software tool for creating 3d objects. But it is different from other CAD tools like Tinkercad or Freecad. Instead of using the mouse to select and modify 3d objects you have to use a description language. Making a 3d object in OpenSCAD is a bit like programming. For creating a sphere you just have to type sphere(r=10); where r is the radius of the sphere. For creating a cube or a cylinder just type in the appropriate command. When done select compile from the menu and you’re object will be displayed.

Just download the OpenSCAD software, install the tool and try out a command. You can copy and paste the dildo generator source code (at the end of this blog post) and try to change the parameters. Another option is to use the customizer module of the Thingiverse platform.

Brief Intro to OpenSCAD

openscadintro If you want to create a sphere not in the origin but somewhere else you have to shift the object using the translate command. For creating the second smaller sphere use

translate([30,0,0]) sphere(r=10);

The translate command moves the sphere objects on the x-axis by 30 points.

To visualize the form use the design menu and select “compile” or “compile and render”. Rendering takes some time (up to some minutes) but it will give you a correct preview of your form.

To build more complex objects you have to use the union or difference command. The union command puts simple objects together. With the difference command you can cut out something e.g. to make a ring. openscadintro2 You can download a STL-file (select “export STL” from the menu) and print out the form with a 3d printer.

OpenScad can be used to create sex toys as shown by Mr O. He used OpenScad to create basic building blocks for sex toys which can be combined and changed in size. Moreover with OpenScad you can make generative designs. For example you can make a generative dildo which can be individualized by changing parameters like height, length etc.

Generative Dildo Project

Let us create the “balls” dildo which is introduced in Silicone overmolded vibrator – balls revisited and Update for “balls revisted” – silicone molded vibrator.

molded-querThe dildo consists of 6 forms:

  • three spheres with individual radius
  • a base which is made of cylinders
  • and an iterative use of circles to make the upper top of the base to be round

We use the module command to encapsulate the commands for creating the dildo. A module is very similar to functions or procedures in other programming languages, but they do not return a value. They just execute the commands in the module. The definition of the module starts with its parameters.

module base (r_bottom,height,rounding,connector_radius,ball_distance, c1,c2,c3) {
  ...commands for creating the dildo...

c1, c2 and c3 are the radius of the spheres. r_bottom is the radius of the base part and height the height if the base parts.


Now you can produce different versions of the ball motive by entering different parameters when you call the module base. With the following parameters the form at the left side will be generated:




ball_scad_alt_parametersThis form will be made when using the following parameters:





Make your own generative sex toy design and publish it

The Thingiverse platform is able to create objects made with OpenSCAD. Just upload the SCAD-file to Thingiverse using the customizer option. Now you can change the parameters within Thingiverse and generate a customized STL-file for 3d printing. Try it out with the Thingiverse customizer (as long as nobody complains…).

Download the SCAD file source code here: form_only

Or copy & paste the following SCAD code to generate the “balls” sex toy:

// bodyinteraction toy form

// radius of bottom part
r_bottom=50; // [50:5:80] 
// height of bottom part
h_bottom=60; // [10:5:80] 
// top rounding of bottom part
rounding=10; // [10:5:20]
// radius of ball 1 
r_ball1=35; // [15:5:50] 
// radius of ball 2
r_ball2=25; // [15:5:50] 
//radius of ball 3 
r_ball3=20; // [15:5:50] 
// radius of connecting cylinders
connector_radius=10; // [10:2:20]
// distance between balls and bottom part
ball_distance=30; // [10:2:40]


module base (r_bottom,height,rounding,connector_radius,ball_distance, c1,c2,c3) {
 union () {
 // connector
 color("DarkSlateBlue") cylinder (h=height-0,r=r_bottom-rounding,$fn=60);
 color("MediumSlateBlue")cylinder (h=height-rounding,r=r_bottom,$fn=60);
 translate([0,0,height-rounding]) color("SlateBlue") rotate_extrude() 
 translate([r_bottom-rounding,0,0]) circle(r=rounding,$fn=120);
 // circle (ball) 1, 2 and 3
 translate([0,0,height+ball_distance+c1]) color("Indigo")sphere(r=c1,center=true,$fn=60);
 translate([0,0,height+2*ball_distance+2*c1+c2]) color("Violet")sphere(r=c2,center=true,$fn=60);
 translate([0,0,height+3*ball_distance+2*c1+2*c2+c3]) color("Purple")sphere(r=c3,center=true,$fn=60);


Next part: Silicone sex toy mold generator with OpenSCAD

Moving dildo with motor driven skeleton

skeleton-without-hull-servo-bi1So far we have used vibration motors for our sex toys. Vibration motors are cheap, powerful, easy to control and robust actuators. That’s why they are part of most sex toys. But what about moving or touching  objects. Obviously we need some mechanics, maybe joints and gears? Or is there a simple option? A skeleton?

I realized the idea for using some type of skeleton for moving a dildo when I saw the video of a naked Pleo – one of the best artificial life forms ever.


On you will find more inspiration for using a skeleton to move something. The design is very simple.

The skeleton is composed of a number of vortexes. The holes are for connecting all vortexes and a servo with a nylon wire or similar.


In addition we need a handle where the vortexes are fastened to. There is also space for a servo. Then use a nylon wire to connect the vortexes with the servo. You can drive the servo with a Arduino development board or you use the body interaction development board as described here.


The servo should turn only 15-30 degree or so. If you use the body interaction development board please copy the following code and upload the code to the board.

#include <TinyServo.h>

// servo control with the body interaction development board using the TinyServo library
// -- adaption of the demo script by
//'s ATTiny Hardware Timer Assisted Servo Library v1.0 20-Nov-13

const byte SERVOS = 1; // number of servos is 1
const byte servoPin[SERVOS] = { 7 }; // servo is connected to PA1 which is pin 7
#define SERVO 0 // our servo is given the name "SERVO"

void setup() {

void loop() {
 moveServo(SERVO, 0); // move servo to 0°
 moveServo(SERVO, 30); // move servo to 30°

In addition we need a wrapping for the skeleton. This can be made using these two forms (download STL files).


Use flexible silicone and poor it in the form. The thickness of the wrapping is a bit too large – it rather hinders the skeleton in its movements. But it works!


Now we can put everything together.


Download on Thingiverse:


Tinker with Tinkercad!
Servo handle:


New small fusion vibrator

fusion-small-side-viewThis is a small version of the fusion vibrator. The small fusion form for molding can be made with 3d printers with smaller volume. In addition the inlay for the body interaction development board is reduced in size, but there is still enough place for board and battery. Only about 120ml silicone are needed. The form was constructed in Tinkercad.

Modify the form in Tinkercad: all forms, inlay only, form only

Download the STL files for printing: round_something_06_final_inlay_improved. There are some artifacts but printing is fine on the daVinci 1.0.

Download and discuss in Thingiverse:


Please follow the instruction from the large fusion vibrator. When you poor the silicone into the form it is very important to keep the USB connector free from silicone. Even very small amounts can cause the USB connector to break apart from the board.  When the USB connector is broken then you cannot recharge the vibrator. Also be always very cautious when you plug-in or plug-out the USB connector.

Finally you can remove the overhanging parts from the inlay.



New vibrator design “fusion”


fusion-quer-look-throughbodyinteraction designed a lot of vibrating toys, some are usable as massage devices, some are explicit sex toys (vibrator ring, balls), some are experimental (collar). Everyone is motion controlled. If you have more than one they will influence each other remotely, eg. a vibrator and a vibrator ring.


But a device like a classic big vibrator is still missing. So we designed the “fusion” which is approx 19cm long and up to 4+cm in diameter. It is called fusion as the case is made of silicone and 3d printed material (ABS).


We have put the body interaction vibrator development board, motor and battery in a silicone form. There is an on/off switch – so when you travel the vibrator doesn’t wake up when it is moved. And you can charge the battery with a USB micro connector. There is a spacious inlay for the electronics, so it will be easy to get it done.


  • easy to charge the battery via USB
  • on/off switch
  • hard handle
  • flexible upper part
  • large (if you like this)
  • ISP interface (“hacker port”) accessible


  • only the silicone part of the form can be put under water for cleaning

What do you need?

  • 200 ml silicone with high shore A rate, eg. shore A 45 from
  • optional: special colour for silicone molding
  • 3d print of the molding form, inlay and closure
  • tinker wire
  • body interaction vibrator development board with LiPo and motor (or similar Arduino boards)
  • bin for preparing the silicone, something to stir the silicone

How much is it?

  • Board, battery, motor: 30$ (buy at Tindie)
  • Silicone: 10$
  • 3d Prints: less than 5$

Step by step instructions

Step 1: Print out the inlay, the form and the enclosure


Download as zip-file: Fusion

Download at Thingiverse:

Step 2: Prepare the inlay: Insert the body interaction board and the LiPo battery

The body interaction vibrator development board is inserted into the provided rails. It it doesn’t fit in use a file to remove printing artefacts. Use some glue to fix the board. Then insert the battery and fix it.

Important: The Micro USB connector must be above the upper part of the inlay.

inlay with description

Step 3: fix the wires of the vibration motor

The vibration motor will hang down from the inlay as the inlay will be put in the form upside down. You can influence the position of the motor by shortening the wire or fixing the wire to e.g. to the battery. In this case the wire of the motor was threaded between battery and board. Therefore the  motor will be in the middle of the vibrator.

inlay-inner-partfusion-looking-through-2in the center there is the overmolded vibration motor

Step 5: Prepare the form

Use some tinker wire to “press” both parts of the form tight together.molding-form-emptyUse some wax to fix little holes in the form where the printer failed. (These are the white spots)


Step 6: Insert inlay into the form

There must be some space between inlay and form for the silicone.

Remark: The two wedge like forms at both sides of the inlay help to hold the inlay. The wedge can be removed after molding.inlay-in-molding-form

Step 7: Cast the silicone

Prepare the silicone as the producer recommends. It takes some time to pour the large amount of silicone into the narrow form. The silicone we use must be used within 10 minutes. So start at once after preparing the silicone.

Important: The USB micro connector, the switch and the ISP connector shouldn’t be dashed with silicone. If this happens remove the silicone. Maybe some silicone will remain behind. This can be removed later when the silicone is solid.molded

The battery is covered with silicone, the USB connecor and switch are not.drying-seen-from-top

Step 8: Remove the form

Remove the tinker wire. Remove overhanging part of the silicone. Carefully tear both parts of the form away. You can use a knife, but be careful not to “hurt” the vibrator. Remove overhanging silicone at the vibrator. Also remove the two wedge like forms at both sides of the inlay.

unboxing-fusionfusion looking through complete

Step 9: Install the closure

Now you can put the closure on the inlay. Fix the closure with glue. (Be careful! The USB connector is not very strong.) closed-inlayround_something_055_final_cap_onlyfusion-closure

Tinker, share and download from Tinkercad:

form and inlay:


Download as zip-file: Fusion

Download at Thingiverse:


%d bloggers like this: