Hi!
I’ve been working on an application for a few weeks to generate Funscripts based on the music in videos. It’s specially designed for PMV videos, Cockheros, etc., but it can also be used for shorter videos with a single song, as well as hypno/hfo/edging videos.
Honestly, I have no idea about programming, lol, but I had a pretty clear idea of what I wanted, so I used the most advanced paid AI programming models to help me; and it’s been a tough battle, what started as a simple idea became more complicated and improved and more things were added… But I think that in the end, it’s turning out to be an app that works pretty well, has cool features, and can be quite useful.
The idea is to be able to create Funscripts quickly and adjust various parameters, while trying to stay true to the music and ensure that the movement follows it correctly. It doesn’t aim to create perfect Funscripts in every single point, which is really difficult, but it does take a lot of work out of the process. You can always edit the points that don’t look right or add your own blocks (patterns), for example at the end or at intermediate “climax” moments.
Here’s an example: It can analyze a 90-minute video with AI in about 10 minutes, and once analyzed, the funscript is created in seconds.
In other words, you analyze once (this is cached, it will remember what you have already analyzed), and then you can choose the “mood” (type of analysis/use of audio to create the points), as well as various configurable parameters, and generate that funscript in seconds. If you don’t like it, adjust some parameters again, wait a few seconds, and you’ll have a new one!
Here are some screenshots:
Generator:
Moods:
AI Analysis:
Edge & Cum Advanced Editor:
Pattern Editor:
Queue System:
Compare:
History:
Point Editor:
Combinator:
Preview Card:
Recently created moods:
“Fap Mixer”
“SixthSense”
“Pulse”
Here’s a summary of the main features:
F.A.P.S - Funscript Audio Processing System
Automatic Funscript generator based on audio analysis
What is F.A.P.S?
F.A.P.S (Funscript - Audio Processing System) is a desktop application that automatically generates Funscript files by analyzing the audio of your videos. It uses audio processing algorithms and artificial intelligence to create movements synchronized with the music, rhythm, and voice of the content.
Designed for devices like The Handy, F.A.P.S allows generating complete scripts without manual intervention, while offering full control over all parameters for those who want to fine-tune the results.
Developed by CaptainHarlock
Features
Generation Modes (Moods)
16 different movement styles:
Music-Based (
):
- AUTO - Analyzes each segment and automatically applies the most appropriate mood
- Normal - Beat-based movement, for music with defined rhythm
- Relaxed - Slow and smooth waves
- Hypno - Voice-reactive patterns, designed for ASMR and JOI
- Edging - Teasing patterns with variations
- Simple - Direct beat-to-movement conversion
- Crazy - Intense and fast movement
- Crazy+Voice - Crazy mode with voice vibrations
- Slow - Slow and deliberate movements
Voice-Based (
):
- Hypno - Voice-reactive patterns with customizable keyword detection via AI transcription, designed for ASMR and JOI
- Edging - Teasing patterns with edge/denial/release keyword detection and build-up cycles
Advanced AI (
/
):
- Fap Mixer
- Granular stem-based mixing with role assignment (primary rhythm, secondary complement, texture, vibration) + GPU voice classification detecting moans, screams, breath and gagging with configurable per-type actions - SixthSense
- 7-layer adaptive generation using 6-stem + 5-drum-substem AI separation with section-aware profiles, sub-beat precision and guitar solo detection
JOI Modes (
):
- JOI Director
- Phrase-by-phrase AI director using Whisper transcription + LLM to assign actions (stroke, tease, edge, pulse, vibrate, release…) with 26+ pattern types - JOI Patterns
- LLM classifies each spoken phrase into pattern categories with intensity and tempo - JOI LLM

- LLM outputs continuous parameters per phrase generating parametric waveforms - JOI LLM_A / LLM_B

