Turn marker points into smooth speed ramps automatically.
RampForge is a local speed-ramp tool for video editors who want consistent, repeatable ramp effects without hand-building keyframes in an editing timeline. The user supplies a video clip and a simple JSON config with markers and preset names, and the tool renders a high-quality MP4 with smooth speed changes, ready to re-import into an editor.
Solo Video Editor Arif, 31 - Arif edits short-form clips several times a week and wants speed ramps that look polished without spending time placing and tuning keyframes. He cares most about speed, repeatability, and keeping his current editor as the final assembly tool.
Content Creator Dita, 27 - Dita produces social videos and needs fast turnaround on clips with strong motion accents. She is comfortable editing in a timeline, but does not want to spend time fine-tuning speed curves for each take.
Technical Power User Raka, 38 - Raka is comfortable with Python, FFmpeg, and config files. He values a clean architecture so he can extend the tool later with preview, optical flow, or a local UI.
Arif usually builds speed ramps by hand in his editing software. For each clip, he adds keyframes, adjusts easing curves, and checks the result several times until the motion feels natural. It works, but it takes too long and each clip ends up slightly different.
With RampForge, Arif drops in one video and a tiny JSON file with a few marker times. He picks Smooth Slow-Mo for one section and Impact Hit for another, then runs a single command. The tool validates the config, renders the clip with smooth frame blending, and prints the final duration before he imports it back into his editor.
Now Arif can produce the same polished motion style across multiple clips without rebuilding every ramp by hand. That saves time on each edit, reduces mistakes, and makes his workflow predictable enough to reuse on real client or personal projects.
Team & resourcing - Small solo-build team or tiny team: 1–2 engineers, 1 part-time product/design collaborator, no dedicated backend or infra owner.
Paste this into Cursor, Bolt, Lovable, or v0 to start building.
Build a local video tool called RampForge that automatically creates smooth speed ramps from a JSON config and renders a high-quality MP4. Core behavior: 1. Input: one source video file and one JSON config file. 2. Config contains output path and an array of ramps with start, peak, end, preset, and optional speed override. 3. Support multiple ramps in one clip. 4. Implement four presets: Smooth Slow-Mo, Hype Burst, Impact Hit, Slow Reveal. 5. Compute a continuous speed curve from marker points, integrate it to map output time to source time, and render frames accordingly. 6. Use frame blending when source time falls between frames for slow-motion smoothness. 7. Preserve original frame rate in the output unless explicitly configured otherwise. 8. Print validation warnings and final output duration to the terminal. 9. Keep audio disabled in v1. Suggested tech stack: Python 3.11, FFmpeg, NumPy, PyAV or OpenCV for decoding, Pytest for tests, JSON Schema for config validation. Architecture: Create a small project with speedramp.py as the CLI entry point, core.py for curve math and ramp resolution, presets.json for preset definitions, tests/ for unit tests, and config.example.json. Required screens/flows: CLI run flow: validate config, preflight ramp checks, render progress, completion summary. Error flow: malformed JSON, missing file, overlapping ramps, impossible durations, VFR warning. Data model: Config object with input, output, ramps array, and optional render settings. Ramp object with start, peak, end, preset, speed, and optional transition limits. Preset object with named keyframes, easing curve, and speed multipliers. Implementation details: Include structured logging, unit tests for zero markers, one marker, adjacent markers, extreme speeds, and duration accuracy. Make the core math independent from video I/O so future preview and optical-flow support can be added later. Produce a clean, build-ready CLI app that can process 1080p clips locally with high-quality MP4 output.
Rencana Proyek: Auto Speed Ramp Tool Dokumen Perencanaan Proyek Pribadi · Versi 1.0 · 23 Oktober 2026 · Status: Draf untuk dieksekusi 1. Ringkasan Eksekutif Proyek ini membangun alat bantu pribadi yang membuat speed ramp (perubahan kecepatan video yang halus, misalnya normal → slow-motion → normal) secara otomatis. Pengguna cukup menentukan titik marker dan memilih preset kurva; alat menghitung kurva kecepatan dan merender video hasil. Proyek ditujukan untuk pemakaian sendiri, bukan rilis publik. Karena itu ruang lingkup sengaja dibuat ramping: tanpa akun, hosting, monetisasi, atau dukungan banyak platform. Prioritas utama adalah cepat selesai, stabil, dan nyaman dipakai dalam alur kerja editing harian. Hasil akhir yang diharapkan: sebuah tool lokal yang menerima satu klip video dan file konfigurasi marker, lalu menghasilkan klip MP4 dengan speed ramp yang halus, siap diimpor ke editor video utama. 2. Latar Belakang dan Tujuan 2.1 Masalah Membuat speed ramp secara manual di editor membutuhkan banyak langkah: menaruh keyframe kecepatan, mengatur kurva easing, dan menyesuaikan ulang durasi. Proses ini berulang, memakan waktu, dan hasilnya sulit dibuat konsisten dari satu klip ke klip lain. 2.2 Tujuan 1. Mengotomatiskan pembuatan speed ramp berdasarkan marker dan preset. 2. Menjaga hasil tetap halus (tanpa patah-patah) pada slow-motion. 3. Membuat hasil konsisten dan dapat diulang lewat preset. 4. Menghemat waktu editing per klip. 2.3 Indikator Keberhasilan • Satu klip dapat diproses dalam waktu wajar (kurang dari 3× durasi klip pada resolusi 1080p). • Hasil ramp terlihat halus pada footage 60 fps dan dapat diterima pada footage 30 fps. • Tool dipakai pada setidaknya satu proyek video nyata tanpa perlu perbaikan manual besar. 3. Ruang Lingkup 3.1 Dalam Lingkup (MVP) • Input satu klip video dan satu file konfigurasi. • Beberapa ramp dalam satu klip. • Empat preset bawaan: Smooth Slow-Mo, Hype Burst, Impact Hit, Slow Reveal. • Frame blending untuk slow-motion. • Output MP4 dengan frame rate asli dan kualitas tinggi. • Pencetakan durasi output baru pada terminal. 3.2 Opsional (Setelah MVP Terpakai) • Preview resolusi rendah untuk pengecekan cepat. • Interpolasi optical flow (RIFE atau minterpolate). • Deteksi beat musik untuk menyarankan marker. • Mode batch untuk beberapa klip. • Antarmuka web lokal untuk menaruh marker secara visual. 3.3 Di Luar Lingkup • Akun pengguna, login, pembayaran, dan hosting publik. • Dukungan multi-browser dan mobile. • Plugin untuk software editing tertentu. • Landing page, tutorial, dan analitik. 4. Pendekatan dan Keputusan Desain Keputusan Pilihan Alasan Bentuk produk Tool lokal berbasis Python + FFmpeg Tercepat dibuat, stabil untuk file besar, kualitas terbaik Cara input Marker pada file konfigurasi (JSON) Sederhana, dapat diulang, mudah diuji Penentuan ramp Preset kurva + parameter kecepatan Hasil konsisten dan dapat disesuaikan Slow-motion Frame blending dahulu, optical flow belakangan Kualitas baik dengan biaya implementasi rendah Audio Dibisukan; musik ditambahkan di editor utama Menghindari perubahan pitch dan kerumitan sinkronisasi UI Ditunda UI tidak diperlukan untuk membuktikan nilai alat Catatan: alternatif berupa halaman web lokal atau plugin editor tetap dapat dikerjakan kemudian karena logika inti dipisahkan dari lapisan antarmuka. 5. Kebutuhan 5.1 Kebutuhan Fungsional Kode Kebutuhan Prioritas F1 Membaca file konfigurasi berisi input, output, dan daftar ramp Wajib F2 Menghitung kurva kecepatan dari marker dan preset Wajib F3 Menghitung posisi frame sumber untuk setiap frame output Wajib F4 Merender video dengan frame blending pada bagian slow-motion Wajib F5 Menyimpan hasil sebagai MP4 berkualitas tinggi Wajib F6 Mendukung lebih dari satu ramp per klip Wajib F7 Menampilkan durasi output baru dan peringatan bila ada masalah Wajib F8 Preview resolusi rendah Opsional F9 Interpolasi optical flow Opsional F10 Deteksi beat otomatis Opsional 5.2 Kebutuhan Non-Fungsional • Kualitas: encode dengan CRF 16-18 karena hasil akan diedit ulang. • Kinerja: pemrosesan 1080p kurang dari 3× durasi klip pada perangkat pengembang. • Keandalan: menangani video dengan frame rate tidak tetap (VFR) tanpa pergeseran sinkron. • Keterbacaan: kode terstruktur, logika inti terpisah dari I/O video. • Portabilitas: berjalan di sistem operasi yang dipakai pengembang; dependensi minimal. 6. Arsitektur Teknis 6.1 Struktur Proyek speedramp/ ├── speedramp.py → titik masuk: baca config, jalankan render ├── core.py → kurva easing, preset, integral waktu ├── presets.json → definisi preset ├── tests/ → uji unit untuk core.py └── config.example.json 6.2 Teknologi • Python 3.x sebagai bahasa utama. • PyAV atau OpenCV untuk membaca frame video. • NumPy untuk operasi blending. • FFmpeg untuk penulisan video dan penanganan audio. • Pytest untuk pengujian logika inti. 6.3 Algoritma Inti 1. Urutkan marker dan bagi menjadi zona ramp. 2. Untuk tiap zona, skalakan preset ke durasi zona (nilai t 0-1). 3. Bentuk fungsi kecepatan v(t) dengan interpolasi easing antar keyframe preset. 4. Hitung posisi sumber S(t) = ∫ v(t) dt secara numerik. 5. Untuk setiap frame output pada waktu t, ambil frame sumber pada S(t). 6. Jika S(t) berada di antara dua frame asli, campur kedua frame (frame blending). 7. Tulis frame ke file output dan catat durasi total baru. 6.4 Contoh Format Konfigurasi { "input": "klip.mp4", "output": "klip_ramp.mp4", "ramps": [ { "start": 3.2, "peak": 4.0, "end": 5.1, "preset": "smooth-slowmo", "speed": 25 } ] } 6.5 Spesifikasi Preset Awal Preset Pola Kecepatan Karakter Smooth Slow-Mo 100% → 25% → 100% Easing halus, sinematik Hype Burst 100% → 400% → 100% Cepat, energik Impact Hit 100% → 10% (mendadak) → 100% Penekanan pada momen benturan Slow Reveal 30% → 100% bertahap Pembukaan adegan 7. Rencana Kerja dan Jadwal Tahap Pekerjaan Hasil (Deliverable) Estimasi 1 Menulis core.py: kurva, preset, integral waktu, uji unit Modul inti teruji 1 sore 2 Membaca video dan merender ulang dengan kecepatan konstan Pipeline render dasar berjalan 1 hari 3 Menerapkan ramp dari konfigurasi dan preset Ramp pertama pada klip nyata 1 hari 4 Frame blending dan penanganan fps/VFR Slow-motion halus 1 hari 5 Uji pada proyek nyata dan catat kekurangan Daftar perbaikan Berjalan 6 Fitur opsional sesuai kebutuhan nyata Preview, optical flow, dll. Sesuai kebutuhan Total menuju versi yang dapat dipakai: sekitar 3-5 hari kerja santai, tergantung pengalaman dengan Python dan FFmpeg. 7.1 Tonggak (Milestone) • M1: logika inti lulus uji unit. • M2: satu klip berhasil dirender dengan ramp tunggal. • M3: slow-motion halus dan sinkron pada footage 30 dan 60 fps. • M4: dipakai pada satu proyek nyata sampai selesai. 8. Strategi Pengujian • Uji unit (core.py): nol marker, satu marker, marker berdekatan, kecepatan ekstrem, total durasi sesuai integral. • Uji fungsional: klip 24, 30, dan 60 fps; video vertikal dan horizontal; video VFR dari ponsel. • Uji visual: bandingkan dengan speed ramp buatan tangan di editor untuk menilai kehalusan. • Uji sinkron: pastikan tidak ada pergeseran frame pada akhir klip. 9. Risiko dan Mitigasi Risiko Dampak Mitigasi Menambah terlalu banyak fitur sebelum dipakai Proyek tidak selesai Pakai MVP pada proyek nyata sebelum menambah fitur Render Python lambat Alur kerja terganggu Optimasi dengan FFmpeg langsung atau pindah ke WebCodecs bila perlu Slow-motion patah-patah Hasil kurang layak pakai Frame blending, lalu optical flow; gunakan footage 60 fps atau lebih Video VFR menyebabkan sinkron bergeser Hasil tidak akurat Baca timestamp per frame, bukan asumsi fps tetap Marker terlalu berdekatan Ramp saling tumpang tindih Batasi durasi transisi maksimum setengah jarak antar-marker Kualitas turun akibat encode ulang Hasil lebih buruk Gunakan CRF rendah dan format perantara berkualitas 10. Kriteria Selesai (Definition of Done) Versi 1.0 dianggap selesai bila: 1. Satu perintah menghasilkan klip MP4 dengan speed ramp dari file konfigurasi. 2. Empat preset bawaan berfungsi dan menghasilkan kurva yang benar. 3. Slow-motion tampak halus pada footage uji 60 fps dan layak pada 30 fps. 4. Uji unit logika inti lulus. 5. Alat sudah dipakai pada setidaknya satu proyek video nyata. 11. Pengembangan Lanjutan 1. Halaman web lokal untuk menaruh marker dan melihat grafik kurva secara visual. 2. Preview resolusi rendah untuk iterasi cepat. 3. Deteksi beat musik untuk saran marker otomatis. 4. Preset kustom dengan editor kurva bezier. 5. Plugin untuk software editing yang dipakai, memanfaatkan core.py yang sama. 12. Asumsi dan Pertanyaan Terbuka Asumsi • Proyek dikerjakan sendiri untuk pemakaian pribadi. • Footage berupa klip pendek hingga menengah dengan sumber idealnya 60 fps atau lebih. • FFmpeg dan Python dapat dipasang di perangkat pengembangan. Pertanyaan terbuka • Bahasa pemrograman yang paling nyaman dipakai (Python atau JavaScript). • Software editing yang dipakai untuk menyusun hasil akhir. • Perlukah antarmuka visual sejak awal, atau cukup konfigurasi teks.
Design by The Resonance | Powered by GPC – The AI Transformation Company