Dove finisce l'editor e comincia il modello.
Nella maggior parte degli strumenti c'è una giuntura. Si esporta, si carica, si aspetta, si scarica, si rimette dentro il risultato e si spera che combaci ancora. Da una parte di quella giuntura c'è il proprio progetto; dall'altra un programma che non ne ha mai sentito parlare. Sparkle la giuntura non ce l'ha, e toglierla è gran parte dell'ingegneria di cui parla questa pagina.
Un editor è un documento e le operazioni che lo cambiano
Sotto i pannelli, un editor è una cosa sola: un documento che descrive che cosa succede e quando, e un insieme di operazioni con nome, che sono l'unico modo di cambiarlo. Dividere una clip, cambiarle la velocità, impostare un colore, aggiungere una traccia di sottotitoli. Nient'altro tocca il documento.
Sembra un dettaglio di implementazione ed è tutta l'architettura. Una volta che le operazioni sono l'unica porta, tutto quello che conta dopo — undo, concorrenza, replay, l'audit di quello che è successo — è una proprietà della porta, e non qualcosa avvitato addosso a ogni funzione che ci passa attraverso.
Quindi l'assistente è un altro chiamante, non un altro programma
L'assistente non genera codice, e non genera fotogrammi. Emette le stesse operazioni con nome che emette una voce di menu, con gli stessi parametri tipizzati, sullo stesso documento. Gli si chiede di tagliare una versione verticale e chiama l'operazione che l'editor aveva già.
Ne seguono due cose, ed entrambe sono il punto. Non può esprimere niente che l'editor non sappia fare, quindi non esiste una categoria di output dell'AI da riconciliare con il progetto dopo. E qualunque cosa abbia fatto, la si sarebbe potuta fare da sé — il che vuol dire che la si può leggere, cambiare o smontare a mano.
Un'operazione, un undo
Un'operazione dell'assistente può toccare cento clip: cambiarne la velocità, rifarne il colore, rifare lo stile di ogni sottotitolo. Collassa comunque in un solo checkpoint, quindi un undo riporta a prima della richiesta.
Non è una comodità. Quello che rende usabile un assistente al montaggio non è quante volte ci prende — è quanto poco costa non essere d'accordo. Un assistente che non si può rifiutare in modo pulito è un assistente da sorvegliare, e sorvegliarlo costa più che fare il lavoro.
Il modello è la parte facile. Tutto quello che gli sta intorno è l'editor.
Due mani, un solo documento
Mentre un'operazione lunga gira si continua a lavorare, quindi il documento ha due autori. La versione ingenua di tutto questo perde una modifica: chi scrive più lentamente salva per ultimo e sovrascrive in silenzio quello che ha fatto l'altro.
Ogni salvataggio è un compare-and-swap contro l'operazione di testa corrente del documento. Una scrittura costruita su una versione che nel frattempo si è mossa viene rifiutata: non viene unita e non viene applicata in silenzio. Rifiutare è il comportamento utile — un salvataggio respinto si può ritentare contro la verità, mentre una modifica persa la scopre giorni dopo la persona che l'ha fatta.
Exactly once, oppure niente
Prima o poi uno step di un piano dell'assistente incontra un nuovo tentativo, un doppio clic, una connessione caduta, un ricaricamento, un crash a metà, o due esecutori convinti entrambi di averlo in carico. Ognuna di queste cose può applicare una modifica due volte, e una modifica applicata due volte a una timeline non è un duplicato — è una timeline diversa.
Perciò all'esecutore non è permesso decidere. Prima di cambiare qualsiasi cosa deve fare il claim dello step sul plan store, che glielo concede in modo atomico sotto lock; solo un claim concesso autorizza la modifica, e un replay restituisce il primo risultato senza toccare il documento. Quello che dimostra che un'operazione è avvenuta è un id di operazione registrato, non un flag in una scheda del browser.
I modelli stanno accanto alla timeline, non dietro un caricamento
Matting, segmentazione e profondità girano nello stesso processo dell'editor, sui fotogrammi che ha già in mano. Non c'è esportazione, non c'è caricamento, non c'è attesa, non c'è re-importazione, e non c'è niente da far ricombaciare dopo.
È una scelta di progetto sulla latenza, e chiude una domanda che la giuntura di solito lascia aperta: il girato sotto embargo resta sotto embargo, perché non è mai uscito. Dove il lavoro ha davvero bisogno del cloud, passa da un unico gateway che lo misura sull'account che l'ha chiesto.
Un'anteprima che è l'esportazione
Sono gli stessi shader a disegnare lo scorrimento e il rendering finale, quindi quello che si approva è quello che si consegna. Senza questo, ogni modifica dell'AI è provvisoria: si approverebbe un'immagine per poi ricontrollare il file dopo, che è la giuntura che ricompare all'altro capo della pipeline.
Messe insieme — un solo documento, un solo insieme di operazioni, un solo undo, una sola operazione di testa, una sola esecuzione, un solo percorso di rendering — la domanda interessante smette di essere quanto è bravo il modello. Diventa quanto poco costa non essere d'accordo con lui. È quella la parte che costruiamo.