- Parametric variants with explicit or auto-derived waveform shapes (sine, sawtooth, pulse, vibrate, staircase, shake)
= Experimental
= Work in Progress
AI Analysis
Integrates several machine learning models (requires additional installation):
- All-In-One - Detects musical structure (intro, verse, chorus, bridge, solo, outro), beats and song boundaries
- Beat This! - Complements All-in-One beat detection, recovering missed beats at audio edges (intro/outro fade regions)
- BS Roformer - Separates audio into 6 stems (vocals, drums, bass, guitar, piano, other) — used by SixthSense and Fap Mixer
- DrumSep - Decomposes drums into 5 sub-stems (kick, snare, toms, hi-hat, cymbals) — used by SixthSense
- Wav2Vec2 - GPU-accelerated voice classification with gender detection and vocalization type identification — used by Fap Mixer
- Whisper - Voice transcription with timestamps — used by JOI modes and Hypno/Edging
- Shazamio - Identifies songs in DJ mixes and compilations with dual parallel queries and backward verification
- MusicBrainz / Deezer / iTunes - Song duration lookup chain for boundary refinement in mixes
Adjustable Parameters
Each mood has its own dedicated parameter panel. Common parameters include:
- Minimum/maximum position (movement range)
- Detection sensitivity
- Maximum device speed
- Minimum interval between points
- Intensity normalization between songs
- Double pass mode for more detail (some moods)
- Inverted mode (flips movement direction)
Advanced moods add specialized controls:
- Fap Mixer: Stem role assignment, beats per cycle, voice action mapping (per vocalization type), gender-specific responses
- SixthSense: Per-drum-substem weights (kick, snare, toms, bass), accent boost, fill detection sensitivity
- Hypno/Edging: Custom keyword lists, detection thresholds, pattern triggers
- JOI modes: LLM model selection, prompt customization, pattern mapping
All parameters include tooltips with explanations. Default values are pre-tuned for each mood.
Edge & Cum Editor
Visual timeline editor for creating climax sequences:
- Multiple block types: Edge Base, Fast Vibration, Post-Climax, Silence and Custom
- 9 available patterns in “Edge Base”: Crescendo, Decrescendo, Normal, Random, Build-up, Denial, Tease, Pulse, Wave Train
- 8 available patterns in “Fast Vibration”: Stepped, Prog. Stepped, Tip Edge, Base Edge, Tip/Base Edge, Earthquake, Shutter, Surge
- 8 available patterns in “Fast Vibration”: Slow Up/Down Curve, Slow Up/Down Vibro, Tip Care, Base Care, Milk, Torture, Cool Down, Aftershock
- 5 intensity levels, vibration available with different strength and frequency levels, in “Edge Base” patterns.
- Drag and drop blocks
- Pattern preview
Metrics on Completion
After each generation displays:
- Points generated and duration
- Speed statistics (minimum, maximum, average)
- Distribution by speed ranges
- Compatibility estimate for The Handy
- Option to save report
Languages
- English
- Español
Tabs
-
Generator - Main tab where you load a video/audio file, select a mood, configure parameters, run AI analysis and generate the funscript.
-
Queue - Batch processing queue. Add multiple files with their own configurations and process them sequentially. Supports pause, cancel, time estimation and per-item status tracking.
-
Pattern Editor - Visual editor for creating custom movement patterns. Draw points on a canvas to define waveforms (sawtooth, step, zigzag, pulse) with configurable cycles, duration and position range. Patterns can be Repetitive (looped) or Adaptive (scaled to music). Supports undo/redo. Created patterns become available in mood configurations.
-
Compare - Comparison of two funscripts. Load two .funscript files and visualize them overlaid on a graph with zoom and scroll navigation. Shows statistics like point count, speed differences and similarity metrics.
-
History - Log of all past generations in the current session. Shows filename, mood used, point count, duration and timestamp. Allows re-applying a previous configuration with one click (“Use Config” button).
-
Combinator - Combines parts from funscripts generated with different moods for the same video. Load a video, auto-discovers all mood variants generated for it, then select time ranges from each source and insert them into a combined timeline. Features GPU-accelerated timeline rendering, video playback (VLC), drag markers for range selection and undo/redo. Export the combined result as a single funscript.
-
Point Editor - Full-featured funscript editor optimized for large files (20k+ points). GPU-accelerated timeline with real-time video playback sync. Color-coded velocity indicators. Supports point selection, multi-selection, drag editing, undo/redo (100 levels).
Technical Features
GPU Acceleration
- CUDA support for NVIDIA GPUs
- Processing with PyTorch and torchaudio
- Automatic CPU fallback if no GPU available (Using librosa, but not verified at this time, the best option is to use GPU acceleration)
Cache System
- Saves AI analysis to avoid repeated processing
- Harmonic/percussive separation cache
- “Cache Manager”
Project Management
- Save/load projects with all parameters
- Reusable templates
- Generation history
VLC Integration
- Synchronized video preview
- Heatmap visualization
Device Safety
- Handy Safe mode to limit speeds
- Real-time speed verification
- Alerts for problematic segments
Formats
- Input: MP4, MKV, AVI, WebM, MOV, MP3, WAV, FLAC, OGG, M4A
- Output: .funscript, .hc (chapters), .fproj (projects)
Requirements
Minimum
- Windows 10/11
- 8 GB RAM (16 GB RAM recommended)
- 10GB for the application. Please note that generated caches can take up a lot of additional space.
- Nvidia GPU with +4 GB VRAM (+8 GB VRAM recommended) (From 10xx to 50xx series works)
NOTE: @Alexcreeds has taken the time and effort to port the version to ROCm to make it work with certain AMD GPUs. You can also find the link below if you want to try it out.
Installation & First Run
Prerequisites
- None
Installation
- Extract the file (** IMPORTANT ** > Please use the latest WinRAR versión to extract the file: WinRAR archiver, a powerful tool to process RAR and ZIP files)
- Run “install.bat”
Running the Application
- Double-click
run.bat - The application window will open — you’re ready to generate!
F.A.P.S v0.8 changelog:
- Added new “Pulse” mood, designed as an improved version of “Normal.”
- The application now uses “embedded Python”… No installation required, just extract and run!
- Added logo for the application, hope you like it, lol
- Added a new “Preview Card” tab to generate a Card with grid of images, heatmap, song list, and other details.
- Review and improvement of the “Normal” mood, added new “Spacing” control.
- Review and improvement of the “Crazy” mood.
- Review and improvement of the “Crazy+Voice” mood.
- Review and improvement of the ‘Relaxed’ mood, added new “Onset detection” drop-down menu and “Fill gaps” option.
- Review and improvement of “AUTO” and its 3 methods of use. Completely rewritten the BPM+RMS method, which now also uses Sections.
- Removal/Hiding of unused parameters in moods.
- New song detection system, better and faster
- New display method for “Edge & Cum” patterns, now correctly represented graphically in the timeline.
- Ability to disable songs, useful for avoiding processing intros or interludes that are not songs.
- Option to rename the song block or redo the search through Shazam.
- Added the option to do “AI Analysis Only” in Queue, with selection of the type of analysis. Very useful for running several AI Analyses automatically, which is what takes the most time, and then having the cache ready to start generating the Funscripts
- Fixed bug in non-stereo or non-mono audio; now any audio is converted to stereo or mono as needed.
- Spanish translation for “SixthSense” controls
- Several missing translations for English
F.A.P.S v0.8.1 changelog:
- Added missing dependencies (Pillow)
- Added the \wheels folder and install.bat again
DOWNLOAD LINKS
F.A.P.S v0.8.1:
DONATIONS:
The application is and always will be free, but it has taken a LOT of time and some money to create it. If you like it and think it deserves it, donations are welcome ![]()
ENJOY !!!
![]()
EXTRA: User @Alexcreeds has taken the time and effort to port the version to ROCm to make it work with certain AMD GPUs. Here is his port if you want to try it out:















