Open-source project
KinkyMakers/OSSM-hardware avatar
KinkyMakers/OSSM-hardware

OSSM is an open hardware sex machine built around a belt drive and a linear rail

OSSM pcb and hardware enclosure design

577 stars114 forksPythonCERN-OHL-S-2.0

At a glance

What is it?
OSSM is a CERN Open Hardware Licence project that publishes the PCB, enclosure and 3D printable parts for a servo powered, belt driven linear rail sex machine, with a recommended build rated at 32 pounds of force over 8 inches of stroke. It suits a maker who wants to build their own and follow the design, and the project documents its own safety limits and the compatibility caveats of an in-progress design.
Who is it for?
OSSM fits a maker who wants to build a linear rail machine from published, licensed hardware and printed parts, and who is prepared to follow the bill of materials closely rather than improvise around it. It does not fit a buyer who wants a finished product with support, and it does not fit someone who needs a documented safety case, because the project states plainly that safety is not yet fully characterised and that the Hazards file records what is known and unknown.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A belt on a linear rail, and why that choice defines the machine

OSSM, pronounced like awesome, is a user friendly every day sex machine for the people, maintained by Research and Desire and supported by the community. The homepage is researchanddesire.com, and the documentation is on GitBook.

The primary feature is stated plainly: the OSSM's primary feature is that it is a servo powered belt-driven linear rail. That single sentence explains most of the engineering in the repository, because a linear rail with a belt drive is a choice about how the force is transmitted and how quiet the machine is.

The consequences follow directly. It allows for quiet, high torque operation at speeds up to 1 meter per second, and it allows for software-defined stroke and depth, since the position is commanded rather than set by the mechanics of a crank. The standard recommended build is 32 lbs, 14 kg, of force at 20 volts DC, up to 50 lbs, 22 kg, at 36 volts DC, with an 8 inch, 20 cm, stroke on a 350mm rail.

The design goals are the ones you would expect for a machine that has to live in a room: compact and quiet, highly performant, moderate cost, 3D printable, easily sourced components, and moddable. That list is effectively the specification, and the bill of materials follows from it.

The printed parts are the actual product of this repository

The repository is the hardware side of the project, and most of what is in it is printable parts, and the organisation of the Printed Parts/ directory is the fastest way to understand the machine.

Under Actuator/ there is a body, a belt tensioner, and a threaded end effector with a clamp and a nut. Under Remote/ there is a body and knobs. Under Toy Mounting/ there is a flange base plate with a clamping ring, in tie-down or suction variants, and a Double Double vacuum mount. Under Mounting/ there is a mounting ring, a base, and a PCB enclosure. Under Stand/ there is a 3030 extrusion base.

The naming convention is functional, and the base plate options tell you something about the intended use. A PitClamp mini ring and base mount to a flat surface, which is a bed or a table. The tie-down and suction variants are for securing the machine to a surface rather than standing it on legs, and the vacuum mount is for a smooth surface with no drilling.

The actuator is the part that matters most and the one the project is most careful about. The README carries an important note about the actuator rail direction being critical for pattern accuracy and safety functions, and gives the correct orientation: the threaded end to the right when looking at the front face of the actuator body, the M side of the OSSM text.

Experimental parts show up in the Discord's #ossm-print-testing channel and are a work in progress for the top rated ones to be merged into the repository. So the printed parts in the tree are the ones that have been tested, and the ones in chat are the ones being tried.

The bill of materials is specific to a servo motor, not a stepper

The motor section is where the project is most prescriptive, and it says why.

Three motors are supported. The 57AIM30 Gold Motor is the standard recommended one, the 42AIM30 Round Motor is a smaller form factor with limited mounting support, and the iHSV57 is a legacy motor that was the pre-2024 recommendation. The OSSM Software is written to support closed loop servo type motors and is tested on the above motors, and most OSSM actuator and mounting hardware is designed for NEMA23 form factor motors.

