Spinne Software
Bahasa Indonesia

Tempat editor berakhir dan model dimulai.

Pada sebagian besar alat ada sebuah sambungan. Anda mengekspor, mengunggah, menunggu, mengunduh, memasukkan hasilnya kembali, dan berharap semuanya masih pas. Di satu sisi sambungan itu ada proyek Anda; di sisi lain ada sebuah program yang belum pernah mendengar tentangnya. Sparkle tidak memiliki sambungan itu, dan menghilangkannya adalah sebagian besar rekayasa di halaman ini.

Sebuah editor adalah satu dokumen dan operasi yang mengubahnya

Di balik panel-panelnya, sebuah editor adalah satu hal: sebuah dokumen yang menggambarkan apa yang terjadi dan kapan, serta sekumpulan operasi bernama yang merupakan satu-satunya cara mengubahnya. Memotong klip, mengubah temponya, menetapkan warna, menambahkan trek caption. Tidak ada hal lain yang menyentuh dokumen itu.

Itu terdengar seperti detail implementasi, padahal itulah keseluruhan arsitekturnya. Begitu operasi menjadi satu-satunya pintu, semua yang penting di kemudian hari — undo, konkurensi, replay, audit atas apa yang terjadi — menjadi sifat pintunya, bukan sesuatu yang ditempelkan pada setiap fitur yang melewatinya.

Maka asistennya adalah pemanggil lain, bukan program lain

Asisten tidak menghasilkan kode, dan tidak menghasilkan frame. Ia mengeluarkan operasi bernama yang sama dengan yang dikeluarkan sebuah item menu, dengan parameter bertipe yang sama, ke dokumen yang sama. Minta ia membuat versi vertikal, dan ia memanggil operasi yang memang sudah dimiliki editornya.

Dua hal mengikuti dari situ, dan keduanya adalah intinya. Ia tidak dapat mengungkapkan apa pun yang tidak dapat dilakukan editornya, sehingga tidak ada kategori keluaran AI yang harus direkonsiliasi dengan proyeknya sesudahnya. Dan apa pun yang ia lakukan, dapat pula Anda lakukan sendiri — artinya Anda dapat membacanya, mengubahnya, atau membongkarnya dengan tangan.

Satu operasi, satu undo

Satu operasi asisten dapat menyentuh seratus klip: mengubah temponya, mewarnainya ulang, mengganti gaya setiap caption. Operasi itu tetap menyusut menjadi satu checkpoint, sehingga satu undo mengembalikan Anda ke keadaan sebelum Anda meminta.

Ini bukan soal kenyamanan. Yang membuat sebuah asisten penyuntingan dapat dipakai bukanlah seberapa sering ia benar — melainkan seberapa murah biaya untuk tidak menyetujuinya. Asisten yang tidak dapat Anda tolak dengan bersih adalah asisten yang harus Anda awasi, dan mengawasinya lebih mahal daripada mengerjakan sendiri pekerjaannya.

Modelnya adalah bagian yang mudah. Segala sesuatu di sekelilingnya adalah editornya.

Dua tangan, satu dokumen

Selagi sebuah operasi panjang berjalan, Anda tetap bekerja, sehingga dokumen itu memiliki dua penulis. Versi naif dari keadaan ini menghilangkan satu suntingan: penulis yang lebih lambat menyimpan paling akhir dan diam-diam menimpa apa yang dikerjakan yang lain.

Setiap penyimpanan adalah compare-and-swap terhadap operasi head dokumen saat itu. Penulisan yang dibangun di atas versi yang sudah bergeser akan ditolak — tidak digabungkan, dan tidak diterapkan diam-diam. Menolak adalah perilaku yang berguna: penyimpanan yang ditolak dapat dicoba ulang terhadap keadaan yang sebenarnya, sedangkan suntingan yang hilang baru ditemukan berhari-hari kemudian oleh orang yang membuatnya.

Persis sekali, atau tidak sama sekali

Sebuah langkah dalam rencana asisten cepat atau lambat akan bertemu percobaan ulang, klik ganda, koneksi yang putus, pemuatan ulang halaman, proses yang mati di tengah jalan, atau dua eksekutor yang sama-sama merasa memilikinya. Semua itu dapat menerapkan satu suntingan dua kali, dan suntingan yang diterapkan dua kali pada sebuah timeline bukanlah duplikat — melainkan timeline yang berbeda.

Maka eksekutornya tidak diperbolehkan memutuskan sendiri. Sebelum mengubah apa pun, ia harus mengambil klaim atas langkah itu dari plan store, yang memberikannya secara atomik di bawah sebuah lock; hanya klaim yang diberikan yang mengizinkan suntingan itu, dan sebuah replay mengembalikan hasil pertamanya tanpa menyentuh dokumen. Yang membuktikan sebuah operasi benar-benar terjadi adalah id operasi yang tercatat, bukan sebuah flag di tab peramban.

Model-modelnya berada di samping timeline, bukan di balik unggahan

Matting, segmentasi, dan kedalaman berjalan dalam proses yang sama dengan editornya, pada frame yang sudah ada di tangannya. Tidak ada ekspor, tidak ada unggahan, tidak ada penantian, tidak ada impor ulang, dan tidak ada yang harus dipaskan kembali sesudahnya.

Itu adalah pilihan desain tentang latensi, dan sekaligus menutup pertanyaan yang biasanya dibiarkan terbuka oleh sambungan itu: rekaman yang diembargo tetap diembargo, sebab rekaman itu tidak pernah pergi ke mana-mana. Ketika sebuah pekerjaan memang membutuhkan cloud, pekerjaan itu melewati satu gateway yang menghitung pemakaiannya ke akun yang memintanya.

Pratinjau yang memang hasil ekspornya

Shader yang sama menggambar penyusuran dan render akhirnya, sehingga apa yang Anda setujui adalah apa yang Anda kirimkan. Tanpa itu, setiap suntingan AI bersifat sementara: Anda akan menyetujui sebuah gambar lalu memeriksa ulang berkasnya kemudian — dan itulah sambungan yang muncul kembali di ujung lain pipeline-nya.

Bila semuanya disatukan — satu dokumen, satu kumpulan operasi, satu undo, satu head, satu eksekusi, satu jalur render — pertanyaan yang menarik bukan lagi seberapa bagus modelnya. Pertanyaannya menjadi seberapa murah Anda dapat tidak menyetujuinya. Bagian itulah yang kami bangun.