Attempting to use a stepper or other motor is not recommended, and the reason given is honest: while it may be technically possible in some cases, this usually requires custom design work and advanced-level custom code.

There is also a configuration step that catches people out. In order to operate with OSSM Software, motors must receive programming to set their steps per revolution to 800. Motors from Research and Desire are pre-programmed for OSSM, and motors from all other sources will need programming, which requires a USB to 4 pin RS485 connector, a cable for the 8 pin white motor plug, and the Gold Motor Programming Tool.

That is the cost of the servo approach, and it is worth being explicit about: a stepper-only design would avoid the programming step entirely, and the servo drive is what buys the quiet operation and the closed loop position feedback.

Standard actuator hardware, down to the fastener count

The standard actuator hardware list is given as a real bill of materials, and it is the clearest thing in the repository for anyone planning a build.

code
    (Qty 1) 8mm Bore, 20 Tooth, 10mm Width
    (Qty 1) 10mm Width, 500mm length
    (Qty 1)
    Minimum 250mm
    Suggested 350mm
    Maximum 550mm

Those are the GT2 pulley, the GT2 timing belt and the MGN12H rail with its bearing block, and the rail length rule is given as a formula: rail length equals desired maximum stroke plus 180mm. The rail must be MGN12H, and the documentation explains why: H is a longer bearing block than C for greater stability, and 12 indicates 12mm rail width.

The fasteners are itemised the same way.

code
    (Qty 8) M3x8  Socket Cap Head Bolt 
    (Qty 2) M3x16 Socket Cap Head Bolt 
    (Qty 1) M3x20 Socket Cap Head Bolt 
    (Qty 7) M3 Hex Nut
    (Qty 3) M5x20 Socket Cap Head Bolt
    (Qty 1) M5 Hex Nut
    (Qty 4) M5x35 Socket Cap Head Bolt 
    (Qty 4) M5 20mm Hex Coupling Nut (Or M5 Hex Nut)

Plus six MR115-2RS 5x11x4mm ball bearings. A note says that additional hardware is required for the stand, the mounting and the remote, detailed in their respective printed parts folders.

The electronics side is similarly pinned: a 20 to 36 volt DC power supply with a 5.5 by 2.1 barrel plug, with a 24 volt 5 amp supply recommended and higher voltage up to 36v providing increased force. For portable use, USB power banks capable of true 100w USB PD are noted as generally operating well, with tested models listed and a note that one of them powers down on high load. The controller is the OSSM Reference Board or an ESP32 Development Board, and there is a documentation page for board development.

The licence is strong reciprocal, and the project says why

The licence is CERN Open Hardware Licence Version 2, Strongly Reciprocal, and the project states the position directly: it is one of a kind Certified, Actual, Factual, Open Source, with a link to an Open Source Hardware Association certification page. Contributions to the repository assume the same licence.

That is a stronger claim than a permissive hardware licence on its own, and the distinction matters for anyone who wants to build on the design. Strongly reciprocal means a modified version of the design must be released under the same terms, so the design cannot be closed up in a commercial enclosure without the derivative being published too. The project's own README heading asks the question directly, Is it actually Open Source, and answers it with the licence name and the certification.

The repository layout shows the full scope of the project, which is wider than a board. There is a CAD Project/ directory, a Hardware/ directory, Printed Parts/, Software/, PlatformIO ESP32 code/ and an OSSM PlatformIO Readme.md, so the firmware is part of the same open source effort rather than a separate proprietary piece. There is also a Software/ directory, a supabase/ directory, scripts/, Documentation/ and a Documentation_old/ directory, plus a manifest.json and version.json.

The PlatformIO naming tells you the firmware targets an ESP32, which is the same board family the electronics section lists as the alternative to the proprietary reference board.

The project says its own safety is not fully characterised

The safety section is the part of this project that deserves to be read twice, and it is unusually direct.

The safety of the OSSM is yet to be fully characterized as it is a work in progress. The OSSM is a framework for building your own sex machine and as such your specific combination may have risks not inherent to other builds. These risks may be undocumented or undiscovered, and there is a Hazards file in the documentation for more information. Use of experimental or modified code increases the level of risk.

What the project offers is a suggested hierarchy of safety, with the note that it is up to you and your build to decide what risks exist and how to mitigate them. The order is: have ability to move away, have ability to remove the power, and if you are in bondage, safety is the responsibility of the Top.

The last item is not a joke, it is a design constraint, and it points at something the mechanical design cannot solve. A restraint scenario removes the first two options, which means the failure mode of the machine becomes somebody else's problem to manage.

There is also the compatibility caveat for the whole design: this is a work in progress and the project has attempted to keep compatibility with the current bill of materials going forward, but it is not guaranteed. So a build from an older checkout may not match a newer one, and a printed part from the tree may not fit a later revision of the actuator.

Where a different design is the better answer

The honest comparison is with the other open designs in the same space, and the difference is in the mechanism rather than the ambition.

The alternative approach to OSSM is a crank or eccentric drive, which is what most commercial machines in this category use. A crank is fewer parts, no rail, no belt, no 800 steps per revolution programming step, and it does not need a linear rail sized by a formula. What it gives up is exactly what OSSM is built around: quietness at speed, and a stroke and depth that are software-defined rather than fixed by the mechanism.

The choice therefore depends on what you want out of the machine. If the priority is a machine you can build this weekend with parts from a local supplier and no electronics configuration, a crank design is a smaller project. If the priority is a device driven by software, with a servo that knows where it is, then the linear rail is the point and the servo complexity is the price of it.

A second consideration is the documentation. This repository publishes a bill of materials down to the fastener, a print set organised by assembly, a Hazards file, an FAQ, a Discord for print testing, and a GitBook. A project that tells you its safety is not fully characterised, in writing, and then ships the characterisation work alongside it, is a different proposition from a project that says nothing about hazards at all.

Editorial conclusion

OSSM fits a maker who wants to build a linear rail machine from published, licensed hardware and printed parts, and who is prepared to follow the bill of materials closely rather than improvise around it. It does not fit a buyer who wants a finished product with support, and it does not fit someone who needs a documented safety case, because the project states plainly that safety is not yet fully characterised and that the Hazards file records what is known and unknown. Before building, read Documentation/Hazards.md, check the motor's steps per revolution setting against the requirement to be programmed to 800, and treat the 3D printed parts and the enclosure as a work in progress whose compatibility with the current bill of materials is not guaranteed.

Frequently asked questions

What is the OSSM and what licence is it under?

OSSM is an open source sex machine project, a servo powered belt-driven linear rail design, published under the CERN Open Hardware Licence Version 2 Strongly Reciprocal, with a certification page linked from the README and contributions under the same licence.

Which motors does the OSSM support?

The 57AIM30 Gold Motor is the standard recommended one, the 42AIM30 Round Motor is a smaller form factor with limited mounting support, and the iHSV57 is the legacy pre-2024 motor. The software supports closed loop servo motors, and steppers are not recommended because they need custom design work and code.

What stroke and force does the standard OSSM build have?

The standard recommended build gives 32 lbs, 14 kg, of force at 20v DC and up to 50 lbs, 22 kg, at 36v DC, with an 8 inch, 20 cm, stroke on a 350mm rail. Rail length is the desired maximum stroke plus 180mm, and the rail must be MGN12H.

What does the project say about safety?

The safety of the OSSM is yet to be fully characterized as it is a work in progress, and a specific build may carry risks not inherent to others, with some undocumented or undiscovered. The documentation points to a Hazards file and suggests a hierarchy of being able to move away, being able to remove the power, and that in bondage safety is the responsibility of the Top.

Official sources

  1. Issues
  2. KinkyMakers/OSSM-hardware on GitHub
  3. License: CERN-OHL-S-2.0
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/kinkymakers-ossm-hardware.svg)](https://hysenlabs.com/projects/kinkymakers-ossm-hardware)

Was this useful?